@genexus/genexus-ide-ui 1.1.70 → 1.1.72

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 (151) hide show
  1. package/dist/cjs/{utilities-25be3069.js → constants-a2ac1812.js} +70 -1
  2. package/dist/cjs/constants-a2ac1812.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +7 -8
  5. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
  7. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-restore-version.cjs.entry.js +5 -4
  9. package/dist/cjs/gx-ide-restore-version.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +28 -17
  11. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +8 -7
  13. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
  15. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js +6 -5
  17. package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +3 -3
  19. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +21 -21
  20. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +25 -78
  22. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +3 -3
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/cjs/{tabular-grid-render-c0e0738c.js → tabular-grid-render-37b7153b.js} +12 -86
  26. package/dist/cjs/tabular-grid-render-37b7153b.js.map +1 -0
  27. package/dist/collection/components/restore-version/gx-ide-assets/restore-version/shortcuts.json +15 -0
  28. package/dist/collection/components/restore-version/restore-version.js +6 -5
  29. package/dist/collection/components/restore-version/restore-version.js.map +1 -1
  30. package/dist/collection/components/select-kb-items/select-kb-items.js +75 -28
  31. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  32. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js +7 -6
  33. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js.map +1 -1
  34. package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/shortcuts.json +15 -0
  35. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +8 -9
  36. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -1
  37. package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/shortcuts.json +15 -0
  38. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +2 -2
  39. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
  40. package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/shortcuts.json +6 -1
  41. package/dist/collection/components/team-dev/history/history.css +3 -0
  42. package/dist/collection/components/team-dev/history/history.js +52 -91
  43. package/dist/collection/components/team-dev/history/history.js.map +1 -1
  44. package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/shortcuts.json +15 -0
  45. package/dist/collection/components/team-dev/server-selector/server-selector.js +9 -7
  46. package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
  47. package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/shortcuts.json +1 -1
  48. package/dist/collection/components/team-dev/share-kb/share-kb.js +2 -2
  49. package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
  50. package/dist/components/{utilities.js → constants2.js} +68 -2
  51. package/dist/components/constants2.js.map +1 -0
  52. package/dist/components/gx-ide-connect-gx-server.js +8 -9
  53. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  54. package/dist/components/gx-ide-create-kb-from-server.js +2 -2
  55. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  56. package/dist/components/gx-ide-restore-version.js +6 -5
  57. package/dist/components/gx-ide-restore-version.js.map +1 -1
  58. package/dist/components/gx-ide-server-selector.js +9 -8
  59. package/dist/components/gx-ide-server-selector.js.map +1 -1
  60. package/dist/components/gx-ide-share-kb.js +2 -2
  61. package/dist/components/gx-ide-share-kb.js.map +1 -1
  62. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js +7 -6
  63. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js.map +1 -1
  64. package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
  65. package/dist/components/gx-ide-team-dev-commit.js +2 -1
  66. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  67. package/dist/components/gx-ide-team-dev-history.js +24 -85
  68. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  69. package/dist/components/gx-ide-team-dev-update.js +1 -1
  70. package/dist/components/select-kb-items.js +32 -20
  71. package/dist/components/select-kb-items.js.map +1 -1
  72. package/dist/components/tabular-grid-render.js +2 -72
  73. package/dist/components/tabular-grid-render.js.map +1 -1
  74. package/dist/esm/{utilities-efeffb76.js → constants-31612239.js} +68 -2
  75. package/dist/esm/constants-31612239.js.map +1 -0
  76. package/dist/esm/genexus-ide-ui.js +1 -1
  77. package/dist/esm/gx-ide-connect-gx-server.entry.js +8 -9
  78. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  79. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
  80. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  81. package/dist/esm/gx-ide-restore-version.entry.js +6 -5
  82. package/dist/esm/gx-ide-restore-version.entry.js.map +1 -1
  83. package/dist/esm/gx-ide-select-kb-items.entry.js +28 -17
  84. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  85. package/dist/esm/gx-ide-server-selector.entry.js +9 -8
  86. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  87. package/dist/esm/gx-ide-share-kb.entry.js +2 -2
  88. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  89. package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js +7 -6
  90. package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js.map +1 -1
  91. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +2 -2
  92. package/dist/esm/gx-ide-team-dev-commit.entry.js +5 -5
  93. package/dist/esm/gx-ide-team-dev-history.entry.js +25 -78
  94. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  95. package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
  96. package/dist/esm/loader.js +1 -1
  97. package/dist/esm/{tabular-grid-render-c868fa55.js → tabular-grid-render-d06826a5.js} +3 -74
  98. package/dist/esm/tabular-grid-render-d06826a5.js.map +1 -0
  99. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  100. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  101. package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/shortcuts.json +15 -0
  102. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/shortcuts.json +6 -1
  103. package/dist/genexus-ide-ui/gx-ide-assets/restore-version/shortcuts.json +15 -0
  104. package/dist/genexus-ide-ui/gx-ide-assets/server-selector/shortcuts.json +15 -0
  105. package/dist/genexus-ide-ui/gx-ide-assets/share-kb/shortcuts.json +1 -1
  106. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/shortcuts.json +15 -0
  107. package/dist/genexus-ide-ui/p-025c9aa4.entry.js +239 -0
  108. package/dist/genexus-ide-ui/p-025c9aa4.entry.js.map +1 -0
  109. package/dist/genexus-ide-ui/p-082015be.js +244 -0
  110. package/dist/{esm/tabular-grid-render-c868fa55.js.map → genexus-ide-ui/p-082015be.js.map} +1 -1
  111. package/dist/genexus-ide-ui/{p-972dc777.entry.js → p-1351412d.entry.js} +3 -3
  112. package/dist/genexus-ide-ui/{p-8897c6de.entry.js → p-2d6228e8.entry.js} +201 -194
  113. package/dist/genexus-ide-ui/p-2d6228e8.entry.js.map +1 -0
  114. package/dist/genexus-ide-ui/p-32b37b3d.js +163 -0
  115. package/dist/genexus-ide-ui/p-32b37b3d.js.map +1 -0
  116. package/dist/genexus-ide-ui/{p-a543dfdb.entry.js → p-451994e8.entry.js} +104 -95
  117. package/dist/genexus-ide-ui/p-451994e8.entry.js.map +1 -0
  118. package/dist/genexus-ide-ui/{p-85cf50c5.entry.js → p-74f8bd45.entry.js} +78 -132
  119. package/dist/genexus-ide-ui/p-74f8bd45.entry.js.map +1 -0
  120. package/dist/genexus-ide-ui/{p-c3cc759d.entry.js → p-8dedbcd9.entry.js} +64 -58
  121. package/dist/genexus-ide-ui/p-8dedbcd9.entry.js.map +1 -0
  122. package/dist/genexus-ide-ui/{p-6ee5d68e.entry.js → p-92a027bc.entry.js} +33 -33
  123. package/dist/genexus-ide-ui/{p-9ffa7afd.entry.js → p-941f470f.entry.js} +3 -1
  124. package/dist/genexus-ide-ui/{p-9ffa7afd.entry.js.map → p-941f470f.entry.js.map} +1 -1
  125. package/dist/genexus-ide-ui/{p-93e79d19.entry.js → p-ac79f7e8.entry.js} +59 -57
  126. package/dist/genexus-ide-ui/{p-93e79d19.entry.js.map → p-ac79f7e8.entry.js.map} +1 -1
  127. package/dist/genexus-ide-ui/{p-e2fd2c24.entry.js → p-c256dc59.entry.js} +3 -3
  128. package/dist/genexus-ide-ui/{p-5e56280c.entry.js → p-eeeb3d52.entry.js} +199 -192
  129. package/dist/genexus-ide-ui/p-eeeb3d52.entry.js.map +1 -0
  130. package/dist/types/components/select-kb-items/select-kb-items.d.ts +12 -3
  131. package/dist/types/components/team-dev/history/history.d.ts +3 -12
  132. package/dist/types/components.d.ts +22 -20
  133. package/package.json +1 -1
  134. package/dist/cjs/tabular-grid-render-c0e0738c.js.map +0 -1
  135. package/dist/cjs/utilities-25be3069.js.map +0 -1
  136. package/dist/components/utilities.js.map +0 -1
  137. package/dist/esm/utilities-efeffb76.js.map +0 -1
  138. package/dist/genexus-ide-ui/p-22bdcf23.js +0 -322
  139. package/dist/genexus-ide-ui/p-22bdcf23.js.map +0 -1
  140. package/dist/genexus-ide-ui/p-5e56280c.entry.js.map +0 -1
  141. package/dist/genexus-ide-ui/p-85cf50c5.entry.js.map +0 -1
  142. package/dist/genexus-ide-ui/p-8897c6de.entry.js.map +0 -1
  143. package/dist/genexus-ide-ui/p-a105f903.entry.js +0 -234
  144. package/dist/genexus-ide-ui/p-a105f903.entry.js.map +0 -1
  145. package/dist/genexus-ide-ui/p-a543dfdb.entry.js.map +0 -1
  146. package/dist/genexus-ide-ui/p-c3cc759d.entry.js.map +0 -1
  147. package/dist/genexus-ide-ui/p-db6c6085.js +0 -95
  148. package/dist/genexus-ide-ui/p-db6c6085.js.map +0 -1
  149. /package/dist/genexus-ide-ui/{p-972dc777.entry.js.map → p-1351412d.entry.js.map} +0 -0
  150. /package/dist/genexus-ide-ui/{p-6ee5d68e.entry.js.map → p-92a027bc.entry.js.map} +0 -0
  151. /package/dist/genexus-ide-ui/{p-e2fd2c24.entry.js.map → p-c256dc59.entry.js.map} +0 -0
