@genexus/genexus-ide-ui 1.1.46 → 1.1.48

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 (193) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  3. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-name-picker.cjs.entry.js +109 -0
  5. package/dist/cjs/gx-ide-name-picker.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-references.cjs.entry.js +2 -2
  7. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +17 -13
  9. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-start-page.cjs.entry.js +11 -5
  11. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +1 -4
  16. package/dist/collection/components/curl-inspector/gx-ide-assets/curl-inspector/langs/curl-inspector.lang.ja.json +6 -6
  17. package/dist/collection/components/details-acknowledgements/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.ja.json +10 -10
  18. package/dist/collection/components/json-import/gx-ide-assets/json-import/langs/json-import.lang.ja.json +10 -10
  19. package/dist/collection/components/json-import/gx-ide-assets/json-import/langs/json-import.lang.zh.json +10 -10
  20. package/dist/collection/components/kb-manager-export/kb-manager-export.css +5 -1
  21. package/dist/collection/components/kb-manager-import/kb-manager-import.js +1 -1
  22. package/dist/collection/components/name-picker/gx-ide-assets/name-picker/langs/name-picker.lang.en.json +13 -0
  23. package/dist/collection/components/name-picker/gx-ide-assets/name-picker/langs/name-picker.lang.ja.json +13 -0
  24. package/dist/collection/components/name-picker/gx-ide-assets/name-picker/langs/name-picker.lang.zh.json +13 -0
  25. package/dist/collection/components/name-picker/name-picker.css +21 -0
  26. package/dist/collection/components/name-picker/name-picker.js +184 -0
  27. package/dist/collection/components/name-picker/name-picker.js.map +1 -0
  28. package/dist/collection/components/references/references.js +2 -2
  29. package/dist/collection/components/references/references.js.map +1 -1
  30. package/dist/collection/components/select-kb-items/select-kb-items.js +36 -13
  31. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  32. package/dist/collection/components/sign-in-result/gx-ide-assets/sign-in-result/images/left-side-illustration.svg +4 -26
  33. package/dist/collection/components/sign-in-result/gx-ide-assets/sign-in-result/images/right-side-illustration.svg +12 -12
  34. package/dist/collection/components/sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.en.json +1 -1
  35. package/dist/collection/components/sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.ja.json +4 -4
  36. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.en.json +2 -1
  37. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.ja.json +3 -2
  38. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.zh.json +2 -1
  39. package/dist/collection/components/start-page/start-page.js +13 -12
  40. package/dist/collection/components/start-page/start-page.js.map +1 -1
  41. package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/langs/server-selector.lang.ja.json +14 -14
  42. package/dist/collection/components/team-dev/update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +48 -48
  43. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +0 -1
  44. package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +60 -60
  45. package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +5 -5
  46. package/dist/collection/testing/locale.e2e.js +1 -5
  47. package/dist/collection/testing/locale.e2e.js.map +1 -1
  48. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  49. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  50. package/dist/components/{gx-ide-ai-message.d.ts → gx-ide-name-picker.d.ts} +4 -4
  51. package/dist/components/gx-ide-name-picker.js +131 -0
  52. package/dist/components/gx-ide-name-picker.js.map +1 -0
  53. package/dist/components/gx-ide-references.js +2 -2
  54. package/dist/components/gx-ide-references.js.map +1 -1
  55. package/dist/components/gx-ide-start-page.js +11 -5
  56. package/dist/components/gx-ide-start-page.js.map +1 -1
  57. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  58. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  59. package/dist/components/select-kb-items.js +19 -13
  60. package/dist/components/select-kb-items.js.map +1 -1
  61. package/dist/esm/genexus-ide-ui.js +1 -1
  62. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  63. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  64. package/dist/esm/gx-ide-name-picker.entry.js +105 -0
  65. package/dist/esm/gx-ide-name-picker.entry.js.map +1 -0
  66. package/dist/esm/gx-ide-references.entry.js +2 -2
  67. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  68. package/dist/esm/gx-ide-select-kb-items.entry.js +17 -13
  69. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  70. package/dist/esm/gx-ide-start-page.entry.js +11 -5
  71. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  72. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  73. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  74. package/dist/esm/loader.js +1 -1
  75. package/dist/genexus-ide-ui/genexus-ide-ui.css +0 -107
  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/curl-inspector/langs/curl-inspector.lang.ja.json +6 -6
  79. package/dist/genexus-ide-ui/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.ja.json +10 -10
  80. package/dist/genexus-ide-ui/gx-ide-assets/json-import/langs/json-import.lang.ja.json +10 -10
  81. package/dist/genexus-ide-ui/gx-ide-assets/json-import/langs/json-import.lang.zh.json +10 -10
  82. package/dist/genexus-ide-ui/gx-ide-assets/name-picker/langs/name-picker.lang.en.json +13 -0
  83. package/dist/genexus-ide-ui/gx-ide-assets/name-picker/langs/name-picker.lang.ja.json +13 -0
  84. package/dist/genexus-ide-ui/gx-ide-assets/name-picker/langs/name-picker.lang.zh.json +13 -0
  85. package/dist/genexus-ide-ui/gx-ide-assets/server-selector/langs/server-selector.lang.ja.json +14 -14
  86. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-result/images/left-side-illustration.svg +4 -26
  87. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-result/images/right-side-illustration.svg +12 -12
  88. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.en.json +1 -1
  89. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.ja.json +4 -4
  90. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.en.json +2 -1
  91. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.ja.json +3 -2
  92. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.zh.json +2 -1
  93. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +60 -60
  94. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +48 -48
  95. package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +5 -5
  96. package/dist/genexus-ide-ui/{p-b7aafbf6.entry.js → p-05fa08d7.entry.js} +2 -2
  97. package/dist/genexus-ide-ui/p-05fa08d7.entry.js.map +1 -0
  98. package/dist/genexus-ide-ui/{p-b80bd861.entry.js → p-0c5b7e75.entry.js} +3 -3
  99. package/dist/genexus-ide-ui/{p-b80bd861.entry.js.map → p-0c5b7e75.entry.js.map} +1 -1
  100. package/dist/genexus-ide-ui/{p-198a7cce.entry.js → p-46147e3c.entry.js} +112 -106
  101. package/dist/genexus-ide-ui/p-46147e3c.entry.js.map +1 -0
  102. package/dist/genexus-ide-ui/{p-8ec19a9a.entry.js → p-b25d91e5.entry.js} +18 -13
  103. package/dist/genexus-ide-ui/p-b25d91e5.entry.js.map +1 -0
  104. package/dist/genexus-ide-ui/{p-31c1b79d.entry.js → p-b6a75c44.entry.js} +9 -9
  105. package/dist/genexus-ide-ui/p-b6a75c44.entry.js.map +1 -0
  106. package/dist/genexus-ide-ui/p-e3bce13e.entry.js +143 -0
  107. package/dist/genexus-ide-ui/p-e3bce13e.entry.js.map +1 -0
  108. package/dist/types/components/name-picker/name-picker.d.ts +27 -0
  109. package/dist/types/components/select-kb-items/select-kb-items.d.ts +8 -0
  110. package/dist/types/components/start-page/start-page.d.ts +2 -3
  111. package/dist/types/components.d.ts +41 -352
  112. package/package.json +1 -1
  113. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +0 -297
  114. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +0 -1
  115. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +0 -97
  116. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +0 -1
  117. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +0 -179
  118. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +0 -1
  119. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +0 -333
  120. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +0 -1
  121. package/dist/collection/components/ai-assistant/ai-assistant.css +0 -1024
  122. package/dist/collection/components/ai-assistant/ai-assistant.js +0 -526
  123. package/dist/collection/components/ai-assistant/ai-assistant.js.map +0 -1
  124. package/dist/collection/components/ai-assistant/ai-message.css +0 -237
  125. package/dist/collection/components/ai-assistant/ai-message.js +0 -221
  126. package/dist/collection/components/ai-assistant/ai-message.js.map +0 -1
  127. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +0 -9
  128. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +0 -9
  129. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +0 -9
  130. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.en.json +0 -4
  131. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.ja.json +0 -4
  132. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.zh.json +0 -4
  133. package/dist/collection/components/dashboard-home/dashboard-home.css +0 -1069
  134. package/dist/collection/components/dashboard-home/dashboard-home.js +0 -439
  135. package/dist/collection/components/dashboard-home/dashboard-home.js.map +0 -1
  136. package/dist/collection/components/dashboard-home/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.en.json +0 -43
  137. package/dist/collection/components/dashboard-home/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.ja.json +0 -43
  138. package/dist/collection/components/dashboard-home/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.zh.json +0 -43
  139. package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.en.json +0 -39
  140. package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.ja.json +0 -39
  141. package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.zh.json +0 -39
  142. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +0 -498
  143. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +0 -1
  144. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +0 -848
  145. package/dist/components/ai-message.js +0 -116
  146. package/dist/components/ai-message.js.map +0 -1
  147. package/dist/components/gx-ide-ai-assistant.d.ts +0 -11
  148. package/dist/components/gx-ide-ai-assistant.js +0 -336
  149. package/dist/components/gx-ide-ai-assistant.js.map +0 -1
  150. package/dist/components/gx-ide-ai-message.js +0 -8
  151. package/dist/components/gx-ide-ai-message.js.map +0 -1
  152. package/dist/components/gx-ide-dashboard-home.d.ts +0 -11
  153. package/dist/components/gx-ide-dashboard-home.js +0 -215
  154. package/dist/components/gx-ide-dashboard-home.js.map +0 -1
  155. package/dist/components/gx-ide-manage-module-references-v2.d.ts +0 -11
  156. package/dist/components/gx-ide-manage-module-references-v2.js +0 -389
  157. package/dist/components/gx-ide-manage-module-references-v2.js.map +0 -1
  158. package/dist/esm/gx-ide-ai-assistant.entry.js +0 -293
  159. package/dist/esm/gx-ide-ai-assistant.entry.js.map +0 -1
  160. package/dist/esm/gx-ide-ai-message.entry.js +0 -93
  161. package/dist/esm/gx-ide-ai-message.entry.js.map +0 -1
  162. package/dist/esm/gx-ide-dashboard-home.entry.js +0 -175
  163. package/dist/esm/gx-ide-dashboard-home.entry.js.map +0 -1
  164. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +0 -329
  165. package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +0 -1
  166. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +0 -9
  167. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +0 -9
  168. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +0 -9
  169. package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.en.json +0 -4
  170. package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.ja.json +0 -4
  171. package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.zh.json +0 -4
  172. package/dist/genexus-ide-ui/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.en.json +0 -43
  173. package/dist/genexus-ide-ui/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.ja.json +0 -43
  174. package/dist/genexus-ide-ui/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.zh.json +0 -43
  175. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.en.json +0 -39
  176. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.ja.json +0 -39
  177. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.zh.json +0 -39
  178. package/dist/genexus-ide-ui/p-198a7cce.entry.js.map +0 -1
  179. package/dist/genexus-ide-ui/p-31c1b79d.entry.js.map +0 -1
  180. package/dist/genexus-ide-ui/p-3ccd331f.entry.js +0 -137
  181. package/dist/genexus-ide-ui/p-3ccd331f.entry.js.map +0 -1
  182. package/dist/genexus-ide-ui/p-47f78f65.entry.js +0 -473
  183. package/dist/genexus-ide-ui/p-47f78f65.entry.js.map +0 -1
  184. package/dist/genexus-ide-ui/p-7a28161f.entry.js +0 -303
  185. package/dist/genexus-ide-ui/p-7a28161f.entry.js.map +0 -1
  186. package/dist/genexus-ide-ui/p-8ec19a9a.entry.js.map +0 -1
  187. package/dist/genexus-ide-ui/p-b7aafbf6.entry.js.map +0 -1
  188. package/dist/genexus-ide-ui/p-d0c2dde3.entry.js +0 -331
  189. package/dist/genexus-ide-ui/p-d0c2dde3.entry.js.map +0 -1
  190. package/dist/types/components/ai-assistant/ai-assistant.d.ts +0 -104
  191. package/dist/types/components/ai-assistant/ai-message.d.ts +0 -48
  192. package/dist/types/components/dashboard-home/dashboard-home.d.ts +0 -119
  193. package/dist/types/components/modules/manage-module-references-v2/manage-module-references-v2.d.ts +0 -108
