graphdb-workbench 3.2.0-TR3 → 3.2.0-TR4

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 (167) hide show
  1. package/dist/{12396.07e90b6c97623a9fd754.bundle.js → 12396.a1b7856e86d52282f34c.bundle.js} +2 -2
  2. package/dist/{12396.07e90b6c97623a9fd754.bundle.js.map → 12396.a1b7856e86d52282f34c.bundle.js.map} +1 -1
  3. package/dist/{15535.12490e9b6d305e7bd827.bundle.js → 15535.c58319cba275ee5baa90.bundle.js} +2 -2
  4. package/dist/{15535.12490e9b6d305e7bd827.bundle.js.map → 15535.c58319cba275ee5baa90.bundle.js.map} +1 -1
  5. package/dist/{16162.58804ed92b5b3ae97510.bundle.js → 16162.2dc986d04777c8ae9489.bundle.js} +2 -2
  6. package/dist/{16162.58804ed92b5b3ae97510.bundle.js.map → 16162.2dc986d04777c8ae9489.bundle.js.map} +1 -1
  7. package/dist/{20287.3ce3542c50f41b8b85a3.bundle.js → 20287.7cfc312df157f5bdea97.bundle.js} +2 -2
  8. package/dist/{20287.3ce3542c50f41b8b85a3.bundle.js.map → 20287.7cfc312df157f5bdea97.bundle.js.map} +1 -1
  9. package/dist/{21136.c6d780b6f550c0df2d2a.bundle.js → 21136.67a9bcf4bb0c201d3fd1.bundle.js} +2 -2
  10. package/dist/{21136.c6d780b6f550c0df2d2a.bundle.js.map → 21136.67a9bcf4bb0c201d3fd1.bundle.js.map} +1 -1
  11. package/dist/{21142.b48a4c497617cb2df01f.bundle.js → 21142.7f8327c28d939fa26009.bundle.js} +2 -2
  12. package/dist/{21142.b48a4c497617cb2df01f.bundle.js.map → 21142.7f8327c28d939fa26009.bundle.js.map} +1 -1
  13. package/dist/{21170.6079e1b218a1eea085f5.bundle.js → 21170.cecdf25699f68d4cf749.bundle.js} +2 -2
  14. package/dist/{21170.6079e1b218a1eea085f5.bundle.js.map → 21170.cecdf25699f68d4cf749.bundle.js.map} +1 -1
  15. package/dist/{21195.152b932628044855ef83.bundle.js → 21195.e2c1fc69631041b97f8e.bundle.js} +2 -2
  16. package/dist/{21195.152b932628044855ef83.bundle.js.map → 21195.e2c1fc69631041b97f8e.bundle.js.map} +1 -1
  17. package/dist/{25747.117e03f9f9ae52f13606.bundle.js → 25747.c3dc5503ad696af5d5a3.bundle.js} +2 -2
  18. package/dist/{25747.117e03f9f9ae52f13606.bundle.js.map → 25747.c3dc5503ad696af5d5a3.bundle.js.map} +1 -1
  19. package/dist/{27580.dc966117bc0ee9eecd70.bundle.js → 27580.d038d43102a3e9eec97d.bundle.js} +2 -2
  20. package/dist/{27580.dc966117bc0ee9eecd70.bundle.js.map → 27580.d038d43102a3e9eec97d.bundle.js.map} +1 -1
  21. package/dist/{31636.95fa5e5c2a521d1effd5.bundle.js → 31636.fc6eba63d6d985d31673.bundle.js} +2 -2
  22. package/dist/{31636.95fa5e5c2a521d1effd5.bundle.js.map → 31636.fc6eba63d6d985d31673.bundle.js.map} +1 -1
  23. package/dist/{32489.c5d26d5023f0e0583408.bundle.js → 32489.e9af1ec463e2d4136732.bundle.js} +2 -2
  24. package/dist/{32489.c5d26d5023f0e0583408.bundle.js.map → 32489.e9af1ec463e2d4136732.bundle.js.map} +1 -1
  25. package/dist/{34330.4b46c3a52d19f05fc0b2.bundle.js → 34330.990c99ea37f6cca46bad.bundle.js} +2 -2
  26. package/dist/34330.990c99ea37f6cca46bad.bundle.js.map +1 -0
  27. package/dist/{34495.2a7b45477194d52af3e5.bundle.js → 34495.06c9997d58d0b0ba7152.bundle.js} +2 -2
  28. package/dist/{34495.2a7b45477194d52af3e5.bundle.js.map → 34495.06c9997d58d0b0ba7152.bundle.js.map} +1 -1
  29. package/dist/36665.69d43b057bcfc55df3b5.bundle.js +2 -0
  30. package/dist/36665.69d43b057bcfc55df3b5.bundle.js.map +1 -0
  31. package/dist/{38360.23a88f346d3a1d92dbb1.bundle.js → 38360.ca92a04a1afcf9cfea7f.bundle.js} +2 -2
  32. package/dist/{38360.23a88f346d3a1d92dbb1.bundle.js.map → 38360.ca92a04a1afcf9cfea7f.bundle.js.map} +1 -1
  33. package/dist/{38644.6682aa9acc813134b85a.bundle.js → 38644.29dbfb38e4089efa6697.bundle.js} +2 -2
  34. package/dist/{38644.6682aa9acc813134b85a.bundle.js.map → 38644.29dbfb38e4089efa6697.bundle.js.map} +1 -1
  35. package/dist/{38843.7cf0aca4cc512c447e29.bundle.js → 38843.4b11f56e93f60fbe4e0a.bundle.js} +2 -2
  36. package/dist/{38843.7cf0aca4cc512c447e29.bundle.js.map → 38843.4b11f56e93f60fbe4e0a.bundle.js.map} +1 -1
  37. package/dist/{39518.cbb394dbd1fb5c717e82.bundle.js → 39518.c577d83ed591fada064c.bundle.js} +2 -2
  38. package/dist/{39518.cbb394dbd1fb5c717e82.bundle.js.map → 39518.c577d83ed591fada064c.bundle.js.map} +1 -1
  39. package/dist/{39539.63178d205aa9af450438.bundle.js → 39539.463ec29e136b100c0abe.bundle.js} +2 -2
  40. package/dist/{39539.63178d205aa9af450438.bundle.js.map → 39539.463ec29e136b100c0abe.bundle.js.map} +1 -1
  41. package/dist/{41453.3a71e125d59ca56c3e48.bundle.js → 41453.241761ce8ff75036e5e0.bundle.js} +2 -2
  42. package/dist/{41453.3a71e125d59ca56c3e48.bundle.js.map → 41453.241761ce8ff75036e5e0.bundle.js.map} +1 -1
  43. package/dist/{42129.6bbb7e9d5f3be5d0cb47.bundle.js → 42129.f67dc6029cdab567bf54.bundle.js} +2 -2
  44. package/dist/{42129.6bbb7e9d5f3be5d0cb47.bundle.js.map → 42129.f67dc6029cdab567bf54.bundle.js.map} +1 -1
  45. package/dist/42143.6c37997677f5ec643731.bundle.js +2 -0
  46. package/dist/42143.6c37997677f5ec643731.bundle.js.map +1 -0
  47. package/dist/{44444.f65e3b550875b4b6e1a8.bundle.js → 44444.a1b29c2329c7d4a39cc5.bundle.js} +2 -2
  48. package/dist/{44444.f65e3b550875b4b6e1a8.bundle.js.map → 44444.a1b29c2329c7d4a39cc5.bundle.js.map} +1 -1
  49. package/dist/{55217.4769c1f0615e364d8c2a.bundle.js → 55217.98a70cf01c4b7a826e82.bundle.js} +2 -2
  50. package/dist/55217.98a70cf01c4b7a826e82.bundle.js.map +1 -0
  51. package/dist/{55862.81278272f7885ce93baf.bundle.js → 55862.1c3f1e807c8a05b1b6ed.bundle.js} +2 -2
  52. package/dist/{55862.81278272f7885ce93baf.bundle.js.map → 55862.1c3f1e807c8a05b1b6ed.bundle.js.map} +1 -1
  53. package/dist/{58306.061bfe57a80e266022a1.bundle.js → 58306.a45182d200e3f8793644.bundle.js} +2 -2
  54. package/dist/{58306.061bfe57a80e266022a1.bundle.js.map → 58306.a45182d200e3f8793644.bundle.js.map} +1 -1
  55. package/dist/67232.bc980f2f0df606493105.bundle.js +2 -0
  56. package/dist/67232.bc980f2f0df606493105.bundle.js.map +1 -0
  57. package/dist/{67888.6a4fedd47a2764fdb04b.bundle.js → 67888.e21c0e4c70be6214fcd7.bundle.js} +2 -2
  58. package/dist/{67888.6a4fedd47a2764fdb04b.bundle.js.map → 67888.e21c0e4c70be6214fcd7.bundle.js.map} +1 -1
  59. package/dist/70938.c489d3ca5b00ad297139.bundle.js +2 -0
  60. package/dist/70938.c489d3ca5b00ad297139.bundle.js.map +1 -0
  61. package/dist/{72379.d82f665d3a8b231008a3.bundle.js → 72379.cb41e26c33271a25816e.bundle.js} +2 -2
  62. package/dist/{72379.d82f665d3a8b231008a3.bundle.js.map → 72379.cb41e26c33271a25816e.bundle.js.map} +1 -1
  63. package/dist/{73667.5a32fae13853f9158d8b.bundle.js → 73667.ad957853dba08fd3be30.bundle.js} +2 -2
  64. package/dist/{73667.5a32fae13853f9158d8b.bundle.js.map → 73667.ad957853dba08fd3be30.bundle.js.map} +1 -1
  65. package/dist/{73793.88917a280c5cbacfd4c5.bundle.js → 73793.79a311b387e5db776506.bundle.js} +2 -2
  66. package/dist/{73793.88917a280c5cbacfd4c5.bundle.js.map → 73793.79a311b387e5db776506.bundle.js.map} +1 -1
  67. package/dist/{75282.865c935a564591b19c85.bundle.js → 75282.8be5dde957dc6452c86a.bundle.js} +2 -2
  68. package/dist/{75282.865c935a564591b19c85.bundle.js.map → 75282.8be5dde957dc6452c86a.bundle.js.map} +1 -1
  69. package/dist/{75849.d9fcfe95fed333bad2d0.bundle.js → 75849.0f6bab8b5749be998286.bundle.js} +2 -2
  70. package/dist/{75849.d9fcfe95fed333bad2d0.bundle.js.map → 75849.0f6bab8b5749be998286.bundle.js.map} +1 -1
  71. package/dist/76013.9e71103dbb91bd9a558c.bundle.js +2 -0
  72. package/dist/76013.9e71103dbb91bd9a558c.bundle.js.map +1 -0
  73. package/dist/{78250.c266986c29f5c73eb46a.bundle.js → 78250.dd9bdc3db3ca0c84b25a.bundle.js} +2 -2
  74. package/dist/{78250.c266986c29f5c73eb46a.bundle.js.map → 78250.dd9bdc3db3ca0c84b25a.bundle.js.map} +1 -1
  75. package/dist/{79329.8d230cc14746653003ee.bundle.js → 79329.24a5e42cccee5055311a.bundle.js} +2 -2
  76. package/dist/{79329.8d230cc14746653003ee.bundle.js.map → 79329.24a5e42cccee5055311a.bundle.js.map} +1 -1
  77. package/dist/{82926.0cb2c4faf483e67f5e7f.bundle.js → 82926.02f08566fe1f948d9e1f.bundle.js} +2 -2
  78. package/dist/{82926.0cb2c4faf483e67f5e7f.bundle.js.map → 82926.02f08566fe1f948d9e1f.bundle.js.map} +1 -1
  79. package/dist/86142.04f4e4759998d4c37ccd.bundle.js +2 -0
  80. package/dist/86142.04f4e4759998d4c37ccd.bundle.js.map +1 -0
  81. package/dist/{9062.9bb14aa1e3d51036c7fe.bundle.js → 9062.e1ad16e157f04b8c9dd8.bundle.js} +2 -2
  82. package/dist/{9062.9bb14aa1e3d51036c7fe.bundle.js.map → 9062.e1ad16e157f04b8c9dd8.bundle.js.map} +1 -1
  83. package/dist/{99448.2ecdf14415bcd9299354.bundle.js → 99448.93e01a6a24e4a1cb0546.bundle.js} +2 -2
  84. package/dist/{99448.2ecdf14415bcd9299354.bundle.js.map → 99448.93e01a6a24e4a1cb0546.bundle.js.map} +1 -1
  85. package/dist/i18n/locale-en.json +2 -1
  86. package/dist/i18n/locale-fr.json +2 -1
  87. package/dist/index.html +8 -8
  88. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  89. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  90. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  91. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  92. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  93. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  94. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  95. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  96. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  97. package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
  98. package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
  99. package/dist/js/angular/core/templates/search-resource-input.html +1 -1
  100. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
  101. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  102. package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
  103. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  104. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  105. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  106. package/dist/js/angular/security/templates/user.html +2 -2
  107. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  108. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  109. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  110. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  111. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  112. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  113. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
  114. package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
  115. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  116. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  117. package/dist/{legacyWorkbench.ffd119cc335034d736cc.js → legacyWorkbench.ecf6300fd72cfffbcdb6.js} +3 -3
  118. package/dist/{legacyWorkbench.ffd119cc335034d736cc.js.map → legacyWorkbench.ecf6300fd72cfffbcdb6.js.map} +1 -1
  119. package/dist/pages/aclmanagement.html +2 -2
  120. package/dist/pages/autocomplete.html +1 -1
  121. package/dist/pages/choose-repository-type.html +1 -1
  122. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  123. package/dist/pages/create-index.html +1 -1
  124. package/dist/pages/dependencies.html +1 -1
  125. package/dist/pages/domainRangeInfo.html +2 -2
  126. package/dist/pages/edit.html +1 -1
  127. package/dist/pages/explore.html +1 -1
  128. package/dist/pages/export.html +1 -1
  129. package/dist/pages/find.html +1 -1
  130. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  131. package/dist/pages/graphs-visualizations.html +7 -7
  132. package/dist/pages/guides.html +1 -1
  133. package/dist/pages/import.html +2 -2
  134. package/dist/pages/jdbc-create.html +1 -1
  135. package/dist/pages/login.html +1 -1
  136. package/dist/pages/monitor/backup-and-restore.html +1 -1
  137. package/dist/pages/monitor/queries.html +1 -1
  138. package/dist/pages/monitor/resources.html +1 -1
  139. package/dist/pages/namespaces.html +2 -2
  140. package/dist/pages/plugins.html +1 -1
  141. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  142. package/dist/pages/rdfrank.html +2 -2
  143. package/dist/pages/repositories.html +1 -1
  144. package/dist/pages/repository.html +1 -1
  145. package/dist/pages/similarity-indexes.html +1 -1
  146. package/dist/pages/sparql-editor.html +1 -1
  147. package/dist/pages/sparql-template-create.html +1 -1
  148. package/dist/pages/ux-test1.html +2 -2
  149. package/dist/pages/webapi.html +2 -2
  150. package/dist/plugins.js +1 -1
  151. package/dist/res/swagger5/index.html +11 -11
  152. package/package.json +1 -1
  153. package/dist/34330.4b46c3a52d19f05fc0b2.bundle.js.map +0 -1
  154. package/dist/36665.19388ed0db6a1d64ad65.bundle.js +0 -2
  155. package/dist/36665.19388ed0db6a1d64ad65.bundle.js.map +0 -1
  156. package/dist/42143.c11e5c28f2b8e9952dbb.bundle.js +0 -2
  157. package/dist/42143.c11e5c28f2b8e9952dbb.bundle.js.map +0 -1
  158. package/dist/55217.4769c1f0615e364d8c2a.bundle.js.map +0 -1
  159. package/dist/67232.e76f40f9d09e64ebb365.bundle.js +0 -2
  160. package/dist/67232.e76f40f9d09e64ebb365.bundle.js.map +0 -1
  161. package/dist/70938.6d0055f916f6d1bc91bb.bundle.js +0 -2
  162. package/dist/70938.6d0055f916f6d1bc91bb.bundle.js.map +0 -1
  163. package/dist/76013.3211939a02cf4fb2529e.bundle.js +0 -2
  164. package/dist/76013.3211939a02cf4fb2529e.bundle.js.map +0 -1
  165. package/dist/86142.c29959b68edc59a9b696.bundle.js +0 -2
  166. package/dist/86142.c29959b68edc59a9b696.bundle.js.map +0 -1
  167. /package/dist/{legacyWorkbench.ffd119cc335034d736cc.js.LICENSE.txt → legacyWorkbench.ecf6300fd72cfffbcdb6.js.LICENSE.txt} +0 -0
@@ -4,14 +4,14 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
  <title>Swagger UI</title>
7
- <link rel="stylesheet" type="text/css" href="./swagger-ui.css?v=3.2.0-TR3" />
8
- <link rel="stylesheet" type="text/css" href="./index.css?v=3.2.0-TR3" />
9
- <link rel="icon" type="image/png" href="./favicon-32x32.png?v=3.2.0-TR3" sizes="32x32" />
10
- <link rel="icon" type="image/png" href="./favicon-16x16.png?v=3.2.0-TR3" sizes="16x16" />
11
- <link href='css/reset.css?v=3.2.0-TR3' media='screen' rel='stylesheet' type='text/css'/>
12
- <link href='css/screen.css?v=3.2.0-TR3' media='screen' rel='stylesheet' type='text/css'/>
13
- <link href='css/onto-theme.css?v=3.2.0-TR3' media='screen' rel='stylesheet' type='text/css'/>
14
- <link href='css/print.css?v=3.2.0-TR3' media='print' rel='stylesheet' type='text/css'/>
7
+ <link rel="stylesheet" type="text/css" href="./swagger-ui.css?v=3.2.0-TR4" />
8
+ <link rel="stylesheet" type="text/css" href="./index.css?v=3.2.0-TR4" />
9
+ <link rel="icon" type="image/png" href="./favicon-32x32.png?v=3.2.0-TR4" sizes="32x32" />
10
+ <link rel="icon" type="image/png" href="./favicon-16x16.png?v=3.2.0-TR4" sizes="16x16" />
11
+ <link href='css/reset.css?v=3.2.0-TR4' media='screen' rel='stylesheet' type='text/css'/>
12
+ <link href='css/screen.css?v=3.2.0-TR4' media='screen' rel='stylesheet' type='text/css'/>
13
+ <link href='css/onto-theme.css?v=3.2.0-TR4' media='screen' rel='stylesheet' type='text/css'/>
14
+ <link href='css/print.css?v=3.2.0-TR4' media='print' rel='stylesheet' type='text/css'/>
15
15
  </head>
16
16
 
17
17
  <body class="swagger-section">
@@ -20,8 +20,8 @@
20
20
  <br>
21
21
  <br>
22
22
  <div id="swagger-ui-container-rdf4j" class="swagger-ui-wrap"></div>
23
- <script src="./swagger-ui-bundle.js?v=3.2.0-TR3" charset="UTF-8"> </script>
24
- <script src="./swagger-ui-standalone-preset.js?v=3.2.0-TR3" charset="UTF-8"> </script>
25
- <script src="./swagger-initializer.js?v=3.2.0-TR3" charset="UTF-8"> </script>
23
+ <script src="./swagger-ui-bundle.js?v=3.2.0-TR4" charset="UTF-8"> </script>
24
+ <script src="./swagger-ui-standalone-preset.js?v=3.2.0-TR4" charset="UTF-8"> </script>
25
+ <script src="./swagger-initializer.js?v=3.2.0-TR4" charset="UTF-8"> </script>
26
26
  </body>
27
27
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphdb-workbench",
3
- "version": "3.2.0-TR3",
3
+ "version": "3.2.0-TR4",
4
4
  "description": "The web application for GraphDB APIs",