@@ -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 #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n #viewItemsAsModel: RadioGroupItemModel[];\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\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 this.loading = false;\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * This define if the checks are unique or not\n */\n @Prop() readonly singleChecks?: 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.loading = true;\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.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 let checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n if (node.item.checked) {\n checkedNodesIds.push(node.item.id);\n }\n });\n\n if (this.singleChecks) {\n // Detect the last change by comparing previous and new state\n let lastCheckedId: string | null = null;\n // If there are more in the new state, it was a check; if less, it was an uncheck\n if (checkedNodesIds.length > this.checkedNodesIds.length) {\n // Find the newly checked item\n lastCheckedId =\n checkedNodesIds.find(id => !this.checkedNodesIds.includes(id)) ||\n null;\n } else if (checkedNodesIds.length < this.checkedNodesIds.length) {\n // Find the unchecked item (not used in single check, but kept for clarity)\n lastCheckedId =\n this.checkedNodesIds.find(id => !checkedNodesIds.includes(id)) ||\n null;\n }\n\n // Only allow one if multiChecks is false\n if (this.singleChecks && checkedNodesIds.length > 1) {\n // If we detected the last checked, keep it; otherwise, keep the first\n checkedNodesIds = lastCheckedId\n ? [lastCheckedId]\n : [checkedNodesIds[0]];\n // Uncheck the others\n this.#treeViewRenderEl.updateItemsProperties(\n Array.from(e.detail.keys()).filter(id => id !== checkedNodesIds[0]),\n { checked: false }\n );\n }\n }\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 order?: number;\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 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 #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n #viewItemsAsModel: RadioGroupItemModel[];\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\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 * Represents the itemLis list model\n */\n @State() itemsList: ItemNode[] = [];\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 * Callback to load the items list model\n */\n @Prop() readonly loadItemsCallback!: () => Promise<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 /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * This define if the checks are unique or not\n */\n @Prop() readonly singleChecks?: 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 * Defines whether to show a loader while loading items\n */\n @Prop() readonly useLoader?: boolean = true;\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.renderFooter =\n this.dialogActions.length > 0 ||\n !!this.cancelCallback ||\n !!this.confirmCallback;\n\n this.#loadItems();\n }\n\n @Method()\n async reloadItems() {\n await this.#loadItems();\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 async #loadItems() {\n try {\n this.loading = true;\n this.itemsList = await this.loadItemsCallback();\n this.#updateViews(this.itemsList);\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(this.itemsList);\n } catch (error) {\n console.error(\"Error loading items:\", error);\n } finally {\n this.loading = false;\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 let checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n if (node.item.checked) {\n checkedNodesIds.push(node.item.id);\n }\n });\n\n if (this.singleChecks) {\n // Detect the last change by comparing previous and new state\n let lastCheckedId: string | null = null;\n // If there are more in the new state, it was a check; if less, it was an uncheck\n if (checkedNodesIds.length > this.checkedNodesIds.length) {\n // Find the newly checked item\n lastCheckedId =\n checkedNodesIds.find(id => !this.checkedNodesIds.includes(id)) ||\n null;\n } else if (checkedNodesIds.length < this.checkedNodesIds.length) {\n // Find the unchecked item (not used in single check, but kept for clarity)\n lastCheckedId =\n this.checkedNodesIds.find(id => !checkedNodesIds.includes(id)) ||\n null;\n }\n\n // Only allow one if multiChecks is false\n if (this.singleChecks && checkedNodesIds.length > 1) {\n // If we detected the last checked, keep it; otherwise, keep the first\n checkedNodesIds = lastCheckedId\n ? [lastCheckedId]\n : [checkedNodesIds[0]];\n // Uncheck the others\n this.#treeViewRenderEl.updateItemsProperties(\n Array.from(e.detail.keys()).filter(id => id !== checkedNodesIds[0]),\n { checked: false }\n );\n }\n }\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 = async () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n await this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n await 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.useLoader && 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 guid?: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type?: ItemType;\n order?: number;\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"]}
@@ -14,8 +14,8 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
14
14
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
15
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
16
  };
17
- var _GxIdeBringAllChangesSelector_componentLocale, _GxIdeBringAllChangesSelector_revisionNumberRef, _GxIdeBringAllChangesSelector_revisionDateRef, _GxIdeBringAllChangesSelector_evaluateTooltipRender, _GxIdeBringAllChangesSelector_initializeValidatableControls, _GxIdeBringAllChangesSelector_cancelClickHandler, _GxIdeBringAllChangesSelector_confirmClickHandler, _GxIdeBringAllChangesSelector_handleLastDates, _GxIdeBringAllChangesSelector_handleCommitDateValueChanged, _GxIdeBringAllChangesSelector_handleCommitNumberValueChanged, _GxIdeBringAllChangesSelector_handleRadioGroupValueChange, _GxIdeBringAllChangesSelector_confirmButtonDisabled, _GxIdeBringAllChangesSelector_renderCommitDateInput, _GxIdeBringAllChangesSelector_renderCommitNumberInput, _GxIdeBringAllChangesSelector_renderLastDatesButtons;
18
- import { h, Host } from "@stencil/core";
17
+ var _GxIdeBringAllChangesSelector_componentLocale, _GxIdeBringAllChangesSelector_revisionNumberRef, _GxIdeBringAllChangesSelector_revisionDateRef, _GxIdeBringAllChangesSelector_shortcutsSrc, _GxIdeBringAllChangesSelector_evaluateTooltipRender, _GxIdeBringAllChangesSelector_initializeValidatableControls, _GxIdeBringAllChangesSelector_cancelClickHandler, _GxIdeBringAllChangesSelector_confirmClickHandler, _GxIdeBringAllChangesSelector_handleLastDates, _GxIdeBringAllChangesSelector_handleCommitDateValueChanged, _GxIdeBringAllChangesSelector_handleCommitNumberValueChanged, _GxIdeBringAllChangesSelector_handleRadioGroupValueChange, _GxIdeBringAllChangesSelector_confirmButtonDisabled, _GxIdeBringAllChangesSelector_renderCommitDateInput, _GxIdeBringAllChangesSelector_renderCommitNumberInput, _GxIdeBringAllChangesSelector_renderLastDatesButtons;
18
+ import { getAssetPath, h, Host } from "@stencil/core";
19
19
  import { Locale } from "../../../common/locale";
20
20
  import { clearControlError, validateControls } from "../../../common/form-validation";
21
21
  import { config } from "../../../common/config";