@@ -1 +1 @@
1
- {"version":3,"file":"select-kb-items.js","sourceRoot":"","sources":["../../../src/components/select-kb-items/select-kb-items.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes,\n findFirstActiveNode\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nimport { ACTIVE_ITEM_DEFAULT_ICON } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n\n #checkedNodesIds: string[] = [];\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n\n #viewItemsAsModel: RadioGroupItemModel[];\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n /**\n * Represents the active version node caption and icon (if any)\n */\n @State() activeItemNode: ActiveNode;\n\n /**\n * If true, the footer will be rendered\n */\n @State() renderFooter: boolean = false;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean = true;\n\n /**\n * Callback emitted when the user clicks on the \"Active item\"\n */\n @Prop() readonly activeItemCallback?: () => Promise<void>;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n this.#updateViews(newItemsList);\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(newItemsList);\n\n if (newItemsList.length > 0) {\n this.loading = false;\n }\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * Used to define if the component must show the \"Active item\" link or not\n */\n @Prop() readonly showActiveItemLink?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.watchNodeListHandler(this.itemsList);\n this.renderFooter =\n this.dialogActions.length > 0 ||\n !!this.cancelCallback ||\n !!this.confirmCallback;\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n /**\n * Allow to update the checked items\n */\n @Method()\n async updateCheckedItems(checkedItemsIds: string[]) {\n // first clear checks\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n checked: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(checkedItemsIds, {\n checked: true\n });\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n node.item.checked && checkedNodesIds.push(node.item.id);\n });\n this.#checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.#checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.#checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.#checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.#checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.#checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n #scrollIntoActiveVersionNode = () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n this.activeItemCallback();\n }\n };\n\n render() {\n return (\n <Host class={{ \"widget\": true, \"has-footer\": this.renderFooter }}>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header\n part=\"header\"\n class=\"header control-header field-group spacing-body-block-start spacing-body-inline\"\n >\n <div class=\"header__first-row\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group dummy-control-block-size\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox dummy-control-block-size\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <div\n class={{\n \"header__second-row\": true,\n \"header__second-row--one-row\": !this.showActiveItemLink\n }}\n >\n <ch-edit\n class=\"input\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n accessibleName=\"search pattern\"\n ></ch-edit>\n {this.activeItemNode && this.showActiveItemLink && (\n <div class=\"active-item\">\n <span\n class=\"active-item__icon-container\"\n // make this span the icon container, to prevent icon state changes when\n // interacting with div.active-item\n >\n <ch-image\n class=\"icon-md active-item__icon\"\n src={\n this.activeItemNode.iconStart ||\n ACTIVE_ITEM_DEFAULT_ICON\n }\n containerRef={null}\n ></ch-image>\n </span>\n {this.#_componentLocale.header.activeItem}\n <button\n class=\"active-item__link\"\n onClick={this.#scrollIntoActiveVersionNode}\n >\n {this.activeItemNode.caption}\n </button>\n </div>\n )}\n </div>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {this.renderFooter && this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n active?: boolean;\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type: ItemType;\n};\n\nexport type ActiveNode = {\n caption: string;\n iconStart?: string;\n path: string[]; // for using the scrollIntoVisible method of the tree-view-render\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"]}
1
+ {"version":3,"file":"select-kb-items.js","sourceRoot":"","sources":["../../../src/components/select-kb-items/select-kb-items.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes,\n findFirstActiveNode\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nimport { ACTIVE_ITEM_DEFAULT_ICON } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n\n #viewItemsAsModel: RadioGroupItemModel[];\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n /**\n * Represents the active version node caption and icon (if any)\n */\n @State() activeItemNode: ActiveNode;\n\n /**\n * Represents the selected nodes ids\n */\n @State() checkedNodesIds: string[] = [];\n\n /**\n * If true, the footer will be rendered\n */\n @State() renderFooter: boolean = false;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean;\n\n /**\n * Callback emitted when the user clicks on the \"Active item\"\n */\n @Prop() readonly activeItemCallback?: () => Promise<void>;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n /**\n * Used to define if the component must show the \"Toggle Checkboxes\" option or not\n */\n @Prop() readonly showToggleCheckboxes: boolean = true;\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n this.#updateViews(newItemsList);\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(newItemsList);\n\n if (newItemsList.length > 0) {\n this.loading = false;\n }\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * Used to define if the component must show the \"Active item\" link or not\n */\n @Prop() readonly showActiveItemLink?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.toggleCheckboxes = this.showToggleCheckboxes;\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.watchNodeListHandler(this.itemsList);\n this.renderFooter =\n this.dialogActions.length > 0 ||\n !!this.cancelCallback ||\n !!this.confirmCallback;\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n /**\n * Allow to update the checked items\n */\n @Method()\n async updateCheckedItems(checkedItemsIds: string[]) {\n // first clear checks\n this.#treeViewRenderEl.updateItemsProperties(this.checkedNodesIds, {\n checked: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(checkedItemsIds, {\n checked: true\n });\n this.checkedNodesIds = checkedItemsIds;\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n node.item.checked && checkedNodesIds.push(node.item.id);\n });\n this.checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading || this.checkedNodesIds?.length === 0}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n #scrollIntoActiveVersionNode = () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n this.activeItemCallback();\n }\n };\n\n render() {\n return (\n <Host class={{ \"widget\": true, \"has-footer\": this.renderFooter }}>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header\n part=\"header\"\n class=\"header control-header field-group spacing-body-block-start spacing-body-inline\"\n >\n <div class=\"header__first-row\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group dummy-control-block-size\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && this.showToggleCheckboxes && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox dummy-control-block-size\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <div\n class={{\n \"header__second-row\": true,\n \"header__second-row--one-row\": !this.showActiveItemLink\n }}\n >\n <ch-edit\n class=\"input\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n accessibleName=\"search pattern\"\n ></ch-edit>\n {this.activeItemNode && this.showActiveItemLink && (\n <div class=\"active-item\">\n <span\n class=\"active-item__icon-container\"\n // make this span the icon container, to prevent icon state changes when\n // interacting with div.active-item\n >\n <ch-image\n class=\"icon-md active-item__icon\"\n src={\n this.activeItemNode.iconStart ||\n ACTIVE_ITEM_DEFAULT_ICON\n }\n containerRef={null}\n ></ch-image>\n </span>\n {this.#_componentLocale.header.activeItem}\n <button\n class=\"active-item__link\"\n onClick={this.#scrollIntoActiveVersionNode}\n >\n {this.activeItemNode.caption}\n </button>\n </div>\n )}\n </div>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {this.renderFooter && this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n active?: boolean;\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type: ItemType;\n};\n\nexport type ActiveNode = {\n caption: string;\n iconStart?: string;\n path: string[]; // for using the scrollIntoVisible method of the tree-view-render\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"]}
@@ -1,36 +1,14 @@
1
1
  <svg width="489" height="1024" viewBox="0 0 489 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="-39.6955" cy="282.466" r="161.431" transform="rotate(62.2678 -39.6955 282.466)" fill="url(#paint0_linear_3177_2)" fill-opacity="0.5"/>
3
- <path d="M70.5397 646.653C73.3935 646.809 75.9476 648.475 77.2397 651.025L117.666 730.785C118.958 733.334 118.792 736.379 117.23 738.773L68.3693 813.663C66.8076 816.057 64.0875 817.436 61.2336 817.28L-28.054 812.41C-30.9079 812.255 -33.4619 810.588 -34.7541 808.039L-75.1805 728.279C-76.4727 725.729 -76.3066 722.684 -74.7448 720.291L-25.8837 645.4C-24.3219 643.006 -21.6018 641.628 -18.7479 641.783L70.5397 646.653Z" fill="url(#paint1_linear_3177_2)" fill-opacity="0.5"/>
4
- <circle cx="76.3264" cy="900.912" r="161.431" transform="rotate(133.557 76.3264 900.912)" fill="url(#paint2_linear_3177_2)" fill-opacity="0.4"/>
5
- <g filter="url(#filter0_f_3177_2)">
6
- <circle cx="21.2428" cy="-4.04266" r="340.686" transform="rotate(-31.0528 21.2428 -4.04266)" fill="url(#paint3_linear_3177_2)" fill-opacity="0.7"/>
7
- <circle cx="21.2428" cy="-4.04266" r="339.686" transform="rotate(-31.0528 21.2428 -4.04266)" stroke="url(#paint4_linear_3177_2)" stroke-opacity="0.4" stroke-width="2"/>
8
- </g>
2
+ <path d="M70.8945 646.294C73.7483 646.449 76.3024 648.116 77.5945 650.665L118.021 730.425C119.313 732.975 119.147 736.02 117.585 738.413L68.7241 813.304C67.1624 815.697 64.4423 817.076 61.5884 816.92L-27.6992 812.051C-30.5531 811.895 -33.1071 810.229 -34.3993 807.679L-74.8257 727.919C-76.1179 725.37 -75.9518 722.325 -74.39 719.931L-25.5289 645.041C-23.9671 642.647 -21.247 641.268 -18.3931 641.424L70.8945 646.294Z" fill="url(#paint0_linear_3429_1723)" fill-opacity="0.5"/>
3
+ <circle cx="76.6813" cy="900.552" r="161.431" transform="rotate(133.557 76.6813 900.552)" fill="url(#paint1_linear_3429_1723)" fill-opacity="0.4"/>
9
4
  <defs>
10
- <filter id="filter0_f_3177_2" x="-419.494" y="-444.779" width="881.473" height="881.473" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
11
- <feFlood flood-opacity="0" result="BackgroundImageFix"/>
12
- <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
13
- <feGaussianBlur stdDeviation="50" result="effect1_foregroundBlur_3177_2"/>
14
- </filter>
15
- <linearGradient id="paint0_linear_3177_2" x1="-85.6257" y1="443.897" x2="74.9024" y2="-58.2581" gradientUnits="userSpaceOnUse">
5
+ <linearGradient id="paint0_linear_3429_1723" x1="-55.8201" y1="796.461" x2="194.036" y2="593.045" gradientUnits="userSpaceOnUse">
16
6
  <stop stop-color="#226B98" stop-opacity="0"/>
17
7
  <stop offset="0.886406" stop-color="#5BA7FF" stop-opacity="0.5"/>
18
8
  </linearGradient>
19
- <linearGradient id="paint1_linear_3177_2" x1="-56.1749" y1="796.821" x2="193.681" y2="593.405" gradientUnits="userSpaceOnUse">
9
+ <linearGradient id="paint1_linear_3429_1723" x1="30.751" y1="1061.98" x2="191.279" y2="559.829" gradientUnits="userSpaceOnUse">
20
10
  <stop stop-color="#226B98" stop-opacity="0"/>
21
11
  <stop offset="0.886406" stop-color="#5BA7FF" stop-opacity="0.5"/>
22
12
  </linearGradient>
23
- <linearGradient id="paint2_linear_3177_2" x1="30.3962" y1="1062.34" x2="190.924" y2="560.188" gradientUnits="userSpaceOnUse">
24
- <stop stop-color="#226B98" stop-opacity="0"/>
25
- <stop offset="0.886406" stop-color="#5BA7FF" stop-opacity="0.5"/>
26
- </linearGradient>
27
- <linearGradient id="paint3_linear_3177_2" x1="21.2429" y1="-344.728" x2="21.2429" y2="336.643" gradientUnits="userSpaceOnUse">
28
- <stop stop-color="#5BA7FF"/>
29
- <stop offset="1" stop-color="#226B98" stop-opacity="0"/>
30
- </linearGradient>
31
- <linearGradient id="paint4_linear_3177_2" x1="283.264" y1="-259.406" x2="-218.799" y2="244.664" gradientUnits="userSpaceOnUse">
32
- <stop stop-color="#00CCFF"/>
33
- <stop offset="1" stop-color="#C358FF"/>
34
- </linearGradient>
35
13
  </defs>
36
14
  </svg>
@@ -1,29 +1,29 @@
1
- <svg width="542" height="584" viewBox="0 0 542 584" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g filter="url(#filter0_f_3177_3)">
3
- <circle cx="463.005" cy="634.416" r="340.686" transform="rotate(118.835 463.005 634.416)" fill="url(#paint0_linear_3177_3)" fill-opacity="0.7"/>
4
- <circle cx="463.005" cy="634.416" r="339.686" transform="rotate(118.835 463.005 634.416)" stroke="url(#paint1_linear_3177_3)" stroke-opacity="0.4" stroke-width="2"/>
1
+ <svg width="507" height="730" viewBox="0 0 507 730" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g filter="url(#filter0_f_3429_1717)">
3
+ <circle cx="462.754" cy="633.957" r="340.686" transform="rotate(118.835 462.754 633.957)" fill="url(#paint0_linear_3429_1717)" fill-opacity="0.7"/>
4
+ <circle cx="462.754" cy="633.957" r="339.686" transform="rotate(118.835 462.754 633.957)" stroke="url(#paint1_linear_3429_1717)" stroke-opacity="0.4" stroke-width="2"/>
5
5
  </g>
6
- <path d="M184.745 487.992C186.137 485.496 188.755 483.932 191.613 483.89L281.023 482.56C283.881 482.517 286.544 484.002 288.01 486.456L333.867 563.223C335.333 565.676 335.378 568.726 333.986 571.222L290.433 649.319C289.041 651.815 286.423 653.379 283.565 653.421L194.154 654.751C191.297 654.794 188.633 653.308 187.168 650.855L141.31 574.088C139.845 571.634 139.799 568.585 141.192 566.089L184.745 487.992Z" fill="url(#paint2_linear_3177_3)" fill-opacity="0.4"/>
7
- <circle cx="501.222" cy="228.685" r="161.431" transform="rotate(133.557 501.222 228.685)" fill="url(#paint3_linear_3177_3)" fill-opacity="0.4"/>
6
+ <path d="M184.494 487.533C185.886 485.037 188.504 483.473 191.362 483.431L280.773 482.101C283.63 482.058 286.294 483.543 287.76 485.997L333.617 562.764C335.082 565.217 335.128 568.267 333.736 570.763L290.182 648.859C288.79 651.356 286.172 652.92 283.314 652.962L193.904 654.292C191.046 654.335 188.383 652.849 186.917 650.396L141.06 573.629C139.594 571.175 139.549 568.126 140.941 565.63L184.494 487.533Z" fill="url(#paint2_linear_3429_1717)" fill-opacity="0.4"/>
7
+ <circle cx="500.972" cy="228.226" r="161.431" transform="rotate(133.557 500.972 228.226)" fill="url(#paint3_linear_3429_1717)" fill-opacity="0.4"/>
8
8
  <defs>
9
- <filter id="filter0_f_3177_3" x="22.256" y="193.668" width="881.498" height="881.497" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
9
+ <filter id="filter0_f_3429_1717" x="22.0055" y="193.209" width="881.498" height="881.497" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
10
10
  <feFlood flood-opacity="0" result="BackgroundImageFix"/>
11
11
  <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
12
- <feGaussianBlur stdDeviation="50" result="effect1_foregroundBlur_3177_3"/>
12
+ <feGaussianBlur stdDeviation="50" result="effect1_foregroundBlur_3429_1717"/>
13
13
  </filter>
14
- <linearGradient id="paint0_linear_3177_3" x1="463.005" y1="293.731" x2="463.005" y2="975.102" gradientUnits="userSpaceOnUse">
14
+ <linearGradient id="paint0_linear_3429_1717" x1="462.754" y1="293.272" x2="462.754" y2="974.643" gradientUnits="userSpaceOnUse">
15
15
  <stop stop-color="#5BA7FF"/>
16
16
  <stop offset="1" stop-color="#226B98" stop-opacity="0"/>
17
17
  </linearGradient>
18
- <linearGradient id="paint1_linear_3177_3" x1="725.026" y1="379.054" x2="222.963" y2="883.123" gradientUnits="userSpaceOnUse">
18
+ <linearGradient id="paint1_linear_3429_1717" x1="724.775" y1="378.594" x2="222.713" y2="882.664" gradientUnits="userSpaceOnUse">
19
19
  <stop stop-color="#00CCFF"/>
20
20
  <stop offset="1" stop-color="#C358FF"/>
21
21
  </linearGradient>
22
- <linearGradient id="paint2_linear_3177_3" x1="264.085" y1="667.748" x2="190.927" y2="353.974" gradientUnits="userSpaceOnUse">
22
+ <linearGradient id="paint2_linear_3429_1717" x1="263.835" y1="667.288" x2="190.677" y2="353.515" gradientUnits="userSpaceOnUse">
23
23
  <stop stop-color="#226B98" stop-opacity="0"/>
24
24
  <stop offset="0.886406" stop-color="#7945AA"/>
25
25
  </linearGradient>
26
- <linearGradient id="paint3_linear_3177_3" x1="455.292" y1="390.116" x2="615.82" y2="-112.039" gradientUnits="userSpaceOnUse">
26
+ <linearGradient id="paint3_linear_3429_1717" x1="455.041" y1="389.657" x2="615.569" y2="-112.498" gradientUnits="userSpaceOnUse">
27
27
  <stop stop-color="#226B98" stop-opacity="0"/>
28
28
  <stop offset="0.886406" stop-color="#5BA7FF" stop-opacity="0.5"/>
29
29
  </linearGradient>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "componentName": "Status Message",
3
- "title": "You have successfully authenticated.",
3
+ "title": "You have successfully signed in.",
4
4
  "description": "Yoy may now close this browser tab.",
5
5
  "genexusNextLogo": "GeneXus Next Logo"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
- "componentName": "Status Message",
3
- "title": "You have successfully authenticated.",
4
- "description": "Yoy may now close this browser tab.",
5
- "genexusNextLogo": "GeneXus Next Logo"
2
+ "componentName": "ステータスメッセージ",
3
+ "title": "認証に成功しました。",
4
+ "description": "このブラウザタブを閉じても問題ありません。",
5
+ "genexusNextLogo": "GeneXus Nextロゴ"
6
6
  }
