graphdb-workbench 3.2.0-TR4 → 3.2.0-TR5

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 (160) hide show
  1. package/dist/12358.d1b5130917702cb0dd25.bundle.js +3 -0
  2. package/dist/12358.d1b5130917702cb0dd25.bundle.js.map +1 -0
  3. package/dist/{12396.a1b7856e86d52282f34c.bundle.js → 12396.bb3eab12cf754ea62ada.bundle.js} +2 -2
  4. package/dist/{12396.a1b7856e86d52282f34c.bundle.js.map → 12396.bb3eab12cf754ea62ada.bundle.js.map} +1 -1
  5. package/dist/{15535.c58319cba275ee5baa90.bundle.js → 15535.18ede9f56483a38d1305.bundle.js} +2 -2
  6. package/dist/{15535.c58319cba275ee5baa90.bundle.js.map → 15535.18ede9f56483a38d1305.bundle.js.map} +1 -1
  7. package/dist/{16162.2dc986d04777c8ae9489.bundle.js → 16162.68c4cc2feee685642217.bundle.js} +2 -2
  8. package/dist/{16162.2dc986d04777c8ae9489.bundle.js.map → 16162.68c4cc2feee685642217.bundle.js.map} +1 -1
  9. package/dist/19402.151ce1287c14531436c3.bundle.js +2 -0
  10. package/dist/19402.151ce1287c14531436c3.bundle.js.map +1 -0
  11. package/dist/{20287.7cfc312df157f5bdea97.bundle.js → 20287.a67ba9468f3f83219558.bundle.js} +2 -2
  12. package/dist/{20287.7cfc312df157f5bdea97.bundle.js.map → 20287.a67ba9468f3f83219558.bundle.js.map} +1 -1
  13. package/dist/{21136.67a9bcf4bb0c201d3fd1.bundle.js → 21136.514ac00d21a54514a7b6.bundle.js} +2 -2
  14. package/dist/{21136.67a9bcf4bb0c201d3fd1.bundle.js.map → 21136.514ac00d21a54514a7b6.bundle.js.map} +1 -1
  15. package/dist/{21142.7f8327c28d939fa26009.bundle.js → 21142.5e08154738dc30c2aa36.bundle.js} +2 -2
  16. package/dist/{21142.7f8327c28d939fa26009.bundle.js.map → 21142.5e08154738dc30c2aa36.bundle.js.map} +1 -1
  17. package/dist/{21170.cecdf25699f68d4cf749.bundle.js → 21170.1122ab4c938b88301ba7.bundle.js} +2 -2
  18. package/dist/{21170.cecdf25699f68d4cf749.bundle.js.map → 21170.1122ab4c938b88301ba7.bundle.js.map} +1 -1
  19. package/dist/{21195.e2c1fc69631041b97f8e.bundle.js → 21195.4067ec470e04250ed006.bundle.js} +2 -2
  20. package/dist/{21195.e2c1fc69631041b97f8e.bundle.js.map → 21195.4067ec470e04250ed006.bundle.js.map} +1 -1
  21. package/dist/{25747.c3dc5503ad696af5d5a3.bundle.js → 25747.c6c83a72c5ff93451064.bundle.js} +2 -2
  22. package/dist/{25747.c3dc5503ad696af5d5a3.bundle.js.map → 25747.c6c83a72c5ff93451064.bundle.js.map} +1 -1
  23. package/dist/{27580.d038d43102a3e9eec97d.bundle.js → 27580.0219349c709de4b5a0f4.bundle.js} +2 -2
  24. package/dist/{27580.d038d43102a3e9eec97d.bundle.js.map → 27580.0219349c709de4b5a0f4.bundle.js.map} +1 -1
  25. package/dist/{31636.fc6eba63d6d985d31673.bundle.js → 31636.191bd3c9ed0e3fb62007.bundle.js} +2 -2
  26. package/dist/{31636.fc6eba63d6d985d31673.bundle.js.map → 31636.191bd3c9ed0e3fb62007.bundle.js.map} +1 -1
  27. package/dist/{32489.e9af1ec463e2d4136732.bundle.js → 32489.468bcab006cd04c016c7.bundle.js} +2 -2
  28. package/dist/{32489.e9af1ec463e2d4136732.bundle.js.map → 32489.468bcab006cd04c016c7.bundle.js.map} +1 -1
  29. package/dist/{34495.06c9997d58d0b0ba7152.bundle.js → 34495.9b2a1410b1782a381a1e.bundle.js} +2 -2
  30. package/dist/{34495.06c9997d58d0b0ba7152.bundle.js.map → 34495.9b2a1410b1782a381a1e.bundle.js.map} +1 -1
  31. package/dist/36665.6bc77ded61aedb454c6e.bundle.js +2 -0
  32. package/dist/36665.6bc77ded61aedb454c6e.bundle.js.map +1 -0
  33. package/dist/{38360.ca92a04a1afcf9cfea7f.bundle.js → 38360.3714f16105c232cbf498.bundle.js} +2 -2
  34. package/dist/{38360.ca92a04a1afcf9cfea7f.bundle.js.map → 38360.3714f16105c232cbf498.bundle.js.map} +1 -1
  35. package/dist/{38644.29dbfb38e4089efa6697.bundle.js → 38644.f34d9227543727bec695.bundle.js} +2 -2
  36. package/dist/{38644.29dbfb38e4089efa6697.bundle.js.map → 38644.f34d9227543727bec695.bundle.js.map} +1 -1
  37. package/dist/{38843.4b11f56e93f60fbe4e0a.bundle.js → 38843.1ed4c0d2657b5fb9ed8a.bundle.js} +2 -2
  38. package/dist/{38843.4b11f56e93f60fbe4e0a.bundle.js.map → 38843.1ed4c0d2657b5fb9ed8a.bundle.js.map} +1 -1
  39. package/dist/{39518.c577d83ed591fada064c.bundle.js → 39518.52135a04a886f95c5801.bundle.js} +2 -2
  40. package/dist/{39518.c577d83ed591fada064c.bundle.js.map → 39518.52135a04a886f95c5801.bundle.js.map} +1 -1
  41. package/dist/{39539.463ec29e136b100c0abe.bundle.js → 39539.351f1fe10b21f949a885.bundle.js} +2 -2
  42. package/dist/{39539.463ec29e136b100c0abe.bundle.js.map → 39539.351f1fe10b21f949a885.bundle.js.map} +1 -1
  43. package/dist/40516.7db0da5332b68a1cb0a4.bundle.js +2 -0
  44. package/dist/40516.7db0da5332b68a1cb0a4.bundle.js.map +1 -0
  45. package/dist/{41453.241761ce8ff75036e5e0.bundle.js → 41453.c082b58753e157b39bf9.bundle.js} +2 -2
  46. package/dist/{41453.241761ce8ff75036e5e0.bundle.js.map → 41453.c082b58753e157b39bf9.bundle.js.map} +1 -1
  47. package/dist/{42129.f67dc6029cdab567bf54.bundle.js → 42129.6877bc3354f3413916f2.bundle.js} +2 -2
  48. package/dist/{42129.f67dc6029cdab567bf54.bundle.js.map → 42129.6877bc3354f3413916f2.bundle.js.map} +1 -1
  49. package/dist/{44444.a1b29c2329c7d4a39cc5.bundle.js → 44444.2b282777f2e1424a03b1.bundle.js} +2 -2
  50. package/dist/{44444.a1b29c2329c7d4a39cc5.bundle.js.map → 44444.2b282777f2e1424a03b1.bundle.js.map} +1 -1
  51. package/dist/{55862.1c3f1e807c8a05b1b6ed.bundle.js → 55862.f591817372ceb94a4cd2.bundle.js} +2 -2
  52. package/dist/{55862.1c3f1e807c8a05b1b6ed.bundle.js.map → 55862.f591817372ceb94a4cd2.bundle.js.map} +1 -1
  53. package/dist/{58306.a45182d200e3f8793644.bundle.js → 58306.b82da84fcad5ac12087a.bundle.js} +2 -2
  54. package/dist/{58306.a45182d200e3f8793644.bundle.js.map → 58306.b82da84fcad5ac12087a.bundle.js.map} +1 -1
  55. package/dist/64118.b15383c12c5bdf6d907f.bundle.js +2 -0
  56. package/dist/64118.b15383c12c5bdf6d907f.bundle.js.map +1 -0
  57. package/dist/{67888.e21c0e4c70be6214fcd7.bundle.js → 67888.927a2d7905f79d2f5bb4.bundle.js} +2 -2
  58. package/dist/{67888.e21c0e4c70be6214fcd7.bundle.js.map → 67888.927a2d7905f79d2f5bb4.bundle.js.map} +1 -1
  59. package/dist/{72379.cb41e26c33271a25816e.bundle.js → 72379.d21e40131b7e44c75eba.bundle.js} +2 -2
  60. package/dist/{72379.cb41e26c33271a25816e.bundle.js.map → 72379.d21e40131b7e44c75eba.bundle.js.map} +1 -1
  61. package/dist/{73667.ad957853dba08fd3be30.bundle.js → 73667.0921baf2ddc28806feca.bundle.js} +2 -2
  62. package/dist/{73667.ad957853dba08fd3be30.bundle.js.map → 73667.0921baf2ddc28806feca.bundle.js.map} +1 -1
  63. package/dist/{73793.79a311b387e5db776506.bundle.js → 73793.f61f6800eea64549ae30.bundle.js} +2 -2
  64. package/dist/{73793.79a311b387e5db776506.bundle.js.map → 73793.f61f6800eea64549ae30.bundle.js.map} +1 -1
  65. package/dist/{75282.8be5dde957dc6452c86a.bundle.js → 75282.06a7373dccbf2b056731.bundle.js} +2 -2
  66. package/dist/{75282.8be5dde957dc6452c86a.bundle.js.map → 75282.06a7373dccbf2b056731.bundle.js.map} +1 -1
  67. package/dist/{75849.0f6bab8b5749be998286.bundle.js → 75849.6ae9e20cdb3fbe4018a4.bundle.js} +2 -2
  68. package/dist/{75849.0f6bab8b5749be998286.bundle.js.map → 75849.6ae9e20cdb3fbe4018a4.bundle.js.map} +1 -1
  69. package/dist/{78250.dd9bdc3db3ca0c84b25a.bundle.js → 78250.41373d9ae256b6730c8e.bundle.js} +2 -2
  70. package/dist/{78250.dd9bdc3db3ca0c84b25a.bundle.js.map → 78250.41373d9ae256b6730c8e.bundle.js.map} +1 -1
  71. package/dist/{79329.24a5e42cccee5055311a.bundle.js → 79329.936a7b8d31824b46a180.bundle.js} +2 -2
  72. package/dist/{79329.24a5e42cccee5055311a.bundle.js.map → 79329.936a7b8d31824b46a180.bundle.js.map} +1 -1
  73. package/dist/{82926.02f08566fe1f948d9e1f.bundle.js → 82926.3236f3a40da860eebf37.bundle.js} +2 -2
  74. package/dist/{82926.02f08566fe1f948d9e1f.bundle.js.map → 82926.3236f3a40da860eebf37.bundle.js.map} +1 -1
  75. package/dist/85609.4e7aa94beab1fc123db2.bundle.js +2 -0
  76. package/dist/85609.4e7aa94beab1fc123db2.bundle.js.map +1 -0
  77. package/dist/{9062.e1ad16e157f04b8c9dd8.bundle.js → 9062.ff0f38917b9553efad03.bundle.js} +2 -2
  78. package/dist/{9062.e1ad16e157f04b8c9dd8.bundle.js.map → 9062.ff0f38917b9553efad03.bundle.js.map} +1 -1
  79. package/dist/{99448.93e01a6a24e4a1cb0546.bundle.js → 99448.10fc24b7ebab10d3c7ce.bundle.js} +2 -2
  80. package/dist/{99448.93e01a6a24e4a1cb0546.bundle.js.map → 99448.10fc24b7ebab10d3c7ce.bundle.js.map} +1 -1
  81. package/dist/index.html +8 -8
  82. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  83. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  84. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  85. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  86. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  87. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  88. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  89. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  90. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  91. package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
  92. package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
  93. package/dist/js/angular/core/templates/search-resource-input.html +1 -1
  94. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
  95. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  96. package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
  97. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  98. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  99. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  100. package/dist/js/angular/security/templates/user.html +2 -2
  101. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  102. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  103. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  104. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  105. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  106. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  107. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
  108. package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
  109. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  110. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  111. package/dist/{legacyWorkbench.ecf6300fd72cfffbcdb6.js → legacyWorkbench.1e8b6faf7df3096cdb57.js} +3 -3
  112. package/dist/{legacyWorkbench.ecf6300fd72cfffbcdb6.js.map → legacyWorkbench.1e8b6faf7df3096cdb57.js.map} +1 -1
  113. package/dist/pages/aclmanagement.html +2 -2
  114. package/dist/pages/autocomplete.html +1 -1
  115. package/dist/pages/choose-repository-type.html +1 -1
  116. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  117. package/dist/pages/create-index.html +1 -1
  118. package/dist/pages/dependencies.html +1 -1
  119. package/dist/pages/domainRangeInfo.html +2 -2
  120. package/dist/pages/edit.html +1 -1
  121. package/dist/pages/explore.html +1 -1
  122. package/dist/pages/export.html +1 -1
  123. package/dist/pages/find.html +1 -1
  124. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  125. package/dist/pages/graphs-visualizations.html +7 -7
  126. package/dist/pages/guides.html +1 -1
  127. package/dist/pages/import.html +2 -2
  128. package/dist/pages/jdbc-create.html +1 -1
  129. package/dist/pages/login.html +1 -1
  130. package/dist/pages/monitor/backup-and-restore.html +1 -1
  131. package/dist/pages/monitor/queries.html +1 -1
  132. package/dist/pages/monitor/resources.html +1 -1
  133. package/dist/pages/namespaces.html +2 -2
  134. package/dist/pages/not_found.html +1 -1
  135. package/dist/pages/plugins.html +1 -1
  136. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  137. package/dist/pages/rdfrank.html +2 -2
  138. package/dist/pages/repositories.html +1 -1
  139. package/dist/pages/repository.html +1 -1
  140. package/dist/pages/similarity-indexes.html +1 -1
  141. package/dist/pages/sparql-editor.html +1 -1
  142. package/dist/pages/sparql-template-create.html +1 -1
  143. package/dist/pages/ux-test1.html +2 -2
  144. package/dist/pages/webapi.html +2 -2
  145. package/dist/res/swagger5/index.html +11 -11
  146. package/package.json +1 -1
  147. package/dist/12358.4be185f89eebea9c35bf.bundle.js +0 -3
  148. package/dist/12358.4be185f89eebea9c35bf.bundle.js.map +0 -1
  149. package/dist/19402.7f6ea977348338acc824.bundle.js +0 -2
  150. package/dist/19402.7f6ea977348338acc824.bundle.js.map +0 -1
  151. package/dist/36665.69d43b057bcfc55df3b5.bundle.js +0 -2
  152. package/dist/36665.69d43b057bcfc55df3b5.bundle.js.map +0 -1
  153. package/dist/40516.3cfaf1ff4704c038f944.bundle.js +0 -2
  154. package/dist/40516.3cfaf1ff4704c038f944.bundle.js.map +0 -1
  155. package/dist/64118.edc8ed6671017d09ff4e.bundle.js +0 -2
  156. package/dist/64118.edc8ed6671017d09ff4e.bundle.js.map +0 -1
  157. package/dist/85609.68438b4955212d5fcb84.bundle.js +0 -2
  158. package/dist/85609.68438b4955212d5fcb84.bundle.js.map +0 -1
  159. /package/dist/{12358.4be185f89eebea9c35bf.bundle.js.LICENSE.txt → 12358.d1b5130917702cb0dd25.bundle.js.LICENSE.txt} +0 -0
  160. /package/dist/{legacyWorkbench.ecf6300fd72cfffbcdb6.js.LICENSE.txt → legacyWorkbench.1e8b6faf7df3096cdb57.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"79329.24a5e42cccee5055311a.bundle.js","mappings":"uJAOA,QANW,sxxB","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/modal/agent-settings-modal.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-settings-modal.css?v=3.2.0-TR4\" rel=\"stylesheet\"/> <link href=\"css/lib/ng-tags-input/ng-tags-input.min.css?v=3.2.0-TR4\" rel=\"stylesheet\"/> <div class=\"modal-header\"> <button type=\"button\" class=\"close\" ng-click=\"close()\"></button> <h4 class=\"modal-title\">{{( operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.title.edit ' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.title.clone' : 'ttyg.agent.create_agent_modal.title.create') | translate}}</h4> </div> <div class=\"modal-body\"> <form novalidate name=\"agentSettingsForm\" id=\"agentSettingsForm\" class=\"agent-settings-form\" guide-selector=\"agent-form\"> <div class=\"form-group agent-name-label\"> <label for=\"name\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.agent_name.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.agent_name.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"name\" name=\"name\" ng-model=\"agentFormModel.name\" required autocomplete=\"off\" guide-selector=\"agent-name\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.agent_name.placeholder' | translate}}\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.name.\\$touched && agentSettingsForm.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div> <button class=\"external-config-btn\" ng-click=\"openExternalIntegrationConfig()\" ng-if=\"operation !== AGENT_OPERATION.CREATE\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.external_config.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> {{'ttyg.agent.create_agent_modal.form.external_config.label' | translate}} </button> </div> <div class=\"form-group repository-id\"> <label for=\"repositoryId\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.repository.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.repository.label' | translate}}</label> <select class=\"form-control\" id=\"repositoryId\" name=\"repositoryId\" ng-model=\"agentFormModel.repositoryId\" required ng-change=\"onRepositoryChange()\" guide-selector=\"repository-id\" ng-options=\"repository.value as repository.label for repository in activeRepositoryList\"> </select> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.repositoryId.\\$touched && agentSettingsForm.repositoryId.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-row clearfix\"> <div class=\"form-group llm-model\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\"> <label for=\"model\">{{'ttyg.agent.create_agent_modal.form.model.label' | translate}}</label> <help-info-popover help-info=\"helpInfoForModel\"></help-info-popover> <input type=\"text\" class=\"form-control\" id=\"model\" name=\"model\" ng-model=\"agentFormModel.model\" guide-selector=\"model\" required autocomplete=\"off\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.model.\\$touched && agentSettingsForm.model.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div ng-if=\"showContextSize\" class=\"form-group context-size col-md-3\"> <div class=\"context-size-wrapper\"> <label for=\"contextSize\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.context_size.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.context_size.label' | translate}}</span> </label> <button type=\"button\" class=\"btn btn-link btn-sm reset-context-size-btn\" ng-click=\"onRestoreDefaultContextSize()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.context_size.restore_default_btn.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> <div class=\"input-with-unit\"> <input type=\"number\" id=\"contextSize\" name=\"contextSize\" class=\"form-control\" min=\"1\" ng-model=\"agentFormModel.contextSize\" required autocomplete=\"off\"> <span class=\"token-unit-label\"> {{'ttyg.agent.create_agent_modal.form.context_size.field_addon' | translate}} </span> </div> </div> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.contextSize.\\$touched && agentSettingsForm.contextSize.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group temperature\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\" guide-selector=\"temperature-control\"> <label for=\"temperature\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.temperature.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning high-temperature-warning\" ng-if=\"showHighTemperatureWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <input type=\"text\" id=\"temperature\" name=\"temperature\" readonly=\"readonly\" class=\"form-control\" ng-class=\"{'has-warning': showHighTemperatureWarning}\" ng-model=\"agentFormModel.temperature.value\"> <input id=\"temperatureSlider\" name=\"temperature\" type=\"range\" guide-selector=\"temperature-control-input\" min=\"{{agentFormModel.temperature.minValue}}\" max=\"{{agentFormModel.temperature.maxValue}}\" step=\"{{agentFormModel.temperature.step}}\" ng-change=\"onTemperatureChange()\" ng-model=\"agentFormModel.temperature.value\"/> </div> <div class=\"form-group top-p\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\" guide-selector=\"top-p-control\"> <label for=\"topP\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.top_p.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.top_p.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"topP\" name=\"topP\" readonly=\"readonly\" ng-model=\"agentFormModel.topP.value\"> <input id=\"topPSlider\" name=\"topP\" type=\"range\" min=\"{{agentFormModel.topP.minValue}}\" guide-selector=\"top-p-control-input\" max=\"{{agentFormModel.topP.maxValue}}\" step=\"{{agentFormModel.topP.step}}\" ng-model=\"agentFormModel.topP.value\"/> </div> </div> <div class=\"form-group extraction-methods-group\"> <label for=\"extractionMethods\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.extraction_method.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.extraction_method.label' | translate}}</label> <div id=\"extractionMethods\" name=\"extractionMethods\" ng-model=\"agentFormModel.assistantExtractionMethods.extractionMethods\" required class=\"accordion extraction-methods\" ng-class=\"{'has-error': agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid}\"> <div ng-repeat=\"extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods\" class=\"extraction-method\"> <div id=\"{{extractionMethod.method + '_method_heading'}}\" class=\"extraction-method-heading\" ng-class=\"{'selected': extractionMethod.selected}\" guide-selector=\"query-method-{{extractionMethod.method}}\"> <div class=\"mr-0 extraction-method-toggle\"> <input type=\"checkbox\" id=\"{{extractionMethod.method + '_checkbox'}}\" guide-selector=\"query-method-{{extractionMethod.method}}-input\" name=\"{{extractionMethod.method}}\" class=\"switch\" ng-click=\"toggleExtractionMethod(extractionMethod, \\$event)\" ng-model=\"extractionMethod.selected\"/> <label for=\"{{extractionMethod.method + '_checkbox'}}\"></label> </div> <a class=\"btn btn-link panel-toggle-link\" aria-expanded=\"false\" aria-controls=\"{{extractionMethod.method + '_method_content'}}\" ng-click=\"onExtractionMethodPanelToggle(extractionMethod)\"> <span class=\"mr-1\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.label' | translate}}</span> <i class=\"fa fa-chevron-down toggle-icon\" ng-class=\"{'expanded': extractionMethod.expanded}\"> </i> </a> </div> <div id=\"{{extractionMethod.method + '_method_content'}}\" class=\"show extraction-method-content\" aria-labelledby=\"{{extractionMethod.method + '_method_heading'}}\" data-parent=\"#extractionMethods\"> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL\" class=\"extraction-method-options\" ng-class=\"{'has-error': extractionMethod.selected && !extractionMethod.sparqlOption}\"> <div class=\"sparql-option ontology-graph-option\" guide-selector=\"sparql-ontology-graph-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" guide-selector=\"sparql-ontology-graph-option-input\" ng-model=\"extractionMethod.sparqlOption\" value=\"ontologyGraph\"> {{'ttyg.agent.create_agent_modal.form.ontology_graph.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'ontologyGraph'\"> <div class=\"form-group\"> <input type=\"text\" class=\"form-control\" id=\"ontologyGraph\" guide-selector=\"sparql-ontology-graph-input\" name=\"ontologyGraph\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'ontologyGraph'\" ng-model=\"extractionMethod.ontologyGraph\"> </div> </div> </div> <div class=\"sparql-option sparql-query-option\" guide-selector=\"sparql-query-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.construct_query.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" guide-selector=\"sparql-query-option-input\" ng-model=\"extractionMethod.sparqlOption\" value=\"sparqlQuery\"> {{'ttyg.agent.create_agent_modal.form.construct_query.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'sparqlQuery'\"> <div class=\"form-group\"> <textarea type=\"text\" class=\"form-control\" id=\"sparqlQuery\" guide-selector=\"sparql-query-input\" name=\"sparqlQuery\" rows=\"10\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'sparqlQuery'\" ng-minlength=\"extractionMethod.sparqlQuery.minLength\" ng-maxlength=\"extractionMethod.sparqlQuery.maxLength\" ng-model=\"extractionMethod.sparqlQuery.value\">\n </textarea> </div> </div> </div> <div class=\"alert alert-danger sparql-method-option-required-error mb-0\" ng-if=\"extractionMethod.selected && !extractionMethod.sparqlOption\"> {{'ttyg.agent.create_agent_modal.form.sparql_search.required_option' | translate}} </div> <div class=\"add-missing-namespaces-option mt-1\" guide-selector=\"add-missing-namespaces-option\"> <input id=\"addMissingNamespaces\" name=\"addMissingNamespaces\" type=\"checkbox\" guide-selector=\"add-missing-namespaces-input\" ng-model=\"extractionMethod.addMissingNamespaces\"> <label for=\"addMissingNamespaces\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{ 'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label' | translate }}</label> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH\" ng-class=\"{'has-error': agentSettingsForm.\\$error.FTSDisabled || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"checkIfFTSEnabled()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"!ftsEnabled && agentFormModel.repositoryId\" class=\"fts-disabled-message\" ng-bind-html=\"getFTSDisabledHelpMessage()\"> </div> <div class=\"form-group max-triples\" ng-show=\"ftsEnabled && agentFormModel.repositoryId\"> <label for=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label' | translate}} </label> <input type=\"number\" class=\"form-control\" guide-selector=\"max-triples-per-call-input\" id=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingIndex || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateSimilaritySearchPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"agentFormModel.repositoryId && !similarityIndexes.length\" class=\"no-similarity-index-message\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1' | translate}} <a href=\"\" ng-click=\"goToCreateSimilarityView(\\$event)\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3' | translate}}. </div> <div ng-show=\"similarityIndexes.length\"> <div class=\"form-group similarity-index\"> <label for=\"similarityIndex\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_index.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.similarity_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"similarityIndex\" name=\"similarityIndex\" guide-selector=\"similarity-index-select\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.similarity_search\" ng-model=\"extractionMethod.similarityIndex\" ng-options=\"similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.similarityIndex.\\$touched && extractionMethod.similarityIndex.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group similarity-index-threshold\"> <label for=\"similarityIndexThreshold\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_threshold.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"similarityIndexThreshold\" name=\"similarityIndexThreshold\" readonly=\"readonly\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"> <input id=\"similarityIndexThresholdSlider\" name=\"similarityIndexThreshold\" type=\"range\" ng-required=\"extractionMethod.selected\" min=\"{{extractionMethod.similarityIndexThreshold.minValue}}\" max=\"{{extractionMethod.similarityIndexThreshold.maxValue}}\" step=\"0.1\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"/> </div> <div class=\"form-group similarity-max-triples\"> <label for=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingConnector || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateRetrievalConnectorPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"agentFormModel.repositoryId && !retrievalConnectors.length\" class=\"no-retrieval-connector-message\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1' | translate}} <a href=\"\" ng-click=\"goToConnectorsView(\\$event)\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3' | translate}}. </div> <div ng-show=\"retrievalConnectors.length\"> <div class=\"form-group retrieval-connector\"> <label for=\"retrievalConnectorInstance\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.connector_id.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.connector_id.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.retrieval_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"retrievalConnectorInstance\" name=\"retrievalConnectorInstance\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.retrieval_search\" ng-model=\"extractionMethod.retrievalConnectorInstance\" ng-options=\"retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.retrievalConnectorInstance.\\$touched && extractionMethod.retrievalConnectorInstance.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group query-template\"> <label for=\"queryTemplate\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.query_template.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.query_template.label' | translate}}</label> <textarea type=\"text\" class=\"form-control\" id=\"queryTemplate\" name=\"queryTemplate\" rows=\"10\" ng-required=\"extractionMethod.selected\" ng-minlength=\"extractionMethod.queryTemplate.minLength\" ng-maxlength=\"extractionMethod.queryTemplate.maxLength\" ng-model=\"extractionMethod.queryTemplate.value\">\n </textarea> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.name.\\$touched && extractionMethod.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group retrieval-connector-max-triples\"> <label for=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> </div> </div> </div> <div class=\"alert alert-danger extraction-method-required-error\" ng-if=\"agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.extraction_method.required' | translate}} </div> </div> <div id=\"additionalExtractionMethods\" class=\"form-group additional-extraction-methods\"> <label uib-popover=\"{{'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.additional_query_methods.label' | translate}} </label> <div ng-repeat=\"extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods\" class=\"additional-extraction-method\"> <div ng-if=\"ExtractionMethodTemplates[extractionMethod.method]\"> <div ng-include=\"'js/angular/ttyg/templates/' + ExtractionMethodTemplates[extractionMethod.method] + '.html'\"></div> </div> </div> </div> <div class=\"form-group user-instructions\"> <div class=\"toolbar\"> <label for=\"userInstruction\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.user_instruction.label' | translate}}</label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.userInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultUserInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"userInstruction\" name=\"userInstruction\" rows=\"5\" guide-selector=\"user-instructions\" ng-model=\"agentFormModel.instructions.userInstruction\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.placeholder' | translate}}\">\n </textarea> </div> <div class=\"text-xs-center\"> <button type=\"button\" ng-click=\"showAdvancedSettings = !showAdvancedSettings\" class=\"btn btn-link btn-sm toggle-advanced-settings\"> <span ng-hide=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.show' | translate}}<em class=\"icon-caret-down\"></em></span> <span ng-show=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.hide' | translate}}<em class=\"icon-caret-up\"></em></span> </button> </div> <div ng-show=\"showAdvancedSettings\" class=\"advanced-settings\"> <div class=\"form-group system-instructions\"> <div class=\"toolbar\"> <label for=\"systemInstruction\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.system_instruction.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning overriding-system-instructions-warning\" ng-if=\"showSystemInstructionWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.systemInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultSystemInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"systemInstruction\" name=\"systemInstruction\" rows=\"5\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.placeholder' | translate}}\" ng-class=\"{'has-warning': showSystemInstructionWarning}\" ng-model=\"agentFormModel.instructions.systemInstruction\" ng-change=\"onSystemInstructionChange()\">\n </textarea> </div> </div> </form> </div> <div class=\"modal-footer\"> <button type=\"button\" ng-click=\"onExplainAgentSettings()\" class=\"btn explain-agent-settings-btn\"> {{'ttyg.agent.create_agent_modal.btn.explain_settings.label' | translate}} </button> <div> <button type=\"button\" ng-click=\"cancel()\" class=\"btn cancel-btn\"> {{'ttyg.agent.create_agent_modal.btn.cancel.label' | translate}} </button> <button type=\"button\" ng-click=\"ok()\" ng-disabled=\"agentSettingsForm.\\$invalid || savingAgent\" guide-selector=\"save-agent-settings\" class=\"btn btn-primary save-agent-settings-btn\"> <span>{{(operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.btn.save.label' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.btn.save.label' : 'ttyg.agent.create_agent_modal.btn.create.label') | translate}}</span> <span class=\"saving-agent-loader\" ng-if=\"savingAgent\" onto-loader-fancy hide-message=\"true\" size=\"15\"></span> </button> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"79329.936a7b8d31824b46a180.bundle.js","mappings":"uJAOA,QANW,sxxB","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/modal/agent-settings-modal.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-settings-modal.css?v=3.2.0-TR5\" rel=\"stylesheet\"/> <link href=\"css/lib/ng-tags-input/ng-tags-input.min.css?v=3.2.0-TR5\" rel=\"stylesheet\"/> <div class=\"modal-header\"> <button type=\"button\" class=\"close\" ng-click=\"close()\"></button> <h4 class=\"modal-title\">{{( operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.title.edit ' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.title.clone' : 'ttyg.agent.create_agent_modal.title.create') | translate}}</h4> </div> <div class=\"modal-body\"> <form novalidate name=\"agentSettingsForm\" id=\"agentSettingsForm\" class=\"agent-settings-form\" guide-selector=\"agent-form\"> <div class=\"form-group agent-name-label\"> <label for=\"name\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.agent_name.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.agent_name.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"name\" name=\"name\" ng-model=\"agentFormModel.name\" required autocomplete=\"off\" guide-selector=\"agent-name\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.agent_name.placeholder' | translate}}\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.name.\\$touched && agentSettingsForm.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div> <button class=\"external-config-btn\" ng-click=\"openExternalIntegrationConfig()\" ng-if=\"operation !== AGENT_OPERATION.CREATE\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.external_config.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> {{'ttyg.agent.create_agent_modal.form.external_config.label' | translate}} </button> </div> <div class=\"form-group repository-id\"> <label for=\"repositoryId\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.repository.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.repository.label' | translate}}</label> <select class=\"form-control\" id=\"repositoryId\" name=\"repositoryId\" ng-model=\"agentFormModel.repositoryId\" required ng-change=\"onRepositoryChange()\" guide-selector=\"repository-id\" ng-options=\"repository.value as repository.label for repository in activeRepositoryList\"> </select> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.repositoryId.\\$touched && agentSettingsForm.repositoryId.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-row clearfix\"> <div class=\"form-group llm-model\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\"> <label for=\"model\">{{'ttyg.agent.create_agent_modal.form.model.label' | translate}}</label> <help-info-popover help-info=\"helpInfoForModel\"></help-info-popover> <input type=\"text\" class=\"form-control\" id=\"model\" name=\"model\" ng-model=\"agentFormModel.model\" guide-selector=\"model\" required autocomplete=\"off\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.model.\\$touched && agentSettingsForm.model.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div ng-if=\"showContextSize\" class=\"form-group context-size col-md-3\"> <div class=\"context-size-wrapper\"> <label for=\"contextSize\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.context_size.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.context_size.label' | translate}}</span> </label> <button type=\"button\" class=\"btn btn-link btn-sm reset-context-size-btn\" ng-click=\"onRestoreDefaultContextSize()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.context_size.restore_default_btn.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> <div class=\"input-with-unit\"> <input type=\"number\" id=\"contextSize\" name=\"contextSize\" class=\"form-control\" min=\"1\" ng-model=\"agentFormModel.contextSize\" required autocomplete=\"off\"> <span class=\"token-unit-label\"> {{'ttyg.agent.create_agent_modal.form.context_size.field_addon' | translate}} </span> </div> </div> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.contextSize.\\$touched && agentSettingsForm.contextSize.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group temperature\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\" guide-selector=\"temperature-control\"> <label for=\"temperature\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.temperature.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning high-temperature-warning\" ng-if=\"showHighTemperatureWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <input type=\"text\" id=\"temperature\" name=\"temperature\" readonly=\"readonly\" class=\"form-control\" ng-class=\"{'has-warning': showHighTemperatureWarning}\" ng-model=\"agentFormModel.temperature.value\"> <input id=\"temperatureSlider\" name=\"temperature\" type=\"range\" guide-selector=\"temperature-control-input\" min=\"{{agentFormModel.temperature.minValue}}\" max=\"{{agentFormModel.temperature.maxValue}}\" step=\"{{agentFormModel.temperature.step}}\" ng-change=\"onTemperatureChange()\" ng-model=\"agentFormModel.temperature.value\"/> </div> <div class=\"form-group top-p\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\" guide-selector=\"top-p-control\"> <label for=\"topP\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.top_p.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.top_p.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"topP\" name=\"topP\" readonly=\"readonly\" ng-model=\"agentFormModel.topP.value\"> <input id=\"topPSlider\" name=\"topP\" type=\"range\" min=\"{{agentFormModel.topP.minValue}}\" guide-selector=\"top-p-control-input\" max=\"{{agentFormModel.topP.maxValue}}\" step=\"{{agentFormModel.topP.step}}\" ng-model=\"agentFormModel.topP.value\"/> </div> </div> <div class=\"form-group extraction-methods-group\"> <label for=\"extractionMethods\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.extraction_method.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.extraction_method.label' | translate}}</label> <div id=\"extractionMethods\" name=\"extractionMethods\" ng-model=\"agentFormModel.assistantExtractionMethods.extractionMethods\" required class=\"accordion extraction-methods\" ng-class=\"{'has-error': agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid}\"> <div ng-repeat=\"extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods\" class=\"extraction-method\"> <div id=\"{{extractionMethod.method + '_method_heading'}}\" class=\"extraction-method-heading\" ng-class=\"{'selected': extractionMethod.selected}\" guide-selector=\"query-method-{{extractionMethod.method}}\"> <div class=\"mr-0 extraction-method-toggle\"> <input type=\"checkbox\" id=\"{{extractionMethod.method + '_checkbox'}}\" guide-selector=\"query-method-{{extractionMethod.method}}-input\" name=\"{{extractionMethod.method}}\" class=\"switch\" ng-click=\"toggleExtractionMethod(extractionMethod, \\$event)\" ng-model=\"extractionMethod.selected\"/> <label for=\"{{extractionMethod.method + '_checkbox'}}\"></label> </div> <a class=\"btn btn-link panel-toggle-link\" aria-expanded=\"false\" aria-controls=\"{{extractionMethod.method + '_method_content'}}\" ng-click=\"onExtractionMethodPanelToggle(extractionMethod)\"> <span class=\"mr-1\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.label' | translate}}</span> <i class=\"fa fa-chevron-down toggle-icon\" ng-class=\"{'expanded': extractionMethod.expanded}\"> </i> </a> </div> <div id=\"{{extractionMethod.method + '_method_content'}}\" class=\"show extraction-method-content\" aria-labelledby=\"{{extractionMethod.method + '_method_heading'}}\" data-parent=\"#extractionMethods\"> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL\" class=\"extraction-method-options\" ng-class=\"{'has-error': extractionMethod.selected && !extractionMethod.sparqlOption}\"> <div class=\"sparql-option ontology-graph-option\" guide-selector=\"sparql-ontology-graph-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" guide-selector=\"sparql-ontology-graph-option-input\" ng-model=\"extractionMethod.sparqlOption\" value=\"ontologyGraph\"> {{'ttyg.agent.create_agent_modal.form.ontology_graph.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'ontologyGraph'\"> <div class=\"form-group\"> <input type=\"text\" class=\"form-control\" id=\"ontologyGraph\" guide-selector=\"sparql-ontology-graph-input\" name=\"ontologyGraph\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'ontologyGraph'\" ng-model=\"extractionMethod.ontologyGraph\"> </div> </div> </div> <div class=\"sparql-option sparql-query-option\" guide-selector=\"sparql-query-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.construct_query.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" guide-selector=\"sparql-query-option-input\" ng-model=\"extractionMethod.sparqlOption\" value=\"sparqlQuery\"> {{'ttyg.agent.create_agent_modal.form.construct_query.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'sparqlQuery'\"> <div class=\"form-group\"> <textarea type=\"text\" class=\"form-control\" id=\"sparqlQuery\" guide-selector=\"sparql-query-input\" name=\"sparqlQuery\" rows=\"10\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'sparqlQuery'\" ng-minlength=\"extractionMethod.sparqlQuery.minLength\" ng-maxlength=\"extractionMethod.sparqlQuery.maxLength\" ng-model=\"extractionMethod.sparqlQuery.value\">\n </textarea> </div> </div> </div> <div class=\"alert alert-danger sparql-method-option-required-error mb-0\" ng-if=\"extractionMethod.selected && !extractionMethod.sparqlOption\"> {{'ttyg.agent.create_agent_modal.form.sparql_search.required_option' | translate}} </div> <div class=\"add-missing-namespaces-option mt-1\" guide-selector=\"add-missing-namespaces-option\"> <input id=\"addMissingNamespaces\" name=\"addMissingNamespaces\" type=\"checkbox\" guide-selector=\"add-missing-namespaces-input\" ng-model=\"extractionMethod.addMissingNamespaces\"> <label for=\"addMissingNamespaces\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{ 'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label' | translate }}</label> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH\" ng-class=\"{'has-error': agentSettingsForm.\\$error.FTSDisabled || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"checkIfFTSEnabled()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"!ftsEnabled && agentFormModel.repositoryId\" class=\"fts-disabled-message\" ng-bind-html=\"getFTSDisabledHelpMessage()\"> </div> <div class=\"form-group max-triples\" ng-show=\"ftsEnabled && agentFormModel.repositoryId\"> <label for=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label' | translate}} </label> <input type=\"number\" class=\"form-control\" guide-selector=\"max-triples-per-call-input\" id=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingIndex || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateSimilaritySearchPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"agentFormModel.repositoryId && !similarityIndexes.length\" class=\"no-similarity-index-message\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1' | translate}} <a href=\"\" ng-click=\"goToCreateSimilarityView(\\$event)\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3' | translate}}. </div> <div ng-show=\"similarityIndexes.length\"> <div class=\"form-group similarity-index\"> <label for=\"similarityIndex\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_index.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.similarity_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"similarityIndex\" name=\"similarityIndex\" guide-selector=\"similarity-index-select\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.similarity_search\" ng-model=\"extractionMethod.similarityIndex\" ng-options=\"similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.similarityIndex.\\$touched && extractionMethod.similarityIndex.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group similarity-index-threshold\"> <label for=\"similarityIndexThreshold\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_threshold.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"similarityIndexThreshold\" name=\"similarityIndexThreshold\" readonly=\"readonly\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"> <input id=\"similarityIndexThresholdSlider\" name=\"similarityIndexThreshold\" type=\"range\" ng-required=\"extractionMethod.selected\" min=\"{{extractionMethod.similarityIndexThreshold.minValue}}\" max=\"{{extractionMethod.similarityIndexThreshold.maxValue}}\" step=\"0.1\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"/> </div> <div class=\"form-group similarity-max-triples\"> <label for=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingConnector || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateRetrievalConnectorPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"agentFormModel.repositoryId && !retrievalConnectors.length\" class=\"no-retrieval-connector-message\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1' | translate}} <a href=\"\" ng-click=\"goToConnectorsView(\\$event)\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3' | translate}}. </div> <div ng-show=\"retrievalConnectors.length\"> <div class=\"form-group retrieval-connector\"> <label for=\"retrievalConnectorInstance\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.connector_id.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.connector_id.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.retrieval_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"retrievalConnectorInstance\" name=\"retrievalConnectorInstance\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.retrieval_search\" ng-model=\"extractionMethod.retrievalConnectorInstance\" ng-options=\"retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.retrievalConnectorInstance.\\$touched && extractionMethod.retrievalConnectorInstance.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group query-template\"> <label for=\"queryTemplate\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.query_template.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.query_template.label' | translate}}</label> <textarea type=\"text\" class=\"form-control\" id=\"queryTemplate\" name=\"queryTemplate\" rows=\"10\" ng-required=\"extractionMethod.selected\" ng-minlength=\"extractionMethod.queryTemplate.minLength\" ng-maxlength=\"extractionMethod.queryTemplate.maxLength\" ng-model=\"extractionMethod.queryTemplate.value\">\n </textarea> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.name.\\$touched && extractionMethod.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group retrieval-connector-max-triples\"> <label for=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> </div> </div> </div> <div class=\"alert alert-danger extraction-method-required-error\" ng-if=\"agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.extraction_method.required' | translate}} </div> </div> <div id=\"additionalExtractionMethods\" class=\"form-group additional-extraction-methods\"> <label uib-popover=\"{{'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.additional_query_methods.label' | translate}} </label> <div ng-repeat=\"extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods\" class=\"additional-extraction-method\"> <div ng-if=\"ExtractionMethodTemplates[extractionMethod.method]\"> <div ng-include=\"'js/angular/ttyg/templates/' + ExtractionMethodTemplates[extractionMethod.method] + '.html'\"></div> </div> </div> </div> <div class=\"form-group user-instructions\"> <div class=\"toolbar\"> <label for=\"userInstruction\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.user_instruction.label' | translate}}</label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.userInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultUserInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"userInstruction\" name=\"userInstruction\" rows=\"5\" guide-selector=\"user-instructions\" ng-model=\"agentFormModel.instructions.userInstruction\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.placeholder' | translate}}\">\n </textarea> </div> <div class=\"text-xs-center\"> <button type=\"button\" ng-click=\"showAdvancedSettings = !showAdvancedSettings\" class=\"btn btn-link btn-sm toggle-advanced-settings\"> <span ng-hide=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.show' | translate}}<em class=\"icon-caret-down\"></em></span> <span ng-show=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.hide' | translate}}<em class=\"icon-caret-up\"></em></span> </button> </div> <div ng-show=\"showAdvancedSettings\" class=\"advanced-settings\"> <div class=\"form-group system-instructions\"> <div class=\"toolbar\"> <label for=\"systemInstruction\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.system_instruction.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning overriding-system-instructions-warning\" ng-if=\"showSystemInstructionWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.systemInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultSystemInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"systemInstruction\" name=\"systemInstruction\" rows=\"5\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.placeholder' | translate}}\" ng-class=\"{'has-warning': showSystemInstructionWarning}\" ng-model=\"agentFormModel.instructions.systemInstruction\" ng-change=\"onSystemInstructionChange()\">\n </textarea> </div> </div> </form> </div> <div class=\"modal-footer\"> <button type=\"button\" ng-click=\"onExplainAgentSettings()\" class=\"btn explain-agent-settings-btn\"> {{'ttyg.agent.create_agent_modal.btn.explain_settings.label' | translate}} </button> <div> <button type=\"button\" ng-click=\"cancel()\" class=\"btn cancel-btn\"> {{'ttyg.agent.create_agent_modal.btn.cancel.label' | translate}} </button> <button type=\"button\" ng-click=\"ok()\" ng-disabled=\"agentSettingsForm.\\$invalid || savingAgent\" guide-selector=\"save-agent-settings\" class=\"btn btn-primary save-agent-settings-btn\"> <span>{{(operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.btn.save.label' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.btn.save.label' : 'ttyg.agent.create_agent_modal.btn.create.label') | translate}}</span> <span class=\"saving-agent-loader\" ng-if=\"savingAgent\" onto-loader-fancy hide-message=\"true\" size=\"15\"></span> </button> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- export const __webpack_id__=82926;export const __webpack_ids__=[82926];export const __webpack_modules__={82926:()=>{function t(){return{link:function(t,e,o){t.$watch("file.status",function(){"IMPORTING"!==t.file.status&&"UPLOADING"!==t.file.status||!$(e).has("object").length>0&&$(e).append('<object width="'+o.size+'" height="'+o.size+'" data="js/angular/templates/loader/ot-loader.svg?v=3.2.0-TR4">{{\'common.loading\' | translate}}</object>')})}}}angular.module("graphdb.framework.import.directives.import-progress-indicator",[]).directive("ImportProgressIndicator",t),t.$inject=[]}};
2
- //# sourceMappingURL=82926.02f08566fe1f948d9e1f.bundle.js.map
1
+ export const __webpack_id__=82926;export const __webpack_ids__=[82926];export const __webpack_modules__={82926:()=>{function t(){return{link:function(t,e,o){t.$watch("file.status",function(){"IMPORTING"!==t.file.status&&"UPLOADING"!==t.file.status||!$(e).has("object").length>0&&$(e).append('<object width="'+o.size+'" height="'+o.size+'" data="js/angular/templates/loader/ot-loader.svg?v=3.2.0-TR5">{{\'common.loading\' | translate}}</object>')})}}}angular.module("graphdb.framework.import.directives.import-progress-indicator",[]).directive("ImportProgressIndicator",t),t.$inject=[]}};
2
+ //# sourceMappingURL=82926.3236f3a40da860eebf37.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"82926.02f08566fe1f948d9e1f.bundle.js","mappings":"oHASA,SAASA,IACL,MAAO,CACHC,KAAM,SAAUC,EAAOC,EAASC,GAC5BF,EAAMG,OAAO,cAAe,WACE,cAAtBH,EAAMI,KAAKC,QAAgD,cAAtBL,EAAMI,KAAKC,SAC3CC,EAAEL,GAASM,IAAI,UAAUC,OAAS,GACnCF,EAAEL,GAASQ,OAAO,kBAAoBP,EAAKQ,KAAO,aAAeR,EAAKQ,KAAO,6GAGzF,EACJ,EAER,CAnBAC,QACKC,OAAO,gEAHI,IAIXC,UAAU,0BAA2Bf,GAE1CA,EAAwBgB,QAAU,E","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/import/directives/import-progress-indicator.directive.js"],"sourcesContent":["const modules = [];\n\nangular\n .module('graphdb.framework.import.directives.import-progress-indicator', modules)\n .directive('ImportProgressIndicator', ImportProgressIndicator);\n\nImportProgressIndicator.$inject = [];\n\n// importDirectives.directive('filesOntoLoader',\nfunction ImportProgressIndicator() {\n return {\n link: function (scope, element, attr) {\n scope.$watch('file.status', function () {\n if (scope.file.status === 'IMPORTING' || scope.file.status === 'UPLOADING') {\n if (!$(element).has('object').length > 0) {\n $(element).append('<object width=\"' + attr.size + '\" height=\"' + attr.size + '\" data=\"js/angular/templates/loader/ot-loader.svg?v=3.2.0-TR4\">{{\\'common.loading\\' | translate}}</object>');\n }\n }\n });\n }\n };\n}\n"],"names":["ImportProgressIndicator","link","scope","element","attr","$watch","file","status","$","has","length","append","size","angular","module","directive","$inject"],"sourceRoot":""}
1
+ {"version":3,"file":"82926.3236f3a40da860eebf37.bundle.js","mappings":"oHASA,SAASA,IACL,MAAO,CACHC,KAAM,SAAUC,EAAOC,EAASC,GAC5BF,EAAMG,OAAO,cAAe,WACE,cAAtBH,EAAMI,KAAKC,QAAgD,cAAtBL,EAAMI,KAAKC,SAC3CC,EAAEL,GAASM,IAAI,UAAUC,OAAS,GACnCF,EAAEL,GAASQ,OAAO,kBAAoBP,EAAKQ,KAAO,aAAeR,EAAKQ,KAAO,6GAGzF,EACJ,EAER,CAnBAC,QACKC,OAAO,gEAHI,IAIXC,UAAU,0BAA2Bf,GAE1CA,EAAwBgB,QAAU,E","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/import/directives/import-progress-indicator.directive.js"],"sourcesContent":["const modules = [];\n\nangular\n .module('graphdb.framework.import.directives.import-progress-indicator', modules)\n .directive('ImportProgressIndicator', ImportProgressIndicator);\n\nImportProgressIndicator.$inject = [];\n\n// importDirectives.directive('filesOntoLoader',\nfunction ImportProgressIndicator() {\n return {\n link: function (scope, element, attr) {\n scope.$watch('file.status', function () {\n if (scope.file.status === 'IMPORTING' || scope.file.status === 'UPLOADING') {\n if (!$(element).has('object').length > 0) {\n $(element).append('<object width=\"' + attr.size + '\" height=\"' + attr.size + '\" data=\"js/angular/templates/loader/ot-loader.svg?v=3.2.0-TR5\">{{\\'common.loading\\' | translate}}</object>');\n }\n }\n });\n }\n };\n}\n"],"names":["ImportProgressIndicator","link","scope","element","attr","$watch","file","status","$","has","length","append","size","angular","module","directive","$inject"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ export const __webpack_id__=85609;export const __webpack_ids__=[19402,36633,45458,63415,85609,85788];export const __webpack_modules__={19402:(t,s,e)=>{e.r(s),e.d(s,{ChatByDayModel:()=>n,ChatModel:()=>h,ChatsListModel:()=>r});var a=e(63415),i=e(93135);class h{static getNewChat(){const t={name:"· · ·",timestamp:Math.floor(Date.now()/1e3),new:!0};return new h(t,(0,i.md5HashGenerator)())}constructor(t,s){this.hashGenerator=s,this._id=t.id,this._name=t.name,this._timestamp=t.timestamp,this._chatHistory=t.chatHistory||new a.ChatItemsListModel,this._new=t.new??!1,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 n{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 r{constructor(t){this._chats=t||[],this._chatsByDay=[],this.sortByTime(),this.updateChatsByDay()}containsNewChats(){return this._chats.some(t=>t.isNew())}sortByTime(){this._chats.sort((t,s)=>s.timestamp-t.timestamp)}updateChatTimestamp(t,s){const e=this._chats.find(s=>s.id===t);e&&(e.timestamp=s,this.sortByTime(),this.updateChatsByDay())}setChatAsOld(t){const s=this._chats.find(s=>s.id===t);s&&(s.new=!1)}updateChatName(t,s){const e=this._chats.find(s=>s.id===t);e&&(e.name=s)}deleteChat(t){this._chats=this._chats.filter(s=>s.id!==t.id),this.sortByTime(),this.updateChatsByDay()}updateChatsByDay(){this._chatsByDay=[],this._chats.forEach(t=>{const s=new Date(1e3*t.timestamp).toDateString(),e=this._chatsByDay.find(t=>t.day===s);e?e.chats.push(t):this._chatsByDay.push(new n({day:s,timestamp:1e3*t.timestamp,chats:[t]}))})}appendChat(t){this._chats.push(t),this.sortByTime(),this.updateChatsByDay()}replaceChat(t,s){this._chats=this._chats.map(e=>e.id===s.id?t:e),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(s=>{s.selected=s.id===t.id})}getChat(t){return this._chats.find(s=>s.id===t)}getNonPersistedChat(){return this._chats.find(t=>!t.id)}renameChat(t){const s=this._chats.find(s=>s.id===t.id);s&&(s.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}}},36633:(t,s,e)=>{e.r(s),e.d(s,{CHAT_MESSAGE_ROLE:()=>i,ChatMessageModel:()=>a});class a{constructor(t){this._id=t.id,this._role=t.role,this._message=t.message,this._timestamp=1e3*t.timestamp,this.tokenUsageInfo=t.tokenUsageInfo,this._isTerminalState=t.isTerminalState,this._status=t.status}addToChatAnswer(t){t.messages=[this]}get id(){return this._id}set id(t){this._id=t}get role(){return this._role}set role(t){this._role=t}get message(){return this._message}set message(t){this._message=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get isTerminalState(){return this._isTerminalState}set isTerminalState(t){this._isTerminalState=t}get status(){return this._status}set status(t){this._status=t}}const i={USER:"user",ASSISTANT:"assistant"}},45458:(t,s,e)=>{e.r(s),e.d(s,{ChatAnswerModel:()=>a,ContinueChatRun:()=>i});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 i{constructor(t,s){this._chatItem=t,this._runId=s}get chatId(){return this._chatItem.chatId}toContinueRunRequestPayload(){return{conversationId:this.chatId,runId:this._runId,agentId:this._chatItem.agentId,tzOffset:-(new Date).getTimezoneOffset()}}}},63415:(t,s,e)=>{e.r(s),e.d(s,{ChatItemModel:()=>i,ChatItemsListModel:()=>h});var a=e(36633);class i{constructor(t,s){this._chatId=t,this._agentId=void 0,this._question=s,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 h{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,s,e)=>{e.r(s),e.d(s,{chatModelMapper:()=>o,chatsListMapper:()=>m});var a=e(19402),i=e(93135),h=e(85788),n=e(63415);const r=(0,i.md5HashGenerator)(),m=t=>{if(!t)return new a.ChatsListModel;const s=t.map(t=>o(t));return new a.ChatsListModel(s)},o=t=>{if(t)return new a.ChatModel({id:t.id,name:t.name,timestamp:t.timestamp,chatHistory:t.messages&&t.messages.length?(0,h.chatItemsModelMapper)(t.messages):new n.ChatItemsListModel},r)}},85788:(t,s,e)=>{e.r(s),e.d(s,{chatAnswerModelMapper:()=>o,chatItemsModelMapper:()=>r,chatMessageModelListMapper:()=>n,chatMessageModelMapper:()=>m});var a=e(36633),i=e(63415),h=e(45458);const n=t=>t?t.map(t=>m(t)):[],r=(t=[])=>{const s=[];let e;return t.forEach(t=>{const h=t.conversationId;a.CHAT_MESSAGE_ROLE.USER===t.role?(e&&s.push(e),e=new i.ChatItemModel(h,m(t))):(e||(e=new i.ChatItemModel(h,null)),e.answers.push(m(t)),e.agentId=t.agentId)}),e&&s.push(e),new i.ChatItemsListModel(s)},m=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})},o=t=>{if(t)return new h.ChatAnswerModel({chatId:t.id,chatName:t.name,timestamp:t.timestamp,messages:n(t.messages),continueRunId:t.continueRunId,tokenUsageInfo:t.usage})}}};
2
+ //# sourceMappingURL=85609.4e7aa94beab1fc123db2.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"85609.4e7aa94beab1fc123db2.bundle.js","mappings":"2PAGO,MAAMA,EACT,iBAAOC,GACH,MAAMC,EAAO,CACTC,KAAM,QACNC,UAAWC,KAAKC,MAAMC,KAAKC,MAAQ,KACnCC,KAAK,GAET,OAAO,IAAIT,EAAUE,GAAMQ,EAAAA,EAAAA,oBAC/B,CAEAC,WAAAA,CAAYT,EAAMU,GACdC,KAAKD,cAAgBA,EAKrBC,KAAKC,IAAMZ,EAAKa,GAKhBF,KAAKG,MAAQd,EAAKC,KAKlBU,KAAKI,WAAaf,EAAKE,UAKvBS,KAAKK,aAAehB,EAAKiB,aAAe,IAAIC,EAAAA,mBAC5CP,KAAKQ,KAAOnB,EAAKO,MAAO,EACxBI,KAAKS,KAAOT,KAAKU,cACrB,CAEAC,KAAAA,GACI,OAAOX,KAAKQ,IAChB,CAEA,OAAIZ,CAAIgB,GACJZ,KAAKQ,KAAOI,CAChB,CAEAF,YAAAA,GACI,OAAOV,KAAKD,cAAcc,KAAKC,UAAUd,MAC7C,CAEA,MAAIE,GACA,OAAOF,KAAKC,GAChB,CAEA,MAAIC,CAAGU,GACHZ,KAAKC,IAAMW,CACf,CAEA,QAAItB,GACA,OAAOU,KAAKG,KAChB,CAEA,QAAIb,CAAKsB,GACLZ,KAAKU,eACLV,KAAKG,MAAQS,CACjB,CAEA,aAAIrB,GACA,OAAOS,KAAKI,UAChB,CAEA,aAAIb,CAAUqB,GACVZ,KAAKI,WAAaQ,CACtB,CAEA,eAAIN,GACA,OAAON,KAAKK,YAChB,CAEA,eAAIC,CAAYM,GACZZ,KAAKK,aAAeO,GAAS,IAAIL,EAAAA,kBACrC,CAQAQ,sBAAAA,GACI,MAAO,CAACzB,KAAMU,KAAKG,MACvB,EAGG,MAAMa,EACTlB,WAAAA,CAAYT,GACRW,KAAKiB,KAAO5B,EAAK6B,IAKjBlB,KAAKI,WAAaf,EAAKE,UAKvBS,KAAKmB,OAAS9B,EAAK+B,KACvB,CAEA,OAAIF,GACA,OAAOlB,KAAKiB,IAChB,CAEA,OAAIC,CAAIN,GACJZ,KAAKiB,KAAOL,CAChB,CAEA,aAAIrB,GACA,OAAOS,KAAKI,UAChB,CAEA,aAAIb,CAAUqB,GACVZ,KAAKI,WAAaQ,CACtB,CAEA,SAAIQ,GACA,OAAOpB,KAAKmB,MAChB,CAEA,SAAIC,CAAMR,GACNZ,KAAKmB,OAASP,CAClB,EAGG,MAAMS,EACTvB,WAAAA,CAAYsB,GAKRpB,KAAKmB,OAASC,GAAS,GAKvBpB,KAAKsB,YAAc,GACnBtB,KAAKuB,aACLvB,KAAKwB,kBACT,CAOAC,gBAAAA,GACI,OAAOzB,KAAKmB,OAAOO,KAAMC,GAASA,EAAKhB,QAC3C,CAKAY,UAAAA,GACIvB,KAAKmB,OAAOS,KAAK,CAACC,EAAGC,IACVA,EAAEvC,UAAYsC,EAAEtC,UAE/B,CAOAwC,mBAAAA,CAAoBC,EAAQzC,GACxB,MAAMoC,EAAO3B,KAAKmB,OAAOc,KAAMC,GAAMA,EAAEhC,KAAO8B,GAC1CL,IACAA,EAAKpC,UAAYA,EACjBS,KAAKuB,aACLvB,KAAKwB,mBAEb,CAOAW,YAAAA,CAAaH,GACT,MAAML,EAAO3B,KAAKmB,OAAOc,KAAMN,GAASA,EAAKzB,KAAO8B,GAChDL,IACAA,EAAK/B,KAAM,EAEnB,CAOAwC,cAAAA,CAAeJ,EAAQ1C,GACnB,MAAMqC,EAAO3B,KAAKmB,OAAOc,KAAMC,GAAMA,EAAEhC,KAAO8B,GAC1CL,IACAA,EAAKrC,KAAOA,EAEpB,CAMA+C,UAAAA,CAAWC,GACPtC,KAAKmB,OAASnB,KAAKmB,OAAOoB,OAAQZ,GAASA,EAAKzB,KAAOoC,EAAgBpC,IACvEF,KAAKuB,aACLvB,KAAKwB,kBACT,CAEAA,gBAAAA,GACIxB,KAAKsB,YAAc,GAEnBtB,KAAKmB,OAAOqB,QAASb,IACjB,MAAMT,EAAM,IAAIxB,KAAsB,IAAjBiC,EAAKpC,WAAkBkD,eACtCC,EAAW1C,KAAKsB,YAAYW,KAAMU,GAAMA,EAAEzB,MAAQA,GACpDwB,EACAA,EAAStB,MAAMwB,KAAKjB,GAEpB3B,KAAKsB,YAAYsB,KAAK,IAAI5B,EAAe,CAACE,IAAKA,EAAK3B,UAA4B,IAAjBoC,EAAKpC,UAAkB6B,MAAO,CAACO,OAG1G,CAEAkB,UAAAA,CAAWlB,GACP3B,KAAKmB,OAAOyB,KAAKjB,GACjB3B,KAAKuB,aACLvB,KAAKwB,kBACT,CAEAsB,WAAAA,CAAYC,EAASC,GACjBhD,KAAKmB,OAASnB,KAAKmB,OAAO8B,IAAKtB,GACvBA,EAAKzB,KAAO8C,EAAQ9C,GACb6C,EAEJpB,GAEX3B,KAAKuB,aACLvB,KAAKwB,kBACT,CAMA0B,OAAAA,GACI,OAA8B,IAAvBlD,KAAKmB,OAAOgC,MACvB,CAMAC,YAAAA,GACI,OAAOpD,KAAKmB,OAAO,EACvB,CAKAkC,WAAAA,GACIrD,KAAKmB,OAAOqB,QAASN,IACjBA,EAAEoB,UAAW,GAErB,CAMAC,UAAAA,CAAW5B,GACP3B,KAAKqD,cACLrD,KAAKmB,OAAOqB,QAASN,IACjBA,EAAEoB,SAAWpB,EAAEhC,KAAOyB,EAAKzB,IAEnC,CAEAsD,OAAAA,CAAQtD,GACJ,OAAOF,KAAKmB,OAAOc,KAAMC,GAAMA,EAAEhC,KAAOA,EAC5C,CAEAuD,mBAAAA,GACI,OAAOzD,KAAKmB,OAAOc,KAAMN,IAAUA,EAAKzB,GAC5C,CAEAwD,UAAAA,CAAWC,GACP,MAAMhC,EAAO3B,KAAKmB,OAAOc,KAAMC,GAAMA,EAAEhC,KAAOyD,EAAYzD,IACtDyB,IACAA,EAAKrC,KAAOqE,EAAYrE,KAEhC,CAKA,SAAI8B,GACA,OAAOpB,KAAKmB,MAChB,CAKA,SAAIC,CAAMR,GACNZ,KAAKmB,OAASP,CAClB,CAEA,cAAIgD,GACA,OAAO5D,KAAKsB,WAChB,CAEA,cAAIsC,CAAWhD,GACXZ,KAAKsB,YAAcV,CACvB,E,iFC/TG,MAAMiD,EACT/D,WAAAA,CAAYT,GAKRW,KAAKC,IAAMZ,EAAKa,GAKhBF,KAAK8D,MAAQzE,EAAK0E,KAKlB/D,KAAKgE,SAAW3E,EAAK4E,QAKrBjE,KAAKI,WAA8B,IAAjBf,EAAKE,UAQvBS,KAAKkE,eAAiB7E,EAAK6E,eAM3BlE,KAAKmE,iBAAmB9E,EAAK+E,gBAM7BpE,KAAKqE,QAAUhF,EAAKiF,MACxB,CAMAC,eAAAA,CAAgBC,GACZA,EAAWC,SAAW,CAACzE,KAC3B,CAEA,MAAIE,GACA,OAAOF,KAAKC,GAChB,CAEA,MAAIC,CAAGU,GACHZ,KAAKC,IAAMW,CACf,CAEA,QAAImD,GACA,OAAO/D,KAAK8D,KAChB,CAEA,QAAIC,CAAKnD,GACLZ,KAAK8D,MAAQlD,CACjB,CAEA,WAAIqD,GACA,OAAOjE,KAAKgE,QAChB,CAEA,WAAIC,CAAQrD,GACRZ,KAAKgE,SAAWpD,CACpB,CAEA,aAAIrB,GACA,OAAOS,KAAKI,UAChB,CAEA,aAAIb,CAAUqB,GACVZ,KAAKI,WAAaQ,CACtB,CAEA,mBAAIwD,GACA,OAAOpE,KAAKmE,gBAChB,CAEA,mBAAIC,CAAgBxD,GAChBZ,KAAKmE,iBAAmBvD,CAC5B,CAEA,UAAI0D,GACA,OAAOtE,KAAKqE,OAChB,CAEA,UAAIC,CAAO1D,GACPZ,KAAKqE,QAAUzD,CACnB,EAGG,MAAM8D,EAAoB,CAC7BC,KAAM,OACNC,UAAW,Y,8ECvGR,MAAMC,EACT/E,WAAAA,CAAYT,EAAO,CAAC,GAIhBW,KAAK8E,QAAUzF,EAAK2C,OAKpBhC,KAAK+E,UAAY1F,EAAK2F,UAAY,GAKlChF,KAAKI,WAAaf,EAAKE,UAKvBS,KAAKiF,UAAY5F,EAAKoF,UAAY,GAKlCzE,KAAKkF,eAAiB7F,EAAK8F,cAO3BnF,KAAKkE,eAAiB7E,EAAK6E,cAC/B,CAEA,UAAIlC,GACA,OAAOhC,KAAK8E,OAChB,CAEA,UAAI9C,CAAOpB,GACPZ,KAAK8E,QAAUlE,CACnB,CAEA,YAAIoE,GACA,OAAOhF,KAAK+E,SAChB,CAEA,YAAIC,CAASpE,GACTZ,KAAK+E,UAAYnE,CACrB,CAEA,aAAIrB,GACA,OAAOS,KAAKI,UAChB,CAEA,aAAIb,CAAUqB,GACVZ,KAAKI,WAAaQ,CACtB,CAEA,YAAI6D,GACA,OAAOzE,KAAKiF,SAChB,CAEA,YAAIR,CAAS7D,GACTZ,KAAKiF,UAAYrE,CACrB,CAEA,iBAAIuE,GACA,OAAOnF,KAAKkF,cAChB,CAEA,iBAAIC,CAAcvE,GACdZ,KAAKkF,eAAiBtE,CAC1B,EAOG,MAAMwE,EACTtF,WAAAA,CAAYuF,EAAUC,GAClBtF,KAAKuF,UAAYF,EACjBrF,KAAKwF,OAASF,CAClB,CAEA,UAAItD,GACA,OAAOhC,KAAKuF,UAAUvD,MAC1B,CAEAyD,2BAAAA,GACI,MAAO,CACHC,eAAgB1F,KAAKgC,OACrBsD,MAAOtF,KAAKwF,OACZG,QAAS3F,KAAKuF,UAAUI,QACxBC,WAAW,IAAIlG,MAAOmG,oBAE9B,E,8FC1FG,MAAMC,EAQThG,WAAAA,CAAYkC,EAAQ+D,GAMhB/F,KAAK8E,QAAU9C,EAMfhC,KAAKgG,cAAWC,EAMhBjG,KAAKkG,UAAYH,EAOjB/F,KAAKmG,SAAW,EACpB,CAEA,UAAInE,GACA,OAAOhC,KAAK8E,OAChB,CAEA,UAAI9C,CAAOpB,GACPZ,KAAK8E,QAAUlE,CACnB,CAEA,WAAI+E,GACA,OAAO3F,KAAKgG,QAChB,CAEA,WAAIL,CAAQ/E,GACRZ,KAAKgG,SAAWpF,CACpB,CAEA,YAAImF,GACA,OAAO/F,KAAKkG,SAChB,CAEA,YAAIH,CAASnF,GACTZ,KAAKkG,UAAYtF,CACrB,CAEA,WAAIwF,GACA,OAAOpG,KAAKmG,QAChB,CAMA,WAAIC,CAAQxF,GACRZ,KAAKmG,SAAWvF,CACpB,CAOAyF,kBAAAA,CAAmBpC,GACVjE,KAAKkG,YACNlG,KAAKkG,UAAY,IAAIrC,EAAAA,iBAAiB,CAACE,KAAMW,EAAAA,kBAAkBC,QAEnE3E,KAAKkG,UAAUjC,QAAUA,CAC7B,CAOAqC,kBAAAA,GACI,OAAOtG,KAAKkG,UAAUjC,OAC1B,CAOAsC,0BAAAA,GACI,MAAO,CACHZ,QAAS3F,KAAKgG,SACdD,SAAU/F,KAAKkG,UAAUjC,QAEjC,CAOAuC,mBAAAA,GACI,MAAO,CACHd,eAAgB1F,KAAK8E,QACrBa,QAAS3F,KAAKgG,SACdD,SAAU/F,KAAKkG,UAAUjC,QACzB2B,WAAW,IAAIlG,MAAOmG,oBAE9B,CAEAY,wBAAAA,CAAyBC,GACrB,MAAO,CACHhB,eAAgB1F,KAAK8E,QACrB4B,WAER,EAGG,MAAMnG,EAKTT,WAAAA,CAAY6G,EAAQ,IAChB3G,KAAK4G,OAASD,CAClB,CAEAzD,OAAAA,GACI,OAA8B,IAAvBlD,KAAK4G,OAAOzD,MACvB,CAKA0D,UAAAA,CAAWxB,GACPrF,KAAK4G,OAAOhE,KAAKyC,EACrB,CAEA,SAAIsB,GACA,OAAO3G,KAAK4G,MAChB,CAEA,SAAID,CAAM/F,GACNZ,KAAK4G,OAAShG,GAAS,EAC3B,CAEAkG,OAAAA,GACI,IAAK9G,KAAKkD,UACN,OAAOlD,KAAK4G,OAAO5G,KAAK4G,OAAOzD,OAAS,EAEhD,E,8HCjKJ,MAAMpD,GAAgBF,EAAAA,EAAAA,oBAOTkH,EAAmB1H,IAC5B,IAAKA,EACD,OAAO,IAAIgC,EAAAA,eAEf,MAAM2F,EAAa3H,EAAK4D,IAAKtB,GAASsF,EAAgBtF,IACtD,OAAO,IAAIN,EAAAA,eAAe2F,IAQjBC,EAAmB5H,IAC5B,GAAKA,EAGL,OAAO,IAAIF,EAAAA,UAAU,CACjBe,GAAIb,EAAKa,GACTZ,KAAMD,EAAKC,KACXC,UAAWF,EAAKE,UAChBe,YAAajB,EAAKoF,UAAYpF,EAAKoF,SAAStB,QAAS+D,EAAAA,EAAAA,sBAAqB7H,EAAKoF,UAAY,IAAIlE,EAAAA,oBAChGR,G,4LCzBA,MAAMoH,EAA8B9H,GAClCA,EAGEA,EAAK4D,IAAKmE,GAAgBC,EAAuBD,IAF7C,GAoCFF,EAAuBA,CAAC7H,EAAO,MACxC,MAAMsH,EAAQ,GACd,IAAIW,EAuBJ,OAtBAjI,EAAKmD,QAASyB,IAKV,MAAMjC,EAASiC,EAAQyB,eACnBhB,EAAAA,kBAAkBC,OAASV,EAAQF,MAC/BuD,GACAX,EAAM/D,KAAK0E,GAEfA,EAAc,IAAIxB,EAAAA,cAAc9D,EAAQqF,EAAuBpD,MAE1DqD,IACDA,EAAc,IAAIxB,EAAAA,cAAc9D,EAAQ,OAE5CsF,EAAYlB,QAAQxD,KAAKyE,EAAuBpD,IAChDqD,EAAY3B,QAAU1B,EAAQ0B,WAGlC2B,GACAX,EAAM/D,KAAK0E,GAER,IAAI/G,EAAAA,mBAAmBoG,IAQrBU,EAA0BhI,IACnC,GAAKA,EAGL,OAAO,IAAIwE,EAAAA,iBAAiB,CACxB3D,GAAIb,EAAKa,GACT6D,KAAM1E,EAAK0E,KACXE,QAAS5E,EAAK4E,QACd1E,UAAWF,EAAKE,UAChB2E,eAAgB7E,EAAKkI,MACrBlI,KAAMA,EACN+E,gBAAiB/E,EAAK+E,gBACtBE,OAAQjF,EAAKmI,sBASRC,EAAyBpI,IAClC,GAAKA,EAGL,OAAO,IAAIwF,EAAAA,gBAAgB,CACvB7C,OAAQ3C,EAAKa,GACb8E,SAAU3F,EAAKC,KACfC,UAAWF,EAAKE,UAChBkF,SAAU0C,EAA2B9H,EAAKoF,UAC1CU,cAAe9F,EAAK8F,cACpBjB,eAAgB7E,EAAKkI,Q","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chats.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-message.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-answer.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"],"sourcesContent":["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 ?? 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","export class ChatMessageModel {\n constructor(data) {\n\n /**\n * @type {string}\n */\n this._id = data.id;\n\n /**\n * @type @type {string} - A value from {@link CHAT_MESSAGE_ROLE}, determining the owner of the message (e.g., user, assistant).\n */\n this._role = data.role;\n\n /**\n * @type {string}\n */\n this._message = data.message;\n\n /**\n * @type {number}\n */\n this._timestamp = data.timestamp * 1000;\n\n /**\n * Holds information about the number of tokens used for this answer, including prompt and completion tokens.\n * It is applicable only to the assistant role ({@link CHAT_MESSAGE_ROLE#ASSISTANT}).\n *\n * @type {TokenUsageInfo}\n */\n this.tokenUsageInfo = data.tokenUsageInfo;\n\n /**\n * If the message was terminated via the Abort button\n * @type {boolean}\n */\n this._isTerminalState = data.isTerminalState;\n\n /**\n * Reason for cancellation.\n * @private {string}\n */\n this._status = data.status\n }\n\n /**\n * Updates the chatAnswer.messages array with this message instance.\n * @param {ChatAnswerModel} chatAnswer - The answer object containing the messages.\n */\n addToChatAnswer(chatAnswer) {\n chatAnswer.messages = [this];\n }\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this._id = value;\n }\n\n get role() {\n return this._role;\n }\n\n set role(value) {\n this._role = value;\n }\n\n get message() {\n return this._message;\n }\n\n set message(value) {\n this._message = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get isTerminalState() {\n return this._isTerminalState;\n }\n\n set isTerminalState(value) {\n this._isTerminalState = value;\n }\n\n get status() {\n return this._status;\n }\n\n set status(value) {\n this._status = value;\n }\n}\n\nexport const CHAT_MESSAGE_ROLE = {\n USER: 'user',\n ASSISTANT: 'assistant'\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 {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"],"names":["ChatModel","getNewChat","data","name","timestamp","Math","floor","Date","now","new","md5HashGenerator","constructor","hashGenerator","this","_id","id","_name","_timestamp","_chatHistory","chatHistory","ChatItemsListModel","_new","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","map","isEmpty","length","getFirstChat","deselectAll","selected","selectChat","getChat","getNonPersistedChat","renameChat","renamedChat","chatsByDay","ChatMessageModel","_role","role","_message","message","tokenUsageInfo","_isTerminalState","isTerminalState","_status","status","addToChatAnswer","chatAnswer","messages","CHAT_MESSAGE_ROLE","USER","ASSISTANT","ChatAnswerModel","_chatId","_chatName","chatName","_messages","_continueRunId","continueRunId","ContinueChatRun","chatItem","runId","_chatItem","_runId","toContinueRunRequestPayload","conversationId","agentId","tzOffset","getTimezoneOffset","ChatItemModel","question","_agentId","undefined","_question","_answers","answers","setQuestionMessage","getQuestionMessage","toCreateChatRequestPayload","toAskRequestPayload","toExplainResponsePayload","answerId","items","_items","appendItem","getLast","chatsListMapper","chatModels","chatModelMapper","chatItemsModelMapper","chatMessageModelListMapper","chatMessage","chatMessageModelMapper","currentItem","usage","terminalStatusCode","chatAnswerModelMapper"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- export const __webpack_id__=9062;export const __webpack_ids__=[9062];export const __webpack_modules__={9062:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a});const a='<link href="css/ttyg/agent-list.css?v=3.2.0-TR4" rel="stylesheet"/> <div class="agent-list-component"> <div class="agents-filter-dropdown btn-group" uib-dropdown> <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle"> <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i> <span class="selected-filter">{{selectedAgentsFilter.label}}</span> <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i> </button> <ul class="dropdown-menu" role="menu"> <li ng-repeat="filterModel in agentListFilterModel"> <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)" data-value="{{filterModel.label}}"> {{filterModel.label}} </button> </li> </ul> </div> <div class="agent-list"> <div ng-if="!agentList.agents.length" class="alert alert-warning"> {{\'ttyg.agent.messages.no_agents\' | translate}} </div> <div ng-repeat="agent in agentList.filterableAgents"> <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item" ng-class="{\'selected\': agent.id === selectedAgent.id}"> <div class="agent-info" ng-attr-gdb-tooltip="{{!agent.isCompatible ? (\'ttyg.agent.incompatible_agent\' | translate) : undefined}}"> <div class="agent-name" ng-class="{\'incompatible-agent\': !agent.isCompatible}"> <i ng-if="!agent.isCompatible" class="fa fa-triangle-exclamation text-warning"> </i> {{agent.name}} </div> <div class="btn-group"> <button class="btn btn-link secondary btn-sm open-agent-actions-btn" data-toggle="dropdown" aria-expanded="false" ng-if="true" ng-click="openAgentActionMenu()" ng-disabled="false"> <i class="fa fa-ellipsis"></i> </button> <div class="dropdown-menu dropdown-menu-right agent-actions-menu"> <button ng-if="agent.isCompatible" class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)"> <i class="fa fa-gear"></i> <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item ext-integration-agent-btn" type="button" ng-click="onExternalIntegration(agent)"> <i class="fa-regular fa-plug-circle-plus"></i> <span>{{\'ttyg.agent.btn.external_integration\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)"> <i class="fa fa-clone"></i> <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span> </button> <div ng-if="agent.isCompatible" class="dropdown-divider"></div> <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)"> <i class="fa fa-trash-can"></i> <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span> </button> </div> </div> </div> <div class="repository-model-group"> <div class="related-repository"> <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i> <i ng-if="agent.isRepositoryDeleted" class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository" gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}"> </i> {{agent.repositoryId}} </div> <div class="model-name">{{agent.model}}</div> </div> </div> <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress" onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}" size="25"></div> </div> </div> </div> '}};
2
- //# sourceMappingURL=9062.e1ad16e157f04b8c9dd8.bundle.js.map
1
+ export const __webpack_id__=9062;export const __webpack_ids__=[9062];export const __webpack_modules__={9062:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a});const a='<link href="css/ttyg/agent-list.css?v=3.2.0-TR5" rel="stylesheet"/> <div class="agent-list-component"> <div class="agents-filter-dropdown btn-group" uib-dropdown> <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle"> <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i> <span class="selected-filter">{{selectedAgentsFilter.label}}</span> <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i> </button> <ul class="dropdown-menu" role="menu"> <li ng-repeat="filterModel in agentListFilterModel"> <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)" data-value="{{filterModel.label}}"> {{filterModel.label}} </button> </li> </ul> </div> <div class="agent-list"> <div ng-if="!agentList.agents.length" class="alert alert-warning"> {{\'ttyg.agent.messages.no_agents\' | translate}} </div> <div ng-repeat="agent in agentList.filterableAgents"> <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item" ng-class="{\'selected\': agent.id === selectedAgent.id}"> <div class="agent-info" ng-attr-gdb-tooltip="{{!agent.isCompatible ? (\'ttyg.agent.incompatible_agent\' | translate) : undefined}}"> <div class="agent-name" ng-class="{\'incompatible-agent\': !agent.isCompatible}"> <i ng-if="!agent.isCompatible" class="fa fa-triangle-exclamation text-warning"> </i> {{agent.name}} </div> <div class="btn-group"> <button class="btn btn-link secondary btn-sm open-agent-actions-btn" data-toggle="dropdown" aria-expanded="false" ng-if="true" ng-click="openAgentActionMenu()" ng-disabled="false"> <i class="fa fa-ellipsis"></i> </button> <div class="dropdown-menu dropdown-menu-right agent-actions-menu"> <button ng-if="agent.isCompatible" class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)"> <i class="fa fa-gear"></i> <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item ext-integration-agent-btn" type="button" ng-click="onExternalIntegration(agent)"> <i class="fa-regular fa-plug-circle-plus"></i> <span>{{\'ttyg.agent.btn.external_integration\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)"> <i class="fa fa-clone"></i> <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span> </button> <div ng-if="agent.isCompatible" class="dropdown-divider"></div> <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)"> <i class="fa fa-trash-can"></i> <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span> </button> </div> </div> </div> <div class="repository-model-group"> <div class="related-repository"> <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i> <i ng-if="agent.isRepositoryDeleted" class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository" gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}"> </i> {{agent.repositoryId}} </div> <div class="model-name">{{agent.model}}</div> </div> </div> <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress" onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}" size="25"></div> </div> </div> </div> '}};
2
+ //# sourceMappingURL=9062.ff0f38917b9553efad03.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"9062.e1ad16e157f04b8c9dd8.bundle.js","mappings":"oJAGA,QAFW,+xG","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/agent-list.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-list.css?v=3.2.0-TR4\" rel=\"stylesheet\"/> <div class=\"agent-list-component\"> <div class=\"agents-filter-dropdown btn-group\" uib-dropdown> <button type=\"button\" uib-dropdown-toggle class=\"btn btn-outline-primary dropdown-toggle\"> <i class=\"fa-kit fa-gdb-repo-graphdb mr-1\"></i> <span class=\"selected-filter\">{{selectedAgentsFilter.label}}</span> <i class=\"fa fa-filter\" gdb-tooltip=\"{{'ttyg.agent.btn.filter.tooltip' | translate}}\"></i> </button> <ul class=\"dropdown-menu\" role=\"menu\"> <li ng-repeat=\"filterModel in agentListFilterModel\"> <button type=\"button\" class=\"dropdown-item\" ng-click=\"onAgentsFilterChange(filterModel)\" data-value=\"{{filterModel.label}}\"> {{filterModel.label}} </button> </li> </ul> </div> <div class=\"agent-list\"> <div ng-if=\"!agentList.agents.length\" class=\"alert alert-warning\"> {{'ttyg.agent.messages.no_agents' | translate}} </div> <div ng-repeat=\"agent in agentList.filterableAgents\"> <div ng-if=\"!deletingAgent || deletingAgent.agentId !== agent.id\" class=\"agent-item\" ng-class=\"{'selected': agent.id === selectedAgent.id}\"> <div class=\"agent-info\" ng-attr-gdb-tooltip=\"{{!agent.isCompatible ? ('ttyg.agent.incompatible_agent' | translate) : undefined}}\"> <div class=\"agent-name\" ng-class=\"{'incompatible-agent': !agent.isCompatible}\"> <i ng-if=\"!agent.isCompatible\" class=\"fa fa-triangle-exclamation text-warning\"> </i> {{agent.name}} </div> <div class=\"btn-group\"> <button class=\"btn btn-link secondary btn-sm open-agent-actions-btn\" data-toggle=\"dropdown\" aria-expanded=\"false\" ng-if=\"true\" ng-click=\"openAgentActionMenu()\" ng-disabled=\"false\"> <i class=\"fa fa-ellipsis\"></i> </button> <div class=\"dropdown-menu dropdown-menu-right agent-actions-menu\"> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item edit-agent-btn\" type=\"button\" ng-click=\"onEditAgent(agent)\"> <i class=\"fa fa-gear\"></i> <span>{{'ttyg.agent.btn.edit_agent.label' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item ext-integration-agent-btn\" type=\"button\" ng-click=\"onExternalIntegration(agent)\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> <span>{{'ttyg.agent.btn.external_integration' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item clone-agent-btn\" type=\"button\" ng-click=\"onCloneAgent(agent)\"> <i class=\"fa fa-clone\"></i> <span>{{'ttyg.agent.btn.clone_agent.label' | translate}}</span> </button> <div ng-if=\"agent.isCompatible\" class=\"dropdown-divider\"></div> <button class=\"dropdown-item delete-agent-btn\" type=\"button\" ng-click=\"onDeleteAgent(agent)\"> <i class=\"fa fa-trash-can\"></i> <span>{{'ttyg.agent.btn.delete_agent.label' | translate}}</span> </button> </div> </div> </div> <div class=\"repository-model-group\"> <div class=\"related-repository\"> <i ng-if=\"!agent.isRepositoryDeleted\" class=\"fa-kit fa-gdb-repo-graphdb\"></i> <i ng-if=\"agent.isRepositoryDeleted\" class=\"fa fa-triangle-exclamation text-warning agent-with-deleted-repository\" gdb-tooltip=\"{{'ttyg.agent.deleted_repository' | translate}}\"> </i> {{agent.repositoryId}} </div> <div class=\"model-name\">{{agent.model}}</div> </div> </div> <div class=\"deleting-agent-loader\" ng-if=\"deletingAgent.agentId === agent.id && deletingAgent.inProgress\" onto-loader-fancy message=\"{{'ttyg.agent.deleting_agent' | translate}}\" size=\"25\"></div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"9062.ff0f38917b9553efad03.bundle.js","mappings":"oJAGA,QAFW,+xG","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/agent-list.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-list.css?v=3.2.0-TR5\" rel=\"stylesheet\"/> <div class=\"agent-list-component\"> <div class=\"agents-filter-dropdown btn-group\" uib-dropdown> <button type=\"button\" uib-dropdown-toggle class=\"btn btn-outline-primary dropdown-toggle\"> <i class=\"fa-kit fa-gdb-repo-graphdb mr-1\"></i> <span class=\"selected-filter\">{{selectedAgentsFilter.label}}</span> <i class=\"fa fa-filter\" gdb-tooltip=\"{{'ttyg.agent.btn.filter.tooltip' | translate}}\"></i> </button> <ul class=\"dropdown-menu\" role=\"menu\"> <li ng-repeat=\"filterModel in agentListFilterModel\"> <button type=\"button\" class=\"dropdown-item\" ng-click=\"onAgentsFilterChange(filterModel)\" data-value=\"{{filterModel.label}}\"> {{filterModel.label}} </button> </li> </ul> </div> <div class=\"agent-list\"> <div ng-if=\"!agentList.agents.length\" class=\"alert alert-warning\"> {{'ttyg.agent.messages.no_agents' | translate}} </div> <div ng-repeat=\"agent in agentList.filterableAgents\"> <div ng-if=\"!deletingAgent || deletingAgent.agentId !== agent.id\" class=\"agent-item\" ng-class=\"{'selected': agent.id === selectedAgent.id}\"> <div class=\"agent-info\" ng-attr-gdb-tooltip=\"{{!agent.isCompatible ? ('ttyg.agent.incompatible_agent' | translate) : undefined}}\"> <div class=\"agent-name\" ng-class=\"{'incompatible-agent': !agent.isCompatible}\"> <i ng-if=\"!agent.isCompatible\" class=\"fa fa-triangle-exclamation text-warning\"> </i> {{agent.name}} </div> <div class=\"btn-group\"> <button class=\"btn btn-link secondary btn-sm open-agent-actions-btn\" data-toggle=\"dropdown\" aria-expanded=\"false\" ng-if=\"true\" ng-click=\"openAgentActionMenu()\" ng-disabled=\"false\"> <i class=\"fa fa-ellipsis\"></i> </button> <div class=\"dropdown-menu dropdown-menu-right agent-actions-menu\"> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item edit-agent-btn\" type=\"button\" ng-click=\"onEditAgent(agent)\"> <i class=\"fa fa-gear\"></i> <span>{{'ttyg.agent.btn.edit_agent.label' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item ext-integration-agent-btn\" type=\"button\" ng-click=\"onExternalIntegration(agent)\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> <span>{{'ttyg.agent.btn.external_integration' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item clone-agent-btn\" type=\"button\" ng-click=\"onCloneAgent(agent)\"> <i class=\"fa fa-clone\"></i> <span>{{'ttyg.agent.btn.clone_agent.label' | translate}}</span> </button> <div ng-if=\"agent.isCompatible\" class=\"dropdown-divider\"></div> <button class=\"dropdown-item delete-agent-btn\" type=\"button\" ng-click=\"onDeleteAgent(agent)\"> <i class=\"fa fa-trash-can\"></i> <span>{{'ttyg.agent.btn.delete_agent.label' | translate}}</span> </button> </div> </div> </div> <div class=\"repository-model-group\"> <div class=\"related-repository\"> <i ng-if=\"!agent.isRepositoryDeleted\" class=\"fa-kit fa-gdb-repo-graphdb\"></i> <i ng-if=\"agent.isRepositoryDeleted\" class=\"fa fa-triangle-exclamation text-warning agent-with-deleted-repository\" gdb-tooltip=\"{{'ttyg.agent.deleted_repository' | translate}}\"> </i> {{agent.repositoryId}} </div> <div class=\"model-name\">{{agent.model}}</div> </div> </div> <div class=\"deleting-agent-loader\" ng-if=\"deletingAgent.agentId === agent.id && deletingAgent.inProgress\" onto-loader-fancy message=\"{{'ttyg.agent.deleting_agent' | translate}}\" size=\"25\"></div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- export const __webpack_id__=99448;export const __webpack_ids__=[99448];export const __webpack_modules__={64088:(e,t,n)=>{n.d(t,{A:()=>r});var a=a||{};a.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var a=0;a<t.children.length;a++)e(t.children[a]);if(1===t.children.length){var r=1.2*t.size;n&&(r=.1*t.children[0].size),t.children.push({name:"placeholder",size:r})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var a=t[n];"placeholder"===a.data.name?t.splice(n,1):a.children&&e(a.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var a=n.x-n.children[0].x;n.children[0].x+=a,r(n.children[0],a)}}function r(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,r(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,a=0;a<e.length;a++){var r=e[a];r.x-=t,r.y-=n}}};const r=a},88141:(e,t,n)=>{n.d(t,{A:()=>i}),n(62979);const a={selectAll:n(93462).selectAll};var r=r||{};r.Export={getCSSRules:function(e){const t=$('link[href="'+e+'"]')[0].sheet.rules;let n="";return _.each(t,function(e){n+=e.cssText}),n},generateBase64ImageSource:function(e){e||(e="svg");const t=a.selectAll(e).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(t)))}};const i=r},99448:(e,t,n)=>{n.r(t);var a=n(75468),r=n(64088),i=n(19935),s=n(93462),c=n(88141);function l(e,t,n,l,o,d,h,u,f,p,g,v,x){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(h,m,y){!function(h){let m=!1;var y,A,S=s.pack().size([780,780]),C=s.scaleLinear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(s.interpolateHcl),R=s.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function E(){return R.append("svg:g").attrs({id:"main-group",transform:"translate(400,400)"})}function P(){return"true"===g.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function w(){var e=c.A.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=3.2.0-TR4");s.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),s.selectAll("g").style("opacity",1);var t=c.A.Export.generateBase64ImageSource("#classChart svg");s.select(this).attrs({href:t,download:"class-hierarchy-"+d.getActiveRepository()+".svg"})}h.hidePrefixes=P();var H,I,T=E();if(!h.classHierarchyData.classCount&&d.getActiveRepository()&&!d.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=g.get(`classHierarchy-selectedGraph-${d.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success(function(t,n,a){e.loader=!1,207===n&&u.warning(x.instant("graphexplore.update.diagram"),x.instant("graphexplore.repository.data.changed")),h.classHierarchyData=t,s.select("#download-svg").on("mouseover",w)}).error(function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(x.instant("graphexplore.error.request.failed",{name:p,error:getError(t)}))})}var L,D,k,N,b,F,z,O={};function U(n,c,d,u){D&&D(),k&&k(),s.selectAll("#main-group").remove(),T=E(),r.A.SingleChild.addPlaceholders(n,!0),(A=s.hierarchy(n)).sum(function(e){return e.size}),L=d||A,S(A);var g,v=A.descendants();L.isInFocusTransitive=!0,r.A.SingleChild.removePlaceholders(v),r.A.SingleChild.centerNodes(v),r.A.SingleChild.makePositionsRelativeToZero(v),y||(y=(0,a.A)().attr("class","d3-tip").customPosition(function(e,t){return{top:"inherit",bottom:l.innerHeight-t.clientY+"px",right:l.innerWidth-t.clientX+"px"}}).html(function(e){return e.data.name}),R.call(y));var x=T.selectAll("circle").data(v).enter().append("g");c.doFade&&x.each(function(e){i.A.Transition.fadeIn(s.select(this),550)});var P,w=[],N=x.append("circle").attr("class",function(e){return e.data.role}).attr("guide-selector",function(e){return"class-"+e.data.name}).style("fill",function(e){return e.children?C(e.depth):"#E0D0D0"}).each(function(e){if(e.circle=s.select(this),e.data.name!==p){var t=e.data.name;w.push({name:t}),O[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",function(t){c.noPrefixes||e.textHidden?y.show(e,t):y.hide(e)}),e.circle.on("mouseout",y.hide)}}).on("gdb-focus",(e,t)=>I(t)).on("gdb-zoom",(e,t)=>Z(t));function b(e){s.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),P=e}function $(){h.showClassInfoPanel=!1}w&&(w=_.uniqBy(w,"name"),h.flattenedClassNames=w);var F=i.A.Click.delayDblClick();s.selectAll(".parent, .topLevelParent, .child, .root").call(F),I=function(e){Z(e),e.data.name===p?($(),s.selectAll(".selected").classed("selected",!1)):(b(e),m||(h.selectedClass=P,h.showClassInfoPanel=!0),h.$on("sidePanelClosed",function(t){s.selectAll(".selected").classed("selected",e.selected=!1)}))},F.on("click",function(e,t){t.data.id&&l.history.pushState({id:t.data.id},"classHierarchyPage"+t.data.id,"hierarchy#"+t.data.id),y.hide(),I(t)}),F.on("dblclick",function(t,a){a!==n&&(y.hide(),b(a),e.$broadcast("goToDomainRangeGraphView",P,L),t.stopPropagation())});var z=0;R.on("wheel",function(e){y.hide(),e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var a=e.target.__data__;if(a||(a=L),"in"===n){if(a!==L){for(;a.parent&&!a.parent.isInFocusTransitive;)a=a.parent;a.depth<L.depth&&(a=L)}if(a===L&&a.children){for(var r=a.children[0],i=1;i<a.children.length;i++)a.children[i].sortingRank>r.sortingRank&&(r=a.children[i]);r.children&&(a=r)}else a.children||(a=a.parent);Z(a,!0)}else"out"===n&&(a=L.parent)&&Z(a,!0);L.data.name===p&&l.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),Y()}});var U=T.selectAll("text").data(v).enter().append("text").attr("class",function(e){return e.children&&e.children.length?"label":"label child-label"}).each(function(e){e.textSel=s.select(this)});c.noPrefixes?(U.each(function(e){var t=e.data.name.indexOf(":");e.data.name.indexOf("http://")>-1?e.noPrefixName=e.data.name:t>-1&&(e.noPrefixName=e.data.name.substring(t+1))}),U.style("font-size",function(e){return i.A.Text.calcFontSize(e.noPrefixName,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)})):U.style("font-size",function(e){return i.A.Text.calcFontSize(e.data.name,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r/3)}),U.style("display",function(e){return e.parent&&e.parent.data===L.data?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")}),c.doFade&&!c.keepPrevState&&U.each(function(e){i.A.Transition.fadeIn(s.select(this),550)}),H=function(){function e(e){e&&N.each(function(t){+e===t.data.id&&I(t)})}var n=t.hash();l.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var B=T.selectAll("circle, text");function V(e,t){var n=800/e[2];g=e,B.attr("transform",function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"}),N.attr("r",function(e){return e.r*n}),t&&U.each(function(e){e.data.fullName!==L.data.topLevelParentUri&&L.data.topLevelParentUri!==p||(e.textSel.style("display","none"),L.children&&L.children.length?_.each(L.children,function(e){e.textSel.style("display","inline")}):L.textSel.style("display","inline"),L.parent&&_.each(L.parent.children,function(e){e.data.name!==L.data.name&&e.textSel.style("display","inline")}))}),U.style("font-size",function(e){return c.noPrefixes?i.A.Text.calcFontSize(e.noPrefixName,e.r*n):i.A.Text.calcFontSize(e.data.name,e.r*n)}).text(function(e){return c.noPrefixes?i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r*n/3)})}function M(e){var t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display=""):(e.textHidden=!0,this.style.display="none")}function Z(e,t){if(o(function(){h.showExternalElements=e.data.name===p}),L!==e&&(e.data.id&&l.history.replaceState({id:e.data.id},"classHierarchyPage"+e.data.id,"hierarchy#"+e.data.id),e.children||(e=e.parent,L!==e))){if(t&&($(),s.selectAll(".selected").classed("selected",!1)),L.parent)for(var n=L;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=!!n.children,n=n.parent;2*(L=e).r/(2*L.r+20)<.3||h.currentSliderValue>h.currentBrowserLimit?(V([L.x,L.y,M(L.r)]),U.each(function(e){W.call(this,e)})):s.transition().duration(f).tween("zoom",function(e){var t=s.interpolateZoom(g,[L.x,L.y,M(L.r)]);return function(e){V(t(e))}}).selectAll("text").each(W)}}V([L.x,L.y,M(L.r)],u),D=h.$on("rootFocus",function(){l.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),I(A)}),k=h.$on("classSearch",function(e){I(e)})}function Y(){const t=h.classHierarchyData.classCount;let n=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",Y),window.addEventListener("beforeunload",function e(){window.removeEventListener("resize",Y),window.removeEventListener("beforeunload",e)}),h.$watch("classHierarchyData",function(){N&&N(),b&&b(),F&&F(),z&&z();var e=P();if(h.classHierarchyData.classCount){Y();var t=_.cloneDeep(h.classHierarchyData);var n,a,r=s.hierarchy(t).descendants().sort(function(e,t){return e.data.sortingRank>t.data.sortingRank?-1:e.data.sortingRank<t.data.sortingRank||e.data.depth>t.data.depth?1:e.data.depth<t.data.depth?-1:0});function d(e,t){const r={keepPrevState:!0,noPrefixes:P()};a=r.noPrefixes,U(n||e,r,L,!0),o(()=>{g.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H(),m=!1},70)}function u(e,r,i){if(!e)return;g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:p,children:[]};const s=new Set;for(let t=1;t<=e;t++)s.add(r[t].data.id),r[t].parent===r[0]&&n.children.push(r[t].data);(function e(t){if(!t.children)return;const n=[];for(const e of t.children)s.has(e.id)&&n.push($.extend({},e));t.children=n;for(const n of t.children)e(n)})(n),i?(a=angular.isUndefined(a)?P():a,U(n,{noPrefixes:a})):d(t)}var i,c=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)u(c,r);else{var l={doFade:!0,keepPrevState:!0,noPrefixes:P()};U(t,l),H()}N=h.$watch("hidePrefixes",function(n){angular.isUndefined(n)||e?e=void 0:o(function(){m=!0,function(e){angular.isUndefined(e)||g.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),d(t,!0)},50)},!0),b=h.$watch("currentSliderValue",function(e){u(e,r,!0)},!0),z=h.$on("onEnterKeypressSearchAction",function(e){i&&I(i)}),F=h.$on("searchedClass",function(e,t){(i=O[t.name])&&I(i)})}},!0)}(h)}}}n(32150),angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]}};
2
- //# sourceMappingURL=99448.93e01a6a24e4a1cb0546.bundle.js.map
1
+ export const __webpack_id__=99448;export const __webpack_ids__=[99448];export const __webpack_modules__={64088:(e,t,n)=>{n.d(t,{A:()=>r});var a=a||{};a.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var a=0;a<t.children.length;a++)e(t.children[a]);if(1===t.children.length){var r=1.2*t.size;n&&(r=.1*t.children[0].size),t.children.push({name:"placeholder",size:r})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var a=t[n];"placeholder"===a.data.name?t.splice(n,1):a.children&&e(a.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var a=n.x-n.children[0].x;n.children[0].x+=a,r(n.children[0],a)}}function r(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,r(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,a=0;a<e.length;a++){var r=e[a];r.x-=t,r.y-=n}}};const r=a},88141:(e,t,n)=>{n.d(t,{A:()=>i}),n(62979);const a={selectAll:n(93462).selectAll};var r=r||{};r.Export={getCSSRules:function(e){const t=$('link[href="'+e+'"]')[0].sheet.rules;let n="";return _.each(t,function(e){n+=e.cssText}),n},generateBase64ImageSource:function(e){e||(e="svg");const t=a.selectAll(e).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(t)))}};const i=r},99448:(e,t,n)=>{n.r(t);var a=n(75468),r=n(64088),i=n(19935),s=n(93462),c=n(88141);function l(e,t,n,l,o,d,h,u,f,p,g,v,x){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(h,m,y){!function(h){let m=!1;var y,A,S=s.pack().size([780,780]),C=s.scaleLinear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(s.interpolateHcl),R=s.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function E(){return R.append("svg:g").attrs({id:"main-group",transform:"translate(400,400)"})}function P(){return"true"===g.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function w(){var e=c.A.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=3.2.0-TR5");s.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),s.selectAll("g").style("opacity",1);var t=c.A.Export.generateBase64ImageSource("#classChart svg");s.select(this).attrs({href:t,download:"class-hierarchy-"+d.getActiveRepository()+".svg"})}h.hidePrefixes=P();var H,I,T=E();if(!h.classHierarchyData.classCount&&d.getActiveRepository()&&!d.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=g.get(`classHierarchy-selectedGraph-${d.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success(function(t,n,a){e.loader=!1,207===n&&u.warning(x.instant("graphexplore.update.diagram"),x.instant("graphexplore.repository.data.changed")),h.classHierarchyData=t,s.select("#download-svg").on("mouseover",w)}).error(function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(x.instant("graphexplore.error.request.failed",{name:p,error:getError(t)}))})}var L,D,k,N,b,F,z,O={};function U(n,c,d,u){D&&D(),k&&k(),s.selectAll("#main-group").remove(),T=E(),r.A.SingleChild.addPlaceholders(n,!0),(A=s.hierarchy(n)).sum(function(e){return e.size}),L=d||A,S(A);var g,v=A.descendants();L.isInFocusTransitive=!0,r.A.SingleChild.removePlaceholders(v),r.A.SingleChild.centerNodes(v),r.A.SingleChild.makePositionsRelativeToZero(v),y||(y=(0,a.A)().attr("class","d3-tip").customPosition(function(e,t){return{top:"inherit",bottom:l.innerHeight-t.clientY+"px",right:l.innerWidth-t.clientX+"px"}}).html(function(e){return e.data.name}),R.call(y));var x=T.selectAll("circle").data(v).enter().append("g");c.doFade&&x.each(function(e){i.A.Transition.fadeIn(s.select(this),550)});var P,w=[],N=x.append("circle").attr("class",function(e){return e.data.role}).attr("guide-selector",function(e){return"class-"+e.data.name}).style("fill",function(e){return e.children?C(e.depth):"#E0D0D0"}).each(function(e){if(e.circle=s.select(this),e.data.name!==p){var t=e.data.name;w.push({name:t}),O[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",function(t){c.noPrefixes||e.textHidden?y.show(e,t):y.hide(e)}),e.circle.on("mouseout",y.hide)}}).on("gdb-focus",(e,t)=>I(t)).on("gdb-zoom",(e,t)=>Z(t));function b(e){s.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),P=e}function $(){h.showClassInfoPanel=!1}w&&(w=_.uniqBy(w,"name"),h.flattenedClassNames=w);var F=i.A.Click.delayDblClick();s.selectAll(".parent, .topLevelParent, .child, .root").call(F),I=function(e){Z(e),e.data.name===p?($(),s.selectAll(".selected").classed("selected",!1)):(b(e),m||(h.selectedClass=P,h.showClassInfoPanel=!0),h.$on("sidePanelClosed",function(t){s.selectAll(".selected").classed("selected",e.selected=!1)}))},F.on("click",function(e,t){t.data.id&&l.history.pushState({id:t.data.id},"classHierarchyPage"+t.data.id,"hierarchy#"+t.data.id),y.hide(),I(t)}),F.on("dblclick",function(t,a){a!==n&&(y.hide(),b(a),e.$broadcast("goToDomainRangeGraphView",P,L),t.stopPropagation())});var z=0;R.on("wheel",function(e){y.hide(),e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var a=e.target.__data__;if(a||(a=L),"in"===n){if(a!==L){for(;a.parent&&!a.parent.isInFocusTransitive;)a=a.parent;a.depth<L.depth&&(a=L)}if(a===L&&a.children){for(var r=a.children[0],i=1;i<a.children.length;i++)a.children[i].sortingRank>r.sortingRank&&(r=a.children[i]);r.children&&(a=r)}else a.children||(a=a.parent);Z(a,!0)}else"out"===n&&(a=L.parent)&&Z(a,!0);L.data.name===p&&l.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),Y()}});var U=T.selectAll("text").data(v).enter().append("text").attr("class",function(e){return e.children&&e.children.length?"label":"label child-label"}).each(function(e){e.textSel=s.select(this)});c.noPrefixes?(U.each(function(e){var t=e.data.name.indexOf(":");e.data.name.indexOf("http://")>-1?e.noPrefixName=e.data.name:t>-1&&(e.noPrefixName=e.data.name.substring(t+1))}),U.style("font-size",function(e){return i.A.Text.calcFontSize(e.noPrefixName,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)})):U.style("font-size",function(e){return i.A.Text.calcFontSize(e.data.name,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r/3)}),U.style("display",function(e){return e.parent&&e.parent.data===L.data?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")}),c.doFade&&!c.keepPrevState&&U.each(function(e){i.A.Transition.fadeIn(s.select(this),550)}),H=function(){function e(e){e&&N.each(function(t){+e===t.data.id&&I(t)})}var n=t.hash();l.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var B=T.selectAll("circle, text");function V(e,t){var n=800/e[2];g=e,B.attr("transform",function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"}),N.attr("r",function(e){return e.r*n}),t&&U.each(function(e){e.data.fullName!==L.data.topLevelParentUri&&L.data.topLevelParentUri!==p||(e.textSel.style("display","none"),L.children&&L.children.length?_.each(L.children,function(e){e.textSel.style("display","inline")}):L.textSel.style("display","inline"),L.parent&&_.each(L.parent.children,function(e){e.data.name!==L.data.name&&e.textSel.style("display","inline")}))}),U.style("font-size",function(e){return c.noPrefixes?i.A.Text.calcFontSize(e.noPrefixName,e.r*n):i.A.Text.calcFontSize(e.data.name,e.r*n)}).text(function(e){return c.noPrefixes?i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r*n/3)})}function M(e){var t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display=""):(e.textHidden=!0,this.style.display="none")}function Z(e,t){if(o(function(){h.showExternalElements=e.data.name===p}),L!==e&&(e.data.id&&l.history.replaceState({id:e.data.id},"classHierarchyPage"+e.data.id,"hierarchy#"+e.data.id),e.children||(e=e.parent,L!==e))){if(t&&($(),s.selectAll(".selected").classed("selected",!1)),L.parent)for(var n=L;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=!!n.children,n=n.parent;2*(L=e).r/(2*L.r+20)<.3||h.currentSliderValue>h.currentBrowserLimit?(V([L.x,L.y,M(L.r)]),U.each(function(e){W.call(this,e)})):s.transition().duration(f).tween("zoom",function(e){var t=s.interpolateZoom(g,[L.x,L.y,M(L.r)]);return function(e){V(t(e))}}).selectAll("text").each(W)}}V([L.x,L.y,M(L.r)],u),D=h.$on("rootFocus",function(){l.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),I(A)}),k=h.$on("classSearch",function(e){I(e)})}function Y(){const t=h.classHierarchyData.classCount;let n=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",Y),window.addEventListener("beforeunload",function e(){window.removeEventListener("resize",Y),window.removeEventListener("beforeunload",e)}),h.$watch("classHierarchyData",function(){N&&N(),b&&b(),F&&F(),z&&z();var e=P();if(h.classHierarchyData.classCount){Y();var t=_.cloneDeep(h.classHierarchyData);var n,a,r=s.hierarchy(t).descendants().sort(function(e,t){return e.data.sortingRank>t.data.sortingRank?-1:e.data.sortingRank<t.data.sortingRank||e.data.depth>t.data.depth?1:e.data.depth<t.data.depth?-1:0});function d(e,t){const r={keepPrevState:!0,noPrefixes:P()};a=r.noPrefixes,U(n||e,r,L,!0),o(()=>{g.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H(),m=!1},70)}function u(e,r,i){if(!e)return;g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:p,children:[]};const s=new Set;for(let t=1;t<=e;t++)s.add(r[t].data.id),r[t].parent===r[0]&&n.children.push(r[t].data);(function e(t){if(!t.children)return;const n=[];for(const e of t.children)s.has(e.id)&&n.push($.extend({},e));t.children=n;for(const n of t.children)e(n)})(n),i?(a=angular.isUndefined(a)?P():a,U(n,{noPrefixes:a})):d(t)}var i,c=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)u(c,r);else{var l={doFade:!0,keepPrevState:!0,noPrefixes:P()};U(t,l),H()}N=h.$watch("hidePrefixes",function(n){angular.isUndefined(n)||e?e=void 0:o(function(){m=!0,function(e){angular.isUndefined(e)||g.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),d(t,!0)},50)},!0),b=h.$watch("currentSliderValue",function(e){u(e,r,!0)},!0),z=h.$on("onEnterKeypressSearchAction",function(e){i&&I(i)}),F=h.$on("searchedClass",function(e,t){(i=O[t.name])&&I(i)})}},!0)}(h)}}}n(32150),angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]}};
2
+ //# sourceMappingURL=99448.10fc24b7ebab10d3c7ce.bundle.js.map