@@ -43,6 +43,7 @@ export class GxIdeBringAllChangesSelector {
43
43
  _GxIdeBringAllChangesSelector_componentLocale.set(this, void 0);
44
44
  _GxIdeBringAllChangesSelector_revisionNumberRef.set(this, void 0);
45
45
  _GxIdeBringAllChangesSelector_revisionDateRef.set(this, void 0);
46
+ _GxIdeBringAllChangesSelector_shortcutsSrc.set(this, getAssetPath(`./gx-ide-assets/team-dev-bring-all-changes-selector/shortcuts.json`));
46
47
  // TODO: evaluate if this should be a global helper function.
47
48
  // It is used on other dialogs as well.
48
49
  _GxIdeBringAllChangesSelector_evaluateTooltipRender.set(this, (controlReference) => {
@@ -158,7 +159,7 @@ export class GxIdeBringAllChangesSelector {
158
159
  if (this.selectedOption !== "fromCommitDate") {
159
160
  return null;
160
161
  }
161
- return (h("div", { class: "layout layout--cols-3" }, h("div", { class: "layout__panel" }, h("button", { class: "button-secondary", onClick: () => __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_handleLastDates, "f").call(this, "lastSevenDays") }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").captions.lastSevenDays)), h("div", { class: "layout__panel" }, h("button", { class: "button-secondary", onClick: () => __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_handleLastDates, "f").call(this, "lastThirtyDays") }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").captions.lastThirtyDays)), h("div", { class: "layout__panel" }, h("button", { class: "button-secondary", onClick: () => __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_handleLastDates, "f").call(this, "lastNinetyDays") }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").captions.lastNinetyDays))));
162
+ return (h("div", { class: "layout layout--cols-3" }, h("div", { class: "layout__panel" }, h("button", { id: "last-seven-days-button", class: "button-secondary", onClick: () => __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_handleLastDates, "f").call(this, "lastSevenDays") }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").captions.lastSevenDays)), h("div", { class: "layout__panel" }, h("button", { id: "last-thirty-days-button", class: "button-secondary", onClick: () => __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_handleLastDates, "f").call(this, "lastThirtyDays") }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").captions.lastThirtyDays)), h("div", { class: "layout__panel" }, h("button", { id: "last-ninety-days-button", class: "button-secondary", onClick: () => __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_handleLastDates, "f").call(this, "lastNinetyDays") }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").captions.lastNinetyDays))));
162
163
  });
163
164
  this.sinceCommitDate = undefined;
164
165
  this.sinceCommitNumber = undefined;
@@ -191,11 +192,11 @@ export class GxIdeBringAllChangesSelector {
191
192
  }
192
193
  }
193
194
  render() {
194
- return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("div", { class: {
195
+ return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-shortcuts", { src: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_shortcutsSrc, "f") }), h("div", { class: {
195
196
  "spacing-body": true,
196
197
  "commit-date-container": this.selectedOption === "fromCommitDate",
197
198
  "commit-number-container": this.selectedOption === "fromCommitNumber"
198
- } }, h("p", { class: "body-regular-m heading" }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").labels.selectRange), h("ch-radio-group-render", { class: "radio-group", direction: "horizontal", model: this.radioGroupModel, onChange: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_handleRadioGroupValueChange, "f"), value: MERGE_ACTION_OPTIONS.fromCommitDate.value }), __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_renderLastDatesButtons, "f").call(this), __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_renderCommitDateInput, "f").call(this), __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_renderCommitNumberInput, "f").call(this)), h("footer", { class: "control-footer-with-border spacing-body" }, h("div", { class: "buttons-spacer" }, h("button", { class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_cancelClickHandler, "f") }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").buttons.cancel), h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_confirmClickHandler, "f"), disabled: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_confirmButtonDisabled, "f").call(this) }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").buttons.confirm)))));
199
+ } }, h("p", { class: "body-regular-m heading" }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").labels.selectRange), h("ch-radio-group-render", { class: "radio-group", direction: "horizontal", model: this.radioGroupModel, onChange: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_handleRadioGroupValueChange, "f"), value: MERGE_ACTION_OPTIONS.fromCommitDate.value }), __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_renderLastDatesButtons, "f").call(this), __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_renderCommitDateInput, "f").call(this), __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_renderCommitNumberInput, "f").call(this)), h("footer", { class: "control-footer-with-border spacing-body" }, h("div", { class: "buttons-spacer" }, h("button", { class: "button-secondary", id: "cancel-button", onClick: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_cancelClickHandler, "f") }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").buttons.cancel), h("button", { id: "confirm-button", class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_confirmClickHandler, "f"), disabled: __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_confirmButtonDisabled, "f").call(this) }, __classPrivateFieldGet(this, _GxIdeBringAllChangesSelector_componentLocale, "f").buttons.confirm)))));
199
200
  }
200
201
  static get is() { return "gx-ide-team-dev-bring-all-changes-selector"; }
201
202
  static get encapsulation() { return "shadow"; }
@@ -275,5 +276,5 @@ export class GxIdeBringAllChangesSelector {
275
276
  }
276
277
  static get elementRef() { return "el"; }
277
278
  }