@@ -10,7 +10,8 @@
10
10
  },
11
11
  "viewSamples": {
12
12
  "title": "View Samples",
13
- "description": "Explore our samples. Search, discover, and chat with the assistant to find exactly what you need."
13
+ "description": "Explore our samples. Search, discover, and chat with the assistant to find exactly what you need.",
14
+ "open": "Open [projectName]"
14
15
  },
15
16
  "openExistingProject": {
16
17
  "title": "Open Existing Project",
@@ -9,8 +9,9 @@
9
9
  "buttonCaption": "新規ナレッジベース"
10
10
  },
11
11
  "viewSamples": {
12
- "title": "View Samples",
13
- "description": "Explore our samples. Search, discover, and chat with the assistant to find exactly what you need."
12
+ "title": "「サンプルを見る」",
13
+ "description": "私たちのサンプルを探索しましょう。検索して発見し、アシスタントとチャットして、必要なものを正確に見つけてください。",
14
+ "open": "[projectName] 開く"
14
15
  },
15
16
  "openExistingProject": {
16
17
  "title": "既存プロジェクトを開く",
@@ -10,7 +10,8 @@
10
10
  },
11
11
  "viewSamples": {
12
12
  "title": "View Samples",
13
- "description": "Explore our samples. Search, discover, and chat with the assistant to find exactly what you need."
13
+ "description": "Explore our samples. Search, discover, and chat with the assistant to find exactly what you need.",
14
+ "open": "Open [projectName]"
14
15
  },