5
5
  "engines": {
6
6
  "node": ">=22.17"
@@ -1 +0,0 @@
1
- {"version":3,"file":"34330.4b46c3a52d19f05fc0b2.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/class-hierarchy/plugin.js"],"sourcesContent":["const reloadAndOpenInfoPanel = (services, clasInstanceSelector) => {\n services.RoutingUtil.navigate('/hierarchy');\n return services.GuideUtils.waitFor(clasInstanceSelector, 3)\n .then(() => {\n services.GuideUtils.classHierarchyFocus(clasInstanceSelector);\n // Wait a little time animation to complete.\n return services.GuideUtils.deferredShow(500)();\n });\n};\n\nconst disableAllRDFClasses = () => {\n document.querySelectorAll('.rdf-class')\n .forEach(el => {\n el.classList.add('disable-rdf-class');\n });\n};\n\nconst enableAllRDFClasses = () => {\n document.querySelectorAll('.rdf-class')\n .forEach(el => {\n el.classList.remove('disable-rdf-class');\n });\n};\n\nconst CLASS_HIERARCHY_DEFAULT_TITLE = 'view.class.hierarchy.title';\nconst CLASS_HIERARCHY_RDF_INSTANCES_DEFAULT_TITLE = 'guide.step_plugin.class-hierarchy-instances.title';\n\nPluginRegistry.add('guide.step', [\n {\n guideBlockName: 'class-hierarchy-intro',\n getSteps: (options) => {\n return [\n {\n guideBlockName: 'read-only-element',\n options: {\n content: 'guide.step_plugin.class-hierarchy-intro.content',\n url: 'hierarchy',\n elementSelector: '#classChart',\n placement: 'left',\n class: 'clas-hierarchy-intro',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n ...options\n }\n }\n ];\n }\n },\n {\n guideBlockName: 'class-hierarchy-dataset-intro',\n getSteps: (options) => {\n return [\n {\n guideBlockName: 'read-only-element',\n options: {\n url: 'hierarchy',\n elementSelector: '#classChart #main-group',\n placement: 'left',\n class: 'class-hierarchy-dataset-intro',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n ...options\n }\n }\n ];\n }\n },\n {\n guideBlockName: 'class-hierarchy-zoom-class',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const selector = GuideUtils.getGuideElementSelector('class-' + options.iri);\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n url: 'hierarchy',\n placement: 'left',\n elementSelector: selector,\n content: 'guide.step_plugin.class-hierarchy-zoom-class.content',\n class: 'class-hierarchy-zoom-class',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n onNextClick: (guide, step) => {\n GuideUtils.classHierarchyZoom(step.elementSelector);\n guide.next();\n },\n ...options\n }\n }\n ];\n }\n },\n {\n guideBlockName: 'class-hierarchy-explain-class',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const selector = GuideUtils.getGuideElementSelector('class-' + options.iri);\n return [\n {\n guideBlockName: 'read-only-element',\n options: {\n url: 'hierarchy',\n placement: 'left',\n elementSelector: selector,\n class: 'class-hierarchy-explain-class',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n show: () => disableAllRDFClasses,\n hide: () => enableAllRDFClasses,\n ...options\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'class-hierarchy-open-rdf-instances-side-panel',\n getSteps: (options, services) => {\n let element;\n const GuideUtils = services.GuideUtils;\n const selector = GuideUtils.getGuideElementSelector('class-' + options.iri);\n const RoutingUtil = services.RoutingUtil;\n const handleDoubleClick = () => (event) => {\n event.preventDefault();\n event.stopPropagation();\n // Ensure the side panel always appears\n return reloadAndOpenInfoPanel({RoutingUtil, GuideUtils}, selector);\n };\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.class-hierarchy-open-rdf-instances-side-panel.content',\n url: 'hierarchy',\n elementSelector: selector,\n class: 'class-hierarchy-open-rdf-instances-side-panel',\n placement: 'top',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n onNextClick: (guide) => {\n GuideUtils.classHierarchyFocus(selector);\n guide.next();\n },\n show: () => () => {\n // Add a \"dblclick\" listener to the element.\n // We have to open side panel info manually when a selected node is clicked.\n element = document.querySelector(selector);\n if (element) {\n element.addEventListener('dblclick', handleDoubleClick, true);\n }\n },\n hide: () => () => {\n if (element) {\n element.removeEventListener('dblclick', handleDoubleClick);\n element = null;\n }\n },\n ...options\n }\n }\n ];\n }\n },\n {\n guideBlockName: 'class-hierarchy-close-rdf-instances-side-panel',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const closeButtonSelector = GuideUtils.getGuideElementSelector('close-info-panel');\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.class-hierarchy-close-rdf-instances-side-panel.content',\n url: 'hierarchy',\n canBePaused: false,\n elementSelector: closeButtonSelector,\n class: 'class-hierarchy-close-rdf-instances-side-panel',\n placement: 'left',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_RDF_INSTANCES_DEFAULT_TITLE}),\n onNextClick: () => GuideUtils.waitFor(closeButtonSelector, 3)\n .then(() => GuideUtils.clickOnElement(closeButtonSelector)()),\n ...options\n }\n }\n ];\n }\n },\n {\n guideBlockName: 'class-hierarchy-rdf-instances-side-panel-intro',\n getSteps: (options) => {\n return [\n {\n guideBlockName: 'read-only-element',\n options: {\n content: 'guide.step_plugin.class-hierarchy-rdf-instances-side-panel-intro.content',\n url: 'hierarchy',\n elementSelector: '.rdf-info-side-panel div',\n class: 'class-hierarchy-rdf-instances-side-panel-intro',\n canBePaused: false,\n placement: 'left',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n ...options\n }\n }\n ];\n }\n },\n {\n guideBlockName: 'class-hierarchy-rdf-instances-side-panel-open-all-instances-in-sparql',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.class-hierarchy-rdf-instances-side-panel-open-all-instances-in-sparql.content',\n url: 'hierarchy',\n canBePaused: false,\n elementSelector: GuideUtils.getGuideElementSelector('instances-count'),\n class: 'class-hierarchy-rdf-instances-side-panel-open-all-instances-in-sparql',\n onNextClick: GuideUtils.clickOnGuideElement('instances-count'),\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n ...options\n }\n }\n ]\n }\n },\n {\n guideBlockName: \"class-hierarchy-explain-rdf-instance\",\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'read-only-element',\n options: {\n content: 'guide.step_plugin.class-hierarchy-explain-rdf-instance.content',\n url: 'hierarchy',\n canBePaused: false,\n elementSelector: GuideUtils.getGuideElementSelector('instance-' + options.instance),\n class: 'class-hierarchy-explain-rdf-instance',\n focusInstance: options.instance,\n extraContent: options.extraContent,\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n ...options\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'class-hierarchy-toggle-prefixes',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: CLASS_HIERARCHY_DEFAULT_TITLE}),\n content: 'guide.step_plugin.class-hierarchy-toggle-prefixes.content',\n url: 'hierarchy',\n elementSelector: '.prefix-toggle-btn',\n class: 'class-hierarchy-toggle-prefixes',\n scrollToHandler: GuideUtils.scrollToTop,\n onNextClick: (guide) => {\n GuideUtils.clickOnElement('.prefix-toggle-btn')();\n },\n ...options\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'class-hierarchy',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'class-hierarchy';\n\n const steps = [\n {\n guideBlockName: 'click-main-menu',\n options: angular.extend({}, {\n menu: 'class-hierarchy',\n showIntro: true\n }, options)\n }, {\n guideBlockName: 'class-hierarchy-intro',\n options: {...options}\n }\n ];\n\n if (options.introExtraContent) {\n steps.push({\n guideBlockName: 'class-hierarchy-dataset-intro',\n options: {\n content: options.introExtraContent,\n ...options\n }\n });\n }\n\n if (Array.isArray(options.zoomIris)) {\n options.zoomIris.forEach((zoomIri) => {\n steps.push({\n guideBlockName: 'class-hierarchy-zoom-class',\n options: {\n iri: zoomIri.iri,\n ...options,\n }\n });\n if (zoomIri.postExtraContent) {\n steps.push({\n guideBlockName: 'class-hierarchy-explain-class',\n options: {\n content: zoomIri.postExtraContent,\n beforeShowPromise: GuideUtils.deferredShow(800),\n iri: zoomIri.iri,\n ...options\n }\n });\n }\n });\n }\n\n return steps;\n }\n },\n {\n guideBlockName: 'class-hierarchy-instances',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const RoutingUtil = services.RoutingUtil;\n // If mainAction is set the title will be set automatically\n options.title = CLASS_HIERARCHY_RDF_INSTANCES_DEFAULT_TITLE;\n const closeButtonSelector = GuideUtils.getGuideElementSelector('close-info-panel');\n const clasInstanceSelector = GuideUtils.getGuideElementSelector('class-' + options.iri);\n const instanceCountSelector = GuideUtils.getGuideElementSelector('instances-count');\n const steps = [\n {\n guideBlockName: 'class-hierarchy-open-rdf-instances-side-panel',\n options: {\n initPreviousStep: () => {\n if (!GuideUtils.isVisible(closeButtonSelector)) {\n return reloadAndOpenInfoPanel({RoutingUtil, GuideUtils}, clasInstanceSelector);\n }\n\n return Promise.resolve();\n },\n ...options\n }\n },\n {\n guideBlockName: 'class-hierarchy-rdf-instances-side-panel-intro',\n options: {\n skipPoint: true,\n beforeShowPromise: GuideUtils.deferredShow(800),\n onPreviousClick: () => new Promise(function (resolve) {\n GuideUtils.waitFor(closeButtonSelector, 1)\n .then(() => $(closeButtonSelector).trigger('click'));\n resolve();\n }),\n ...options\n }\n }\n ];\n\n if (angular.isArray(options.focusInstances)) {\n options.focusInstances.forEach((focusInstance) => {\n if (!GuideUtils.isObject(focusInstance)) {\n focusInstance = {\n instance: focusInstance\n };\n }\n steps.push({\n guideBlockName: 'class-hierarchy-explain-rdf-instance',\n options: {\n instance: focusInstance.instance,\n extraContent: focusInstance.message,\n ...options\n }\n });\n });\n }\n\n\n if (options.followCountLink) {\n steps.push({\n guideBlockName: 'class-hierarchy-rdf-instances-side-panel-open-all-instances-in-sparql',\n options: {...options}\n });\n\n steps.push({\n guideBlockName: 'sparql-explain-editor',\n options: {\n content: 'guide.step_plugin.class-hierarchy-instances-query.content',\n ...options\n }\n });\n steps.push({\n guideBlockName: 'sparql-results-explain',\n options: angular.extend({}, {\n content: 'guide.step_plugin.class-hierarchy-instances-results.content',\n extraContent: options.showExtraCommentSparql !== false ? 'guide.step_plugin.class-hierarchy-instances-results.extraContent' : null,\n onNextClick: (guide) => {\n window.history.back();\n guide.next();\n },\n initPreviousStep: () => Promise.resolve()\n }, options)\n });\n }\n\n steps.push({\n guideBlockName: 'class-hierarchy-close-rdf-instances-side-panel',\n options: {\n // If we followed the count link we come back here from another view\n // and the side panel needs time to open\n beforeShowPromise: options.followCountLink ? GuideUtils.deferredShow(1500) : Promise.resolve(),\n initPreviousStep: (services, stepId) => {\n\n const currentStepId = services.ShepherdService.getCurrentStepId();\n // If method is called from same step just click count link\n if (currentStepId === stepId && options.followCountLink) {\n return GuideUtils.waitFor(instanceCountSelector, 3)\n .then(() => {\n $(instanceCountSelector).trigger('click');\n return GuideUtils.waitFor(GuideUtils.CSS_SELECTORS.SPARQL_RESULTS_SELECTOR, 3)\n .then(() => GuideUtils.deferredShow(50)());\n });\n }\n // If is called from other step we have to reload and open the info panel.\n return reloadAndOpenInfoPanel({RoutingUtil, GuideUtils}, clasInstanceSelector);\n },\n ...options\n }\n });\n\n return steps;\n }\n }\n]);\n"],"names":["reloadAndOpenInfoPanel","services","clasInstanceSelector","RoutingUtil","navigate","GuideUtils","waitFor","then","classHierarchyFocus","deferredShow","disableAllRDFClasses","document","querySelectorAll","forEach","el","classList","add","enableAllRDFClasses","remove","CLASS_HIERARCHY_DEFAULT_TITLE","CLASS_HIERARCHY_RDF_INSTANCES_DEFAULT_TITLE","PluginRegistry","guideBlockName","getSteps","options","content","url","elementSelector","placement","class","mainAction","title","getGuideElementSelector","iri","onNextClick","guide","step","classHierarchyZoom","next","show","hide","element","selector","handleDoubleClick","event","preventDefault","stopPropagation","querySelector","addEventListener","removeEventListener","closeButtonSelector","canBePaused","clickOnElement","clickOnGuideElement","instance","focusInstance","extraContent","scrollToHandler","scrollToTop","steps","angular","extend","menu","showIntro","introExtraContent","push","Array","isArray","zoomIris","zoomIri","postExtraContent","beforeShowPromise","instanceCountSelector","initPreviousStep","isVisible","Promise","resolve","skipPoint","onPreviousClick","$","trigger","focusInstances","isObject","message","followCountLink","showExtraCommentSparql","window","history","back","stepId","ShepherdService","getCurrentStepId","CSS_SELECTORS","SPARQL_RESULTS_SELECTOR"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=36665;export const __webpack_ids__=[14702,36665,45458,51490,64871,87252,89358,92561,96089];export const __webpack_modules__={14702:(t,e,s)=>{s.r(e),s.d(e,{agentInstructionsExplainMapper:()=>n});var a=s(89358);const n=t=>t?t.map(t=>new a.AgentInstructionsExplain(t)):new a.AgentInstructionsExplainList([])},19402:(t,e,s)=>{s.r(e),s.d(e,{ChatByDayModel:()=>r,ChatModel:()=>i,ChatsListModel:()=>o});var a=s(63415),n=s(93135);class i{static getNewChat(){const t={name:"· · ·",timestamp:Math.floor(Date.now()/1e3),new:!0};return new i(t,(0,n.md5HashGenerator)())}constructor(t,e){this.hashGenerator=e,this._id=t.id,this._name=t.name,this._timestamp=t.timestamp,this._chatHistory=t.chatHistory||new a.ChatItemsListModel,this._new=void 0!==t.new&&t.new,this.hash=this.generateHash()}isNew(){return this._new}set new(t){this._new=t}generateHash(){return this.hashGenerator(JSON.stringify(this))}get id(){return this._id}set id(t){this._id=t}get name(){return this._name}set name(t){this.generateHash(),this._name=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get chatHistory(){return this._chatHistory}set chatHistory(t){this._chatHistory=t||new a.ChatItemsListModel}toRenameRequestPayload(){return{name:this._name}}}class r{constructor(t){this._day=t.day,this._timestamp=t.timestamp,this._chats=t.chats}get day(){return this._day}set day(t){this._day=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get chats(){return this._chats}set chats(t){this._chats=t}}class o{constructor(t){this._chats=t||[],this._chatsByDay=[],this.sortByTime(),this.updateChatsByDay()}containsNewChats(){return this._chats.some(t=>t.isNew())}sortByTime(){this._chats.sort((t,e)=>e.timestamp-t.timestamp)}updateChatTimestamp(t,e){const s=this._chats.find(e=>e.id===t);s&&(s.timestamp=e,this.sortByTime(),this.updateChatsByDay())}setChatAsOld(t){const e=this._chats.find(e=>e.id===t);e&&(e.new=!1)}updateChatName(t,e){const s=this._chats.find(e=>e.id===t);s&&(s.name=e)}deleteChat(t){this._chats=this._chats.filter(e=>e.id!==t.id),this.sortByTime(),this.updateChatsByDay()}updateChatsByDay(){this._chatsByDay=[],this._chats.forEach(t=>{const e=new Date(1e3*t.timestamp).toDateString(),s=this._chatsByDay.find(t=>t.day===e);s?s.chats.push(t):this._chatsByDay.push(new r({day:e,timestamp:1e3*t.timestamp,chats:[t]}))})}appendChat(t){this._chats.push(t),this.sortByTime(),this.updateChatsByDay()}replaceChat(t,e){this._chats=this._chats.map(s=>s.id===e.id?t:s),this.sortByTime(),this.updateChatsByDay()}isEmpty(){return 0===this._chats.length}getFirstChat(){return this._chats[0]}deselectAll(){this._chats.forEach(t=>{t.selected=!1})}selectChat(t){this.deselectAll(),this._chats.forEach(e=>{e.selected=e.id===t.id})}getChat(t){return this._chats.find(e=>e.id===t)}getNonPersistedChat(){return this._chats.find(t=>!t.id)}renameChat(t){const e=this._chats.find(e=>e.id===t.id);e&&(e.name=t.name)}get chats(){return this._chats}set chats(t){this._chats=t}get chatsByDay(){return this._chatsByDay}set chatsByDay(t){this._chatsByDay=t}}},36665:(t,e,s)=>{s.r(e);var a=s(85609),n=(s(96089),s(85788)),i=s(51490),r=s(92561),o=s(14702);function h(t,e){return{createChat:e=>t.createChat(e).then(t=>t.data.conversationId),getConversation:e=>t.getConversation(e).then(t=>(0,a.chatModelMapper)(t.data)),renameConversation:e=>t.renameConversation(e.id,e.toRenameRequestPayload()).then(t=>(0,a.chatModelMapper)(t.data)),exportConversation:e=>t.exportConversation(e).then(function(t){const e=t.data,s=t.headers()["content-disposition"];let a="chat-export";return s&&(a=s.split("filename=")[1],a=a.substring(0,a.length)),{data:e,filename:a}}),askQuestion:e=>t.askQuestion(e.toAskRequestPayload()).then(t=>(0,n.chatAnswerModelMapper)(t.data)),continueChatRun:e=>{const s=e.toContinueRunRequestPayload();return t.continueChatRun(s).then(t=>(0,n.chatAnswerModelMapper)(t.data))},getConversations:(e,s)=>t.getConversations().then(t=>(0,a.chatsListMapper)(t.data)),deleteConversation:e=>t.deleteConversation(e),createConversation:e=>t.createConversation(e.toCreateChatRequestPayload()).then(t=>(0,n.chatAnswerModelMapper)(t.data)),cancelPendingQuestion:e=>t.cancelPendingQuestion(e),getAgents:()=>{const s=e.getLocalReadablGraphdbRepositoryIds();return t.getAgents().then(t=>(0,i.agentListMapper)(t.data,s))},getAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.getAgent(s).then(t=>(0,i.agentModelMapper)(t.data,a))},createAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.createAgent(s).then(t=>(0,i.agentModelMapper)(t.data,a))},editAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.editAgent(s).then(t=>(0,i.agentModelMapper)(t.data,a))},deleteAgent:e=>t.deleteAgent(e),explainResponse:(e,s)=>t.explainResponse(e.toExplainResponsePayload(s)).then(t=>(0,r.explainResponseMapper)(t.data)),getDefaultAgent:()=>{const s=e.getLocalReadablGraphdbRepositoryIds();return t.getAgentDefaultValues().then(t=>(0,i.agentModelMapper)(t.data,s))},explainAgentSettings:e=>t.explainAgentSettings(e).then(t=>(0,o.agentInstructionsExplainMapper)(t.data))}}angular.module("graphdb.framework.core.services.ttyg-service",["graphdb.framework.rest.ttyg.service"]).factory("TTYGService",h),h.$inject=["TTYGRestService","$repositories"]},45458:(t,e,s)=>{s.r(e),s.d(e,{ChatAnswerModel:()=>a,ContinueChatRun:()=>n});class a{constructor(t={}){this._chatId=t.chatId,this._chatName=t.chatName||"",this._timestamp=t.timestamp,this._messages=t.messages||[],this._continueRunId=t.continueRunId,this.tokenUsageInfo=t.tokenUsageInfo}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get chatName(){return this._chatName}set chatName(t){this._chatName=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get messages(){return this._messages}set messages(t){this._messages=t}get continueRunId(){return this._continueRunId}set continueRunId(t){this._continueRunId=t}}class n{constructor(t,e){this._chatItem=t,this._runId=e}get chatId(){return this._chatItem.chatId}toContinueRunRequestPayload(){return{conversationId:this.chatId,runId:this._runId,agentId:this._chatItem.agentId,tzOffset:-(new Date).getTimezoneOffset()}}}},51490:(t,e,s)=>{s.r(e),s.d(e,{agentFormModelMapper:()=>h,agentListMapper:()=>u,agentModelMapper:()=>l});var a=s(28319),n=s(23283),i=s(38940),r=s(93135),o=s(70826);const h=(t,e,s)=>{if(!t)return;const i=new n.AgentFormModel;return i.id=t.id||e.id,i.name=t.name||e.name,i.repositoryId=t.repositoryId||e.repositoryId,i.model=t.model||e.model,i.contextSize=t.contextSize||e.contextSize,i.contextSizeCopy=e.contextSize,i.temperature.value=void 0!==t.temperature?t.temperature:e.temperature,i.topP.value=void 0!==t.topP?t.topP:e.topP,i.seed=t.seed||e.seed,i.instructions=d(t.instructions,e.instructions),c(i,s,e.assistantExtractionMethods,t.assistantExtractionMethods),function(t,e,s){if(!t)return;const i=t.map(s=>{let i={method:s.method||e.method,expanded:s.expanded||e.expanded};return s.method!==a.AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH&&s.method!==a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH||(i.selected=t.some(t=>t.method===s.method)),s.method===a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH&&(i.maxNumberOfResultsPerCall=s._maxNumberOfResultsPerCall||e.maxNumberOfResultsPerCall),new n.AdditionalExtractionMethodFormModel(i)});s.additionalExtractionMethods.setAdditionalExtractionMethod(i)}(t.additionalExtractionMethods,e.additionalExtractionMethods,i),i},d=(t,e)=>{if(!t&&!e)return;const s=t&&t.systemInstruction||e.systemInstruction,a=t&&t.userInstruction||e.userInstruction;return new n.AgentInstructionsFormModel({systemInstruction:s,userInstruction:a,defaultSystemInstruction:e.systemInstruction,defaultUserInstruction:e.userInstruction})},c=(t,e,s,a=[])=>{const r=s.filter(t=>!a.some(e=>e.method===t.method)),h=s.find(t=>"sparql_search"===t.method);[...a,...r].forEach(s=>{const r=a.some(t=>t.method===s.method);let d="";r&&"sparql_search"===s.method&&(o.AGENT_OPERATION.CREATE===e?d="":s.sparqlQuery?d="sparqlQuery":s.ontologyGraph&&(d="ontologyGraph"));const c=e===o.AGENT_OPERATION.EDIT||e===o.AGENT_OPERATION.CLONE,u=new n.ExtractionMethodFormModel({selected:c&&r,method:s.method,sparqlOption:d,ontologyGraph:s.ontologyGraph||h.ontologyGraph,addMissingNamespaces:s.addMissingNamespaces,sparqlQuery:new i.TextFieldModel({value:s.sparqlQuery||h.sparqlQuery,minLength:1,maxLength:2380}),similarityIndex:s.similarityIndex,similarityIndexThreshold:s.similarityIndexThreshold&&new i.NumericRangeModel({value:s.similarityIndexThreshold,minValue:0,maxValue:1,step:.1}),maxNumberOfTriplesPerCall:0===s.maxNumberOfTriplesPerCall?null:s.maxNumberOfTriplesPerCall,queryTemplate:s.queryTemplate&&new i.TextFieldModel({value:s.queryTemplate,minLength:1,maxLength:2380}),retrievalConnectorInstance:s.retrievalConnectorInstance});t.assistantExtractionMethods.setExtractionMethod(u)})},u=(t,e)=>{if(!t)return new a.AgentListModel;const s=t.map(t=>l(t,e));return new a.AgentListModel(s)},l=(t,e)=>{if(!t)return;const s=(0,r.md5HashGenerator)();return new a.AgentModel({id:t.id,name:t.name,repositoryId:t.repositoryId,isRepositoryDeleted:!e.includes(t.repositoryId),model:t.model,contextSize:"openai-assistants"===t.api?null:t.contextSize,temperature:t.temperature,topP:t.topP,seed:t.seed,instructions:y(t.instructions),assistantExtractionMethods:m(t.assistantExtractionMethods),additionalExtractionMethods:g(t.additionalExtractionMethods),compatibility:t.compatibility},s)},m=t=>{if(t)return t.map(t=>p(t))},p=t=>{if(t)return new a.ExtractionMethodModel({method:t.method,ontologyGraph:t.ontologyGraph,addMissingNamespaces:t.addMissingNamespaces,sparqlQuery:t.sparqlQuery,similarityIndex:t.similarityIndex,similarityIndexThreshold:t.similarityIndexThreshold,maxNumberOfTriplesPerCall:t.maxNumberOfTriplesPerCall,queryTemplate:t.queryTemplate,retrievalConnectorInstance:t.retrievalConnectorInstance})},g=t=>{if(t)return t.map(t=>_(t))},_=t=>{if(t)return t.method===a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH?new a.AdditionalExtractionMethodModel({method:t.method,maxNumberOfResultsPerCall:t.limit||0}):t.method===a.AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH?new a.AdditionalExtractionMethodModel({method:t.method}):void 0},y=t=>{if(t)return new a.AgentInstructionsModel({systemInstruction:t.systemInstruction,userInstruction:t.userInstruction})}},63415:(t,e,s)=>{s.r(e),s.d(e,{ChatItemModel:()=>n,ChatItemsListModel:()=>i});var a=s(36633);class n{constructor(t,e){this._chatId=t,this._agentId=void 0,this._question=e,this._answers=[]}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get agentId(){return this._agentId}set agentId(t){this._agentId=t}get question(){return this._question}set question(t){this._question=t}get answers(){return this._answers}set answers(t){this._answers=t}setQuestionMessage(t){this._question||(this._question=new a.ChatMessageModel({role:a.CHAT_MESSAGE_ROLE.USER})),this._question.message=t}getQuestionMessage(){return this._question.message}toCreateChatRequestPayload(){return{agentId:this._agentId,question:this._question.message}}toAskRequestPayload(){return{conversationId:this._chatId,agentId:this._agentId,question:this._question.message,tzOffset:-(new Date).getTimezoneOffset()}}toExplainResponsePayload(t){return{conversationId:this._chatId,answerId:t}}}class i{constructor(t=[]){this._items=t}isEmpty(){return 0===this._items.length}appendItem(t){this._items.push(t)}get items(){return this._items}set items(t){this._items=t||[]}getLast(){if(!this.isEmpty())return this._items[this._items.length-1]}}},85609:(t,e,s)=>{s.r(e),s.d(e,{chatModelMapper:()=>d,chatsListMapper:()=>h});var a=s(19402),n=s(93135),i=s(85788),r=s(63415);const o=(0,n.md5HashGenerator)(),h=t=>{if(!t)return new a.ChatsListModel;const e=t.map(t=>d(t));return new a.ChatsListModel(e)},d=t=>{if(t)return new a.ChatModel({id:t.id,name:t.name,timestamp:t.timestamp,chatHistory:t.messages&&t.messages.length?(0,i.chatItemsModelMapper)(t.messages):new r.ChatItemsListModel},o)}},85788:(t,e,s)=>{s.r(e),s.d(e,{chatAnswerModelMapper:()=>d,chatItemsModelMapper:()=>o,chatMessageModelListMapper:()=>r,chatMessageModelMapper:()=>h});var a=s(36633),n=s(63415),i=s(45458);const r=t=>t?t.map(t=>h(t)):[],o=(t=[])=>{const e=[];let s;return t.forEach(t=>{const i=t.conversationId;a.CHAT_MESSAGE_ROLE.USER===t.role?(s&&e.push(s),s=new n.ChatItemModel(i,h(t))):(s||(s=new n.ChatItemModel(i,null)),s.answers.push(h(t)),s.agentId=t.agentId)}),s&&e.push(s),new n.ChatItemsListModel(e)},h=t=>{if(t)return new a.ChatMessageModel({id:t.id,role:t.role,message:t.message,timestamp:t.timestamp,tokenUsageInfo:t.usage,data:t,isTerminalState:t.isTerminalState,status:t.terminalStatusCode})},d=t=>{if(t)return new i.ChatAnswerModel({chatId:t.id,chatName:t.name,timestamp:t.timestamp,messages:r(t.messages),continueRunId:t.continueRunId,tokenUsageInfo:t.usage})}},87252:(t,e,s)=>{s.r(e),s.d(e,{ExplainQueryMethodModel:()=>i,ExplainQueryMethodsListModel:()=>n,ExplainQueryType:()=>r,ExplainResponseModel:()=>a});class a{constructor(t={}){this._chatId=t.chatId,this._answerId=t.answerId,this._queryMethods=t.queryMethods,this._expanded=void 0===t.expanded||t.expanded}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get answerId(){return this._answerId}set answerId(t){this._answerId=t}get queryMethods(){return this._queryMethods}set queryMethods(t){this._queryMethods=t}get expanded(){return this._expanded}set expanded(t){this._expanded=t}}class n{constructor(t=[]){this._items=t}get items(){return this._items}set items(t){this._items=t}}class i{constructor(t={}){this._name=t.name,this._rawQuery=t.rawQuery,this._query=t.query,this._queryType=t.queryType,this._errorMessage=t.errorOutput}get name(){return this._name}set name(t){this._name=t}get rawQuery(){return this._rawQuery}set rawQuery(t){this._rawQuery=t}get query(){return this._query}set query(t){this._query=t}get queryType(){return this._queryType}set queryType(t){this._queryType=t}get errorMessage(){return this._errorMessage}set errorMessage(t){this._errorMessage=t}}const r={SPARQL:"sparql",JSON:"json",OTHER:"other"}},89358:(t,e,s)=>{s.r(e),s.d(e,{AgentInstructionsExplain:()=>a,AgentInstructionsExplainList:()=>n});class a{constructor(t){this._type=t.type,this._content=t.content,this._size=t.size}get size(){return this._size}set size(t){this._size=t}get content(){return this._content}set content(t){this._content=t}get type(){return this._type}set type(t){this._type=t}}class n{constructor(t){this._instructions=t.instructions}get instructions(){return this._instructions}set instructions(t){this._instructions=t}}},92561:(t,e,s)=>{s.r(e),s.d(e,{explainQueryMethodMapper:()=>r,explainQueryMethodsListMapper:()=>i,explainResponseMapper:()=>n});var a=s(87252);const n=t=>new a.ExplainResponseModel({chatId:t.conversationId,answerId:t.answerId,queryMethods:i(t.queryMethods)}),i=(t=[])=>new a.ExplainQueryMethodsListModel(t.map(r)),r=t=>new a.ExplainQueryMethodModel(t)},96089:(t,e,s)=>{s.r(e);var a=s(73964);angular.module("graphdb.framework.rest.ttyg.service",[]).factory("TTYGRestService",d),d.$inject=["$http"];const n="rest/chat/conversations",i="rest/chat/agents",r=`${n}/explain`,o="rest/chat/chats",h=!1;function d(t){const e=new a.TtygRestServiceFakeBackend;return{createChat:s=>h?e.createChat():t.post(o,s),getConversation:s=>h?e.getConversation(s):t.get(`${n}/${s}`),renameConversation:(s,a)=>h?e.renameConversation(s,a):t.put(`${n}/${s}`,a),exportConversation:s=>h?e.exportConversation(s):t.get(`${n}/export/${s}`,{responseType:"blob"}),askQuestion:s=>h?e.askQuestion(s):t.post(`${o}/question`,s),continueChatRun:s=>h?e.continueChatRun(s):t.post(`${n}/continue`,s),getConversations:()=>h?e.getConversations():t.get(n),deleteConversation:s=>h?e.deleteConversation(s):t.delete(`${n}/${s}`),createConversation:(s={})=>h?e.createConversation(s):t.post(n,s),cancelPendingQuestion:s=>h?e.cancelPendingQuestion(!1):t.post(`${o}/${s}/cancel`),getAgents:()=>h?e.getAgents():t.get(i),getAgent:s=>h?e.getAgent(s):t.get(`${i}/${s}`),createAgent:s=>h?e.createAgent(s):t.post(i,s),editAgent:s=>h?e.editAgent(s):t.put(`${i}`,s),deleteAgent:s=>h?e.deleteAgent(s):t.delete(`${i}/${s}`),explainResponse:(s={})=>h?e.explainResponse(s):t.post(r,s),getAgentDefaultValues:()=>h?e.getAgentDefaultValues():t.get(`${i}/default`),explainAgentSettings:s=>h?e.explainAgentSettings():t.post(`${i}/explain`,s)}}}};
2
- //# sourceMappingURL=36665.19388ed0db6a1d64ad65.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"36665.19388ed0db6a1d64ad65.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/agent-instruction-explain.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chats.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/services/ttyg.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-answer.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/agents.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-item.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/chats.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/chat-message.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/explain-response.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/agent-instructions-explain.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/explain.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/ttyg.rest.service.js"],"sourcesContent":["import {AgentInstructionsExplain, AgentInstructionsExplainList} from \"../../models/ttyg/agent-instructions-explain\";\n\n/**\n * Maps the response from the backend to the AgentInstructionsExplainList model.\n * @param {*} data\n * @return {AgentInstructionsExplainList}\n */\nexport const agentInstructionsExplainMapper = (data) => {\n if (!data) {\n return new AgentInstructionsExplainList([]);\n }\n return data.map((instruction) => new AgentInstructionsExplain(instruction));\n};\n","import {ChatItemsListModel} from \"./chat-item\";\nimport {md5HashGenerator} from \"../../utils/hash-utils\";\n\nexport class ChatModel {\n static getNewChat() {\n const data = {\n name: \"\\u00B7 \\u00B7 \\u00B7\",\n timestamp: Math.floor(Date.now() / 1000),\n new: true\n };\n return new ChatModel(data, md5HashGenerator());\n }\n\n constructor(data, hashGenerator) {\n this.hashGenerator = hashGenerator;\n\n /**\n * @type {string}\n */\n this._id = data.id;\n\n /**\n * @type {string}\n */\n this._name = data.name;\n\n /**\n * @type {number}\n */\n this._timestamp = data.timestamp;\n\n /**\n * @type {ChatItemsListModel}\n */\n this._chatHistory = data.chatHistory || new ChatItemsListModel();\n this._new = data.new !== undefined ? data.new : false;\n this.hash = this.generateHash();\n }\n\n isNew() {\n return this._new;\n }\n\n set new(value) {\n this._new = value;\n }\n\n generateHash() {\n return this.hashGenerator(JSON.stringify(this));\n }\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this._id = value;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this.generateHash();\n this._name = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get chatHistory() {\n return this._chatHistory;\n }\n\n set chatHistory(value) {\n this._chatHistory = value || new ChatItemsListModel();\n }\n\n /**\n * Converts the instance to a rename chat request payload.\n * This request object contains the new name for renaming the chat.\n *\n * @return {{name: string}} An object representing the rename request payload.\n */\n toRenameRequestPayload() {\n return {name: this._name};\n }\n}\n\nexport class ChatByDayModel {\n constructor(data) {\n this._day = data.day;\n /**\n * @type {number}\n * @private\n */\n this._timestamp = data.timestamp;\n /**\n * @type {ChatModel[]|*}\n * @private\n */\n this._chats = data.chats;\n }\n\n get day() {\n return this._day;\n }\n\n set day(value) {\n this._day = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get chats() {\n return this._chats;\n }\n\n set chats(value) {\n this._chats = value;\n }\n}\n\nexport class ChatsListModel {\n constructor(chats) {\n /**\n * @type {ChatModel[]}\n * @private\n */\n this._chats = chats || [];\n /**\n * @type {ChatByDayModel[]}\n * @private\n */\n this._chatsByDay = [];\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n /**\n * Checks if there is at least one new chat.\n *\n * @returns {boolean} True if any chat is marked as new, otherwise false.\n */\n containsNewChats() {\n return this._chats.some((chat) => chat.isNew());\n }\n\n /**\n * Sorts the list of chats by timestamp in descending order, with the newest items on top.\n */\n sortByTime() {\n this._chats.sort((a, b) => {\n return b.timestamp - a.timestamp;\n });\n }\n\n /**\n * Updates the timestamp of a chat in the list.\n * @param {string} chatId\n * @param {number} timestamp\n */\n updateChatTimestamp(chatId, timestamp) {\n const chat = this._chats.find((c) => c.id === chatId);\n if (chat) {\n chat.timestamp = timestamp;\n this.sortByTime();\n this.updateChatsByDay();\n }\n }\n\n /**\n * Marks the specified chat as no longer new.\n *\n * @param {string} chatId - The ID of the chat to update.\n */\n setChatAsOld(chatId) {\n const chat = this._chats.find((chat) => chat.id === chatId);\n if (chat) {\n chat.new = false;\n }\n }\n\n /**\n * Updates the name of a chat in the list.\n * @param {string} chatId\n * @param {string} name\n */\n updateChatName(chatId, name) {\n const chat = this._chats.find((c) => c.id === chatId);\n if (chat) {\n chat.name = name;\n }\n }\n\n /**\n * Deletes a chat from the chat list.\n * @param {ChatModel} chatToBeDeleted\n */\n deleteChat(chatToBeDeleted) {\n this._chats = this._chats.filter((chat) => chat.id !== chatToBeDeleted.id);\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n updateChatsByDay() {\n this._chatsByDay = [];\n // group chats by day\n this._chats.forEach((chat) => {\n const day = new Date(chat.timestamp * 1000).toDateString();\n const dayModel = this._chatsByDay.find((d) => d.day === day);\n if (dayModel) {\n dayModel.chats.push(chat);\n } else {\n this._chatsByDay.push(new ChatByDayModel({day: day, timestamp: chat.timestamp * 1000, chats: [chat]}));\n }\n });\n }\n\n appendChat(chat) {\n this._chats.push(chat);\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n replaceChat(newChat, oldChat) {\n this._chats = this._chats.map((chat) => {\n if (chat.id === oldChat.id) {\n return newChat;\n }\n return chat;\n });\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n /**\n * Checks if the chat list is empty.\n * @return {boolean}\n */\n isEmpty() {\n return this._chats.length === 0;\n }\n\n /**\n * Returns the first chat from the list.\n * @return {ChatModel|undefined}\n */\n getFirstChat() {\n return this._chats[0];\n }\n\n /**\n * Deselects all chats.\n */\n deselectAll() {\n this._chats.forEach((c) => {\n c.selected = false;\n });\n }\n\n /**\n * Selects a chat.\n * @param {ChatModel} chat\n */\n selectChat(chat) {\n this.deselectAll();\n this._chats.forEach((c) => {\n c.selected = c.id === chat.id;\n });\n }\n\n getChat(id) {\n return this._chats.find((c) => c.id === id);\n }\n\n getNonPersistedChat() {\n return this._chats.find((chat) => !chat.id);\n }\n\n renameChat(renamedChat) {\n const chat = this._chats.find((c) => c.id === renamedChat.id);\n if (chat) {\n chat.name = renamedChat.name;\n }\n }\n\n /**\n * @return {ChatModel[]}\n */\n get chats() {\n return this._chats;\n }\n\n /**\n * @param {ChatModel[]} value\n */\n set chats(value) {\n this._chats = value;\n }\n\n get chatsByDay() {\n return this._chatsByDay;\n }\n\n set chatsByDay(value) {\n this._chatsByDay = value;\n }\n}\n","import {chatModelMapper, chatsListMapper} from \"../../ttyg/services/chats.mapper\";\nimport 'angular/rest/ttyg.rest.service';\nimport {chatAnswerModelMapper} from \"../../ttyg/services/chat-message.mapper\";\nimport {agentListMapper, agentModelMapper} from \"../../ttyg/services/agents.mapper\";\nimport {explainResponseMapper} from \"../../ttyg/services/explain.mapper\";\nimport {agentInstructionsExplainMapper} from \"../../ttyg/services/agent-instruction-explain.mapper\";\n\nconst modules = ['graphdb.framework.rest.ttyg.service'];\n\nangular\n .module('graphdb.framework.core.services.ttyg-service', modules)\n .factory('TTYGService', TTYGService);\n\nTTYGService.$inject = ['TTYGRestService', '$repositories'];\n\nfunction TTYGService(TTYGRestService, $repositories) {\n /**\n * Creates a new chat.\n * @param {ChatItemModel} chatItem\n * @returns {Promise<string>} A promise that resolves with the newly created chat ID.\n */\n const createChat = (chatItem) => {\n return TTYGRestService.createChat(chatItem)\n .then((response) => response.data.conversationId);\n };\n\n const getConversations = (savedQueryName, owner) => {\n return TTYGRestService.getConversations()\n .then((response) => chatsListMapper(response.data));\n };\n\n /**\n * Loads a conversation by its ID.\n * @param {string} id\n * @return {Promise<ChatModel>}\n */\n const getConversation = (id) => {\n return TTYGRestService.getConversation(id)\n .then((response) => chatModelMapper(response.data));\n };\n\n /**\n * Renames the conversation (<code>chart</code>).\n * @param {ChatModel} chat - the conversation to be renamed.\n * @return {*}\n */\n const renameConversation = (chat) => {\n return TTYGRestService.renameConversation(chat.id, chat.toRenameRequestPayload())\n .then((response) => chatModelMapper(response.data));\n };\n\n /**\n * Exports the conversation (<code>chart</code>).\n * @param {string} id - the conversation to be exported.\n * @return {Promise<{Blob, string}>} Returns the conversation as a Blob and the filename wrapped in a Promise\n * */\n const exportConversation = (id) => {\n return TTYGRestService.exportConversation(id)\n .then(function(res) {\n const data = res.data;\n const headers = res.headers();\n const contentDispositionHeader = headers['content-disposition'];\n let filename = 'chat-export';\n if (contentDispositionHeader) {\n filename = contentDispositionHeader.split('filename=')[1];\n filename = filename.substring(0, filename.length);\n }\n return {data, filename};\n });\n };\n\n /**\n * Asks a question.\n * @param {ChatItemModel} chatItem\n * @return {Promise<ChatAnswerModel>} the answer of the question.\n */\n const askQuestion = (chatItem) => {\n return TTYGRestService.askQuestion(chatItem.toAskRequestPayload())\n .then((response) => chatAnswerModelMapper(response.data));\n };\n\n /**\n * Continues a chat run. In essence continue means \"fetch more answers\".\n * @param {ContinueChatRun} continueData .\n * @return {Promise<ChatAnswerModel>} the next answer in the run.\n */\n const continueChatRun = (continueData) => {\n const payload = continueData.toContinueRunRequestPayload();\n return TTYGRestService.continueChatRun(payload)\n .then((response) => chatAnswerModelMapper(response.data));\n };\n\n /**\n * Deletes a conversation by its ID.\n * @param {string} id\n * @return {Promise<void>}\n */\n const deleteConversation = (id) => {\n return TTYGRestService.deleteConversation(id);\n };\n\n /**\n * Cancels a pending question within a chat.\n *\n * @param {string|number} chatId - The unique identifier of the chat containing the pending question to be canceled.\n * @returns {Promise} A promise that resolves when the pending question has been successfully canceled,\n * or rejects with an error.\n */\n const cancelPendingQuestion = (chatId) => {\n return TTYGRestService.cancelPendingQuestion(chatId);\n };\n\n /**\n * Creates a new conversation. The creation of a chat and asking a question share the same endpoint. If the request payload\n * doesn't contain the chat ID, the backend will create a new chat and return the answer, which includes the ID of the created chat.\n *\n * @param {ChatItemModel} chatItem - The conversation data.\n * @return {Promise<ChatAnswerModel>} The answer of the question.\n */\n const createConversation = (chatItem) => {\n return TTYGRestService.createConversation(chatItem.toCreateChatRequestPayload())\n .then((response) => chatAnswerModelMapper(response.data));\n };\n\n /**\n * Loads all agents from the server and converts the response to a list of AgentModels.\n * @return {Promise<AgentListModel>}\n */\n const getAgents = () => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.getAgents()\n .then((response) => {\n return agentListMapper(response.data, localRepositories);\n });\n };\n\n /**\n * Loads an agent by its ID.\n * @param {string} id\n * @return {Promise<AgentModel|undefined>}\n */\n const getAgent = (id) => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.getAgent(id)\n .then((response) => agentModelMapper(response.data, localRepositories));\n };\n\n /**\n * Creates a new agent.\n * @param {*} payload - the agent data\n * @return {Promise<AgentModel>} created agent;\n */\n const createAgent = (payload) => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.createAgent(payload)\n .then((response) => {\n return agentModelMapper(response.data, localRepositories);\n });\n };\n\n /**\n * Updates the agent with the provided <code>payload</code>.\n * @param {*} payload - The data for updating the agent.\n * @return {Promise<AgentModel>} A promise that resolves to the updated agent.\n */\n const editAgent = (payload) => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.editAgent(payload)\n .then((response) => {\n return agentModelMapper(response.data, localRepositories);\n });\n };\n\n /**\n * Deletes an agent by its ID.\n * @param {string} id\n * @return {Promise<void>|*}\n */\n const deleteAgent = (id) => {\n return TTYGRestService.deleteAgent(id);\n };\n\n /**\n * Returns an explanation of how the answer was generated.\n * @param {ChatItemModel} chatItem\n * @param {string} answerId\n * @return {ExplainResponseModel}\n */\n const explainResponse = (chatItem, answerId) => {\n return TTYGRestService.explainResponse(chatItem.toExplainResponsePayload(answerId))\n .then((response) => {\n return explainResponseMapper(response.data);\n });\n };\n\n /**\n * Get the default agent values from server.\n * @return {Promise<AgentModel>}\n */\n const getDefaultAgent = () => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.getAgentDefaultValues()\n .then((response) => {\n return agentModelMapper(response.data, localRepositories);\n });\n };\n\n /**\n * Calls the backend server to fetch an explanation of how the agent settings were generated.\n * @param {*} payload - payload generated by the agent settings form model.\n * @return {Promise<unknown>}\n */\n const explainAgentSettings = (payload) => {\n return TTYGRestService.explainAgentSettings(payload)\n .then((response) => {\n return agentInstructionsExplainMapper(response.data);\n });\n };\n\n return {\n createChat,\n getConversation,\n renameConversation,\n exportConversation,\n askQuestion,\n continueChatRun,\n getConversations,\n deleteConversation,\n createConversation,\n cancelPendingQuestion,\n getAgents,\n getAgent,\n createAgent,\n editAgent,\n deleteAgent,\n explainResponse,\n getDefaultAgent,\n explainAgentSettings,\n };\n}\n","export class ChatAnswerModel {\n constructor(data = {}) {\n /**\n * @type {string | undefined}\n */\n this._chatId = data.chatId;\n\n /**\n * @type {string}\n */\n this._chatName = data.chatName || '';\n\n /**\n * @type {number}\n */\n this._timestamp = data.timestamp;\n\n /**\n * @type {ChatMessageModel[]}\n */\n this._messages = data.messages || [];\n\n /**\n * @type {string}\n */\n this._continueRunId = data.continueRunId;\n\n /**\n * Holds information about the number of tokens used for this answer, including prompt and completion tokens.\n *\n * @type {TokenUsageInfo}\n */\n this.tokenUsageInfo = data.tokenUsageInfo;\n }\n\n get chatId() {\n return this._chatId;\n }\n\n set chatId(value) {\n this._chatId = value;\n }\n\n get chatName() {\n return this._chatName;\n }\n\n set chatName(value) {\n this._chatName = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get messages() {\n return this._messages;\n }\n\n set messages(value) {\n this._messages = value;\n }\n\n get continueRunId() {\n return this._continueRunId;\n }\n\n set continueRunId(value) {\n this._continueRunId = value;\n }\n}\n\n/**\n * Represents information on continuing the chat run, i.e., fetching answers iteratively after\n * asking until the last answer is received.\n */\nexport class ContinueChatRun {\n constructor(chatItem, runId) {\n this._chatItem = chatItem;\n this._runId = runId;\n }\n\n get chatId() {\n return this._chatItem.chatId;\n }\n\n toContinueRunRequestPayload() {\n return {\n conversationId: this.chatId,\n runId: this._runId,\n agentId: this._chatItem.agentId,\n tzOffset: -new Date().getTimezoneOffset() // offsets are reversed here hence the minus\n };\n }\n}\n","import {\n AdditionalExtractionMethod,\n AdditionalExtractionMethodModel,\n AgentInstructionsModel,\n AgentListModel,\n AgentModel,\n ExtractionMethodModel\n} from '../../models/ttyg/agents';\nimport {\n AdditionalExtractionMethodFormModel,\n AgentFormModel,\n AgentInstructionsFormModel,\n ExtractionMethodFormModel\n} from '../../models/ttyg/agent-form';\nimport {NumericRangeModel, TextFieldModel} from '../../models/form-fields';\nimport {md5HashGenerator} from '../../utils/hash-utils';\nimport {AGENT_OPERATION} from \"./constants\";\n\n/**\n * Converts an agent model to an agent form model.\n * @param {AgentModel} agentModel\n * @param {AgentModel} defaultAgentModel\n * @param {string} operation\n * @return {AgentFormModel}\n */\nexport const agentFormModelMapper = (agentModel, defaultAgentModel, operation ) => {\n if (!agentModel) {\n return;\n }\n const agentFormModel = new AgentFormModel();\n agentFormModel.id = agentModel.id || defaultAgentModel.id;\n agentFormModel.name = agentModel.name || defaultAgentModel.name;\n agentFormModel.repositoryId = agentModel.repositoryId || defaultAgentModel.repositoryId;\n agentFormModel.model = agentModel.model || defaultAgentModel.model;\n agentFormModel.contextSize = agentModel.contextSize || defaultAgentModel.contextSize;\n agentFormModel.contextSizeCopy = defaultAgentModel.contextSize;\n agentFormModel.temperature.value = agentModel.temperature !== undefined ? agentModel.temperature : defaultAgentModel.temperature;\n agentFormModel.topP.value = agentModel.topP !== undefined ? agentModel.topP : defaultAgentModel.topP;\n agentFormModel.seed = agentModel.seed || defaultAgentModel.seed;\n agentFormModel.instructions = agentInstructionsFormMapper(agentModel.instructions, defaultAgentModel.instructions);\n extractionMethodsFormMapper(agentFormModel, operation, defaultAgentModel.assistantExtractionMethods, agentModel.assistantExtractionMethods);\n // Select additional methods if they are present in the list returned from the backend (BE).\n additionalExtractionMethodsFormMapper(agentModel.additionalExtractionMethods, defaultAgentModel.additionalExtractionMethods, agentFormModel);\n return agentFormModel;\n};\n\n/**\n * @param {AgentInstructionsModel} currentAgentModelInstructions\n * @param {AgentInstructionsModel} defaultInstructions\n * @return {AgentInstructionsFormModel}\n */\nconst agentInstructionsFormMapper = (currentAgentModelInstructions, defaultInstructions) => {\n if (!currentAgentModelInstructions && !defaultInstructions) {\n return;\n }\n const systemInstruction = currentAgentModelInstructions && currentAgentModelInstructions.systemInstruction || defaultInstructions.systemInstruction;\n const userInstruction = currentAgentModelInstructions && currentAgentModelInstructions.userInstruction || defaultInstructions.userInstruction;\n return new AgentInstructionsFormModel({\n systemInstruction: systemInstruction,\n userInstruction: userInstruction,\n defaultSystemInstruction: defaultInstructions.systemInstruction,\n defaultUserInstruction: defaultInstructions.userInstruction\n });\n};\n\n/**\n * @param {AgentFormModel} agentFormModel\n * @param {string} operation\n * @param {ExtractionMethodModel[]} defaultData\n * @param {ExtractionMethodModel[]} data\n */\nconst extractionMethodsFormMapper = (agentFormModel, operation, defaultData, data = []) => {\n const defaultExtractionMethods = defaultData.filter((defaultExtractionMethod) => !data.some((agentMethod) => agentMethod.method === defaultExtractionMethod.method));\n const defaultSparqlMethodValues = defaultData.find((defaultExtractionMethod) => defaultExtractionMethod.method === 'sparql_search');\n const extractionMethods = [...data, ...defaultExtractionMethods];\n extractionMethods.forEach((extractionMethod) => {\n const isMethodSelected = data.some((method) => method.method === extractionMethod.method);\n // The sparqlOption is applicable only for the sparql_search method.\n let sparqlOption = '';\n if (isMethodSelected && extractionMethod.method === 'sparql_search') {\n if (AGENT_OPERATION.CREATE === operation) {\n sparqlOption = '';\n } else if (extractionMethod.sparqlQuery) {\n sparqlOption = 'sparqlQuery';\n } else if (extractionMethod.ontologyGraph) {\n sparqlOption = 'ontologyGraph';\n }\n }\n // In edit and clone operations we have an existing agent instance, so we should show the selected methods from it.\n const shouldShowSelectedMethods = operation === AGENT_OPERATION.EDIT || operation === AGENT_OPERATION.CLONE;\n const existingMethod = new ExtractionMethodFormModel({\n selected: shouldShowSelectedMethods && isMethodSelected,\n method: extractionMethod.method,\n sparqlOption: sparqlOption,\n ontologyGraph: extractionMethod.ontologyGraph || defaultSparqlMethodValues.ontologyGraph,\n addMissingNamespaces: extractionMethod.addMissingNamespaces,\n sparqlQuery: new TextFieldModel({\n value: extractionMethod.sparqlQuery || defaultSparqlMethodValues.sparqlQuery,\n minLength: 1,\n maxLength: 2380\n }),\n similarityIndex: extractionMethod.similarityIndex,\n similarityIndexThreshold: extractionMethod.similarityIndexThreshold && new NumericRangeModel({\n value: extractionMethod.similarityIndexThreshold,\n minValue: 0,\n maxValue: 1,\n step: 0.1\n }),\n // In case backend returns 0 as a default value this means that there is no limit, so we set the null in order\n // to show the placeholder in the input field.\n maxNumberOfTriplesPerCall: extractionMethod.maxNumberOfTriplesPerCall === 0 ? null : extractionMethod.maxNumberOfTriplesPerCall,\n queryTemplate: extractionMethod.queryTemplate && new TextFieldModel({\n value: extractionMethod.queryTemplate,\n minLength: 1,\n maxLength: 2380\n }),\n retrievalConnectorInstance: extractionMethod.retrievalConnectorInstance\n });\n agentFormModel.assistantExtractionMethods.setExtractionMethod(existingMethod);\n });\n};\n\n/**\n * @param {AdditionalExtractionMethodsModel} additionalExtractionMethodsResponse\n * @param {AdditionalExtractionMethodsModel} defaultAdditionalExtractionMethodData\n * @param {AgentFormModel} agentFormModel\n */\nfunction additionalExtractionMethodsFormMapper(additionalExtractionMethodsResponse, defaultAdditionalExtractionMethodData, agentFormModel) {\n // No Additional extraction methods on new agent creation\n if (!additionalExtractionMethodsResponse) {\n return;\n }\n const additionalExtractionMethods = additionalExtractionMethodsResponse.map(method => {\n let data = {\n method: method.method || defaultAdditionalExtractionMethodData.method,\n expanded: method.expanded || defaultAdditionalExtractionMethodData.expanded,\n };\n if (method.method === AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH || method.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH) {\n data.selected = additionalExtractionMethodsResponse.some((agentMethod) => agentMethod.method === method.method);\n }\n\n if (method.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH) {\n data.maxNumberOfResultsPerCall = method._maxNumberOfResultsPerCall || defaultAdditionalExtractionMethodData.maxNumberOfResultsPerCall;\n }\n return new AdditionalExtractionMethodFormModel(data);\n });\n agentFormModel.additionalExtractionMethods.setAdditionalExtractionMethod(additionalExtractionMethods);\n}\n\n/**\n * Converts the response from the server to a list of AgentModel.\n * @param {*[]} data\n * @param {string[]} localRepositoryIds\n * @return {AgentListModel}\n */\nexport const agentListMapper = (data, localRepositoryIds) => {\n if (!data) {\n return new AgentListModel();\n }\n const agentModels = data\n .map((agent) => agentModelMapper(agent, localRepositoryIds));\n return new AgentListModel(agentModels);\n};\n\nexport const agentModelMapper = (data, localRepositoryIds) => {\n if (!data) {\n return;\n }\n const hashGenerator = md5HashGenerator();\n return new AgentModel({\n id: data.id,\n name: data.name,\n repositoryId: data.repositoryId,\n // Sets the isRepositoryDeleted flag based on whether the repository ID is not in the list of repositories.\n isRepositoryDeleted: !localRepositoryIds.includes(data.repositoryId),\n model: data.model,\n contextSize: data.api === 'openai-assistants' ? null : data.contextSize,\n temperature: data.temperature,\n topP: data.topP,\n seed: data.seed,\n instructions: agentInstructionsMapper(data.instructions),\n assistantExtractionMethods: extractionMethodsMapper(data.assistantExtractionMethods),\n additionalExtractionMethods: additionalExtractionMethodsMapper(data.additionalExtractionMethods),\n compatibility: data.compatibility,\n }, hashGenerator);\n};\n\nconst extractionMethodsMapper = (data) => {\n if (!data) {\n return;\n }\n return data.map((extractionMethod) => extractionMethodMapper(extractionMethod));\n};\n\nconst extractionMethodMapper = (data) => {\n if (!data) {\n return;\n }\n return new ExtractionMethodModel({\n method: data.method,\n ontologyGraph: data.ontologyGraph,\n addMissingNamespaces: data.addMissingNamespaces,\n sparqlQuery: data.sparqlQuery,\n similarityIndex: data.similarityIndex,\n similarityIndexThreshold: data.similarityIndexThreshold,\n maxNumberOfTriplesPerCall: data.maxNumberOfTriplesPerCall,\n queryTemplate: data.queryTemplate,\n retrievalConnectorInstance: data.retrievalConnectorInstance\n });\n};\n\nconst additionalExtractionMethodsMapper = (data) => {\n if (!data) {\n return;\n }\n return data.map((additionalExtractionMethod) => additionalExtractionMethodMapper(additionalExtractionMethod));\n};\n\nconst additionalExtractionMethodMapper = (data) => {\n if (!data) {\n return;\n }\n if (data.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH) {\n return new AdditionalExtractionMethodModel({\n method: data.method,\n maxNumberOfResultsPerCall: data.limit || 0\n });\n } else if (data.method === AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH) {\n return new AdditionalExtractionMethodModel({\n method: data.method\n });\n }\n};\n\nconst agentInstructionsMapper = (data) => {\n if (!data) {\n return;\n }\n return new AgentInstructionsModel({\n systemInstruction: data.systemInstruction,\n userInstruction: data.userInstruction\n });\n};\n","import {CHAT_MESSAGE_ROLE, ChatMessageModel} from \"./chat-message\";\n\n/**\n *\n * Represents a model that holds a question and the answer of it in a chat.\n *\n */\nexport class ChatItemModel {\n\n /**\n * Creates an instance of ChatItemModel.\n *\n * @param {string} chatId - The unique identifier for the chat associated with this instance.\n * @param {ChatMessageModel} question - The message object representing the question.\n */\n constructor(chatId, question) {\n\n /**\n * @type {string | undefined}\n * @private\n */\n this._chatId = chatId;\n\n /**\n * @type {string | undefined}\n * @private\n */\n this._agentId = undefined;\n\n /**\n * @type {ChatMessageModel}\n * @private\n */\n this._question = question;\n\n /**\n *\n * @type {ChatMessageModel[] | undefined}\n * @private\n */\n this._answers = [];\n }\n\n get chatId() {\n return this._chatId;\n }\n\n set chatId(value) {\n this._chatId = value;\n }\n\n get agentId() {\n return this._agentId;\n }\n\n set agentId(value) {\n this._agentId = value;\n }\n\n get question() {\n return this._question;\n }\n\n set question(value) {\n this._question = value;\n }\n\n get answers() {\n return this._answers;\n }\n\n /**\n *\n * @param {ChatMessageModel[]} value\n */\n set answers(value) {\n this._answers = value;\n }\n\n /**\n * Sets the message for the user's question.\n *\n * @param {string} message - The message content for the user's question.\n */\n setQuestionMessage(message) {\n if (!this._question) {\n this._question = new ChatMessageModel({role: CHAT_MESSAGE_ROLE.USER});\n }\n this._question.message = message;\n }\n\n /**\n * Retrieves the message of the user's question.\n *\n * @return {string} - The message content of the user's question.\n */\n getQuestionMessage() {\n return this._question.message;\n }\n\n /**\n * Converts the instance to a create chat request payload.\n *\n * @return {{agentId: string, question: string}} An object representing the create request payload.\n */\n toCreateChatRequestPayload() {\n return {\n agentId: this._agentId,\n question: this._question.message\n };\n }\n\n /**\n * Converts the instance to an ask request payload.\n *\n * @return {{conversationId: string, agentId: string, question: string}} An object representing the ask request payload.\n */\n toAskRequestPayload() {\n return {\n conversationId: this._chatId,\n agentId: this._agentId,\n question: this._question.message,\n tzOffset: -new Date().getTimezoneOffset() // offsets are reversed here hence the minus\n };\n }\n\n toExplainResponsePayload(answerId) {\n return {\n conversationId: this._chatId,\n answerId\n };\n }\n}\n\nexport class ChatItemsListModel {\n\n /**\n * @param {ChatItemModel[]} items\n */\n constructor(items = []) {\n this._items = items;\n }\n\n isEmpty() {\n return this._items.length === 0;\n }\n\n /**\n * @param {ChatItemModel} chatItem\n */\n appendItem(chatItem) {\n this._items.push(chatItem);\n }\n\n get items() {\n return this._items;\n }\n\n set items(value) {\n this._items = value || [];\n }\n\n getLast() {\n if (!this.isEmpty()) {\n return this._items[this._items.length - 1];\n }\n }\n}\n","import {ChatsListModel, ChatModel} from \"../../models/ttyg/chats\";\nimport {md5HashGenerator} from \"../../utils/hash-utils\";\nimport {chatItemsModelMapper} from \"./chat-message.mapper\";\nimport {ChatItemsListModel} from \"../../models/ttyg/chat-item\";\n\nconst hashGenerator = md5HashGenerator();\n\n/**\n * Converts the response from the server to a list of ChatModels.\n * @param {*[]} data\n * @return {ChatsListModel}\n */\nexport const chatsListMapper = (data) => {\n if (!data) {\n return new ChatsListModel();\n }\n const chatModels = data.map((chat) => chatModelMapper(chat));\n return new ChatsListModel(chatModels);\n};\n\n/**\n * Converts the response from the server to a ChatModel.\n * @param {*} data\n * @return {ChatModel|undefined}\n */\nexport const chatModelMapper = (data) => {\n if (!data) {\n return;\n }\n return new ChatModel({\n id: data.id,\n name: data.name,\n timestamp: data.timestamp,\n chatHistory: data.messages && data.messages.length ? chatItemsModelMapper(data.messages) : new ChatItemsListModel()\n }, hashGenerator);\n};\n","import {CHAT_MESSAGE_ROLE, ChatMessageModel} from \"../../models/ttyg/chat-message\";\nimport {ChatItemModel, ChatItemsListModel} from \"../../models/ttyg/chat-item\";\nimport {ChatAnswerModel} from \"../../models/ttyg/chat-answer\";\n\n/**\n * Converts the response from the server to a list of ChatMessageModel array.\n * @param {*[]} data\n * @return {ChatMessageModel[]}\n */\nexport const chatMessageModelListMapper = (data) => {\n if (!data) {\n return [];\n }\n return data.map((chatMessage) => chatMessageModelMapper(chatMessage));\n};\n\n/**\n * Maps a list of chat messages into an instance of {@see ChatItemsListModel}, which contains a list of `ChatItemModel` objects. Each object represents a question (from the user) and its corresponding answer (from the agent).\n * The backend returns messages as individual entries, and this function transforms those entries into objects that pair each question with its answer.\n *\n * @param {Array<Object>} data - An array of message objects, where each message contains details such as the role (user or assistant) and the message content.\n * @return {ChatItemsListModel} An instance of `ChatItemsListModel` containing a list of `ChatItemModel` objects, where each object holds a question and its corresponding answer.\n *\n * @example\n * // Example message data from the backend\n * const data = [\n * { role: 'user', conversationId: '123', agentId: 'agent-1', message: 'What is the weather?', timestamp: 1628876583 },\n * { role: 'assistant', conversationId: '123', agentId: 'agent-1', message: 'The weather is sunny.', timestamp: 1628876590 }\n * ];\n *\n * // Example of the resulting ChatItemsListModel array\n * const items = [\n * {\n * conversationId: '123',\n * agentId: 'agent-1',\n * question: {\n * role: 'user',\n * message: 'What is the weather?',\n * timestamp: 1628876583\n * },\n * answer: {\n * role: 'assistant',\n * message: 'The weather is sunny.',\n * timestamp: 1628876590\n * }\n * }]\n */\nexport const chatItemsModelMapper = (data = []) => {\n const items = [];\n let currentItem;\n data.forEach((message) => {\n // NOTE: The backend chat model doesn't have a ChatItemModel object,\n // i.e. it doesn't group user + assistant messages together.\n // In essence, there may be multiple consecutive user messages as well as\n // multiple consecutive assistant messages.\n const chatId = message.conversationId;\n if (CHAT_MESSAGE_ROLE.USER === message.role) {\n if (currentItem) {\n items.push(currentItem);\n }\n currentItem = new ChatItemModel(chatId, chatMessageModelMapper(message));\n } else {\n if (!currentItem) {\n currentItem = new ChatItemModel(chatId, null);\n }\n currentItem.answers.push(chatMessageModelMapper(message));\n currentItem.agentId = message.agentId;\n }\n });\n if (currentItem) {\n items.push(currentItem);\n }\n return new ChatItemsListModel(items);\n};\n\n/**\n * Converts the response from the server to a ChatMessageModel.\n * @param {*} data\n * @return {ChatMessageModel|undefined}\n */\nexport const chatMessageModelMapper = (data) => {\n if (!data) {\n return;\n }\n return new ChatMessageModel({\n id: data.id,\n role: data.role,\n message: data.message,\n timestamp: data.timestamp,\n tokenUsageInfo: data.usage,\n data: data,\n isTerminalState: data.isTerminalState,\n status: data.terminalStatusCode\n });\n};\n\n/**\n * Converts the response from the server to a ChatAnswerModel instance.\n * @param {*} data\n * @return {ChatAnswerModel|undefined}\n */\nexport const chatAnswerModelMapper = (data) => {\n if (!data) {\n return;\n }\n return new ChatAnswerModel({\n chatId: data.id,\n chatName: data.name,\n timestamp: data.timestamp,\n messages: chatMessageModelListMapper(data.messages),\n continueRunId: data.continueRunId,\n tokenUsageInfo: data.usage\n });\n};\n","export class ExplainResponseModel {\n constructor(data = {}) {\n\n /**\n * @type {string}\n */\n this._chatId = data.chatId;\n\n /**\n * @type {string}\n */\n this._answerId = data.answerId;\n\n /**\n * @type {ExplainQueryMethodsListModel}\n */\n this._queryMethods = data.queryMethods;\n\n this._expanded = data.expanded !== undefined ? data.expanded : true;\n }\n\n get chatId() {\n return this._chatId;\n }\n\n set chatId(value) {\n this._chatId = value;\n }\n\n get answerId() {\n return this._answerId;\n }\n\n set answerId(value) {\n this._answerId = value;\n }\n\n get queryMethods() {\n return this._queryMethods;\n }\n\n set queryMethods(value) {\n this._queryMethods = value;\n }\n\n get expanded() {\n return this._expanded;\n }\n\n set expanded(value) {\n this._expanded = value;\n }\n}\n\nexport class ExplainQueryMethodsListModel {\n constructor(data = []) {\n this._items = data;\n }\n\n get items() {\n return this._items;\n }\n\n set items(value) {\n this._items = value;\n }\n}\n\nexport class ExplainQueryMethodModel {\n constructor(data = {}) {\n /**\n * @type {ExtractionMethod.FTS_SEARCH | ExtractionMethod.RETRIEVAL | ExtractionMethod.SPARQL | ExtractionMethod.SIMILARITY}\n */\n this._name = data.name;\n\n /**\n * @type {string}\n */\n this._rawQuery = data.rawQuery;\n\n /**\n * @type {string}\n */\n this._query = data.query;\n\n /**\n * @Type {ExplainQueryType}\n * @private\n */\n this._queryType = data.queryType;\n\n /**\n * @type {string | null}\n * @private\n */\n this._errorMessage = data.errorOutput;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n\n get rawQuery() {\n return this._rawQuery;\n }\n\n set rawQuery(value) {\n this._rawQuery = value;\n }\n\n get query() {\n return this._query;\n }\n\n set query(value) {\n this._query = value;\n }\n\n get queryType() {\n return this._queryType;\n }\n\n set queryType(value) {\n this._queryType = value;\n }\n\n get errorMessage() {\n return this._errorMessage;\n }\n\n set errorMessage(value) {\n this._errorMessage = value;\n }\n}\n\nexport const ExplainQueryType = {\n SPARQL: 'sparql',\n JSON: 'json',\n OTHER: 'other'\n};\n","export class AgentInstructionsExplain {\n constructor(data) {\n /**\n * @type {string}\n * @private\n */\n this._type = data.type;\n /**\n * @type {string}\n * @private\n */\n this._content = data.content;\n /**\n * @type {number}\n * @private\n */\n this._size = data.size;\n }\n\n get size() {\n return this._size;\n }\n\n set size(value) {\n this._size = value;\n }\n get content() {\n return this._content;\n }\n\n set content(value) {\n this._content = value;\n }\n get type() {\n return this._type;\n }\n\n set type(value) {\n this._type = value;\n }\n}\n\nexport class AgentInstructionsExplainList {\n constructor(data) {\n /**\n * @type {AgentInstructionsExplain[]}\n * @private\n */\n this._instructions = data.instructions;\n }\n\n get instructions() {\n return this._instructions;\n }\n\n set instructions(value) {\n this._instructions = value;\n }\n}\n","import {\n ExplainQueryMethodModel,\n ExplainQueryMethodsListModel,\n ExplainResponseModel\n} from \"../../models/ttyg/explain-response\";\n\n/**\n * Converts the response from the server to a ExplainResponseModel.\n *\n * @param {*} data\n * @return {ExplainResponseModel}\n */\nexport const explainResponseMapper = (data) => {\n return new ExplainResponseModel({\n chatId: data.conversationId,\n answerId: data.answerId,\n queryMethods: explainQueryMethodsListMapper(data.queryMethods)\n });\n};\n\n/**\n * Converts the response from the server to a ExplainQueryMethodsListModel.\n *\n * @param {*} data\n * @return {ExplainQueryMethodsListModel}\n */\nexport const explainQueryMethodsListMapper = (data = []) => {\n return new ExplainQueryMethodsListModel(data.map(explainQueryMethodMapper));\n};\n\n/**\n * Converts the response from the server to a ExplainQueryMethodModel.\n *\n * @param {*} data\n * @return {ExplainQueryMethodModel}\n */\nexport const explainQueryMethodMapper = (data) => {\n return new ExplainQueryMethodModel(data);\n};\n","import {TtygRestServiceFakeBackend} from './ttyg.rest.service.fake.backend';\n\nangular\n .module('graphdb.framework.rest.ttyg.service', [])\n .factory('TTYGRestService', TTYGRestService);\n\nTTYGRestService.$inject = ['$http'];\n\nconst CONVERSATIONS_ENDPOINT = 'rest/chat/conversations';\nconst AGENTS_ENDPOINT = 'rest/chat/agents';\nconst EXPLAIN_RESPONSE_ENDPOINT = `${CONVERSATIONS_ENDPOINT}/explain`;\nconst CHATS_ENDPOINT = 'rest/chat/chats';\n\nconst DEVELOPMENT = false;\n\nfunction TTYGRestService($http) {\n const _fakeBackend = new TtygRestServiceFakeBackend();\n\n /**\n * Creates a new chat.\n * @param {*} data the payload\n * @returns {Promise<string>} A promise that resolves with the newly created chat ID.\n */\n const createChat = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.createChat();\n }\n return $http.post(CHATS_ENDPOINT, data);\n };\n\n const getConversations = () => {\n if (DEVELOPMENT) {\n return _fakeBackend.getConversations();\n }\n return $http.get(CONVERSATIONS_ENDPOINT);\n };\n\n /**\n * Loads a conversation by its ID.\n * @param {string} id\n * @return {Promise<*>}\n */\n const getConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.getConversation(id);\n }\n return $http.get(`${CONVERSATIONS_ENDPOINT}/${id}`);\n };\n\n /**\n * Calls the REST API to rename the conversation.\n *\n * Bear in mind that the backend doesn't return the whole conversation object, but only the name and the ID.\n *\n * @param {string} id - the conversation ID\n * @param {{name: string}} data - request payload containing the new name\n * @return {Promise<{name: string, id: string}>}\n */\n const renameConversation = (id, data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.renameConversation(id, data);\n }\n return $http.put(`${CONVERSATIONS_ENDPOINT}/${id}`, data);\n };\n\n /**\n * Exports a conversation by its ID.\n * @param {string} id\n * @return {Promise<{Blob}>} Returns the conversation as a Blob\n */\n const exportConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.exportConversation(id);\n }\n return $http.get(`${CONVERSATIONS_ENDPOINT}/export/${id}`, {responseType: 'blob'});\n };\n\n /**\n * Calls the REST API to ask a question.\n * @param {*} data the payload\n * @return {*}\n */\n const askQuestion = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.askQuestion(data);\n }\n return $http.post(`${CHATS_ENDPOINT}/question`, data);\n };\n\n /**\n * Calls the REST API to continue a chat run.\n * @param {*} data\n * @return {*}\n */\n const continueChatRun = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.continueChatRun(data);\n }\n return $http.post(`${CONVERSATIONS_ENDPOINT}/continue`, data);\n };\n\n /**\n * Deletes a conversation by its ID.\n * @param {string} id\n * @return {Promise<void>}\n */\n const deleteConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.deleteConversation(id);\n }\n return $http.delete(`${CONVERSATIONS_ENDPOINT}/${id}`);\n };\n\n /**\n * Creates a new conversation.\n * @param {*} data - the data to be sent to the backend\n * @return {Promise<*>}\n */\n const createConversation = (data = {}) => {\n if (DEVELOPMENT) {\n return _fakeBackend.createConversation(data);\n }\n return $http.post(CONVERSATIONS_ENDPOINT, data);\n };\n\n /**\n * Cancels a pending question within a chat.\n *\n * @param {string|number} chatId - The unique identifier of the chat containing the pending question to be canceled.\n * @returns {Promise} A promise that resolves when the pending question has been successfully canceled,\n * or rejects with an error.\n */\n const cancelPendingQuestion = (chatId) => {\n if (DEVELOPMENT) {\n return _fakeBackend.cancelPendingQuestion(false);\n }\n return $http.post(`${CHATS_ENDPOINT}/${chatId}/cancel`);\n };\n\n /**\n * Fetches agents from the backend.\n * @return {Promise<*>|*}\n */\n const getAgents = () => {\n if (DEVELOPMENT) {\n // return _fakeBackend.simulateHttpError();\n return _fakeBackend.getAgents();\n // return new Promise((resolve) => {\n // setTimeout(() => resolve(_fakeBackend.getAgents()), 3000);\n // });\n }\n return $http.get(AGENTS_ENDPOINT);\n };\n\n /**\n * Fetches an agent by its ID from the backend.\n * @param {string} id\n * @return {Promise<Awaited<{data: T}>>|*}\n */\n const getAgent = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.getAgent(id);\n }\n return $http.get(`${AGENTS_ENDPOINT}/${id}`);\n };\n\n /**\n * Creates a new agent in the backend.\n * @param {*} agent\n * @return {Promise<AgentModel>}\n */\n const createAgent = (agent) => {\n if (DEVELOPMENT) {\n return _fakeBackend.createAgent(agent);\n }\n return $http.post(AGENTS_ENDPOINT, agent);\n };\n\n /**\n * Updates the specified <code>agent</code>.\n * @param {AgentModel} agent - The agent to be updated.\n * @return {Promise<AgentModel>} A promise that resolves the updated agent.\n */\n const editAgent = (agent) => {\n if (DEVELOPMENT) {\n return _fakeBackend.editAgent(agent);\n }\n return $http.put(`${AGENTS_ENDPOINT}`, agent);\n };\n\n /**\n * Deletes an agent by its ID from the backend.\n * @param {string} id\n * @return {Promise<void>}\n */\n const deleteAgent = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.deleteAgent(id);\n }\n return $http.delete(`${AGENTS_ENDPOINT}/${id}`);\n };\n\n /**\n * Calls backend server to fetch an explanation of how the answer was generated.\n * @param {*} data\n * @return {Promise}\n */\n const explainResponse = (data = {}) => {\n if (DEVELOPMENT) {\n return _fakeBackend.explainResponse(data);\n }\n return $http.post(EXPLAIN_RESPONSE_ENDPOINT, data);\n };\n\n /**\n * Calls the backend server to fetch the default values for an agent.\n * @return {Promise}\n */\n const getAgentDefaultValues = () => {\n if (DEVELOPMENT) {\n return _fakeBackend.getAgentDefaultValues();\n }\n return $http.get(`${AGENTS_ENDPOINT}/default`);\n };\n\n /**\n * Calls the backend server to fetch an explanation of how the agent settings were generated.\n * @param {*} data\n * @return {Promise}\n */\n const explainAgentSettings = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.explainAgentSettings();\n }\n return $http.post(`${AGENTS_ENDPOINT}/explain`, data);\n };\n\n\n return {\n createChat,\n getConversation,\n renameConversation,\n exportConversation,\n askQuestion,\n continueChatRun,\n getConversations,\n deleteConversation,\n createConversation,\n cancelPendingQuestion,\n getAgents,\n getAgent,\n createAgent,\n editAgent,\n deleteAgent,\n explainResponse,\n getAgentDefaultValues,\n explainAgentSettings,\n };\n}\n"],"names":["agentInstructionsExplainMapper","data","map","instruction","AgentInstructionsExplain","AgentInstructionsExplainList","ChatModel","getNewChat","name","timestamp","Math","floor","Date","now","new","md5HashGenerator","constructor","hashGenerator","this","_id","id","_name","_timestamp","_chatHistory","chatHistory","ChatItemsListModel","_new","undefined","hash","generateHash","isNew","value","JSON","stringify","toRenameRequestPayload","ChatByDayModel","_day","day","_chats","chats","ChatsListModel","_chatsByDay","sortByTime","updateChatsByDay","containsNewChats","some","chat","sort","a","b","updateChatTimestamp","chatId","find","c","setChatAsOld","updateChatName","deleteChat","chatToBeDeleted","filter","forEach","toDateString","dayModel","d","push","appendChat","replaceChat","newChat","oldChat","isEmpty","length","getFirstChat","deselectAll","selected","selectChat","getChat","getNonPersistedChat","renameChat","renamedChat","chatsByDay","TTYGService","TTYGRestService","$repositories","createChat","chatItem","then","response","conversationId","getConversation","chatModelMapper","renameConversation","exportConversation","res","contentDispositionHeader","headers","filename","split","substring","askQuestion","toAskRequestPayload","chatAnswerModelMapper","continueChatRun","continueData","payload","toContinueRunRequestPayload","getConversations","savedQueryName","owner","chatsListMapper","deleteConversation","createConversation","toCreateChatRequestPayload","cancelPendingQuestion","getAgents","localRepositories","getLocalReadablGraphdbRepositoryIds","agentListMapper","getAgent","agentModelMapper","createAgent","editAgent","deleteAgent","explainResponse","answerId","toExplainResponsePayload","explainResponseMapper","getDefaultAgent","getAgentDefaultValues","explainAgentSettings","angular","module","factory","$inject","ChatAnswerModel","_chatId","_chatName","chatName","_messages","messages","_continueRunId","continueRunId","tokenUsageInfo","ContinueChatRun","runId","_chatItem","_runId","agentId","tzOffset","getTimezoneOffset","agentFormModelMapper","agentModel","defaultAgentModel","operation","agentFormModel","AgentFormModel","repositoryId","model","contextSize","contextSizeCopy","temperature","topP","seed","instructions","agentInstructionsFormMapper","extractionMethodsFormMapper","assistantExtractionMethods","additionalExtractionMethodsResponse","defaultAdditionalExtractionMethodData","additionalExtractionMethods","method","expanded","AdditionalExtractionMethod","IRI_DISCOVERY_SEARCH","AUTOCOMPLETE_IRI_DISCOVERY_SEARCH","agentMethod","maxNumberOfResultsPerCall","_maxNumberOfResultsPerCall","AdditionalExtractionMethodFormModel","setAdditionalExtractionMethod","additionalExtractionMethodsFormMapper","currentAgentModelInstructions","defaultInstructions","systemInstruction","userInstruction","AgentInstructionsFormModel","defaultSystemInstruction","defaultUserInstruction","defaultData","defaultExtractionMethods","defaultExtractionMethod","defaultSparqlMethodValues","extractionMethod","isMethodSelected","sparqlOption","AGENT_OPERATION","CREATE","sparqlQuery","ontologyGraph","shouldShowSelectedMethods","EDIT","CLONE","existingMethod","ExtractionMethodFormModel","addMissingNamespaces","TextFieldModel","minLength","maxLength","similarityIndex","similarityIndexThreshold","NumericRangeModel","minValue","maxValue","step","maxNumberOfTriplesPerCall","queryTemplate","retrievalConnectorInstance","setExtractionMethod","localRepositoryIds","AgentListModel","agentModels","agent","AgentModel","isRepositoryDeleted","includes","api","agentInstructionsMapper","extractionMethodsMapper","additionalExtractionMethodsMapper","compatibility","extractionMethodMapper","ExtractionMethodModel","additionalExtractionMethod","additionalExtractionMethodMapper","AdditionalExtractionMethodModel","limit","AgentInstructionsModel","ChatItemModel","question","_agentId","_question","_answers","answers","setQuestionMessage","message","ChatMessageModel","role","CHAT_MESSAGE_ROLE","USER","getQuestionMessage","items","_items","appendItem","getLast","chatModels","chatItemsModelMapper","chatMessageModelListMapper","chatMessage","chatMessageModelMapper","currentItem","usage","isTerminalState","status","terminalStatusCode","ExplainResponseModel","_answerId","_queryMethods","queryMethods","_expanded","ExplainQueryMethodsListModel","ExplainQueryMethodModel","_rawQuery","rawQuery","_query","query","_queryType","queryType","_errorMessage","errorOutput","errorMessage","ExplainQueryType","SPARQL","OTHER","_type","type","_content","content","_size","size","_instructions","explainQueryMethodsListMapper","explainQueryMethodMapper","CONVERSATIONS_ENDPOINT","AGENTS_ENDPOINT","EXPLAIN_RESPONSE_ENDPOINT","CHATS_ENDPOINT","DEVELOPMENT","$http","_fakeBackend","TtygRestServiceFakeBackend","post","get","put","responseType","delete"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=42143;export const __webpack_ids__=[42143];export const __webpack_modules__={42143:()=>{const e="guide.step-action.import-file";PluginRegistry.add("guide.step",[{guideBlockName:"import-upload-rdf-file",getSteps:(t,i)=>{const o=i.GuideUtils,l=i.toastr,r=i.$translate,n=i.$interpolate,c=i.EventEmitterService,s=o.getGuideElementSelector("import-settings-import-button");let m;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.import_rdf_file.content",class:"upload-rdf-file-button",...t.mainAction?{}:{title:e},...t,url:"import",elementSelector:o.getGuideElementSelector("uploadRdfFileButton"),advanceOn:void 0,show:e=>()=>{m=c.subscribe("filesForUploadSelected",i=>{(i.files||[]).some(e=>e.name===t.resourceFile)?o.isVisible(o.getGuideElementSelector("import-file-"+t.resourceFile))?o.getOrWaitFor(".confirm-duplicate-files-dialog").then(()=>e.next()):o.getOrWaitFor(s).then(()=>e.next()):i.cancel=!0})},hide:()=>()=>{m&&m()},onNextValidate:()=>Promise.allSettled([o.getOrWaitFor(".confirm-duplicate-files-dialog"),o.getOrWaitFor(o.getGuideElementSelector("import-file-"+t.resourceFile))]).then(([e,i])=>"rejected"!==e.status||"rejected"!==i.status||(o.noNextErrorToast(l,r,n,"guide.step_plugin.import_rdf_file.file-must-be-uploaded",t),!1)),onNextClick:e=>{o.getOrWaitFor(o.getGuideElementSelector("import-file-"+t.resourceFile)).then(e=>{e.click()}).catch(e=>{console.log(e)}).finally(()=>e.next())}}}]}},{guideBlockName:"import-confirm-duplicate-files",getSteps:(t,i)=>{const o=i.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.import_rdf_file.confirm_duplicate_files_dialog.content",...t.mainAction?{}:{title:e},placement:"bottom",class:"import-file-button",...t,url:"import",elementSelector:o.getElementSelector(".confirm-duplicate-files-dialog .confirm-overwrite-btn"),skipFromHistory:!0,showOn:()=>o.isVisible(o.getElementSelector(".confirm-duplicate-files-dialog")),onNextClick:()=>o.clickOnElement(".confirm-duplicate-files-dialog .confirm-overwrite-btn")(),onPreviousClick:()=>o.isVisible(o.getElementSelector(".confirm-duplicate-files-dialog"))?o.clickOnElement(".confirm-duplicate-files-dialog .cancel-btn"):Promise.resolve()}}]}},{guideBlockName:"import-click-on-import-button",getSteps:(t,i)=>{const o=i.GuideUtils,l=o.getGuideElementSelector("import-settings-import-button");return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.import_rdf_file.import-settings.import.button.content",...t.mainAction?{}:{title:e},placement:"top",class:"import-settings-import-file-button",...t,elementSelector:l,onPreviousClick:()=>new Promise(function(e){o.clickOnGuideElement("import-settings-cancel-button")().then(()=>e())}),beforeShowPromise:()=>i.GuideUtils.deferredShow(300)().then(()=>o.getOrWaitFor(l,3).catch(e=>(i.toastr.error(i.$translate.instant("guide.unexpected.error.message")),Promise.reject(e)))),onNextClick:()=>o.clickOnGuideElement("import-settings-import-button")(),canBePaused:!1}}]}},{guideBlockName:"import-show-progress",getSteps:(t,i)=>{const o=i.GuideUtils;return[{guideBlockName:"read-only-element",options:{content:"guide.step_plugin.import_status_info.content",...t.mainAction?{}:{title:e},class:"import-status-info",...t,url:"import",elementSelector:".import-resource-message",beforeShowPromise:()=>o.isVisible(".import-resource-message")?Promise.resolve():o.waitFor(".import-resource-message",10),onPreviousClick:()=>o.getOrWaitFor(o.getGuideElementSelector("import-file-"+t.resourceFile),10).then(e=>{e.click()})}}]}},{guideBlockName:"import-rdf-file",getSteps:(e,t)=>{e.mainAction="import-file";const i=[{guideBlockName:"click-main-menu",options:angular.extend({},{menu:"import",showIntro:!0},e)}];return e.resourcePath&&i.push({guideBlockName:"download-guide-resource",options:angular.extend({},{title:""},e)}),i.push({guideBlockName:"import-upload-rdf-file",options:{...e}},{guideBlockName:"import-confirm-duplicate-files",options:{...e}},{guideBlockName:"import-click-on-import-button",options:{...e}},{guideBlockName:"import-show-progress",options:{...e}}),i}}])}};
2
- //# sourceMappingURL=42143.c11e5c28f2b8e9952dbb.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"42143.c11e5c28f2b8e9952dbb.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/import-rdf-file/plugin.js"],"sourcesContent":["const IMPORT_FILE_DEFAULT_STEP_TITLE = \"guide.step-action.import-file\";\n\nPluginRegistry.add('guide.step', [\n {\n guideBlockName: 'import-upload-rdf-file',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const toastr = services.toastr;\n const $translate = services.$translate;\n const $interpolate = services.$interpolate;\n const EventEmitterService = services.EventEmitterService;\n const importSettingsButtonSelector = GuideUtils.getGuideElementSelector('import-settings-import-button');\n let filesForUploadSelectedSubscription;\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.import_rdf_file.content',\n class: 'upload-rdf-file-button',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: IMPORT_FILE_DEFAULT_STEP_TITLE }),\n ...options,\n url: 'import',\n elementSelector: GuideUtils.getGuideElementSelector('uploadRdfFileButton'),\n // Disable default behavior of service when element is clicked.\n advanceOn: undefined,\n show: (guide) => () => {\n // Subscribes to event \"filesForUploadSelected\", when the step is showing, this will give opportunity\n // to canceling uploading if user not choose correct file.\n filesForUploadSelectedSubscription = EventEmitterService.subscribe('filesForUploadSelected', ((eventData) => {\n const uploadedFiles = eventData.files || [];\n if (uploadedFiles.some((uploadedFile) => uploadedFile.name === options.resourceFile)) {\n // When tha correct file is selected, the guide can continue.\n\n // Check for duplicated name, if import button for guide rdf data exist.\n if (GuideUtils.isVisible(GuideUtils.getGuideElementSelector('import-file-' + options.resourceFile))) {\n GuideUtils.getOrWaitFor('.confirm-duplicate-files-dialog')\n .then(() => guide.next());\n } else {\n GuideUtils.getOrWaitFor(importSettingsButtonSelector)\n .then(() => guide.next());\n }\n } else {\n // Canceling the automatic uploading of files\n // because the guide rdf file is not selected.\n eventData.cancel = true;\n }\n }));\n },\n hide: () => () => {\n if (filesForUploadSelectedSubscription) {\n filesForUploadSelectedSubscription();\n }\n },\n onNextValidate: () => {\n return Promise.allSettled([GuideUtils.getOrWaitFor('.confirm-duplicate-files-dialog'), GuideUtils.getOrWaitFor(GuideUtils.getGuideElementSelector('import-file-' + options.resourceFile))])\n .then(([confirmDialogPromise, importButtonPromise]) => {\n // There are two ways to exit this step:\n // if the duplication dialog is opened\n // or if the import button for the guide file is displayed.\n // The first scenario indicates that the user is trying to upload the same file,\n // while the second scenario suggests\n // that the guide has been started more than once.\n if ('rejected' === confirmDialogPromise.status && 'rejected' === importButtonPromise.status) {\n GuideUtils.noNextErrorToast(toastr, $translate, $interpolate, 'guide.step_plugin.import_rdf_file.file-must-be-uploaded', options);\n return false;\n }\n return true;\n });\n },\n onNextClick: (guide) => {\n GuideUtils.getOrWaitFor(GuideUtils.getGuideElementSelector('import-file-' + options.resourceFile))\n .then((element) => {\n // If we have file import button for the guide rdf file,\n // this indicates that we go through this step for the second time.\n // This can happen if the user starts the guide for the second time.\n element.click();\n })\n .catch((error) => {\n // This shouldn't be happening.\n console.log(error);\n })\n .finally(() => guide.next());\n }\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'import-confirm-duplicate-files',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.import_rdf_file.confirm_duplicate_files_dialog.content',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: IMPORT_FILE_DEFAULT_STEP_TITLE }),\n placement: 'bottom',\n class: 'import-file-button',\n ...options,\n url: 'import',\n elementSelector: GuideUtils.getElementSelector('.confirm-duplicate-files-dialog .confirm-overwrite-btn'),\n skipFromHistory: true,\n // Checks whether the confirm dialog is currently open.\n showOn: () => GuideUtils.isVisible(GuideUtils.getElementSelector('.confirm-duplicate-files-dialog')),\n onNextClick: () => GuideUtils.clickOnElement('.confirm-duplicate-files-dialog .confirm-overwrite-btn')(),\n onPreviousClick: () => {\n if (GuideUtils.isVisible(GuideUtils.getElementSelector('.confirm-duplicate-files-dialog'))) {\n return GuideUtils.clickOnElement('.confirm-duplicate-files-dialog .cancel-btn');\n }\n return Promise.resolve();\n }\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'import-click-on-import-button',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const importSettingsButtonSelector = GuideUtils.getGuideElementSelector('import-settings-import-button');\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.import_rdf_file.import-settings.import.button.content',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: IMPORT_FILE_DEFAULT_STEP_TITLE }),\n placement: 'top',\n class: 'import-settings-import-file-button',\n ...options,\n elementSelector: importSettingsButtonSelector,\n onPreviousClick: () => new Promise(function (resolve) {\n GuideUtils.clickOnGuideElement('import-settings-cancel-button')()\n .then(() => resolve());\n }),\n beforeShowPromise: () => services.GuideUtils.deferredShow(300)()\n .then(() => GuideUtils.getOrWaitFor(importSettingsButtonSelector, 3)\n .catch((error) => {\n services.toastr.error(services.$translate.instant('guide.unexpected.error.message'));\n return Promise.reject(error);\n })\n ),\n onNextClick: () => GuideUtils.clickOnGuideElement('import-settings-import-button')(),\n canBePaused: false\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'import-show-progress',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'read-only-element',\n options: {\n content: 'guide.step_plugin.import_status_info.content',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: IMPORT_FILE_DEFAULT_STEP_TITLE }),\n class: 'import-status-info',\n ...options,\n url: 'import',\n elementSelector: '.import-resource-message',\n beforeShowPromise: () => {\n if (GuideUtils.isVisible('.import-resource-message')) {\n return Promise.resolve();\n }\n return GuideUtils.waitFor('.import-resource-message', 10);\n },\n onPreviousClick: () => GuideUtils.getOrWaitFor(GuideUtils.getGuideElementSelector('import-file-' + options.resourceFile), 10)\n .then((element) => { element.click() })\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'import-rdf-file',\n getSteps: (options, services) => {\n options.mainAction = 'import-file';\n\n const steps = [\n {\n guideBlockName: 'click-main-menu',\n options: angular.extend({}, {\n menu: 'import',\n showIntro: true\n }, options)\n }\n ];\n\n if (options.resourcePath) {\n steps.push(\n {\n guideBlockName: 'download-guide-resource',\n options: angular.extend({}, {\n title: ''\n }, options)\n }\n );\n }\n\n steps.push(...[\n {\n guideBlockName: 'import-upload-rdf-file', options: {...options}\n },\n // This step is optional and will only appear if the file we want to upload has already been uploaded.\n // If the file is already uploaded, a confirmation dialog will be opened, and this step will display the confirm button of the dialog.\n {\n guideBlockName: 'import-confirm-duplicate-files', options: {...options}\n },\n {\n guideBlockName: 'import-click-on-import-button', options: {...options}\n },\n {\n guideBlockName: 'import-show-progress', options: {...options}\n }\n ]);\n\n return steps;\n }\n }\n]);\n"],"names":["IMPORT_FILE_DEFAULT_STEP_TITLE","PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","toastr","$translate","$interpolate","EventEmitterService","importSettingsButtonSelector","getGuideElementSelector","filesForUploadSelectedSubscription","content","class","mainAction","title","url","elementSelector","advanceOn","undefined","show","guide","subscribe","eventData","files","some","uploadedFile","name","resourceFile","isVisible","getOrWaitFor","then","next","cancel","hide","onNextValidate","Promise","allSettled","confirmDialogPromise","importButtonPromise","status","noNextErrorToast","onNextClick","element","click","catch","error","console","log","finally","placement","getElementSelector","skipFromHistory","showOn","clickOnElement","onPreviousClick","resolve","clickOnGuideElement","beforeShowPromise","deferredShow","instant","reject","canBePaused","waitFor","steps","angular","extend","menu","showIntro","resourcePath","push"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"55217.4769c1f0615e364d8c2a.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/main-menu/plugin.js"],"sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'click-main-menu',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const steps = [];\n\n let menuSelector;\n let menuTitle;\n let submenuSelector;\n let submenuTitle;\n let viewName;\n let helpInfo;\n let menuDialogClass = '';\n let submenuDialogClass = '';\n\n switch (options.menu) {\n case \"repositories\":\n menuSelector = 'menu-setup';\n menuTitle = 'menu.setup.label';\n menuDialogClass = 'menu-setup';\n submenuSelector = 'sub-menu-repositories';\n submenuTitle = 'menu.repositories.label';\n submenuDialogClass = 'sub-menu-repositories';\n viewName = 'menu.repositories.label';\n helpInfo = 'view.repositories.helpInfo';\n\n break;\n case \"import\":\n menuSelector = 'menu-import';\n menuTitle = 'common.import';\n menuDialogClass = 'menu-import';\n viewName = 'common.import';\n helpInfo = 'view.import.helpInfo';\n\n break;\n case \"connectors\":\n menuSelector = 'menu-setup';\n menuTitle = 'menu.setup.label';\n menuDialogClass = 'menu-setup-guide-dialog';\n submenuSelector = 'sub-menu-connectors';\n submenuTitle = 'menu.connectors.label';\n submenuDialogClass = 'sub-menu-connectors-guide-dialog';\n viewName = 'view.connector.management.title';\n helpInfo = 'view.connector.management.helpInfo';\n\n break;\n case \"autocomplete\":\n menuSelector = 'menu-setup';\n menuTitle = 'menu.setup.label';\n menuDialogClass = 'menu-setup';\n submenuSelector = 'sub-menu-autocomplete';\n submenuTitle = 'menu.autocomplete.label';\n submenuDialogClass = 'sub-menu-autocomplete';\n viewName = 'view.autocomplete.title';\n helpInfo = 'view.autocomplete.helpInfo';\n\n break;\n case \"visual-graph\":\n menuSelector = 'menu-explore';\n menuTitle = 'menu.explore.label';\n menuDialogClass = 'menu-explore';\n submenuSelector = 'sub-menu-visual-graph';\n submenuTitle = 'visual.graph.label';\n submenuDialogClass = 'sub-menu-visual-graph';\n viewName = 'visual.graph.label';\n helpInfo = 'view.visual.graph.helpInfo';\n\n break;\n case \"sparql\":\n menuSelector = 'menu-sparql';\n menuTitle = 'menu.sparql.label';\n menuDialogClass = 'menu-sparql';\n viewName = 'view.sparql-editor.title';\n helpInfo = 'view.sparql-editor.helpInfo';\n\n break;\n case \"class-hierarchy\":\n menuSelector = 'menu-explore';\n menuTitle = 'menu.explore.label';\n menuDialogClass = 'menu-explore';\n submenuSelector = 'menu-class-hierarchy';\n submenuTitle = 'menu.class.hierarchy.label';\n submenuDialogClass = 'sub-menu-class-hierarchy';\n viewName = 'view.class.hierarchy.title';\n helpInfo = 'view.class.hierarchy.helpInfo';\n\n break;\n case \"class-relationships\":\n menuSelector = 'menu-explore';\n menuTitle = 'menu.explore.label';\n menuDialogClass = 'menu-explore';\n submenuSelector = 'sub-menu-class-relationships';\n submenuTitle = 'menu.class.relationships.label';\n submenuDialogClass = 'sub-menu-class-relationships';\n viewName = 'view.class.relationships.title';\n helpInfo = 'view.class.relationships.helpInfo';\n\n break;\n case \"ttyg\":\n menuSelector = 'menu-lab';\n menuTitle = 'menu.lab.label';\n menuDialogClass = 'menu-lab';\n submenuSelector = 'sub-menu-ttyg';\n submenuTitle = 'menu.ttyg.label';\n submenuDialogClass = 'sub-menu-ttyg';\n viewName = 'menu.ttyg.label';\n helpInfo = 'ttyg.helpInfo';\n\n break;\n case \"similarity\":\n menuSelector = 'menu-explore';\n menuTitle = 'menu.explore.label';\n menuDialogClass = 'menu-explore';\n submenuSelector = 'sub-menu-similarity';\n submenuTitle = 'menu.similarity.label';\n submenuDialogClass = 'sub-menu-similarity';\n viewName = 'menu.similarity.label';\n helpInfo = 'guide.step-help-info.create-similarity-index';\n break;\n case \"rdf-rank\":\n menuSelector = 'menu-setup';\n menuTitle = 'menu.setup.label';\n menuDialogClass = 'menu-setup';\n submenuSelector = 'sub-menu-rdf-rank';\n submenuTitle = 'view.rdf.rank.title';\n submenuDialogClass = 'sub-menu-rdf-rank';\n viewName = 'view.rdf.rank.title';\n helpInfo = 'view.rdf.rank.helpInfo';\n break;\n }\n\n const mainMenuClickElementPostSelector = submenuSelector ? ' div' : ' a';\n options.viewName = viewName;\n\n // View intro element\n if (options.showIntro && options.mainAction) {\n steps.push({\n guideBlockName: 'info-message',\n options: {\n content: 'guide.step-intro.' + options.mainAction,\n extraContent: helpInfo,\n extraContentClass: 'alert alert-help text-left',\n skipPoint: true,\n ...options\n }\n });\n }\n\n // Main menu element\n steps.push({\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step-menu.click-menu',\n menuLabelKey: menuTitle,\n class: menuDialogClass,\n elementSelector: GuideUtils.getGuideElementSelector(menuSelector),\n showOn: () => {\n // If submenu is visible this mean that we have to close menu.\n if (!!submenuSelector && GuideUtils.isGuideElementVisible(submenuSelector)) {\n GuideUtils.clickOnGuideElement(menuSelector, mainMenuClickElementPostSelector)();\n }\n return true;\n },\n onNextClick: GuideUtils.clickOnGuideElement(menuSelector, mainMenuClickElementPostSelector),\n initPreviousStep: (services, stepId) => {\n const previousStep = services.ShepherdService.getPreviousStepFromHistory(stepId);\n if (previousStep) {\n return previousStep.options.initPreviousStep(services, previousStep.options.id);\n }\n\n return Promise.resolve();\n },\n ...options\n }\n });\n\n if (submenuSelector) {\n steps.push({\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step-menu.click-menu',\n menuLabelKey: submenuTitle,\n class: submenuDialogClass,\n elementSelector: GuideUtils.getGuideElementSelector(submenuSelector),\n placement: 'right',\n canBePaused: false,\n onNextClick: GuideUtils.clickOnGuideElement(submenuSelector, ' a'),\n initPreviousStep: (services, stepId) => {\n const previousStep = services.ShepherdService.getPreviousStepFromHistory(stepId);\n if (previousStep) {\n return previousStep.options.initPreviousStep(services, previousStep.options.id);\n }\n\n return Promise.resolve();\n },\n ...options\n }\n });\n }\n return steps;\n }\n }\n]);\n"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","steps","menuSelector","menuTitle","submenuSelector","submenuTitle","viewName","helpInfo","menuDialogClass","submenuDialogClass","menu","mainMenuClickElementPostSelector","showIntro","mainAction","push","content","extraContent","extraContentClass","skipPoint","menuLabelKey","class","elementSelector","getGuideElementSelector","showOn","isGuideElementVisible","clickOnGuideElement","onNextClick","initPreviousStep","stepId","previousStep","ShepherdService","getPreviousStepFromHistory","id","Promise","resolve","placement","canBePaused"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=67232;export const __webpack_ids__=[67232];export const __webpack_modules__={67232:()=>{const e={title:"",content:"",elementSelector:void 0,placement:"bottom",url:void 0,type:"read-only-element",maxWaitTime:3,canBePaused:!0,onNextClick:void 0,disablePreviousFlow:!0,onNextValidate:()=>Promise.resolve(!0),onPreviousClick:void 0,skipPoint:!1,class:""},t=(e,t,i)=>()=>e.GuideUtils.waitFor(t,i).catch(t=>{throw e.toastr.error(e.$translate.instant("guide.unexpected.error.message")),t}),i=["click","dblclick","keydown","keypress","keyup","input","submit","scroll","wheel"],o=["scroll","wheel"],n=(e,t,o,n)=>()=>{o&&n.GuideUtils.getOrWaitFor(o).then(o=>{const n=i.filter(t=>!e.includes(t));t?n.forEach(e=>o.removeEventListener(e,s,!0)):n.forEach(e=>o.addEventListener(e,s,!0))})},l=(e,t)=>n([],!0,e,t),r=(e,t,i)=>n(e,!1,t,i),s=e=>{e.preventDefault(),e.stopPropagation()};PluginRegistry.add("guide.step",[{guideBlockName:"clickable-element",getStep:(i,o)=>{const n=angular.extend({},e,{advanceOn:{selector:i.clickableElementSelector||i.elementSelector,event:"click"},initPreviousStep:o.GuideUtils.defaultInitPreviousStep},i,{type:"clickable"});return n.beforeShowPromise||(n.beforeShowPromise=t(o,n.elementSelector,n.maxWaitTime)),n}},{guideBlockName:"focus-element",getStep:(i,o)=>{const n=angular.extend({},e,{initPreviousStep:o.GuideUtils.defaultInitPreviousStep},i);return n.beforeShowPromise||(n.beforeShowPromise=t(o,n.elementSelector,n.maxWaitTime)),n}},{guideBlockName:"read-only-element",getStep:(i,o)=>{const n=angular.extend({},e,{initPreviousStep:o.GuideUtils.defaultInitPreviousStep},i,{type:"readonly"});return n.beforeShowPromise||(n.beforeShowPromise=t(o,n.elementSelector,n.maxWaitTime)),n}},{guideBlockName:"scroll-only-element",getStep:(i,n)=>{const s={...e,initPreviousStep:n.GuideUtils.defaultInitPreviousStep,show:()=>r(o,i.elementSelector,n),hide:()=>l(i.elementSelector,n),...i};return s.beforeShowPromise||(s.beforeShowPromise=t(n,s.elementSelector,s.maxWaitTime)),s}},{guideBlockName:"input-element",getStep:(i,o)=>{const n=angular.extend({},e,{initPreviousStep:o.GuideUtils.defaultInitPreviousStep},i,{type:"input"});return n.beforeShowPromise||(n.beforeShowPromise=t(o,n.elementSelector,n.maxWaitTime)),n}},{guideBlockName:"copy-text-element",getSteps:(e,t)=>{const i=t.$translate,o=t.GuideUtils,n=e.text,l=document.createElement("code");l.innerText=n;const r=document.createElement("button"),s="guide-copy-to-input-query-button";let u;r.className=`btn btn-sm btn-secondary ${s}`,r.innerText=i.instant("guide.step_plugin.core-steps.copy-text-element.copy-to-input");const a=((e,t)=>i=>{i.preventDefault();const o=document.querySelector(e);o.value=t,o.dispatchEvent(new Event("input",{bubbles:!0}))})(o.getElementSelector(e.elementSelector),n);return[{guideBlockName:"input-element",options:{...e,content:"guide.step_plugin.core-steps.copy-text-element.content",textAsHtmlCodeElement:'<div class="shepherd-code">'+l.outerHTML+r.outerHTML+"</div>",show:e=>()=>{u=e.currentStep.el.querySelector(`.${s}`),u.addEventListener("click",a)},hide:()=>()=>{u&&u.removeEventListener("click",a)}}}]}},{guideBlockName:"info-message",getStep:(t,i)=>angular.extend({},e,{initPreviousStep:i.GuideUtils.defaultInitPreviousStep},t,{type:"readonly"})},{guideBlockName:"hold-and-wait-until-hidden",getStep:(t,i)=>angular.extend({},e,{initPreviousStep:i.GuideUtils.defaultInitPreviousStep,onNextValidate:()=>Promise.resolve(!i.GuideUtils.isVisible(t.elementSelectorToWait)),show:()=>r(o,t.elementSelector,i),hide:()=>l(t.elementSelector,i)},t)},{guideBlockName:"hold-and-wait-until-shown",getStep:(t,i)=>angular.extend({},e,{initPreviousStep:i.GuideUtils.defaultInitPreviousStep,onNextValidate:()=>Promise.resolve(i.GuideUtils.isVisible(t.elementSelectorToWait))},t,{type:"readonly"})},{guideBlockName:"wait-for-element-to-hide",getStep:(t,i)=>angular.extend({},e,{initPreviousStep:i.GuideUtils.defaultInitPreviousStep,beforeShowPromise:e=>i.GuideUtils.waitUntilHidden(t.elementSelectorToHide,t.timeToWait||2).catch(()=>{i.ShepherdService._abortGuide(e)}),show:e=>()=>{setTimeout(()=>e.next())}},t)},{guideBlockName:"wait-for-element-to-show",getStep:(t,i)=>angular.extend({},e,{initPreviousStep:i.GuideUtils.defaultInitPreviousStep,beforeShowPromise:e=>i.GuideUtils.getOrWaitFor(t.elementSelectorToShow,t.timeToWait||2).catch(()=>{i.ShepherdService._abortGuide(e)}),show:e=>()=>{setTimeout(()=>e.next())}},t)},{guideBlockName:"guide-end",getStep:(t,i)=>{const o={type:"readonly",title:t.title||"guide.step_plugin.guide-ended.title",content:t.content||"guide.step_plugin.guide-ended.content",lastStep:!0};return angular.extend({},e,{initPreviousStep:i.GuideUtils.defaultInitPreviousStep},t,o)}}])}};
2
- //# sourceMappingURL=67232.e76f40f9d09e64ebb365.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"67232.e76f40f9d09e64ebb365.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/core/plugin.js"],"sourcesContent":["const BASIC_STEP = {\n title: '',\n content: '',\n elementSelector: undefined,\n placement: 'bottom',\n url: undefined,\n type: 'read-only-element',\n maxWaitTime: 3,\n canBePaused: true,\n onNextClick: undefined,\n disablePreviousFlow: true,\n onNextValidate: () => Promise.resolve(true),\n onPreviousClick: undefined,\n skipPoint: false,\n class: '',\n};\n\n/**\n * This function will be called before show a step. Step will be shown after promise is resolve. It waits element of step to be visible on the page.\n * @param {*} services\n * @param {string} elementSelector\n * @param {number} maxWaitTime\n * @return {function(): *}\n */\nconst beforeShowPromise = (services, elementSelector, maxWaitTime) => {\n return () => {\n return services.GuideUtils.waitFor(elementSelector, maxWaitTime)\n .catch((error) => {\n // error is caught just to show notification in generic way.\n services.toastr.error(services.$translate.instant('guide.unexpected.error.message'));\n // throw the error, otherwise guide will continue with the next step.\n throw error;\n });\n };\n};\n\nconst createCopyToInputListener = (elementSelector, text) => {\n return (event) => {\n event.preventDefault();\n const inputElement = document.querySelector(elementSelector);\n inputElement.value = text;\n inputElement.dispatchEvent(new Event('input', {bubbles: true}));\n };\n};\n\n/**\n * List of common DOM events to consider for interaction control.\n * @type {string[]}\n */\nconst COMMON_DOM_EVENTS = [\n 'click',\n 'dblclick',\n 'keydown',\n 'keypress',\n 'keyup',\n 'input',\n 'submit',\n 'scroll',\n 'wheel',\n];\nconst SCROLL_EVENTS = ['scroll', 'wheel'];\n\n/**\n * Configures an element interactability, by consuming events and preventing them from propagating.\n * This allows to keep scrolling, while disallowing interaction with other elements\n * (such as clicking buttons).\n * @param {string[]} allowedEvents - List of event types to allow.\n * @param interactable - true to make the element interactable, false to make it non interactable\n * @param elementSelector - the elementSelector\n * @param services - The services object\n */\nconst _configureInteractions = (allowedEvents, interactable, elementSelector, services) => () => {\n if (!elementSelector) {\n return;\n }\n\n services.GuideUtils.getOrWaitFor(elementSelector)\n .then((element) => {\n const eventsToPrevent = COMMON_DOM_EVENTS.filter((event) => !allowedEvents.includes(event));\n if (interactable) {\n eventsToPrevent.forEach((event) => element.removeEventListener(event, preventDefault, true));\n } else {\n eventsToPrevent.forEach((event) => element.addEventListener(event, preventDefault, true));\n }\n });\n};\n\n/**\n * Enables all interactions on the specified element.\n *\n * @param {string} elementSelector - A CSS selector identifying the target element.\n * @param {Object} services - An object containing utility services, including GuideUtils.\n */\nconst allowAll = (elementSelector, services) => _configureInteractions([], true, elementSelector, services);\n\n/**\n * Restricts the specified element to only process events listed in <code>allowedEvents</code>.\n *\n * @param {string[]} allowedEvents - An array of event types that should remain enabled.\n * @param {string} elementSelector - A CSS selector identifying the target element.\n * @param {Object} services - An object containing utility services, including GuideUtils.\n */\nconst allowEvents = (allowedEvents, elementSelector, services) => _configureInteractions(allowedEvents, false, elementSelector, services);\n\n/**\n * Prevents the default action of an event and stops its propagation.\n * @param {Event} event - The event to prevent.\n */\nconst preventDefault = (event) => {\n event.preventDefault();\n event.stopPropagation();\n};\n\nPluginRegistry.add('guide.step', [\n {\n // An element which is expected to be clicked. If onNextClick is not defined, it will automatically click on the element on next button press\n guideBlockName: 'clickable-element',\n getStep: (options, services) => {\n const notOverridable = {\n type: 'clickable',\n };\n\n const stepDescription = angular.extend({}, BASIC_STEP, {\n advanceOn: {\n selector: options.clickableElementSelector || options.elementSelector,\n event: 'click',\n },\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n }, options, notOverridable);\n\n if (!stepDescription.beforeShowPromise) {\n stepDescription.beforeShowPromise = beforeShowPromise(services, stepDescription.elementSelector, stepDescription.maxWaitTime);\n }\n return stepDescription;\n },\n },\n {\n // An element which is expected to be focused. It allows user interaction.\n guideBlockName: 'focus-element',\n getStep: (options, services) => {\n const stepDescription = angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n }, options);\n\n if (!stepDescription.beforeShowPromise) {\n stepDescription.beforeShowPromise = beforeShowPromise(services, stepDescription.elementSelector, stepDescription.maxWaitTime);\n }\n return stepDescription;\n },\n },\n {\n // An element which is expected to be focused, but interactions are disabled.\n guideBlockName: 'read-only-element',\n getStep: (options, services) => {\n const notOverridable = {\n type: 'readonly',\n };\n const stepDescription = angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n },\n options, notOverridable);\n if (!stepDescription.beforeShowPromise) {\n stepDescription.beforeShowPromise = beforeShowPromise(services, stepDescription.elementSelector, stepDescription.maxWaitTime);\n }\n return stepDescription;\n },\n },\n {\n guideBlockName: 'scroll-only-element',\n getStep: (options, services) => {\n const stepDescription = {\n ...BASIC_STEP,\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n show: () => allowEvents(SCROLL_EVENTS, options.elementSelector, services),\n hide: () => allowAll(options.elementSelector, services),\n ...options,\n };\n if (!stepDescription.beforeShowPromise) {\n stepDescription.beforeShowPromise = beforeShowPromise(services, stepDescription.elementSelector, stepDescription.maxWaitTime);\n }\n return stepDescription;\n },\n },\n {\n guideBlockName: 'input-element',\n getStep: (options, services) => {\n const notOverridable = {\n type: 'input',\n };\n const stepDescription = angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n }, options, notOverridable);\n if (!stepDescription.beforeShowPromise) {\n stepDescription.beforeShowPromise = beforeShowPromise(services, stepDescription.elementSelector, stepDescription.maxWaitTime);\n }\n return stepDescription;\n },\n },\n {\n guideBlockName: 'copy-text-element',\n getSteps: (options, services) => {\n const $translate = services.$translate;\n const GuideUtils = services.GuideUtils;\n\n const text = options.text;\n const code = document.createElement('code');\n code.innerText = text;\n\n const copy = document.createElement('button');\n const copyToInputQueryButtonClass = 'guide-copy-to-input-query-button';\n copy.className = `btn btn-sm btn-secondary ${copyToInputQueryButtonClass}`;\n copy.innerText = $translate.instant('guide.step_plugin.core-steps.copy-text-element.copy-to-input');\n\n\n let stepHTMLElement;\n const copyToInputListener = createCopyToInputListener(GuideUtils.getElementSelector(options.elementSelector), text);\n\n return [\n {\n guideBlockName: 'input-element',\n options: {\n ...options,\n content: 'guide.step_plugin.core-steps.copy-text-element.content',\n textAsHtmlCodeElement: '<div class=\"shepherd-code\">' + code.outerHTML + copy.outerHTML + '</div>',\n show: (_guide) => () => {\n stepHTMLElement = _guide.currentStep.el.querySelector(`.${copyToInputQueryButtonClass}`);\n stepHTMLElement.addEventListener('click', copyToInputListener);\n },\n hide: () => () => {\n if (stepHTMLElement) {\n stepHTMLElement.removeEventListener('click', copyToInputListener);\n }\n },\n },\n },\n ];\n },\n },\n {\n guideBlockName: 'info-message',\n getStep: (options, services) => {\n const notOverridable = {\n type: 'readonly',\n };\n return angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n }, options, notOverridable);\n },\n },\n {\n guideBlockName: 'hold-and-wait-until-hidden',\n getStep: (options, services) => {\n return angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n onNextValidate: () => Promise.resolve(!services.GuideUtils.isVisible(options.elementSelectorToWait)),\n show: () => allowEvents(SCROLL_EVENTS, options.elementSelector, services),\n hide: () => allowAll(options.elementSelector, services),\n }, options);\n },\n },\n {\n guideBlockName: 'hold-and-wait-until-shown',\n getStep: (options, services) => {\n const notOverridable = {\n type: 'readonly',\n };\n return angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n onNextValidate: () => Promise.resolve(services.GuideUtils.isVisible(options.elementSelectorToWait)),\n }, options, notOverridable);\n },\n },\n {\n guideBlockName: 'wait-for-element-to-hide',\n getStep: (options, services) => {\n return angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n beforeShowPromise: (guide) => services.GuideUtils.waitUntilHidden(options.elementSelectorToHide, options.timeToWait || 2)\n .catch(() => {\n services.ShepherdService._abortGuide(guide);\n }),\n show: (guide) => () => {\n // Using a timeout because the library executes async logic\n setTimeout(() => guide.next());\n },\n }, options);\n },\n },\n {\n guideBlockName: 'wait-for-element-to-show',\n getStep: (options, services) => {\n return angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n beforeShowPromise: (guide) => services.GuideUtils.getOrWaitFor(options.elementSelectorToShow, options.timeToWait || 2)\n .catch(() => {\n services.ShepherdService._abortGuide(guide);\n }),\n show: (guide) => () => {\n // Using a timeout because the library executes async logic\n setTimeout(() => guide.next());\n },\n }, options);\n },\n },\n {\n guideBlockName: 'guide-end',\n getStep: (options, services) => {\n const notOverridable = {\n type: 'readonly',\n title: options.title || 'guide.step_plugin.guide-ended.title',\n content: options.content || 'guide.step_plugin.guide-ended.content',\n lastStep: true,\n };\n return angular.extend({}, BASIC_STEP, {\n initPreviousStep: services.GuideUtils.defaultInitPreviousStep,\n }, options, notOverridable);\n },\n },\n]);\n"],"names":["BASIC_STEP","title","content","elementSelector","undefined","placement","url","type","maxWaitTime","canBePaused","onNextClick","disablePreviousFlow","onNextValidate","Promise","resolve","onPreviousClick","skipPoint","class","beforeShowPromise","services","GuideUtils","waitFor","catch","error","toastr","$translate","instant","COMMON_DOM_EVENTS","SCROLL_EVENTS","_configureInteractions","allowedEvents","interactable","getOrWaitFor","then","element","eventsToPrevent","filter","event","includes","forEach","removeEventListener","preventDefault","addEventListener","allowAll","allowEvents","stopPropagation","PluginRegistry","add","guideBlockName","getStep","options","stepDescription","angular","extend","advanceOn","selector","clickableElementSelector","initPreviousStep","defaultInitPreviousStep","show","hide","getSteps","text","code","document","createElement","innerText","copy","copyToInputQueryButtonClass","stepHTMLElement","className","copyToInputListener","createCopyToInputListener","inputElement","querySelector","value","dispatchEvent","Event","bubbles","getElementSelector","textAsHtmlCodeElement","outerHTML","_guide","currentStep","el","isVisible","elementSelectorToWait","guide","waitUntilHidden","elementSelectorToHide","timeToWait","ShepherdService","_abortGuide","setTimeout","next","elementSelectorToShow","notOverridable","lastStep"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=70938;export const __webpack_ids__=[70938];export const __webpack_modules__={70938:()=>{const e="guide.step-action.edit-ttyg-agent";PluginRegistry.add("guide.step",[{guideBlockName:"ttyg-edit-agent-intro-message",getSteps:(t,i)=>[{guideBlockName:"info-message",options:{content:"guide.step_plugin.edit-ttyg-agent.intro",...t.mainAction?{}:{title:e},skipPoint:!0,...t}}]},{guideBlockName:"ttyg-click-to-edit-selected-agent",getSteps:(t,i)=>{const n=i.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.edit-ttyg-agent.edit-agent",...t.mainAction?{}:{title:e},class:"edit-agent-btn",disableNextFlow:!0,...t,url:"ttyg",elementSelector:n.getGuideElementSelector("edit-current-agent")}}]}},{guideBlockName:"ttyg-edit-agent-click-to-save",getSteps:(t,i)=>{const n=i.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.edit-ttyg-agent.save-agent-settings",...t.mainAction?{}:{title:e},class:"save-agent",disablePreviousFlow:!1,disableNextFlow:!0,...t,url:"ttyg",elementSelector:n.getGuideElementSelector("save-agent-settings")}}]}},{guideBlockName:"edit-ttyg-agent",getSteps:(e,t)=>{const i=t.GuideUtils,n=t.RoutingUtil;return e.mainAction="edit-ttyg-agent",[{guideBlockName:"click-main-menu",options:{...e,menu:"ttyg",showOn:()=>"ttyg"!==n.getCurrentRoute()}},{guideBlockName:"end-on-api-key-error"},{guideBlockName:"ttyg-edit-agent-intro-message",options:{...e}},{guideBlockName:"info-message",options:angular.extend({},{beforeShowPromise:(e,t)=>{i.isGuideElementVisible("selected-agent")?setTimeout(()=>{e.show(t.id+6)}):setTimeout(()=>{e.next()})}},e)},{guideBlockName:"select-ttyg-agent",options:{...e}},{guideBlockName:"ttyg-click-to-edit-selected-agent",options:{...e}},{guideBlockName:"configure-agent",options:e},{guideBlockName:"ttyg-edit-agent-click-to-save",options:{...e}},{guideBlockName:"wait-for-element-to-hide",options:angular.extend({},{elementSelectorToHide:i.getElementSelector(".agent-settings-modal"),timeToWait:10},e)}]}}])}};
2
- //# sourceMappingURL=70938.6d0055f916f6d1bc91bb.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"70938.6d0055f916f6d1bc91bb.bundle.js","mappings":"oHAAA,MAAMA,EAAgC,oCAEtCC,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,gCAChBC,SAAUA,CAACC,EAASC,IACT,CACH,CACIH,eAAgB,eAChBE,QAAS,CACLE,QAAS,6CAELF,EAAQG,WAAa,CAAC,EAAI,CAAEC,MAAOT,GACvCU,WAAW,KACRL,MAMvB,CACEF,eAAgB,oCAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMK,EAAaL,EAASK,WAE5B,MAAO,CACH,CACIR,eAAgB,oBAChBE,QAAS,CACLE,QAAS,kDAELF,EAAQG,WAAa,CAAC,EAAI,CAAEC,MAAOT,GACvCY,MAAO,iBACPC,iBAAiB,KACdR,EACHS,IAAK,OACLC,gBAAiBJ,EAAWK,wBAAwB,2BAMtE,CACEb,eAAgB,gCAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMK,EAAaL,EAASK,WAE5B,MAAO,CACH,CACIR,eAAgB,oBAChBE,QAAS,CACLE,QAAS,2DAELF,EAAQG,WAAa,CAAC,EAAI,CAAEC,MAAOT,GACvCY,MAAO,aACPK,qBAAqB,EACrBJ,iBAAiB,KACdR,EACHS,IAAK,OACLC,gBAAiBJ,EAAWK,wBAAwB,4BAMtE,CACIb,eAAgB,kBAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMK,EAAaL,EAASK,WACtBO,EAAcZ,EAASY,YAG7B,OAFAb,EAAQG,WAAa,kBAEd,CACH,CACIL,eAAgB,kBAChBE,QAAS,IACFA,EACHc,KAAM,OACNC,OAAQA,IAAM,SAAWF,EAAYG,oBAG7C,CACIlB,eAAgB,wBAEpB,CACIA,eAAgB,gCAChBE,QAAS,IAAIA,IAEjB,CAEIF,eAAgB,eAChBE,QAASiB,QAAQC,OAAO,CAAC,EAAG,CACxBC,kBAAmBA,CAACC,EAAOC,KACnBf,EAAWgB,sBAAsB,kBACjCC,WAAW,KAEPH,EAAMI,KAAKH,EAAYI,GAAK,KAGhCF,WAAW,KAEPH,EAAMM,WAInB1B,IAEP,CACIF,eAAgB,oBAChBE,QAAS,IAAIA,IAEjB,CACIF,eAAgB,oCAChBE,QAAS,IAAIA,IAEjB,CACIF,eAAgB,kBAChBE,WAEJ,CACIF,eAAgB,gCAChBE,QAAS,IAAIA,IAEjB,CACIF,eAAgB,2BAChBE,QAASiB,QAAQC,OAAO,CAAC,EAAG,CACxBS,sBAAuBrB,EAAWsB,mBAAmB,yBACrDC,WAAY,IACb7B,Q","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/ttyg/edit-ttyg-agent/plugin.js"],"sourcesContent":["const TTYG_EDIT_AGENT_DEFAULT_TITLE = 'guide.step-action.edit-ttyg-agent';\n\nPluginRegistry.add('guide.step', [\n {\n guideBlockName: 'ttyg-edit-agent-intro-message',\n getSteps: (options, services) => {\n return [\n {\n guideBlockName: 'info-message',\n options: {\n content: 'guide.step_plugin.edit-ttyg-agent.intro',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: TTYG_EDIT_AGENT_DEFAULT_TITLE }),\n skipPoint: true,\n ...options\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'ttyg-click-to-edit-selected-agent',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.edit-ttyg-agent.edit-agent',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: TTYG_EDIT_AGENT_DEFAULT_TITLE }),\n class: 'edit-agent-btn',\n disableNextFlow: true,\n ...options,\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('edit-current-agent'),\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'ttyg-edit-agent-click-to-save',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.edit-ttyg-agent.save-agent-settings',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: TTYG_EDIT_AGENT_DEFAULT_TITLE }),\n class: 'save-agent',\n disablePreviousFlow: false,\n disableNextFlow: true,\n ...options,\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('save-agent-settings'),\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'edit-ttyg-agent',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const RoutingUtil = services.RoutingUtil;\n options.mainAction = 'edit-ttyg-agent';\n\n return [\n {\n guideBlockName: 'click-main-menu',\n options: {\n ...options,\n menu: 'ttyg',\n showOn: () => 'ttyg' !== RoutingUtil.getCurrentRoute()\n }\n },\n {\n guideBlockName: 'end-on-api-key-error'\n },\n {\n guideBlockName: 'ttyg-edit-agent-intro-message',\n options: {...options}\n },\n {\n // Skip next step (which is actually 5 core steps) if there is a selected agent\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n beforeShowPromise: (guide, currentStep) => {\n if (GuideUtils.isGuideElementVisible('selected-agent')) {\n setTimeout(() => {\n // Using a timeout because the library executes async logic\n guide.show(currentStep.id + 6);\n })\n } else {\n setTimeout(() => {\n // Using a timeout because the library executes async logic\n guide.next()\n });\n }\n }\n }, options)\n },\n {\n guideBlockName: 'select-ttyg-agent',\n options: {...options}\n },\n {\n guideBlockName: 'ttyg-click-to-edit-selected-agent',\n options: {...options}\n },\n {\n guideBlockName: 'configure-agent',\n options\n },\n {\n guideBlockName: 'ttyg-edit-agent-click-to-save',\n options: {...options}\n },\n {\n guideBlockName: 'wait-for-element-to-hide',\n options: angular.extend({}, {\n elementSelectorToHide: GuideUtils.getElementSelector('.agent-settings-modal'),\n timeToWait: 10\n }, options)\n }\n ];\n }\n }\n]);\n\n"],"names":["TTYG_EDIT_AGENT_DEFAULT_TITLE","PluginRegistry","add","guideBlockName","getSteps","options","services","content","mainAction","title","skipPoint","GuideUtils","class","disableNextFlow","url","elementSelector","getGuideElementSelector","disablePreviousFlow","RoutingUtil","menu","showOn","getCurrentRoute","angular","extend","beforeShowPromise","guide","currentStep","isGuideElementVisible","setTimeout","show","id","next","elementSelectorToHide","getElementSelector","timeToWait"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=76013;export const __webpack_ids__=[76013];export const __webpack_modules__={76013:()=>{const e=(e,t)=>e.$repositories.getRepositories().find(e=>e.id===t.repositoryId)?t.repositoryId:t.repositoryIdBase,t=(t,o)=>t.GuideUtils.getGuideElementSelector(`repository-id-${e(t,o)}`),o=e=>{const t=document.querySelector(".onto-repository-selector");t&&(t.autoClose=e)};PluginRegistry.add("guide.step",[{guideBlockName:"select-repository-dropdown",getSteps:(i,s)=>{const r=s.GuideUtils;return i.mainAction="select-repository",i.getRepositoryId=()=>e(s,i),[{guideBlockName:"clickable-element",options:angular.extend({},{skipPoint:!0,content:"guide.step_plugin.choose-repository.content",elementSelector:".onto-repository-selector",class:"repositories-group-button",onNextClick:r.clickOnElement(".onto-repository-selector .onto-dropdown-button")},i)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.select-repository.content",elementSelector:()=>t(s,i),class:"repository-select-button",advanceOn:void 0,beforeShowPromise:()=>s.GuideUtils.waitFor(t(s,i),1).catch(e=>{throw s.toastr.error(s.$translate.instant("guide.unexpected.error.message")),e}),show:e=>()=>{o(!1),$(t(s,i)).on("mouseup.selectRepositoryButtonClick",function(){e.next()})},onNextClick:e=>{$(t(s,i)).off("mouseup.selectRepositoryButtonClick"),r.clickOnElement(t(s,i))().then(()=>e.next())},hide:()=>()=>{o(!0),$(t(s,i)).off("mouseup.selectRepositoryButtonClick")},canBePaused:!1},i)}]}},{guideBlockName:"repositories-select-repository",getSteps:(t,o)=>{const i=o.GuideUtils,s=t.repositoryIdToSelect??e(o,t),r=`${i.getGuideElementSelector(`repository-${s}`)} ${i.getGuideElementSelector("select-repository-button-wrapper")}`,n=`${r} ${i.getGuideElementSelector("select-repository-button")}`;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.repositories.select-repository.content",...t.mainAction?{}:{title:"guide.step_plugin.repositories.default-title"},url:"repository",elementSelector:r,class:"repositories-select-repository",onNextClick:()=>i.clickOnElement(n)(),...t}}]}}])}};
2
- //# sourceMappingURL=76013.3211939a02cf4fb2529e.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"76013.3211939a02cf4fb2529e.bundle.js","mappings":"oHAAA,MAAMA,EAAoBA,CAACC,EAAUC,IAC1BD,EAASE,cAAcC,kBAAkBC,KAAMC,GAASA,EAAKC,KAAOL,EAAQM,cAAgBN,EAAQM,aAAeN,EAAQO,iBAGhIC,EAA+BA,CAACT,EAAUC,IACrCD,EAASU,WAAWC,wBAAwB,iBAAiBZ,EAAkBC,EAAUC,MAG9FW,EAAkCC,IACpC,MAAMC,EAAYC,SAASC,cAAc,6BACrCF,IAEAA,EAAUD,UAAYA,IAM9BI,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,6BAChBC,SAAUA,CAACnB,EAASD,KAChB,MAAMU,EAAaV,EAASU,WAI5B,OAHAT,EAAQoB,WAAa,oBACrBpB,EAAQqB,gBAAkB,IAAMvB,EAAkBC,EAAUC,GAErD,CAAC,CACJkB,eAAgB,oBAChBlB,QAASsB,QAAQC,OAAO,CAAC,EAAG,CACxBC,WAAW,EACXC,QAAS,8CACTC,gBAAiB,4BACjBC,MAAO,4BACPC,YAAanB,EAAWoB,eAAe,oDACxC7B,IACJ,CACCkB,eAAgB,oBAChBlB,QAASsB,QAAQC,OAAO,CAAC,EAAG,CACxBE,QAAS,8CACTC,gBAAiBA,IACNlB,EAA6BT,EAAUC,GAElD2B,MAAO,2BACPG,eAAWC,EACXC,kBAAmBA,IAAMjC,EAASU,WAAWwB,QAAQzB,EAA6BT,EAAUC,GAAU,GACjGkC,MAAOC,IAEJ,MADApC,EAASqC,OAAOD,MAAMpC,EAASsC,WAAWC,QAAQ,mCAC3CH,IAEfI,KAAOC,GAAU,KACb7B,GAA+B,GAE/B8B,EAAEjC,EAA6BT,EAAUC,IACpC0C,GAAG,sCAAuC,WACvCF,EAAMG,MACV,IAERf,YAAcY,IACVC,EAAEjC,EAA6BT,EAAUC,IAAU4C,IAAI,uCACvDnC,EAAWoB,eAAerB,EAA6BT,EAAUC,GAAjES,GAA6EoC,KAAK,IAAML,EAAMG,SAElGG,KAAMA,IAAM,KACRnC,GAA+B,GAE/B8B,EAAEjC,EAA6BT,EAAUC,IAAU4C,IAAI,wCAE3DG,aAAa,GACd/C,OAKf,CACIkB,eAAgB,iCAChBC,SAAUA,CAACnB,EAASD,KAChB,MAAMU,EAAaV,EAASU,WACtBH,EAAeN,EAAQgD,sBAAwBlD,EAAkBC,EAAUC,GAE3EiD,EAAwC,GADVxC,EAAWC,wBAAwB,cAAcJ,QACLG,EAAWC,wBAAwB,sCAC7GwC,EAAiC,GAAGD,KAAyCxC,EAAWC,wBAAwB,8BACtH,MAAO,CACH,CACIQ,eAAgB,oBAChBlB,QAAS,CACLyB,QAAS,8DAELzB,EAAQoB,WAAa,CAAC,EAAI,CAAC+B,MAtEpB,gDAuEXC,IAAK,aACL1B,gBAAiBuB,EACjBtB,MAAO,iCACPC,YAAaA,IAAMnB,EAAWoB,eAAeqB,EAA1BzC,MAChBT,Q","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/select-repository/plugin.js"],"sourcesContent":["const getRepositoryName = (services, options) => {\n return services.$repositories.getRepositories().find((repo) => repo.id === options.repositoryId) ? options.repositoryId : options.repositoryIdBase;\n};\n\nconst getRepositoryElementSelector = (services, options) => {\n return services.GuideUtils.getGuideElementSelector(`repository-id-${getRepositoryName(services, options)}`);\n};\n\nconst setRepositorySelectorAutoClose = (autoClose) => {\n const component = document.querySelector('.onto-repository-selector');\n if (component) {\n // Enable auto-close when the guide step is closed.\n component.autoClose = autoClose;\n }\n}\n\nconst REPOSITORIES_DEFAULT_TITLE = 'guide.step_plugin.repositories.default-title'\n\nPluginRegistry.add('guide.step', [\n {\n guideBlockName: 'select-repository-dropdown',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'select-repository';\n options.getRepositoryId = () => getRepositoryName(services, options);\n\n return [{\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n skipPoint: true,\n content: 'guide.step_plugin.choose-repository.content',\n elementSelector: '.onto-repository-selector',\n class: 'repositories-group-button',\n onNextClick: GuideUtils.clickOnElement('.onto-repository-selector .onto-dropdown-button')\n }, options)\n }, {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.select-repository.content',\n elementSelector: () => {\n return getRepositoryElementSelector(services, options);\n },\n class: 'repository-select-button',\n advanceOn: undefined,\n beforeShowPromise: () => services.GuideUtils.waitFor(getRepositoryElementSelector(services, options), 1)\n .catch((error) => {\n services.toastr.error(services.$translate.instant('guide.unexpected.error.message'));\n throw (error);\n }),\n show: (guide) => () => {\n setRepositorySelectorAutoClose(false);\n // Added listener to the element.\n $(getRepositoryElementSelector(services, options))\n .on('mouseup.selectRepositoryButtonClick', function () {\n guide.next();\n });\n },\n onNextClick: (guide) => {\n $(getRepositoryElementSelector(services, options)).off('mouseup.selectRepositoryButtonClick');\n GuideUtils.clickOnElement(getRepositoryElementSelector(services, options))().then(() => guide.next());\n },\n hide: () => () => {\n setRepositorySelectorAutoClose(true);\n // Remove ths listener from element. It is important when step is hided.\n $(getRepositoryElementSelector(services, options)).off('mouseup.selectRepositoryButtonClick');\n },\n canBePaused: false\n }, options)\n }\n ];\n }\n },\n {\n guideBlockName: 'repositories-select-repository',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const repositoryId = options.repositoryIdToSelect ?? getRepositoryName(services, options);\n const selectRepositoryRowSelector = GuideUtils.getGuideElementSelector(`repository-${repositoryId}`);\n const selectRepositoryButtonWrapperSelector = `${selectRepositoryRowSelector} ${GuideUtils.getGuideElementSelector('select-repository-button-wrapper')}`;\n const selectRepositoryButtonSelector = `${selectRepositoryButtonWrapperSelector} ${GuideUtils.getGuideElementSelector('select-repository-button')}`;\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.repositories.select-repository.content',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: REPOSITORIES_DEFAULT_TITLE}),\n url: 'repository',\n elementSelector: selectRepositoryButtonWrapperSelector,\n class: 'repositories-select-repository',\n onNextClick: () => GuideUtils.clickOnElement(selectRepositoryButtonSelector)(),\n ...options\n }\n }\n ]\n }\n }\n]);\n"],"names":["getRepositoryName","services","options","$repositories","getRepositories","find","repo","id","repositoryId","repositoryIdBase","getRepositoryElementSelector","GuideUtils","getGuideElementSelector","setRepositorySelectorAutoClose","autoClose","component","document","querySelector","PluginRegistry","add","guideBlockName","getSteps","mainAction","getRepositoryId","angular","extend","skipPoint","content","elementSelector","class","onNextClick","clickOnElement","advanceOn","undefined","beforeShowPromise","waitFor","catch","error","toastr","$translate","instant","show","guide","$","on","next","off","then","hide","canBePaused","repositoryIdToSelect","selectRepositoryButtonWrapperSelector","selectRepositoryButtonSelector","title","url"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=86142;export const __webpack_ids__=[86142];export const __webpack_modules__={86142:()=>{const e="guide.step-action.select-ttyg-agent";PluginRegistry.add("guide.step",[{guideBlockName:"ttyg-select-agent-info-message",getSteps:(t,o)=>[{guideBlockName:"info-message",options:{content:"guide.step_plugin.select-ttyg-agent.info.content",...t.mainAction?{}:{title:e},class:"select-ttyg-agent",skipPoint:!0,disablePreviousFlow:!0,...t,url:"ttyg"}}]},{guideBlockName:"ttyg-select-agent-dropdown-open",getSteps:(t,o)=>{const n=o.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.select-ttyg-agent.open-agent-dropdown",...t.mainAction?{}:{title:e},class:"open-agent-dropdown",disableNextFlow:!0,...t,url:"ttyg",elementSelector:n.getGuideElementSelector("select-agent-dropdown")}}]}},{guideBlockName:"ttyg-select-agent-from-dropdown",getSteps:(t,o)=>{const n=o.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.select-ttyg-agent.select-agent",...t.mainAction?{}:{title:e},disableNextFlow:!0,class:"select-your-agent",...t,elementSelector:n.getGuideElementSelector("select-agent-panel"),show:()=>()=>{const e=document.querySelector(n.getGuideElementSelector("select-agent-dropdown")),o=document.querySelector(n.getGuideElementSelector("select-agent-dropdown-toggle"));t.observer=new MutationObserver(function(e){for(const t of e)"attributes"===t.type&&(t.target.classList.contains("open")||o.click())}),t.observer.observe(e,{attributes:!0})},hide:()=>()=>{t.observer.disconnect()}}}]}},{guideBlockName:"ttyg-select-agent-check-for-missing-repository-cancel",getSteps:(t,o)=>{const n=o.GuideUtils;return[{guideBlockName:"info-message",options:angular.extend({},{beforeShowPromise:(e,t)=>n.getOrWaitFor(n.getElementSelector(".confirm-dialog .cancel-btn"),1).then(()=>{setTimeout(()=>e.next())}).catch(()=>{const o=t.id;setTimeout(()=>e.show(o+2))})},t)},{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.select-ttyg-agent.missing-repository",...t.mainAction?{}:{title:e},...t,elementSelector:n.getElementSelector(".confirm-dialog .cancel-btn"),showOn:()=>n.isVisible(".confirm-dialog .cancel-btn"),onNextClick:()=>{n.clickOnElement(".confirm-dialog .cancel-btn")()},show:(e,t)=>()=>{const o=t.id;$(t.elementSelector).on("click",()=>{e.show(o-3)})},hide:(e,t)=>()=>{$(t.elementSelector).off("click")}}}]}},{guideBlockName:"select-ttyg-agent",getSteps:e=>(e.mainAction="select-ttyg-agent",[{guideBlockName:"ttyg-select-agent-info-message",options:{...e}},{guideBlockName:"ttyg-select-agent-dropdown-open",options:{...e}},{guideBlockName:"ttyg-select-agent-from-dropdown",options:{...e}},{guideBlockName:"ttyg-select-agent-check-for-missing-repository-cancel",options:{...e}}])}])}};
2
- //# sourceMappingURL=86142.c29959b68edc59a9b696.bundle.js.map