278
- _GxIdeBringAllChangesSelector_componentLocale = new WeakMap(), _GxIdeBringAllChangesSelector_revisionNumberRef = new WeakMap(), _GxIdeBringAllChangesSelector_revisionDateRef = new WeakMap(), _GxIdeBringAllChangesSelector_evaluateTooltipRender = new WeakMap(), _GxIdeBringAllChangesSelector_initializeValidatableControls = new WeakMap(), _GxIdeBringAllChangesSelector_cancelClickHandler = new WeakMap(), _GxIdeBringAllChangesSelector_confirmClickHandler = new WeakMap(), _GxIdeBringAllChangesSelector_handleLastDates = new WeakMap(), _GxIdeBringAllChangesSelector_handleCommitDateValueChanged = new WeakMap(), _GxIdeBringAllChangesSelector_handleCommitNumberValueChanged = new WeakMap(), _GxIdeBringAllChangesSelector_handleRadioGroupValueChange = new WeakMap(), _GxIdeBringAllChangesSelector_confirmButtonDisabled = new WeakMap(), _GxIdeBringAllChangesSelector_renderCommitDateInput = new WeakMap(), _GxIdeBringAllChangesSelector_renderCommitNumberInput = new WeakMap(), _GxIdeBringAllChangesSelector_renderLastDatesButtons = new WeakMap();
279
+ _GxIdeBringAllChangesSelector_componentLocale = new WeakMap(), _GxIdeBringAllChangesSelector_revisionNumberRef = new WeakMap(), _GxIdeBringAllChangesSelector_revisionDateRef = new WeakMap(), _GxIdeBringAllChangesSelector_shortcutsSrc = new WeakMap(), _GxIdeBringAllChangesSelector_evaluateTooltipRender = new WeakMap(), _GxIdeBringAllChangesSelector_initializeValidatableControls = new WeakMap(), _GxIdeBringAllChangesSelector_cancelClickHandler = new WeakMap(), _GxIdeBringAllChangesSelector_confirmClickHandler = new WeakMap(), _GxIdeBringAllChangesSelector_handleLastDates = new WeakMap(), _GxIdeBringAllChangesSelector_handleCommitDateValueChanged = new WeakMap(), _GxIdeBringAllChangesSelector_handleCommitNumberValueChanged = new WeakMap(), _GxIdeBringAllChangesSelector_handleRadioGroupValueChange = new WeakMap(), _GxIdeBringAllChangesSelector_confirmButtonDisabled = new WeakMap(), _GxIdeBringAllChangesSelector_renderCommitDateInput = new WeakMap(), _GxIdeBringAllChangesSelector_renderCommitNumberInput = new WeakMap(), _GxIdeBringAllChangesSelector_renderLastDatesButtons = new WeakMap();
279
280
  //# sourceMappingURL=bring-all-changes-selector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bring-all-changes-selector.js","sourceRoot":"","sources":["../../../../src/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\nimport {\n ChRadioGroupRenderCustomEvent,\n RadioGroupModel\n} from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../components\";\nimport {\n clearControlError,\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { config } from \"../../../common/config\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/spacing\",\n \"utils/layout\",\n \"components/checkbox\",\n \"components/button\",\n \"components/edit\",\n \"components/radio-group\",\n \"components/tooltip\"\n];\n\nconst MERGE_ACTION_OPTIONS = {\n fromCommitDate: {\n value: \"fromCommitDate\"\n },\n fromCommitNumber: {\n value: \"fromCommitNumber\"\n }\n};\n\n@Component({\n tag: \"gx-ide-team-dev-bring-all-changes-selector\",\n styleUrl: \"bring-all-changes-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-bring-all-changes-selector\"]\n})\nexport class GxIdeBringAllChangesSelector {\n #componentLocale: any;\n #revisionNumberRef: HTMLChEditElement;\n #revisionDateRef: HTMLChEditElement;\n @Element() el: HTMLGxIdeTeamDevBringAllChangesSelectorElement;\n /**\n * Date from which the commits will be merged\n */\n @State() sinceCommitDate: Date | undefined = undefined;\n\n /**\n * Number from which the commits will be merged\n */\n @State() sinceCommitNumber: number | undefined = undefined;\n\n /**\n * The selected option from the radio group.\n */\n @State() selectedOption: MergeActionTaken = MERGE_ACTION_OPTIONS\n .fromCommitDate.value as MergeActionTaken;\n\n /**\n * Model for the radio group.\n */\n @State() radioGroupModel: RadioGroupModel = [];\n\n /**\n * Map of validatable controls in the form.\n */\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * Callback that must be invoked when the 'Cancel' button is pressed.\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed.\n */\n @Prop() readonly confirmCallback!: (\n selectedMergeActionData: SelectedMergeActionData\n ) => Promise<FormSubmitResult>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.radioGroupModel = [\n {\n value: MERGE_ACTION_OPTIONS.fromCommitDate.value,\n caption: this.#componentLocale.captions.commitDate\n },\n {\n value: MERGE_ACTION_OPTIONS.fromCommitNumber.value,\n caption: this.#componentLocale.captions.commitNumber\n }\n ];\n }\n\n componentDidRender() {\n if (this.selectedOption === \"fromCommitDate\" && this.#revisionDateRef) {\n this.#initializeValidatableControls([this.#revisionDateRef]);\n }\n\n if (this.selectedOption === \"fromCommitNumber\" && this.#revisionNumberRef) {\n this.#initializeValidatableControls([this.#revisionNumberRef]);\n }\n }\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControls = (validatableControls: HTMLElement[]) => {\n validatableControls.forEach(validatableControl => {\n if (\n validatableControl.id &&\n !this.validatableControls.has(validatableControl.id)\n ) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #cancelClickHandler = async () => {\n await this.cancelCallback();\n };\n\n #confirmClickHandler = async () => {\n let formSubmitResult: FormSubmitResult;\n const selectedMergeActionData: SelectedMergeActionData = {\n operationType: this.selectedOption,\n fromDate:\n this.selectedOption === \"fromCommitDate\"\n ? this.sinceCommitDate\n : undefined,\n fromRevision:\n this.selectedOption === \"fromCommitNumber\"\n ? this.sinceCommitNumber\n : undefined\n };\n formSubmitResult = await this.confirmCallback(selectedMergeActionData);\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n };\n\n #handleLastDates = (lastDates: LastDates) => {\n const currentDate = new Date();\n let sinceDate = new Date();\n switch (lastDates) {\n case \"lastSevenDays\":\n sinceDate.setDate(currentDate.getDate() - 7);\n break;\n case \"lastThirtyDays\":\n sinceDate.setDate(currentDate.getDate() - 30);\n break;\n case \"lastNinetyDays\":\n sinceDate.setDate(currentDate.getDate() - 90);\n break;\n }\n this.sinceCommitDate = sinceDate;\n };\n\n #handleCommitDateValueChanged = (event: CustomEvent<string> | InputEvent) => {\n const value = event.detail as string;\n if (value && value !== \"\") {\n const [year, month, day] = value.split(\"-\").map(Number);\n this.sinceCommitDate = new Date(year, month - 1, day);\n } else {\n this.sinceCommitDate = undefined;\n }\n clearControlError(this.validatableControls, \"commit-date\");\n };\n\n #handleCommitNumberValueChanged = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.sinceCommitNumber = Number(event.detail);\n clearControlError(this.validatableControls, \"commit-number\");\n };\n\n #handleRadioGroupValueChange = (\n event: ChRadioGroupRenderCustomEvent<string>\n ) => {\n this.selectedOption = event.detail as MergeActionTaken;\n if (this.selectedOption === \"fromCommitDate\") {\n this.sinceCommitNumber = undefined;\n clearControlError(this.validatableControls, \"commit-number\");\n } else if (this.selectedOption === \"fromCommitNumber\") {\n this.sinceCommitDate = undefined;\n clearControlError(this.validatableControls, \"commit-date\");\n }\n };\n\n #confirmButtonDisabled = (): boolean => {\n if (this.selectedOption === \"fromCommitDate\") {\n // Validate that sinceCommitDate is a valid date\n return !(\n this.sinceCommitDate instanceof Date &&\n !isNaN(this.sinceCommitDate.getTime())\n );\n } else if (this.selectedOption === \"fromCommitNumber\") {\n // Validate that sinceCommitNumber is a valid number\n return !(this.sinceCommitNumber > 0);\n }\n return true;\n };\n\n #renderCommitDateInput = () => {\n if (this.selectedOption !== \"fromCommitDate\") {\n return null;\n }\n return (\n <div class=\"layout layout--cols-2-1\">\n <div class=\"layout__panel\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"commit-date\">\n {this.#componentLocale.labels.commitDate}\n </label>\n <ch-edit\n class={{\n \"input\": true,\n \"input-error\":\n this.validatableControls.get(\"commit-date\")?.hasError\n }}\n id=\"commit-date\"\n type=\"date\"\n value={\n this.sinceCommitDate &&\n this.sinceCommitDate.toISOString().split(\"T\")[0]\n }\n onInput={this.#handleCommitDateValueChanged}\n ref={(el: HTMLChEditElement) =>\n (this.#revisionDateRef = el as HTMLChEditElement)\n }\n />\n {this.#evaluateTooltipRender(this.#revisionDateRef)}\n </div>\n </div>\n </div>\n );\n };\n\n #renderCommitNumberInput = () => {\n if (this.selectedOption !== \"fromCommitNumber\") {\n return null;\n }\n return (\n <div class=\"layout layout--cols-2-1\">\n <div class=\"layout__panel\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"commit-number\">\n {this.#componentLocale.labels.commitNumber}\n </label>\n <ch-edit\n class={{\n \"input\": true,\n \"input-error\":\n this.validatableControls.get(\"commit-number\")?.hasError\n }}\n id=\"commit-number\"\n type=\"number\"\n placeholder={this.#componentLocale.placeholders.commitNumber}\n onInput={this.#handleCommitNumberValueChanged}\n mode=\"numeric\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionNumberRef = el as HTMLChEditElement)\n }\n />\n {this.#evaluateTooltipRender(this.#revisionNumberRef)}\n </div>\n </div>\n </div>\n );\n };\n\n #renderLastDatesButtons = () => {\n if (this.selectedOption !== \"fromCommitDate\") {\n return null;\n }\n\n return (\n <div class=\"layout layout--cols-3\">\n <div class=\"layout__panel\">\n <button\n class=\"button-secondary\"\n onClick={() => this.#handleLastDates(\"lastSevenDays\")}\n >\n {this.#componentLocale.captions.lastSevenDays}\n </button>\n </div>\n <div class=\"layout__panel\">\n <button\n class=\"button-secondary\"\n onClick={() => this.#handleLastDates(\"lastThirtyDays\")}\n >\n {this.#componentLocale.captions.lastThirtyDays}\n </button>\n </div>\n <div class=\"layout__panel\">\n <button\n class=\"button-secondary\"\n onClick={() => this.#handleLastDates(\"lastNinetyDays\")}\n >\n {this.#componentLocale.captions.lastNinetyDays}\n </button>\n </div>\n </div>\n );\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div\n class={{\n \"spacing-body\": true,\n \"commit-date-container\": this.selectedOption === \"fromCommitDate\",\n \"commit-number-container\":\n this.selectedOption === \"fromCommitNumber\"\n }}\n >\n <p class=\"body-regular-m heading\">\n {this.#componentLocale.labels.selectRange}\n </p>\n <ch-radio-group-render\n class=\"radio-group\"\n direction=\"horizontal\"\n model={this.radioGroupModel}\n onChange={this.#handleRadioGroupValueChange}\n value={MERGE_ACTION_OPTIONS.fromCommitDate.value}\n />\n\n {this.#renderLastDatesButtons()}\n {this.#renderCommitDateInput()}\n {this.#renderCommitNumberInput()}\n </div>\n\n <footer class=\"control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button class=\"button-secondary\" onClick={this.#cancelClickHandler}>\n {this.#componentLocale.buttons.cancel}\n </button>\n\n <button\n class=\"button-primary\"\n onClick={this.#confirmClickHandler}\n disabled={this.#confirmButtonDisabled()}\n >\n {this.#componentLocale.buttons.confirm}\n </button>\n </div>\n </footer>\n </Host>\n );\n }\n}\n\nexport type SelectedMergeActionData = {\n operationType: MergeActionTaken;\n fromDate?: Date;\n fromRevision?: number;\n};\n\nexport type MergeActionTaken = \"fromCommitDate\" | \"fromCommitNumber\";\n\nexport type LastDates = \"lastSevenDays\" | \"lastThirtyDays\" | \"lastNinetyDays\";\n"]}