15
16
  "openExistingProject": {
16
17
  "title": "Open Existing Project",
@@ -51,6 +51,7 @@ const SEARCH_ICON = getIconPath({
51
51
  name: "search",
52
52
  colorType: "on-elevation"
53
53
  });
54
+ const PROJECT_NAME_PLACEHOLDER = "[projectName]";
54
55
  const CSS_BUNDLES = [
55
56
  "resets/box-sizing",
56
57
  "utils/typography",
@@ -177,25 +178,30 @@ export class GxIdeStartPage {
177
178
  var _a, _b;
178
179
  this.loading =
179
180
  (!this.kbs || ((_a = this.kbs) === null || _a === void 0 ? void 0 : _a.length) === 0) && !this.secondarySection;
181
+ const renderCreateProjectCard = this.createKBCallback;
182
+ const renderOpenProjectCard = this.openKbCallback;
180
183
  const renderViewSamplesCard = ((_b = this.samples) === null || _b === void 0 ? void 0 : _b.length) && this.openSampleCallback;
184
+ const renderCardsContainer = renderCreateProjectCard || renderOpenProjectCard || renderViewSamplesCard;
181
185
  return (h(Host, { class: "scrollable" }, h("ch-theme", { model: CSS_BUNDLES }), h("main", { class: "main scrollable" }, h("section", {
182
186
  // Create a new Knowledge Base
183
187
  class: "section-create-new-kb"
184
188
  }, h("header", {
185
189
  // main header
186
190
  class: "section-create-new-kb__header"
187
- }, h("h1", { class: "heading-5 section-create-new-kb__title" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createKB.title), h("p", { class: "body-regular-m" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createKB.description)), h("section", { class: "section-create-new-kb__actions scrollable" }, h("article", {
191
+ }, h("h1", { class: "heading-5 section-create-new-kb__title" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createKB.title), h("p", { class: "body-regular-m" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createKB.description)), renderCardsContainer && (h("section", { class: "section-create-new-kb__actions scrollable" }, renderCreateProjectCard && (h("article", {
188
192
  // create project
189
193
  class: "card card-filled"
190
- }, h("header", { class: "card__header" }, h("div", { class: "card__header-description" }, h("h2", { class: "subtitle-semi-bold-xs card__header-title" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.title), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.description))), h("footer", { class: "card__footer" }, h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeStartPage_createKBClickHandler, "f").call(this, false) }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.buttonCaption))), h("article", {
194
+ }, h("header", { class: "card__header" }, h("div", { class: "card__header-description" }, h("h2", { class: "subtitle-semi-bold-xs card__header-title" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.title), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.description))), h("footer", { class: "card__footer" }, h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeStartPage_createKBClickHandler, "f").call(this, false) }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.buttonCaption)))), renderOpenProjectCard && (h("article", {
191
195
  // open existing project
192
196
  class: "card-filled"
193
- }, h("header", { class: "card__header" }, h("div", { class: "card__header-description" }, h("h2", { class: "subtitle-semi-bold-xs" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject.title), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject.description))), h("footer", { class: "card__footer" }, h("button", { class: "button-secondary cancel-btn", onClick: __classPrivateFieldGet(this, _GxIdeStartPage_createKBClickHandler, "f").call(this, true) }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject.buttonCaption))), renderViewSamplesCard ? (h("article", {
197
+ }, h("header", { class: "card__header" }, h("div", { class: "card__header-description" }, h("h2", { class: "subtitle-semi-bold-xs" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject.title), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject
198
+ .description))), h("footer", { class: "card__footer" }, h("button", { class: "button-secondary cancel-btn", onClick: __classPrivateFieldGet(this, _GxIdeStartPage_createKBClickHandler, "f").call(this, true) }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject
199
+ .buttonCaption)))), renderViewSamplesCard ? (h("article", {
194
200
  // view samples
195
201
  class: "card-filled"
196
202
  }, h("header", { class: "card__header" }, h("div", { class: "card__header-description" }, h("h2", { class: "subtitle-semi-bold-xs" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").viewSamples.title), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").viewSamples.description))), h("footer", { class: "card__footer" }, h("div", { class: "buttons-spacer samples-buttons-container" }, this.samples.map(sample => {
197
- return (h("button", { class: "button-secondary", onClick: () => this.openSampleCallback(sample) }, sample.name));
198
- }))))) : null)), h("section", { class: "section-secondary scrollable" }, this.loading ? (h("gx-ide-loader", { class: "loader", loaderTitle: __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.loaderTitle, description: __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.loaderDescription, show: true })) : (__classPrivateFieldGet(this, _GxIdeStartPage_instances, "m", _GxIdeStartPage_evaluateContentToRender).call(this))))));
203
+ return (h("button", { class: "button-secondary", onClick: () => this.openSampleCallback(sample.id) }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").viewSamples.open.replace(PROJECT_NAME_PLACEHOLDER, sample.name)));
204
+ }))))) : null))), h("section", { class: "section-secondary scrollable" }, this.loading ? (h("gx-ide-loader", { class: "loader", loaderTitle: __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.loaderTitle, description: __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.loaderDescription, show: true })) : (__classPrivateFieldGet(this, _GxIdeStartPage_instances, "m", _GxIdeStartPage_evaluateContentToRender).call(this))))));
199
205
  }