1
+ {"version":3,"file":"bring-all-changes-selector.js","sourceRoot":"","sources":["../../../../src/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n getAssetPath,\n h,\n Host,\n Prop,\n State\n} from \"@stencil/core\";\n\nimport {\n ChRadioGroupRenderCustomEvent,\n RadioGroupModel\n} from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../components\";\nimport {\n clearControlError,\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { config } from \"../../../common/config\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/spacing\",\n \"utils/layout\",\n \"components/checkbox\",\n \"components/button\",\n \"components/edit\",\n \"components/radio-group\",\n \"components/tooltip\"\n];\n\nconst MERGE_ACTION_OPTIONS = {\n fromCommitDate: {\n value: \"fromCommitDate\"\n },\n fromCommitNumber: {\n value: \"fromCommitNumber\"\n }\n};\n\n@Component({\n tag: \"gx-ide-team-dev-bring-all-changes-selector\",\n styleUrl: \"bring-all-changes-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-bring-all-changes-selector\"]\n})\nexport class GxIdeBringAllChangesSelector {\n #componentLocale: any;\n #revisionNumberRef: HTMLChEditElement;\n #revisionDateRef: HTMLChEditElement;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/team-dev-bring-all-changes-selector/shortcuts.json`\n );\n\n @Element() el: HTMLGxIdeTeamDevBringAllChangesSelectorElement;\n /**\n * Date from which the commits will be merged\n */\n @State() sinceCommitDate: Date | undefined = undefined;\n\n /**\n * Number from which the commits will be merged\n */\n @State() sinceCommitNumber: number | undefined = undefined;\n\n /**\n * The selected option from the radio group.\n */\n @State() selectedOption: MergeActionTaken = MERGE_ACTION_OPTIONS\n .fromCommitDate.value as MergeActionTaken;\n\n /**\n * Model for the radio group.\n */\n @State() radioGroupModel: RadioGroupModel = [];\n\n /**\n * Map of validatable controls in the form.\n */\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * Callback that must be invoked when the 'Cancel' button is pressed.\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed.\n */\n @Prop() readonly confirmCallback!: (\n selectedMergeActionData: SelectedMergeActionData\n ) => Promise<FormSubmitResult>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.radioGroupModel = [\n {\n value: MERGE_ACTION_OPTIONS.fromCommitDate.value,\n caption: this.#componentLocale.captions.commitDate\n },\n {\n value: MERGE_ACTION_OPTIONS.fromCommitNumber.value,\n caption: this.#componentLocale.captions.commitNumber\n }\n ];\n }\n\n componentDidRender() {\n if (this.selectedOption === \"fromCommitDate\" && this.#revisionDateRef) {\n this.#initializeValidatableControls([this.#revisionDateRef]);\n }\n\n if (this.selectedOption === \"fromCommitNumber\" && this.#revisionNumberRef) {\n this.#initializeValidatableControls([this.#revisionNumberRef]);\n }\n }\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControls = (validatableControls: HTMLElement[]) => {\n validatableControls.forEach(validatableControl => {\n if (\n validatableControl.id &&\n !this.validatableControls.has(validatableControl.id)\n ) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #cancelClickHandler = async () => {\n await this.cancelCallback();\n };\n\n #confirmClickHandler = async () => {\n let formSubmitResult: FormSubmitResult;\n const selectedMergeActionData: SelectedMergeActionData = {\n operationType: this.selectedOption,\n fromDate:\n this.selectedOption === \"fromCommitDate\"\n ? this.sinceCommitDate\n : undefined,\n fromRevision:\n this.selectedOption === \"fromCommitNumber\"\n ? this.sinceCommitNumber\n : undefined\n };\n formSubmitResult = await this.confirmCallback(selectedMergeActionData);\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n };\n\n #handleLastDates = (lastDates: LastDates) => {\n const currentDate = new Date();\n let sinceDate = new Date();\n switch (lastDates) {\n case \"lastSevenDays\":\n sinceDate.setDate(currentDate.getDate() - 7);\n break;\n case \"lastThirtyDays\":\n sinceDate.setDate(currentDate.getDate() - 30);\n break;\n case \"lastNinetyDays\":\n sinceDate.setDate(currentDate.getDate() - 90);\n break;\n }\n this.sinceCommitDate = sinceDate;\n };\n\n #handleCommitDateValueChanged = (event: CustomEvent<string> | InputEvent) => {\n const value = event.detail as string;\n if (value && value !== \"\") {\n const [year, month, day] = value.split(\"-\").map(Number);\n this.sinceCommitDate = new Date(year, month - 1, day);\n } else {\n this.sinceCommitDate = undefined;\n }\n clearControlError(this.validatableControls, \"commit-date\");\n };\n\n #handleCommitNumberValueChanged = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.sinceCommitNumber = Number(event.detail);\n clearControlError(this.validatableControls, \"commit-number\");\n };\n\n #handleRadioGroupValueChange = (\n event: ChRadioGroupRenderCustomEvent<string>\n ) => {\n this.selectedOption = event.detail as MergeActionTaken;\n if (this.selectedOption === \"fromCommitDate\") {\n this.sinceCommitNumber = undefined;\n clearControlError(this.validatableControls, \"commit-number\");\n } else if (this.selectedOption === \"fromCommitNumber\") {\n this.sinceCommitDate = undefined;\n clearControlError(this.validatableControls, \"commit-date\");\n }\n };\n\n #confirmButtonDisabled = (): boolean => {\n if (this.selectedOption === \"fromCommitDate\") {\n // Validate that sinceCommitDate is a valid date\n return !(\n this.sinceCommitDate instanceof Date &&\n !isNaN(this.sinceCommitDate.getTime())\n );\n } else if (this.selectedOption === \"fromCommitNumber\") {\n // Validate that sinceCommitNumber is a valid number\n return !(this.sinceCommitNumber > 0);\n }\n return true;\n };\n\n #renderCommitDateInput = () => {\n if (this.selectedOption !== \"fromCommitDate\") {\n return null;\n }\n return (\n <div class=\"layout layout--cols-2-1\">\n <div class=\"layout__panel\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"commit-date\">\n {this.#componentLocale.labels.commitDate}\n </label>\n <ch-edit\n class={{\n \"input\": true,\n \"input-error\":\n this.validatableControls.get(\"commit-date\")?.hasError\n }}\n id=\"commit-date\"\n type=\"date\"\n value={\n this.sinceCommitDate &&\n this.sinceCommitDate.toISOString().split(\"T\")[0]\n }\n onInput={this.#handleCommitDateValueChanged}\n ref={(el: HTMLChEditElement) =>\n (this.#revisionDateRef = el as HTMLChEditElement)\n }\n />\n {this.#evaluateTooltipRender(this.#revisionDateRef)}\n </div>\n </div>\n </div>\n );\n };\n\n #renderCommitNumberInput = () => {\n if (this.selectedOption !== \"fromCommitNumber\") {\n return null;\n }\n return (\n <div class=\"layout layout--cols-2-1\">\n <div class=\"layout__panel\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"commit-number\">\n {this.#componentLocale.labels.commitNumber}\n </label>\n <ch-edit\n class={{\n \"input\": true,\n \"input-error\":\n this.validatableControls.get(\"commit-number\")?.hasError\n }}\n id=\"commit-number\"\n type=\"number\"\n placeholder={this.#componentLocale.placeholders.commitNumber}\n onInput={this.#handleCommitNumberValueChanged}\n mode=\"numeric\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionNumberRef = el as HTMLChEditElement)\n }\n />\n {this.#evaluateTooltipRender(this.#revisionNumberRef)}\n </div>\n </div>\n </div>\n );\n };\n\n #renderLastDatesButtons = () => {\n if (this.selectedOption !== \"fromCommitDate\") {\n return null;\n }\n\n return (\n <div class=\"layout layout--cols-3\">\n <div class=\"layout__panel\">\n <button\n id=\"last-seven-days-button\"\n class=\"button-secondary\"\n onClick={() => this.#handleLastDates(\"lastSevenDays\")}\n >\n {this.#componentLocale.captions.lastSevenDays}\n </button>\n </div>\n <div class=\"layout__panel\">\n <button\n id=\"last-thirty-days-button\"\n class=\"button-secondary\"\n onClick={() => this.#handleLastDates(\"lastThirtyDays\")}\n >\n {this.#componentLocale.captions.lastThirtyDays}\n </button>\n </div>\n <div class=\"layout__panel\">\n <button\n id=\"last-ninety-days-button\"\n class=\"button-secondary\"\n onClick={() => this.#handleLastDates(\"lastNinetyDays\")}\n >\n {this.#componentLocale.captions.lastNinetyDays}\n </button>\n </div>\n </div>\n );\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts src={this.#shortcutsSrc}></ch-shortcuts>\n <div\n class={{\n \"spacing-body\": true,\n \"commit-date-container\": this.selectedOption === \"fromCommitDate\",\n \"commit-number-container\":\n this.selectedOption === \"fromCommitNumber\"\n }}\n >\n <p class=\"body-regular-m heading\">\n {this.#componentLocale.labels.selectRange}\n </p>\n <ch-radio-group-render\n class=\"radio-group\"\n direction=\"horizontal\"\n model={this.radioGroupModel}\n onChange={this.#handleRadioGroupValueChange}\n value={MERGE_ACTION_OPTIONS.fromCommitDate.value}\n />\n\n {this.#renderLastDatesButtons()}\n {this.#renderCommitDateInput()}\n {this.#renderCommitNumberInput()}\n </div>\n\n <footer class=\"control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary\"\n id=\"cancel-button\"\n onClick={this.#cancelClickHandler}\n >\n {this.#componentLocale.buttons.cancel}\n </button>\n\n <button\n id=\"confirm-button\"\n class=\"button-primary\"\n onClick={this.#confirmClickHandler}\n disabled={this.#confirmButtonDisabled()}\n >\n {this.#componentLocale.buttons.confirm}\n </button>\n </div>\n </footer>\n </Host>\n );\n }\n}\n\nexport type SelectedMergeActionData = {\n operationType: MergeActionTaken;\n fromDate?: Date;\n fromRevision?: number;\n};\n\nexport type MergeActionTaken = \"fromCommitDate\" | \"fromCommitNumber\";\n\nexport type LastDates = \"lastSevenDays\" | \"lastThirtyDays\" | \"lastNinetyDays\";\n"]}
@@ -0,0 +1,15 @@
1
+ [
2
+ {
3
+ "selector": "#confirm-button:not(:disabled)",
4
+ "keyShortcuts": "Enter",
5
+ "action": "click",
6
+ "conditions": {
7
+ "focusExclude": "[id='cancel-button'], [id='last-seven-days-button'], [id='last-thirty-days-button'], [id='last-ninety-days-button']"
8
+ }
9
+ },
10
+ {
11
+ "selector": "#cancel-button",
12
+ "keyShortcuts": "Escape",
13
+ "action": "click"
14
+ }
15
+ ]
@@ -14,9 +14,9 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
14
14
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
15
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
16
  };
17
- var _HTMLGxIdeConnectGxServer_componentLocale, _HTMLGxIdeConnectGxServer_usernameRef, _HTMLGxIdeConnectGxServer_passwordRef, _HTMLGxIdeConnectGxServer_serverUrlRef, _HTMLGxIdeConnectGxServer_cancelClickHandler, _HTMLGxIdeConnectGxServer_connectClickHandler, _HTMLGxIdeConnectGxServer_evaluateTooltipRender, _HTMLGxIdeConnectGxServer_init, _HTMLGxIdeConnectGxServer_initializeValidatableControls, _HTMLGxIdeConnectGxServer_authenticationInputEventHandler, _HTMLGxIdeConnectGxServer_usernameInputEventHandler, _HTMLGxIdeConnectGxServer_passwordInputEventHandler;
17
+ var _HTMLGxIdeConnectGxServer_componentLocale, _HTMLGxIdeConnectGxServer_usernameRef, _HTMLGxIdeConnectGxServer_passwordRef, _HTMLGxIdeConnectGxServer_serverUrlRef, _HTMLGxIdeConnectGxServer_shortcutsSrc, _HTMLGxIdeConnectGxServer_cancelClickHandler, _HTMLGxIdeConnectGxServer_connectClickHandler, _HTMLGxIdeConnectGxServer_evaluateTooltipRender, _HTMLGxIdeConnectGxServer_init, _HTMLGxIdeConnectGxServer_initializeValidatableControls, _HTMLGxIdeConnectGxServer_authenticationInputEventHandler, _HTMLGxIdeConnectGxServer_usernameInputEventHandler, _HTMLGxIdeConnectGxServer_passwordInputEventHandler;
18
18
  // Stencil
19
- import { h, Host } from "@stencil/core";
19
+ import { getAssetPath, h, Host } from "@stencil/core";
20
20
  // Custom Imports
21
21
  import { config } from "../../../common/config";
22
22
  import { validateControls } from "../../../common/form-validation";
@@ -41,6 +41,7 @@ export class HTMLGxIdeConnectGxServer {
41
41
  _HTMLGxIdeConnectGxServer_usernameRef.set(this, void 0);
42
42
  _HTMLGxIdeConnectGxServer_passwordRef.set(this, void 0);
43
43
  _HTMLGxIdeConnectGxServer_serverUrlRef.set(this, void 0);
44
+ _HTMLGxIdeConnectGxServer_shortcutsSrc.set(this, getAssetPath(`./gx-ide-assets/connect-gx-server/shortcuts.json`));
44
45
  _HTMLGxIdeConnectGxServer_cancelClickHandler.set(this, () => {
45
46
  this.cancelCallback();
46
47
  });
@@ -139,7 +140,7 @@ export class HTMLGxIdeConnectGxServer {
139
140
  }
140
141
  render() {
141
142
  var _a, _b, _c, _d;
142
- return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("div", { class: "main field-group spacing-body" }, h("div", {
143
+ return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-shortcuts", { src: __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_shortcutsSrc, "f") }), h("section", { class: "section" }, h("div", { class: "main field-group spacing-body" }, h("div", {
143
144
  // server urls
144
145
  class: "field field-block server-url"
145
146
  }, h("label", { class: "label", htmlFor: "server-url" }, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_componentLocale, "f").main.serverURLLabel), h("ch-edit", { type: "url", id: "server-url", class: "input", value: (_a = this.gxServerConnectionData) === null || _a === void 0 ? void 0 : _a.serverUrl, readonly: true, ref: (el) => (__classPrivateFieldSet(this, _HTMLGxIdeConnectGxServer_serverUrlRef, el, "f")) })), h("div", {
@@ -151,13 +152,11 @@ export class HTMLGxIdeConnectGxServer {
151
152
  }, h("label", { class: "label", htmlFor: "username" }, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_componentLocale, "f").main.usernameLabel), h("ch-edit", { type: "text", id: "username", class: "input", value: (_c = this.gxServerConnectionData) === null || _c === void 0 ? void 0 : _c.userName, onInput: __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_usernameInputEventHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _HTMLGxIdeConnectGxServer_usernameRef, el, "f")) }), __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_usernameRef, "f"))), h("div", {
152
153
  // user password
153
154
  class: "field field-block user-password"
154
- }, h("label", { class: "label", htmlFor: "password" }, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_componentLocale, "f").main.passwordLabel), h("ch-edit", { type: "password", id: "password", class: "input", value: (_d = this.gxServerConnectionData) === null || _d === void 0 ? void 0 : _d.userPassword, onInput: __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_passwordInputEventHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _HTMLGxIdeConnectGxServer_passwordRef, el, "f")), showPasswordButton: true }), __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_passwordRef, "f")))), h("footer", { class: "control-footer-with-border spacing-body" }, h("div", { class: "buttons-spacer" }, h("button", {
155
+ }, h("label", { class: "label", htmlFor: "password" }, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_componentLocale, "f").main.passwordLabel), h("ch-edit", { type: "password", id: "password", class: "input", value: (_d = this.gxServerConnectionData) === null || _d === void 0 ? void 0 : _d.userPassword, onInput: __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_passwordInputEventHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _HTMLGxIdeConnectGxServer_passwordRef, el, "f")), showPasswordButton: true }), __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_passwordRef, "f")))), h("footer", { class: "control-footer-with-border spacing-body" }, h("div", { class: "buttons-spacer" }, h("button", { id: "cancel-button",
155
156
  // cancel button
156
- class: "button-secondary", onClick: __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_cancelClickHandler, "f")
157
- }, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_componentLocale, "f").footer.backButtonCaption), h("button", {
157
+ class: "button-secondary", onClick: __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_cancelClickHandler, "f") }, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_componentLocale, "f").footer.backButtonCaption), h("button", { id: "connect-button",
158
158
  // connect button
159
- class: "button-primary", onClick: __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_connectClickHandler, "f")
160
- }, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_componentLocale, "f").footer.connectButtonCaption))))));
159
+ class: "button-primary", onClick: __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_connectClickHandler, "f") }, __classPrivateFieldGet(this, _HTMLGxIdeConnectGxServer_componentLocale, "f").footer.connectButtonCaption))))));
161
160
  }
162
161
  static get is() { return "gx-ide-connect-gx-server"; }
163
162
  static get encapsulation() { return "shadow"; }
@@ -301,5 +300,5 @@ export class HTMLGxIdeConnectGxServer {
301
300
  }];
302
301
  }
303
302
  }