200
206
  static get is() { return "gx-ide-start-page"; }
201
207
  static get encapsulation() { return "shadow"; }
@@ -294,14 +300,9 @@ export class GxIdeStartPage {
294
300
  "type": "unknown",
295
301
  "mutable": false,
296
302
  "complexType": {
297
- "original": "(sample: SampleData) => Promise<void>",
298
- "resolved": "(sample: SampleData) => Promise<void>",
303
+ "original": "(sampleId: string) => Promise<void>",
304
+ "resolved": "(sampleId: string) => Promise<void>",
299
305
  "references": {
300
- "SampleData": {
301
- "location": "local",
302
- "path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/start-page/start-page.tsx",
303
- "id": "src/components/start-page/start-page.tsx::SampleData"
304
- },
305
306
  "Promise": {
306
307
  "location": "global",
307
308
  "id": "global::Promise"
@@ -1 +1 @@
1
- {"version":3,"file":"start-page.js","sourceRoot":"","sources":["../../../src/components/start-page/start-page.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport { Component, Host, h, Prop, State, Element, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { formatDistanceToNow, Locale as LocaleDateFns } from \"date-fns\";\nimport { ja, zhCN, enUS } from \"date-fns/locale\";\n// import { enUS } from \"date-fns/locale\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n// Custom\nimport { Locale } from \"../../common/locale\";\n\n// const locale = enUS; // use `zhCN` for Chinese, `ja` for Japanese, `enUS` for English\n\nimport { formatDate } from \"../../common/helpers\";\n\nconst LANGS_DATE_FNS_MAP: LanguageMap = {\n \"en\": enUS,\n \"ja\": ja,\n \"zh-CN\": zhCN,\n \"zh-TW\": zhCN,\n \"zh-HK\": zhCN\n};\n\nconst DETAIL_ICON = getIconPath({\n category: \"system\",\n name: \"detail\",\n colorType: \"primary\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst KB_DEFAULT_ICON = getIconPath({\n category: \"objects\",\n name: \"knowledge-base\"\n});\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/layout\",\n \"components/edit\",\n \"components/icon\",\n \"components/button\",\n \"chameleon/scrollbar\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-start-page\",\n styleUrl: \"start-page.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/start-page\"]\n})\nexport class GxIdeStartPage {\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 #userLanguage: LocaleDateFns;\n\n @Element() el: HTMLGxIdeStartPageElement;\n\n /**\n * The kbs after the filter value.\n */\n @State() filteredKbs: RecentKBData[];\n\n @State() kbFilterValue: string = \"\";\n @Watch(\"kbFilterValue\")\n kbFilterValueChanged(newKbFilterValue: string) {\n this.filteredKbs = this.kbs.filter(kb =>\n kb.name.toLowerCase().includes(newKbFilterValue.toLocaleLowerCase())\n );\n }\n\n /**\n * True if the start page is waiting, either for the kb's list or the secondary section.\n */\n @State() loading: boolean = true;\n\n /**\n * Callback invoked to create a new KB. It must be specified whether this create is create from server or not, through the parameter 'fromServer'.\n */\n @Prop() readonly createKBCallback!: (fromServer: boolean) => Promise<void>;\n\n /**\n * User's kbs array\n */\n @Prop() readonly kbs: RecentKBData[];\n @Watch(\"kbs\")\n kbsChanged(newKbs: RecentKBData[]) {\n this.filteredKbs = newKbs;\n this.kbFilterValue = \"\"; // clear filter\n }\n\n /**\n * The minimum required of kbs to display a filter.\n */\n @Prop() readonly kbsFilterThreshold: number;\n\n /**\n * Callback invoked to open a KB when the user clicks on a KB card.\n */\n @Prop() readonly openKbCallback!: (id: string) => Promise<void>;\n\n /**\n * Callback invoked when the user clicks a button to open a sample.\n */\n @Prop() readonly openSampleCallback!: (sample: SampleData) => Promise<void>;\n\n /**\n * List of samples available to be displayed in the samples card.\n */\n @Prop() readonly samples?: SampleData[];\n\n /**\n * 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.\n */\n @Prop() readonly secondarySection?: SecondarySection;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // initialize filteredKbs\n this.kbsChanged(this.kbs);\n\n // get user language to display the kb \"last opened\" value in the appropriate language.\n const userLanguage: keyof LanguageMap = document.documentElement\n .lang as keyof LanguageMap;\n this.#userLanguage = LANGS_DATE_FNS_MAP[userLanguage];\n }\n\n #createKBClickHandler = (fromServer: boolean) => (event: MouseEvent) => {\n event.stopPropagation();\n this.createKBCallback(fromServer);\n };\n\n #filterKbs = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.kbFilterValue = event.detail as string;\n };\n\n #openKbClickHandler = (kbId: string) => (event: MouseEvent) => {\n event.stopPropagation();\n this.openKbCallback(kbId);\n };\n\n // renders\n\n #evaluateContentToRender() {\n return this.kbs && this.kbs.length > 0\n ? this.#renderKbsSection()\n : this.#renderSecondarySection();\n }\n\n #renderKbsSection = () => {\n const hideKbsFilter = this.kbs.length < this.kbsFilterThreshold;\n const kbsListEmpty = this.filteredKbs.length === 0;\n let contentToRender: HTMLGxgIdeLoaderElement | HTMLElement[];\n\n // Evaluate what is the content to display.\n if (this.filteredKbs.length > 0) {\n contentToRender = this.#renderKbs();\n } else {\n // No kb has pass the filter. Display an empty-state.\n contentToRender = (\n <gx-ide-empty-state\n isAnimated\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.recentKBs.noMatches}\n ></gx-ide-empty-state>\n );\n }\n\n return (\n <section class=\"section-kbs\">\n <header\n class={{\n \"section-kbs__header\": true\n }}\n >\n <label\n class=\"subtitle-regular-s section-kbs__title\"\n htmlFor=\"filter-kbs\"\n >\n {this.#componentLocale.recentKBs.title}\n </label>\n <ch-edit\n // Render always, and display or hide, ro prevent FOUC, and also prevent\n // the header block-size from growing a little bit when the input renders.\n id=\"filter-kbs\"\n value={this.kbFilterValue}\n class={{\n \"input\": true,\n \"section-kbs__filter--hidden\": hideKbsFilter\n }}\n startImgSrc={SEARCH_ICON}\n placeholder={this.#componentLocale.recentKBs.filterKbsPlaceholder}\n onInput={!hideKbsFilter && this.#filterKbs}\n disabled={hideKbsFilter}\n ></ch-edit>\n </header>\n\n <div\n class={{\n \"section-kbs__list\": true,\n \"section-kbs__list--empty\": kbsListEmpty,\n \"scrollable\": true\n }}\n >\n {this.filteredKbs.length > 0 ? this.#renderKbs() : contentToRender}\n </div>\n </section>\n );\n };\n\n #renderKbs = (): HTMLElement[] => {\n return this.filteredKbs?.map((kb, index) => {\n // relative time ago\n\n const relativeDate = kb.lastOpenedDate\n ? formatDistanceToNow(new Date(kb.lastOpenedDate), {\n addSuffix: true,\n locale: this.#userLanguage\n })\n : undefined;\n\n // convert date to date format, since toISOString() requires date as Date.\n const dateAsDate = kb.lastOpenedDate\n ? new Date(kb.lastOpenedDate)\n : undefined;\n\n let dateFormated = formatDate(dateAsDate, \"date-time-short\");\n\n // icon\n const kbIcon = kb.icon ?? KB_DEFAULT_ICON;\n\n return (\n <article class=\"kb__item\" key={index}>\n <div class=\"kb__details\">\n <ch-image class=\"icon-md\" src={kbIcon}></ch-image>\n <button\n class=\"body-regular-m kb__name\"\n onClick={this.#openKbClickHandler(kb.id)}\n >\n {kb.name}\n </button>\n </div>\n {relativeDate && (\n <p class=\"body-regular-m kb__modified\">\n {`${this.#componentLocale.recentKBs.opened}`}{\" \"}\n <time dateTime={dateFormated}>{dateFormated}</time>\n </p>\n )}\n </article>\n );\n });\n };\n\n #renderSecondarySection = (): HTMLElement | null => {\n if (!this.secondarySection) {\n return null;\n }\n\n const multipleCards = this.secondarySection.cards.length > 2;\n\n return (\n <section\n // Recent Knowledge Bases\n class=\"section-no-kbs\"\n >\n <header>\n <h2 class=\"body-regular-s section-secondary__title\">\n {this.secondarySection.title}\n </h2>\n </header>\n\n <section\n class={{\n \"section-secondary__actions\": true,\n \"section-secondary__actions--two-cards\": !multipleCards,\n \"section-secondary__actions--multiple-cards\": multipleCards,\n \"scrollable\": true\n }}\n >\n {this.secondarySection.cards.map((card, index) => {\n return (\n <article class=\"card card-outlined\" key={index}>\n <span class=\"icon-capsule\">\n <ch-image\n class=\"icon-md icon-circular\"\n src={card.icon.src}\n aria-label={card.icon.ariaLabel}\n ></ch-image>\n </span>\n <header class=\"card__header\">\n <h2 class=\"subtitle-semi-bold-xs card__header-title\">\n {card.title}\n </h2>\n {card.description.map(paragraph => (\n <p class=\"body-regular-s card__header-description\">\n {paragraph}\n </p>\n ))}\n {card.action && (\n <button\n class=\"button-tertiary button-icon-and-text button-tertiary-no-padding-inline-start\"\n onClick={card.action.callback && card.action.callback}\n >\n <ch-image class=\"icon-md\" src={DETAIL_ICON}></ch-image>\n {card.action.caption}\n </button>\n )}\n </header>\n </article>\n );\n })}\n </section>\n </section>\n );\n };\n\n render() {\n this.loading =\n (!this.kbs || this.kbs?.length === 0) && !this.secondarySection;\n\n const renderViewSamplesCard =\n this.samples?.length && this.openSampleCallback;\n\n return (\n <Host class=\"scrollable\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"main scrollable\">\n <section\n // Create a new Knowledge Base\n class=\"section-create-new-kb\"\n >\n <header\n // main header\n class=\"section-create-new-kb__header\"\n >\n <h1 class=\"heading-5 section-create-new-kb__title\">\n {this.#componentLocale.createKB.title}\n </h1>\n <p class=\"body-regular-m\">\n {this.#componentLocale.createKB.description}\n </p>\n </header>\n\n <section class=\"section-create-new-kb__actions scrollable\">\n <article\n // create project\n class=\"card card-filled\"\n >\n <header class=\"card__header\">\n <div class=\"card__header-description\">\n <h2 class=\"subtitle-semi-bold-xs card__header-title\">\n {this.#componentLocale.createProject.title}\n </h2>\n <p class=\"body-regular-s\">\n {this.#componentLocale.createProject.description}\n </p>\n </div>\n </header>\n <footer class=\"card__footer\">\n <button\n class=\"button-primary\"\n onClick={this.#createKBClickHandler(false)}\n >\n {this.#componentLocale.createProject.buttonCaption}\n </button>\n </footer>\n </article>\n\n <article\n // open existing project\n class=\"card-filled\"\n >\n <header class=\"card__header\">\n <div class=\"card__header-description\">\n <h2 class=\"subtitle-semi-bold-xs\">\n {this.#componentLocale.openExistingProject.title}\n </h2>\n <p class=\"body-regular-s\">\n {this.#componentLocale.openExistingProject.description}\n </p>\n </div>\n </header>\n <footer class=\"card__footer\">\n <button\n class=\"button-secondary cancel-btn\"\n onClick={this.#createKBClickHandler(true)}\n >\n {this.#componentLocale.openExistingProject.buttonCaption}\n </button>\n </footer>\n </article>\n\n {renderViewSamplesCard ? (\n <article\n // view samples\n class=\"card-filled\"\n >\n <header class=\"card__header\">\n <div class=\"card__header-description\">\n <h2 class=\"subtitle-semi-bold-xs\">\n {this.#componentLocale.viewSamples.title}\n </h2>\n <p class=\"body-regular-s\">\n {this.#componentLocale.viewSamples.description}\n </p>\n </div>\n </header>\n <footer class=\"card__footer\">\n <div class=\"buttons-spacer samples-buttons-container\">\n {this.samples.map(sample => {\n return (\n <button\n class=\"button-secondary\"\n onClick={() => this.openSampleCallback(sample)}\n >\n {sample.name}\n </button>\n );\n })}\n </div>\n </footer>\n </article>\n ) : null}\n </section>\n </section>\n <section class=\"section-secondary scrollable\">\n {this.loading ? (\n <gx-ide-loader\n class=\"loader\"\n loaderTitle={this.#componentLocale.recentKBs.loaderTitle}\n description={this.#componentLocale.recentKBs.loaderDescription}\n show\n ></gx-ide-loader>\n ) : (\n this.#evaluateContentToRender()\n )}\n </section>\n </main>\n </Host>\n );\n }\n}\n\nexport type CardInfo = {\n icon?: {\n src: string;\n ariaLabel: string;\n };\n title: string;\n description: string[];\n action?: {\n iconSrc: string;\n caption: string;\n callback?: () => void;\n };\n};\n\ntype LanguageMap = {\n \"en\": LocaleDateFns;\n \"ja\": LocaleDateFns;\n \"zh-CN\": LocaleDateFns;\n \"zh-TW\": LocaleDateFns;\n \"zh-HK\": LocaleDateFns;\n};\n\nexport type RecentKBData = {\n id?: string;\n name: string;\n lastOpenedDate?: Date;\n icon: string;\n};\n\nexport type SampleData = {\n name: string;\n serverUrl: string;\n kbName: string;\n};\n\nexport type SecondarySection = {\n title: string;\n cards: CardInfo[];\n};\n"]}
1
+ {"version":3,"file":"start-page.js","sourceRoot":"","sources":["../../../src/components/start-page/start-page.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport { Component, Host, h, Prop, State, Element, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { formatDistanceToNow, Locale as LocaleDateFns } from \"date-fns\";\nimport { ja, zhCN, enUS } from \"date-fns/locale\";\n// import { enUS } from \"date-fns/locale\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n// Custom\nimport { Locale } from \"../../common/locale\";\n\n// const locale = enUS; // use `zhCN` for Chinese, `ja` for Japanese, `enUS` for English\n\nimport { formatDate } from \"../../common/helpers\";\n\nconst LANGS_DATE_FNS_MAP: LanguageMap = {\n \"en\": enUS,\n \"ja\": ja,\n \"zh-CN\": zhCN,\n \"zh-TW\": zhCN,\n \"zh-HK\": zhCN\n};\n\nconst DETAIL_ICON = getIconPath({\n category: \"system\",\n name: \"detail\",\n colorType: \"primary\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst KB_DEFAULT_ICON = getIconPath({\n category: \"objects\",\n name: \"knowledge-base\"\n});\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n});\n\nconst PROJECT_NAME_PLACEHOLDER = \"[projectName]\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/layout\",\n \"components/edit\",\n \"components/icon\",\n \"components/button\",\n \"chameleon/scrollbar\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-start-page\",\n styleUrl: \"start-page.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/start-page\"]\n})\nexport class GxIdeStartPage {\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 #userLanguage: LocaleDateFns;\n\n @Element() el: HTMLGxIdeStartPageElement;\n\n /**\n * The kbs after the filter value.\n */\n @State() filteredKbs: RecentKBData[];\n\n @State() kbFilterValue: string = \"\";\n @Watch(\"kbFilterValue\")\n kbFilterValueChanged(newKbFilterValue: string) {\n this.filteredKbs = this.kbs.filter(kb =>\n kb.name.toLowerCase().includes(newKbFilterValue.toLocaleLowerCase())\n );\n }\n\n /**\n * True if the start page is waiting, either for the kb's list or the secondary section.\n */\n @State() loading: boolean = true;\n\n /**\n * Callback invoked to create a new KB. It must be specified whether this create is create from server or not, through the parameter 'fromServer'.\n */\n @Prop() readonly createKBCallback!: (fromServer: boolean) => Promise<void>;\n\n /**\n * User's kbs array\n */\n @Prop() readonly kbs: RecentKBData[];\n @Watch(\"kbs\")\n kbsChanged(newKbs: RecentKBData[]) {\n this.filteredKbs = newKbs;\n this.kbFilterValue = \"\"; // clear filter\n }\n\n /**\n * The minimum required of kbs to display a filter.\n */\n @Prop() readonly kbsFilterThreshold: number;\n\n /**\n * Callback invoked to open a KB when the user clicks on a KB card.\n */\n @Prop() readonly openKbCallback!: (id: string) => Promise<void>;\n\n /**\n * Callback invoked when the user clicks a button to open a sample.\n */\n @Prop() readonly openSampleCallback!: (sampleId: string) => Promise<void>;\n\n /**\n * List of samples available to be displayed in the samples card.\n */\n @Prop() readonly samples?: SampleData[];\n\n /**\n * 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.\n */\n @Prop() readonly secondarySection?: SecondarySection;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // initialize filteredKbs\n this.kbsChanged(this.kbs);\n\n // get user language to display the kb \"last opened\" value in the appropriate language.\n const userLanguage: keyof LanguageMap = document.documentElement\n .lang as keyof LanguageMap;\n this.#userLanguage = LANGS_DATE_FNS_MAP[userLanguage];\n }\n\n #createKBClickHandler = (fromServer: boolean) => (event: MouseEvent) => {\n event.stopPropagation();\n this.createKBCallback(fromServer);\n };\n\n #filterKbs = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.kbFilterValue = event.detail as string;\n };\n\n #openKbClickHandler = (kbId: string) => (event: MouseEvent) => {\n event.stopPropagation();\n this.openKbCallback(kbId);\n };\n\n // renders\n\n #evaluateContentToRender() {\n return this.kbs && this.kbs.length > 0\n ? this.#renderKbsSection()\n : this.#renderSecondarySection();\n }\n\n #renderKbsSection = () => {\n const hideKbsFilter = this.kbs.length < this.kbsFilterThreshold;\n const kbsListEmpty = this.filteredKbs.length === 0;\n let contentToRender: HTMLGxgIdeLoaderElement | HTMLElement[];\n\n // Evaluate what is the content to display.\n if (this.filteredKbs.length > 0) {\n contentToRender = this.#renderKbs();\n } else {\n // No kb has pass the filter. Display an empty-state.\n contentToRender = (\n <gx-ide-empty-state\n isAnimated\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.recentKBs.noMatches}\n ></gx-ide-empty-state>\n );\n }\n\n return (\n <section class=\"section-kbs\">\n <header\n class={{\n \"section-kbs__header\": true\n }}\n >\n <label\n class=\"subtitle-regular-s section-kbs__title\"\n htmlFor=\"filter-kbs\"\n >\n {this.#componentLocale.recentKBs.title}\n </label>\n <ch-edit\n // Render always, and display or hide, ro prevent FOUC, and also prevent\n // the header block-size from growing a little bit when the input renders.\n id=\"filter-kbs\"\n value={this.kbFilterValue}\n class={{\n \"input\": true,\n \"section-kbs__filter--hidden\": hideKbsFilter\n }}\n startImgSrc={SEARCH_ICON}\n placeholder={this.#componentLocale.recentKBs.filterKbsPlaceholder}\n onInput={!hideKbsFilter && this.#filterKbs}\n disabled={hideKbsFilter}\n ></ch-edit>\n </header>\n\n <div\n class={{\n \"section-kbs__list\": true,\n \"section-kbs__list--empty\": kbsListEmpty,\n \"scrollable\": true\n }}\n >\n {this.filteredKbs.length > 0 ? this.#renderKbs() : contentToRender}\n </div>\n </section>\n );\n };\n\n #renderKbs = (): HTMLElement[] => {\n return this.filteredKbs?.map((kb, index) => {\n // relative time ago\n\n const relativeDate = kb.lastOpenedDate\n ? formatDistanceToNow(new Date(kb.lastOpenedDate), {\n addSuffix: true,\n locale: this.#userLanguage\n })\n : undefined;\n\n // convert date to date format, since toISOString() requires date as Date.\n const dateAsDate = kb.lastOpenedDate\n ? new Date(kb.lastOpenedDate)\n : undefined;\n\n let dateFormated = formatDate(dateAsDate, \"date-time-short\");\n\n // icon\n const kbIcon = kb.icon ?? KB_DEFAULT_ICON;\n\n return (\n <article class=\"kb__item\" key={index}>\n <div class=\"kb__details\">\n <ch-image class=\"icon-md\" src={kbIcon}></ch-image>\n <button\n class=\"body-regular-m kb__name\"\n onClick={this.#openKbClickHandler(kb.id)}\n >\n {kb.name}\n </button>\n </div>\n {relativeDate && (\n <p class=\"body-regular-m kb__modified\">\n {`${this.#componentLocale.recentKBs.opened}`}{\" \"}\n <time dateTime={dateFormated}>{dateFormated}</time>\n </p>\n )}\n </article>\n );\n });\n };\n\n #renderSecondarySection = (): HTMLElement | null => {\n if (!this.secondarySection) {\n return null;\n }\n\n const multipleCards = this.secondarySection.cards.length > 2;\n\n return (\n <section\n // Recent Knowledge Bases\n class=\"section-no-kbs\"\n >\n <header>\n <h2 class=\"body-regular-s section-secondary__title\">\n {this.secondarySection.title}\n </h2>\n </header>\n\n <section\n class={{\n \"section-secondary__actions\": true,\n \"section-secondary__actions--two-cards\": !multipleCards,\n \"section-secondary__actions--multiple-cards\": multipleCards,\n \"scrollable\": true\n }}\n >\n {this.secondarySection.cards.map((card, index) => {\n return (\n <article class=\"card card-outlined\" key={index}>\n <span class=\"icon-capsule\">\n <ch-image\n class=\"icon-md icon-circular\"\n src={card.icon.src}\n aria-label={card.icon.ariaLabel}\n ></ch-image>\n </span>\n <header class=\"card__header\">\n <h2 class=\"subtitle-semi-bold-xs card__header-title\">\n {card.title}\n </h2>\n {card.description.map(paragraph => (\n <p class=\"body-regular-s card__header-description\">\n {paragraph}\n </p>\n ))}\n {card.action && (\n <button\n class=\"button-tertiary button-icon-and-text button-tertiary-no-padding-inline-start\"\n onClick={card.action.callback && card.action.callback}\n >\n <ch-image class=\"icon-md\" src={DETAIL_ICON}></ch-image>\n {card.action.caption}\n </button>\n )}\n </header>\n </article>\n );\n })}\n </section>\n </section>\n );\n };\n\n render() {\n this.loading =\n (!this.kbs || this.kbs?.length === 0) && !this.secondarySection;\n\n const renderCreateProjectCard = this.createKBCallback;\n const renderOpenProjectCard = this.openKbCallback;\n const renderViewSamplesCard =\n this.samples?.length && this.openSampleCallback;\n const renderCardsContainer =\n renderCreateProjectCard || renderOpenProjectCard || renderViewSamplesCard;\n\n return (\n <Host class=\"scrollable\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"main scrollable\">\n <section\n // Create a new Knowledge Base\n class=\"section-create-new-kb\"\n >\n <header\n // main header\n class=\"section-create-new-kb__header\"\n >\n <h1 class=\"heading-5 section-create-new-kb__title\">\n {this.#componentLocale.createKB.title}\n </h1>\n <p class=\"body-regular-m\">\n {this.#componentLocale.createKB.description}\n </p>\n </header>\n\n {renderCardsContainer && (\n <section class=\"section-create-new-kb__actions scrollable\">\n {renderCreateProjectCard && (\n <article\n // create project\n class=\"card card-filled\"\n >\n <header class=\"card__header\">\n <div class=\"card__header-description\">\n <h2 class=\"subtitle-semi-bold-xs card__header-title\">\n {this.#componentLocale.createProject.title}\n </h2>\n <p class=\"body-regular-s\">\n {this.#componentLocale.createProject.description}\n </p>\n </div>\n </header>\n <footer class=\"card__footer\">\n <button\n class=\"button-primary\"\n onClick={this.#createKBClickHandler(false)}\n >\n {this.#componentLocale.createProject.buttonCaption}\n </button>\n </footer>\n </article>\n )}\n\n {renderOpenProjectCard && (\n <article\n // open existing project\n class=\"card-filled\"\n >\n <header class=\"card__header\">\n <div class=\"card__header-description\">\n <h2 class=\"subtitle-semi-bold-xs\">\n {this.#componentLocale.openExistingProject.title}\n </h2>\n <p class=\"body-regular-s\">\n {\n this.#componentLocale.openExistingProject\n .description\n }\n </p>\n </div>\n </header>\n <footer class=\"card__footer\">\n <button\n class=\"button-secondary cancel-btn\"\n onClick={this.#createKBClickHandler(true)}\n >\n {\n this.#componentLocale.openExistingProject\n .buttonCaption\n }\n </button>\n </footer>\n </article>\n )}\n\n {renderViewSamplesCard ? (\n <article\n // view samples\n class=\"card-filled\"\n >\n <header class=\"card__header\">\n <div class=\"card__header-description\">\n <h2 class=\"subtitle-semi-bold-xs\">\n {this.#componentLocale.viewSamples.title}\n </h2>\n <p class=\"body-regular-s\">\n {this.#componentLocale.viewSamples.description}\n </p>\n </div>\n </header>\n <footer class=\"card__footer\">\n <div class=\"buttons-spacer samples-buttons-container\">\n {this.samples.map(sample => {\n return (\n <button\n class=\"button-secondary\"\n onClick={() => this.openSampleCallback(sample.id)}\n >\n {this.#componentLocale.viewSamples.open.replace(\n PROJECT_NAME_PLACEHOLDER,\n sample.name\n )}\n </button>\n );\n })}\n </div>\n </footer>\n </article>\n ) : null}\n </section>\n )}\n </section>\n <section class=\"section-secondary scrollable\">\n {this.loading ? (\n <gx-ide-loader\n class=\"loader\"\n loaderTitle={this.#componentLocale.recentKBs.loaderTitle}\n description={this.#componentLocale.recentKBs.loaderDescription}\n show\n ></gx-ide-loader>\n ) : (\n this.#evaluateContentToRender()\n )}\n </section>\n </main>\n </Host>\n );\n }\n}\n\nexport type CardInfo = {\n icon?: {\n src: string;\n ariaLabel: string;\n };\n title: string;\n description: string[];\n action?: {\n iconSrc: string;\n caption: string;\n callback?: () => void;\n };\n};\n\ntype LanguageMap = {\n \"en\": LocaleDateFns;\n \"ja\": LocaleDateFns;\n \"zh-CN\": LocaleDateFns;\n \"zh-TW\": LocaleDateFns;\n \"zh-HK\": LocaleDateFns;\n};\n\nexport type RecentKBData = {\n id?: string;\n name: string;\n lastOpenedDate?: Date;\n icon: string;\n};\n\nexport type SampleData = {\n id: string;\n name: string;\n};\n\nexport type SecondarySection = {\n title: string;\n cards: CardInfo[];\n};\n"]}
@@ -1,32 +1,32 @@
1
1
  {
2
- "componentName": "Server Selector",
2
+ "componentName": "サーバーセレクター",
3
3
  "header": {
4
- "title": "Choose a server or add one by URL"
4
+ "title": "サーバーを選択するか、URLで追加してください"
5
5
  },
6
6
  "recentlyUsed": {
7
- "title": "Recently Used"
7
+ "title": "最近使用したサーバー"
8
8
  },
9
9
  "allServers": {
10
- "title": "All Servers"
10
+ "title": "すべてのサーバー"
11
11
  },
12
12
  "labels": {
13
- "serverUrl": "Server URL",
14
- "serverName": "Friendly Name"
13
+ "serverUrl": "サーバーURL",
14
+ "serverName": "表示名"
15
15
  },
16
16
  "placeholders": {
17
- "serverUrl": "Enter a GX Server URL",
18
- "serverName": "Enter a GX Server Friendly Name",
19
- "searchServers": "Search servers by name..."
17
+ "serverUrl": "GXサーバーのURLを入力",
18
+ "serverName": "GXサーバーの表示名を入力",
19
+ "searchServers": "名前でサーバーを検索..."
20
20
  },
21
21
  "footer": {
22
- "cancel": "Cancel",
23
- "confirm": "Confirm"
22
+ "cancel": "キャンセル",
23
+ "confirm": "確認"
24
24
  },
25
25
  "errors": {
26
- "serverUrlInvalid": "Server URL is invalid"
26
+ "serverUrlInvalid": "サーバーURLが無効です"
27
27
  },
28
- "emptyConnectedServers": "There are no servers to show",
28
+ "emptyConnectedServers": "表示するサーバーがありません",
29
29
  "status": {
30
- "connected": "Connected"
30
+ "connected": "接続済み"
31
31
  }
32
32
  }