304
- _HTMLGxIdeConnectGxServer_componentLocale = new WeakMap(), _HTMLGxIdeConnectGxServer_usernameRef = new WeakMap(), _HTMLGxIdeConnectGxServer_passwordRef = new WeakMap(), _HTMLGxIdeConnectGxServer_serverUrlRef = new WeakMap(), _HTMLGxIdeConnectGxServer_cancelClickHandler = new WeakMap(), _HTMLGxIdeConnectGxServer_connectClickHandler = new WeakMap(), _HTMLGxIdeConnectGxServer_evaluateTooltipRender = new WeakMap(), _HTMLGxIdeConnectGxServer_init = new WeakMap(), _HTMLGxIdeConnectGxServer_initializeValidatableControls = new WeakMap(), _HTMLGxIdeConnectGxServer_authenticationInputEventHandler = new WeakMap(), _HTMLGxIdeConnectGxServer_usernameInputEventHandler = new WeakMap(), _HTMLGxIdeConnectGxServer_passwordInputEventHandler = new WeakMap();
303
+ _HTMLGxIdeConnectGxServer_componentLocale = new WeakMap(), _HTMLGxIdeConnectGxServer_usernameRef = new WeakMap(), _HTMLGxIdeConnectGxServer_passwordRef = new WeakMap(), _HTMLGxIdeConnectGxServer_serverUrlRef = new WeakMap(), _HTMLGxIdeConnectGxServer_shortcutsSrc = new WeakMap(), _HTMLGxIdeConnectGxServer_cancelClickHandler = new WeakMap(), _HTMLGxIdeConnectGxServer_connectClickHandler = new WeakMap(), _HTMLGxIdeConnectGxServer_evaluateTooltipRender = new WeakMap(), _HTMLGxIdeConnectGxServer_init = new WeakMap(), _HTMLGxIdeConnectGxServer_initializeValidatableControls = new WeakMap(), _HTMLGxIdeConnectGxServer_authenticationInputEventHandler = new WeakMap(), _HTMLGxIdeConnectGxServer_usernameInputEventHandler = new WeakMap(), _HTMLGxIdeConnectGxServer_passwordInputEventHandler = new WeakMap();
305
304
  //# sourceMappingURL=connect-gx-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect-gx-server.js","sourceRoot":"","sources":["../../../../src/components/team-dev/connect-gx-server/connect-gx-server.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n\n// Other Libraries\nimport { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport { mapAuthenticationTypeToComboBoxModel } from \"./helpers\";\nimport { NewServerConnectionData } from \"../server-selector/server-selector\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tooltip\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-connect-gx-server\",\n styleUrl: \"connect-gx-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/connect-gx-server\"]\n})\nexport class HTMLGxIdeConnectGxServer {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeConnectGxServerElement;\n #usernameRef!: HTMLChEditElement;\n #passwordRef!: HTMLChEditElement;\n #serverUrlRef!: HTMLChEditElement;\n\n @State() authenticationTypesComboBoxModel: ComboBoxModel;\n @State() gxServerConnectionData: GXServerConnectionData = {\n authenticationType: {\n id: null,\n name: null\n },\n serverUrl: null,\n userName: null,\n userPassword: null,\n serverName: null\n };\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * List of authentication types.\n */\n @Prop() readonly authenticationTypes!: AuthenticationType[];\n @Watch(\"authenticationTypes\")\n authenticationTypesChanged(newAuthenticationTypes: AuthenticationType[]) {\n if (newAuthenticationTypes?.length) {\n this.authenticationTypesComboBoxModel =\n mapAuthenticationTypeToComboBoxModel(newAuthenticationTypes);\n }\n }\n\n /**\n * Callback that must be invoked when the 'Cancel' button is pressed.\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Connect' button is pressed.\n */\n @Prop() readonly connectCallback!: (\n data: GXServerConnectionData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Initial user values for the case in which the user returns to the\n * login modal after successful authentication.\n */\n @Prop() readonly defaultConnectionData?: NewServerConnectionData;\n\n /**\n * true if the user should be allowed to manually enter a server URL.\n */\n @Prop() readonly enableCustomServer: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n this.#init();\n }\n\n async componentDidLoad() {\n this.#initializeValidatableControls();\n }\n\n #cancelClickHandler = () => {\n this.cancelCallback();\n };\n\n #connectClickHandler = async () => {\n this.connectCallback(this.gxServerConnectionData).then(\n (formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n );\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #init = () => {\n this.authenticationTypesChanged(this.authenticationTypes);\n // set initial values:\n // server url\n this.gxServerConnectionData.serverUrl =\n this.defaultConnectionData?.serverUrl;\n //server name\n this.gxServerConnectionData.serverName =\n this.defaultConnectionData?.serverName;\n // authentication type\n this.gxServerConnectionData.authenticationType = {\n id: this.authenticationTypesComboBoxModel[0]?.value,\n name: this.authenticationTypesComboBoxModel[0]?.caption\n };\n };\n\n #initializeValidatableControls = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#usernameRef,\n this.#passwordRef,\n this.#serverUrlRef\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #authenticationInputEventHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n const authenticationTypeId = event.detail as string;\n const authenticationTypeIndex = this.authenticationTypes.findIndex(\n authType => {\n return authType.id === authenticationTypeId;\n }\n );\n const authenticationTypeName =\n this.authenticationTypes[authenticationTypeIndex].name;\n\n this.gxServerConnectionData.authenticationType = {\n id: authenticationTypeId,\n name: authenticationTypeName\n };\n };\n #usernameInputEventHandler = (event: CustomEvent<string> | InputEvent) => {\n this.gxServerConnectionData.userName = event.detail as string;\n };\n #passwordInputEventHandler = (event: CustomEvent<string> | InputEvent) => {\n this.gxServerConnectionData.userPassword = event.detail as string;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <div class=\"main field-group spacing-body\">\n <div\n // server urls\n class=\"field field-block server-url\"\n >\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#componentLocale.main.serverURLLabel}\n </label>\n <ch-edit\n type=\"url\"\n id=\"server-url\"\n class=\"input\"\n value={this.gxServerConnectionData?.serverUrl}\n readonly={true}\n ref={(el: HTMLChEditElement) =>\n (this.#serverUrlRef = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div\n // authentication types\n class=\"field field-block authentication-type\"\n >\n <label class=\"label\" htmlFor=\"authentication-type\">\n {this.#componentLocale.main.authenticationTypeLabel}\n </label>\n <ch-combo-box-render\n id=\"authentication-type\"\n class=\"combo-box\"\n accessibleName=\"Authentication Types\"\n model={this.authenticationTypesComboBoxModel}\n placeholder=\"Select an authentication type\"\n value={this.gxServerConnectionData?.authenticationType.id}\n onInput={this.#authenticationInputEventHandler}\n ></ch-combo-box-render>\n </div>\n\n <div\n // username\n class=\"field field-block user-name\"\n >\n <label class=\"label\" htmlFor=\"username\">\n {this.#componentLocale.main.usernameLabel}\n </label>\n <ch-edit\n type=\"text\"\n id=\"username\"\n class=\"input\"\n value={this.gxServerConnectionData?.userName}\n onInput={this.#usernameInputEventHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#usernameRef = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#usernameRef)}\n </div>\n\n <div\n // user password\n class=\"field field-block user-password\"\n >\n <label class=\"label\" htmlFor=\"password\">\n {this.#componentLocale.main.passwordLabel}\n </label>\n <ch-edit\n type=\"password\"\n id=\"password\"\n class=\"input\"\n value={this.gxServerConnectionData?.userPassword}\n onInput={this.#passwordInputEventHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#passwordRef = el as HTMLChEditElement)\n }\n showPasswordButton={true}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#passwordRef)}\n </div>\n </div>\n\n <footer class=\"control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelClickHandler}\n >\n {this.#componentLocale.footer.backButtonCaption}\n </button>\n\n <button\n // connect button\n class=\"button-primary\"\n onClick={this.#connectClickHandler}\n >\n {this.#componentLocale.footer.connectButtonCaption}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type GXServerConnectionData = {\n authenticationType: AuthenticationType;\n serverUrl: string;\n userName: string;\n userPassword: string;\n serverName?: string;\n};\n\nexport type AuthenticationType = {\n id: string;\n name: string;\n};\n"]}
1
+ {"version":3,"file":"connect-gx-server.js","sourceRoot":"","sources":["../../../../src/components/team-dev/connect-gx-server/connect-gx-server.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport {\n Component,\n Element,\n getAssetPath,\n h,\n Host,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport { mapAuthenticationTypeToComboBoxModel } from \"./helpers\";\nimport { NewServerConnectionData } from \"../server-selector/server-selector\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tooltip\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-connect-gx-server\",\n styleUrl: \"connect-gx-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/connect-gx-server\"]\n})\nexport class HTMLGxIdeConnectGxServer {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeConnectGxServerElement;\n #usernameRef!: HTMLChEditElement;\n #passwordRef!: HTMLChEditElement;\n #serverUrlRef!: HTMLChEditElement;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/connect-gx-server/shortcuts.json`\n );\n\n @State() authenticationTypesComboBoxModel: ComboBoxModel;\n @State() gxServerConnectionData: GXServerConnectionData = {\n authenticationType: {\n id: null,\n name: null\n },\n serverUrl: null,\n userName: null,\n userPassword: null,\n serverName: null\n };\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * List of authentication types.\n */\n @Prop() readonly authenticationTypes!: AuthenticationType[];\n @Watch(\"authenticationTypes\")\n authenticationTypesChanged(newAuthenticationTypes: AuthenticationType[]) {\n if (newAuthenticationTypes?.length) {\n this.authenticationTypesComboBoxModel =\n mapAuthenticationTypeToComboBoxModel(newAuthenticationTypes);\n }\n }\n\n /**\n * Callback that must be invoked when the 'Cancel' button is pressed.\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Connect' button is pressed.\n */\n @Prop() readonly connectCallback!: (\n data: GXServerConnectionData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Initial user values for the case in which the user returns to the\n * login modal after successful authentication.\n */\n @Prop() readonly defaultConnectionData?: NewServerConnectionData;\n\n /**\n * true if the user should be allowed to manually enter a server URL.\n */\n @Prop() readonly enableCustomServer: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n this.#init();\n }\n\n async componentDidLoad() {\n this.#initializeValidatableControls();\n }\n\n #cancelClickHandler = () => {\n this.cancelCallback();\n };\n\n #connectClickHandler = async () => {\n this.connectCallback(this.gxServerConnectionData).then(\n (formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n );\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #init = () => {\n this.authenticationTypesChanged(this.authenticationTypes);\n // set initial values:\n // server url\n this.gxServerConnectionData.serverUrl =\n this.defaultConnectionData?.serverUrl;\n //server name\n this.gxServerConnectionData.serverName =\n this.defaultConnectionData?.serverName;\n // authentication type\n this.gxServerConnectionData.authenticationType = {\n id: this.authenticationTypesComboBoxModel[0]?.value,\n name: this.authenticationTypesComboBoxModel[0]?.caption\n };\n };\n\n #initializeValidatableControls = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#usernameRef,\n this.#passwordRef,\n this.#serverUrlRef\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #authenticationInputEventHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n const authenticationTypeId = event.detail as string;\n const authenticationTypeIndex = this.authenticationTypes.findIndex(\n authType => {\n return authType.id === authenticationTypeId;\n }\n );\n const authenticationTypeName =\n this.authenticationTypes[authenticationTypeIndex].name;\n\n this.gxServerConnectionData.authenticationType = {\n id: authenticationTypeId,\n name: authenticationTypeName\n };\n };\n #usernameInputEventHandler = (event: CustomEvent<string> | InputEvent) => {\n this.gxServerConnectionData.userName = event.detail as string;\n };\n #passwordInputEventHandler = (event: CustomEvent<string> | InputEvent) => {\n this.gxServerConnectionData.userPassword = event.detail as string;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts src={this.#shortcutsSrc}></ch-shortcuts>\n\n <section class=\"section\">\n <div class=\"main field-group spacing-body\">\n <div\n // server urls\n class=\"field field-block server-url\"\n >\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#componentLocale.main.serverURLLabel}\n </label>\n <ch-edit\n type=\"url\"\n id=\"server-url\"\n class=\"input\"\n value={this.gxServerConnectionData?.serverUrl}\n readonly={true}\n ref={(el: HTMLChEditElement) =>\n (this.#serverUrlRef = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div\n // authentication types\n class=\"field field-block authentication-type\"\n >\n <label class=\"label\" htmlFor=\"authentication-type\">\n {this.#componentLocale.main.authenticationTypeLabel}\n </label>\n <ch-combo-box-render\n id=\"authentication-type\"\n class=\"combo-box\"\n accessibleName=\"Authentication Types\"\n model={this.authenticationTypesComboBoxModel}\n placeholder=\"Select an authentication type\"\n value={this.gxServerConnectionData?.authenticationType.id}\n onInput={this.#authenticationInputEventHandler}\n ></ch-combo-box-render>\n </div>\n\n <div\n // username\n class=\"field field-block user-name\"\n >\n <label class=\"label\" htmlFor=\"username\">\n {this.#componentLocale.main.usernameLabel}\n </label>\n <ch-edit\n type=\"text\"\n id=\"username\"\n class=\"input\"\n value={this.gxServerConnectionData?.userName}\n onInput={this.#usernameInputEventHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#usernameRef = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#usernameRef)}\n </div>\n\n <div\n // user password\n class=\"field field-block user-password\"\n >\n <label class=\"label\" htmlFor=\"password\">\n {this.#componentLocale.main.passwordLabel}\n </label>\n <ch-edit\n type=\"password\"\n id=\"password\"\n class=\"input\"\n value={this.gxServerConnectionData?.userPassword}\n onInput={this.#passwordInputEventHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#passwordRef = el as HTMLChEditElement)\n }\n showPasswordButton={true}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#passwordRef)}\n </div>\n </div>\n\n <footer class=\"control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n id=\"cancel-button\"\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelClickHandler}\n >\n {this.#componentLocale.footer.backButtonCaption}\n </button>\n\n <button\n id=\"connect-button\"\n // connect button\n class=\"button-primary\"\n onClick={this.#connectClickHandler}\n >\n {this.#componentLocale.footer.connectButtonCaption}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type GXServerConnectionData = {\n authenticationType: AuthenticationType;\n serverUrl: string;\n userName: string;\n userPassword: string;\n serverName?: string;\n};\n\nexport type AuthenticationType = {\n id: string;\n name: string;\n};\n"]}
@@ -0,0 +1,15 @@
1
+ [
2
+ {
3
+ "selector": "#connect-button:not(:disabled)",
4
+ "keyShortcuts": "Enter",
5
+ "action": "click",
6
+ "conditions": {
7
+ "focusExclude": "[id='cancel-button']"
8
+ }
9
+ },
10
+ {
11
+ "selector": "#cancel-button",
12
+ "keyShortcuts": "Escape",
13
+ "action": "click"
14
+ }
15
+ ]
@@ -212,7 +212,7 @@ export class GxIdeCreateKbFromServer {
212
212
  __classPrivateFieldSet(this, _GxIdeCreateKbFromServer__componentLocale, await Locale.getComponentStrings(this.el), "f");
213
213
  }
214
214
  render() {
215
- return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-shortcuts", { src: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_shortcutsSrc, "f"), ref: (el) => (this.chShortcutsEl = el) }), h("section", { class: "section" }, h("header", { class: "header control-header-with-border space-body spacing-body-inline spacing-body-block-start" }, h("div", { class: "field field-block" }, h("label", { class: "label" }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").header.serverUrl), h("p", null, this.connectionData.serverUrl)), h("div", { class: "field field-block" }, h("label", { class: "label" }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").header.user), h("p", null, this.connectionData.userName)), h("button", { class: "button-tertiary button-change", onClick: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_changeConnectionHandler, "f") }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").header.change)), h("section", { class: "main field-group spacing-body" }, this.loading ? (h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").loader.description, show: true })) : (h(Fragment, null, h("ch-edit", { class: "input search-kbs", id: "local-kb-name", startImgSrc: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_chSearchIcon, "f"), onInput: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_filterValueChangedHandler, "f"), placeholder: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").kb.searchKbsPlaceholder }), __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_kbsActionListModel, "f").length === 0 ||
215
+ return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-shortcuts", { src: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_shortcutsSrc, "f"), ref: (el) => (this.chShortcutsEl = el) }), h("section", { class: "section" }, h("header", { class: "header control-header-with-border space-body spacing-body-inline spacing-body-block-start" }, h("div", { class: "field field-block" }, h("label", { class: "label" }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").header.serverUrl), h("p", null, this.connectionData.serverUrl)), h("div", { class: "field field-block" }, h("label", { class: "label" }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").header.user), h("p", null, this.connectionData.userName)), h("button", { id: "change-connection-button", class: "button-tertiary button-change", onClick: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_changeConnectionHandler, "f") }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").header.change)), h("section", { class: "main field-group spacing-body" }, this.loading ? (h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").loader.description, show: true })) : (h(Fragment, null, h("ch-edit", { class: "input search-kbs", id: "local-kb-name", startImgSrc: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_chSearchIcon, "f"), onInput: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_filterValueChangedHandler, "f"), placeholder: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").kb.searchKbsPlaceholder }), __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_kbsActionListModel, "f").length === 0 ||
216
216
  this.kbsFilteredActionListModel.length === 0 ? (h("div", { class: "list-box" }, h("gx-ide-empty-state", { stateIconSrc: INFO_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").emptyKBsText, isAnimated: true }))) : (h("ch-action-list-render", { selection: "single", class: "list-box", onSelectedItemsChange: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_selectKbChangeHandler, "f"), model: this.kbsFilteredActionListModel, sortItemsCallback: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_sortItems, "f") })), h("div", { class: "versions-container field-group" }, h("ch-radio-group-render", { class: "radio-group", model: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_versionsSelect, "f"), onChange: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_versionsChangedHandler, "f"), value: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_versionsSelect, "f")[0].value, ref: (el) => {
217
217
  __classPrivateFieldSet(this, _GxIdeCreateKbFromServer_versionSelectedTypeEl, el, "f");
218
218
  if (__classPrivateFieldGet(this, _GxIdeCreateKbFromServer_versionSelectedTypeEl, "f")) {
@@ -222,7 +222,7 @@ export class GxIdeCreateKbFromServer {
222
222
  } }), this.versionSelectedType === "Select" && (h("div", { class: "versions-container__item field-group" }, h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "control-id-1" }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").kb.versionsLabel), h("div", { class: "versions-container__input" }, h("ch-edit", { class: "input", readonly: true, placeholder: this.enableSelectVersionsButton
223
223
  ? __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").kb.versionsPlaceholder
224
224
  : __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").kb
225
- .versionsPlaceholderDisabled, value: this.versionsValueInput }), h("button", { class: "button-tertiary button-icon-only", onClick: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_selectedVersionHandler, "f"), disabled: !this.enableSelectVersionsButton }, h("ch-image", { src: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_showMoreIcon, "f"), class: "icon-sm" }))))))), h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "localKbName" }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").kb.localKbNameLabel), h("ch-edit", {
225
+ .versionsPlaceholderDisabled, value: this.versionsValueInput }), h("button", { id: "select-version-button", class: "button-tertiary button-icon-only", onClick: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_selectedVersionHandler, "f"), disabled: !this.enableSelectVersionsButton }, h("ch-image", { src: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_showMoreIcon, "f"), class: "icon-sm" }))))))), h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "localKbName" }, __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").kb.localKbNameLabel), h("ch-edit", {
226
226
  // local kb name
227
227
  class: "input", id: "local-kb-name", value: this.localKbNameInputValue, onInput: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer_inputLocalKbNameHandler, "f"), placeholder: __classPrivateFieldGet(this, _GxIdeCreateKbFromServer__componentLocale, "f").kb.localKbNamePlaceholder, ref: (el) => {
228
228
  __classPrivateFieldSet(this, _GxIdeCreateKbFromServer_localKBNameEl, el, "f");