graphdb-workbench 3.0.2-TR2 → 3.0.2

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 (91) hide show
  1. package/dist/231.909faa919088245e9988.bundle.js +1 -1
  2. package/dist/31.7452fe0f096c31a9a1f1.bundle.js +1 -1
  3. package/dist/410.b74d59055b7cf830abe5.bundle.js +1 -1
  4. package/dist/416.68f6286f80654cdbe4e4.bundle.js +1 -1
  5. package/dist/417.70adf0a6f0571c394764.bundle.js +1 -1
  6. package/dist/42.baaa159c3b1e81422600.bundle.js +1 -1
  7. package/dist/423.6edb13ec0cf08388c947.bundle.js +1 -1
  8. package/dist/424.725b821051516e73783a.bundle.js +1 -1
  9. package/dist/425.03fcf969da1a4e92fec3.bundle.js +1 -1
  10. package/dist/426.aa6924f6f1192d037009.bundle.js +1 -1
  11. package/dist/427.5c7b72141707b841e8a3.bundle.js +1 -1
  12. package/dist/428.0d471ce7c68654947c04.bundle.js +1 -1
  13. package/dist/443.969280af4067a22d1a8b.bundle.js +1 -1
  14. package/dist/444.a5971579184b091ed392.bundle.js +1 -1
  15. package/dist/445.2b20cb9e68a11879f6c4.bundle.js +1 -1
  16. package/dist/446.fe3cf3d6e288c8c4444b.bundle.js +1 -1
  17. package/dist/447.d1d078921f6f28e2fa38.bundle.js +1 -1
  18. package/dist/448.d6c9bed6d99b8b23619f.bundle.js +1 -1
  19. package/dist/468.8e259940c62a68ef3055.bundle.js +1 -1
  20. package/dist/480.379bf3b338e0a3224a1f.bundle.js +1 -1
  21. package/dist/481.0387239b174f787e70ea.bundle.js +1 -1
  22. package/dist/483.c81275cb05dd78ce389f.bundle.js +1 -1
  23. package/dist/484.25a82c267c3a705d2a65.bundle.js +1 -1
  24. package/dist/485.91cbfbfd37eccde375c9.bundle.js +1 -1
  25. package/dist/488.a69dcce23066c0dafdf7.bundle.js +1 -1
  26. package/dist/489.a976085b601cccf438d4.bundle.js +1 -1
  27. package/dist/49.ec8921fc54aaae50ca52.bundle.js +1 -1
  28. package/dist/490.d3e0f3e499b5a24f6808.bundle.js +1 -1
  29. package/dist/491.62c185868f9d99dd5713.bundle.js +1 -1
  30. package/dist/50.4886e820614f9dadb147.bundle.js +1 -1
  31. package/dist/76.fc1058890354a7ee6abe.bundle.js +1 -1
  32. package/dist/{bundle.31413cc7737cbad7f78d.bundle.js → bundle.fc37b3e514d7594f55be.bundle.js} +3 -3
  33. package/dist/index.html +3 -3
  34. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  35. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  36. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  37. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  38. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  39. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  40. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  41. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  42. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  43. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
  44. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  45. package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
  46. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  47. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  48. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  49. package/dist/js/angular/security/templates/user.html +2 -2
  50. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  51. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  52. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  53. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  54. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  55. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  56. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
  57. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  58. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  59. package/dist/license-checker.json +2 -2
  60. package/dist/pages/aclmanagement.html +2 -2
  61. package/dist/pages/autocomplete.html +1 -1
  62. package/dist/pages/choose-repository-type.html +1 -1
  63. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  64. package/dist/pages/create-index.html +1 -1
  65. package/dist/pages/dependencies.html +1 -1
  66. package/dist/pages/domainRangeInfo.html +2 -2
  67. package/dist/pages/edit.html +1 -1
  68. package/dist/pages/explore.html +1 -1
  69. package/dist/pages/export.html +1 -1
  70. package/dist/pages/find.html +1 -1
  71. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  72. package/dist/pages/graphs-visualizations.html +7 -7
  73. package/dist/pages/guides.html +1 -1
  74. package/dist/pages/import.html +2 -2
  75. package/dist/pages/jdbc-create.html +1 -1
  76. package/dist/pages/monitor/backup-and-restore.html +1 -1
  77. package/dist/pages/monitor/queries.html +1 -1
  78. package/dist/pages/monitor/resources.html +1 -1
  79. package/dist/pages/namespaces.html +2 -2
  80. package/dist/pages/plugins.html +1 -1
  81. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  82. package/dist/pages/rdfrank.html +2 -2
  83. package/dist/pages/repositories.html +1 -1
  84. package/dist/pages/repository.html +1 -1
  85. package/dist/pages/similarity-indexes.html +1 -1
  86. package/dist/pages/sparql-editor.html +1 -1
  87. package/dist/pages/sparql-template-create.html +1 -1
  88. package/dist/pages/ux-test1.html +2 -2
  89. package/dist/pages/webapi.html +2 -2
  90. package/dist/res/swagger5/index.html +12 -12
  91. package/package.json +1 -1
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[468],{604:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.0.2-TR2" rel="stylesheet"/>\n<link href=\'css/user.css?v=3.0.2-TR2\' rel=\'stylesheet\' type=\'text/css\'/>\n\n<h1>\n {{pageTitle}}\n <page-info-tooltip></page-info-tooltip>\n</h1>\n\n<div id="wb-user" class="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n <label class="d-block" ng-if="showCookiePolicyLink">\n <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button>\n </label>\n\n </div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n add-on-paste="true"\n replace-spaces-with-dashes="false"\n paste-split-pattern="[\\s+]"\n on-tag-adding="isCustomRoleValid($tag)"\n on-tag-added="addCustomRole($tag)"\n ng-keydown="checkUserInput($event)"\n ng-cut="removeErrorOnCut()"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"\n custom-prefix-tags-input></tags-input>\n <div class="small" ng-hide="isRoleValid">\n <small>{{\'security.user.role.too.short\' | translate}}</small>\n </div>\n <div class="small prefix-warning" ng-if="form.customRoleTag.$warning">\n <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small>\n </div>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm table-fixed bordered-table" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn" class="repository-column auth-column">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center read-column auth-column"><span class="auth-column-label">{{\'security.label.read\' | translate}}</span><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center write-column auth-column"><span class="auth-column-label">{{\'security.label.write\' | translate}}</span><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n <th id="graphql" class="text-xs-center auth-column graphql-column"><span class="auth-column-label">{{\'security.label.graphql\' | translate}}</span></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <span ng-click="setGrantedAuthorities()">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')">\n </span>\n </th>\n <th class="text-xs-center write-any">\n <span ng-click="setGrantedAuthorities()">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')">\n </span>\n </th>\n\n <th class="text-xs-center">\n <span ng-click="setGrantedAuthorities()">\n <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[\'*\']" ng-checked="hasGraphqlPermission(\'*\')" ng-disabled="graphqlCheckDisabled(\'*\')">\n </span>\n </th>\n\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getAllAccessibleRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small><em ng-if="(hasGraphqlPermission(repository) || hasGraphqlPermission(\'*\')) && (hasReadPermission(repository) || hasReadPermission(\'*\') || hasWritePermission(repository) || hasWritePermission(\'*\'))" class="fa-kit fa-gdb-graphql graphql-icon text-info" gdb-tooltip="{{\'security.tooltip.graphql\' | translate}}"></em> &middot; {{repository.location ? repository.location : \'repo.local\' | translate}}</small></td>\n <td class="text-xs-center read-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)">\n </span>\n </td>\n <td class="text-xs-center write-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)">\n </span>\n </td>\n <td class="text-xs-center graphql-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[createUniqueKey(repository)]" ng-checked="hasGraphqlPermission(repository)" ng-disabled="graphqlCheckDisabled(repository)">\n </span>\n </td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[468],{604:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.0.2" rel="stylesheet"/>\n<link href=\'css/user.css?v=3.0.2\' rel=\'stylesheet\' type=\'text/css\'/>\n\n<h1>\n {{pageTitle}}\n <page-info-tooltip></page-info-tooltip>\n</h1>\n\n<div id="wb-user" class="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n <label class="d-block" ng-if="showCookiePolicyLink">\n <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button>\n </label>\n\n </div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n add-on-paste="true"\n replace-spaces-with-dashes="false"\n paste-split-pattern="[\\s+]"\n on-tag-adding="isCustomRoleValid($tag)"\n on-tag-added="addCustomRole($tag)"\n ng-keydown="checkUserInput($event)"\n ng-cut="removeErrorOnCut()"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"\n custom-prefix-tags-input></tags-input>\n <div class="small" ng-hide="isRoleValid">\n <small>{{\'security.user.role.too.short\' | translate}}</small>\n </div>\n <div class="small prefix-warning" ng-if="form.customRoleTag.$warning">\n <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small>\n </div>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm table-fixed bordered-table" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn" class="repository-column auth-column">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center read-column auth-column"><span class="auth-column-label">{{\'security.label.read\' | translate}}</span><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center write-column auth-column"><span class="auth-column-label">{{\'security.label.write\' | translate}}</span><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n <th id="graphql" class="text-xs-center auth-column graphql-column"><span class="auth-column-label">{{\'security.label.graphql\' | translate}}</span></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <span ng-click="setGrantedAuthorities()">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')">\n </span>\n </th>\n <th class="text-xs-center write-any">\n <span ng-click="setGrantedAuthorities()">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')">\n </span>\n </th>\n\n <th class="text-xs-center">\n <span ng-click="setGrantedAuthorities()">\n <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[\'*\']" ng-checked="hasGraphqlPermission(\'*\')" ng-disabled="graphqlCheckDisabled(\'*\')">\n </span>\n </th>\n\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getAllAccessibleRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small><em ng-if="(hasGraphqlPermission(repository) || hasGraphqlPermission(\'*\')) && (hasReadPermission(repository) || hasReadPermission(\'*\') || hasWritePermission(repository) || hasWritePermission(\'*\'))" class="fa-kit fa-gdb-graphql graphql-icon text-info" gdb-tooltip="{{\'security.tooltip.graphql\' | translate}}"></em> &middot; {{repository.location ? repository.location : \'repo.local\' | translate}}</small></td>\n <td class="text-xs-center read-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)">\n </span>\n </td>\n <td class="text-xs-center write-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)">\n </span>\n </td>\n <td class="text-xs-center graphql-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[createUniqueKey(repository)]" ng-checked="hasGraphqlPermission(repository)" ng-disabled="graphqlCheckDisabled(repository)">\n </span>\n </td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[480],{618:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=3.0.2-TR2" rel="stylesheet"/>\n\n<div class="agent-list-component">\n <div class="agents-filter-dropdown btn-group" uib-dropdown>\n <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle">\n <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i>\n <span class="selected-filter">{{selectedAgentsFilter.label}}</span>\n <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i>\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="filterModel in agentListFilterModel">\n <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)"\n data-value="{{filterModel.label}}">\n {{filterModel.label}}\n </button>\n </li>\n </ul>\n </div>\n\n <div class="agent-list">\n <div ng-if="!agentList.agents.length" class="alert alert-warning">\n {{\'ttyg.agent.messages.no_agents\' | translate}}\n </div>\n\n <div ng-repeat="agent in agentList.filterableAgents">\n <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item"\n ng-class="{\'selected\': agent.id === selectedAgent.id}">\n <div class="agent-info">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n {{agent.repositoryId}}\n </div>\n </div>\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-agent-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openAgentActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right agent-actions-menu">\n <button class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)">\n <i class="fa fa-gear"></i>\n <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span>\n </button>\n <button class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)">\n <i class="fa fa-clone"></i>\n <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress"\n onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}"\n size="25"></div>\n </div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[480],{618:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="agent-list-component">\n <div class="agents-filter-dropdown btn-group" uib-dropdown>\n <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle">\n <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i>\n <span class="selected-filter">{{selectedAgentsFilter.label}}</span>\n <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i>\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="filterModel in agentListFilterModel">\n <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)"\n data-value="{{filterModel.label}}">\n {{filterModel.label}}\n </button>\n </li>\n </ul>\n </div>\n\n <div class="agent-list">\n <div ng-if="!agentList.agents.length" class="alert alert-warning">\n {{\'ttyg.agent.messages.no_agents\' | translate}}\n </div>\n\n <div ng-repeat="agent in agentList.filterableAgents">\n <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item"\n ng-class="{\'selected\': agent.id === selectedAgent.id}">\n <div class="agent-info">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n {{agent.repositoryId}}\n </div>\n </div>\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-agent-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openAgentActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right agent-actions-menu">\n <button class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)">\n <i class="fa fa-gear"></i>\n <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span>\n </button>\n <button class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)">\n <i class="fa fa-clone"></i>\n <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress"\n onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}"\n size="25"></div>\n </div>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[481],{619:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=3.0.2-TR2" rel="stylesheet"/>\n\n<div class="btn-group agent-select-menu" uib-dropdown guide-selector="select-agent-dropdown">\n <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle guide-selector="select-agent-dropdown-toggle"\n ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + \' &middot; \' + selectedAgent.repositoryId) : null}}">\n <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span>\n <div ng-if="selectedAgent && !selectedAgent.isDeleted" class="selected-agent-option">\n <span class="agent-name" guide-selector="selected-agent">{{selectedAgent.name}}</span> &middot;\n <i ng-if="!selectedAgent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="selectedAgent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{selectedAgent.repositoryId}}</span>\n </div>\n <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning">\n <i class="fa fa-triangle-exclamation"></i>\n {{\'ttyg.agent.agent_select_menu.deleted_agent\' | translate}}\n </span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="single-button" guide-selector="select-agent-panel">\n <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item"\n ng-class="{\'selected\': agentOption.selected}"\n ng-attr-title="{{agentOption.label}} &middot; {{agentOption.data.agent.repositoryId}}">\n <a href="#"\n class="agent-option"\n ng-click="onAgentSelected(agentOption.data.agent)">\n <span class="agent-name">{{agentOption.label}}</span> &middot;\n <i ng-if="!agentOption.data.agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agentOption.data.agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span>\n </a>\n </li>\n </ul>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[481],{619:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="btn-group agent-select-menu" uib-dropdown guide-selector="select-agent-dropdown">\n <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle guide-selector="select-agent-dropdown-toggle"\n ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + \' &middot; \' + selectedAgent.repositoryId) : null}}">\n <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span>\n <div ng-if="selectedAgent && !selectedAgent.isDeleted" class="selected-agent-option">\n <span class="agent-name" guide-selector="selected-agent">{{selectedAgent.name}}</span> &middot;\n <i ng-if="!selectedAgent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="selectedAgent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{selectedAgent.repositoryId}}</span>\n </div>\n <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning">\n <i class="fa fa-triangle-exclamation"></i>\n {{\'ttyg.agent.agent_select_menu.deleted_agent\' | translate}}\n </span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="single-button" guide-selector="select-agent-panel">\n <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item"\n ng-class="{\'selected\': agentOption.selected}"\n ng-attr-title="{{agentOption.label}} &middot; {{agentOption.data.agent.repositoryId}}">\n <a href="#"\n class="agent-option"\n ng-click="onAgentSelected(agentOption.data.agent)">\n <span class="agent-name">{{agentOption.label}}</span> &middot;\n <i ng-if="!agentOption.data.agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agentOption.data.agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span>\n </a>\n </li>\n </ul>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[483],{621:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-item-details.css?v=3.0.2-TR2" rel="stylesheet"/>\n\n<div class="chat-detail">\n <div class="user-message" ng-if="chatItemDetail.question">\n <div class="question alert-help"\n gdb-tooltip="{{ \'ttyg.chat_panel.labels.question_asked\' | translate : { date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n {{ chatItemDetail.question.message }}\n </div>\n </div>\n <div class="answers" ng-repeat="answer in chatItemDetail.answers">\n <div class="assistant">\n <div class="assistant-icon alert-help"\n gdb-tooltip="{{\'ttyg.chat_panel.labels.agent_name\' | translate : { agentName: agentNameByIdMap[chatItemDetail.agentId], date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n <i class="fa fa-lg fa-message-bot"></i>\n </div>\n <div class="assistant-message">\n <markdown-content class="answer" content="{{answer.message}}" options="markdownContentOptions"></markdown-content>\n <div class="actions" ng-class="{\'hidden-actions\': !explainResponseModel[answer.id].expanded && (!showActions || !$last)}">\n <button class="btn btn-link btn-sm regenerate-question-btn"\n ng-click="regenerateQuestion()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.regenerate.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_answer.tooltip"\n text-to-copy="{{answer.message}}"></copy-to-clipboard>\n <button class="btn btn-link btn-link-only-icons btn-sm explain-response-btn" guide-selector="explain-response-btn"\n ng-click="explainResponse(answer.id)"\n ng-disabled="disabled && !explainResponseModel[answer.id]"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.explain_response.tooltip\' | translate}}">\n <i class="fa fa-wand-magic-sparkles"></i>\n <i class="fa fa-chevron-up toggle-explain-response-icon"\n ng-class="{expanded: explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded}"></i>\n </button>\n </div>\n <div class="derived-answer-hint"\n ng-if="showActions && $last && explainResponseModel[answer.id].expanded">\n <div ng-bind-html="\'ttyg.chat_panel.btn.derive_answer.hint\' | translate | trustAsHtml"></div>\n <button class="btn btn-secondary deliver-answer-btn" ng-click="onAskHowAnswerWasDerived()" guide-selector="how-derive-answer-btn">\n {{ \'ttyg.chat_panel.btn.derive_answer.label\' | translate }}\n </button>\n </div>\n <div ng-if="loadingExplainResponse[answer.id]" onto-loader-new size="40"></div>\n <div class="explain-responses" ng-if="explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded">\n <div ng-if="!explainResponseModel[answer.id].queryMethods.items.length"\n class="explain-response">\n {{ \'ttyg.chat_panel.labels.explain_no_methods\' | translate }}\n </div>\n <div ng-if="explainResponseModel[answer.id].queryMethods.items"\n class="explain-response"\n ng-repeat="queryMethod in explainResponseModel[answer.id].queryMethods.items">\n <div class="explain-call">\n <div class="header" gdb-tooltip="">\n <div class="label">\n <span class="query-method" ng-bind-html="\'ttyg.chat_panel.labels.called\' | translate:{name: queryMethod.name} | trustAsHtml">\n </span>{{ \'ttyg.chat_panel.query_colon\' | translate }}\n <span class="query-method-details" ng-bind="(\'ttyg.chat_panel.query_desc.\' + queryMethod.name) | translate">\n </span>\n </div>\n <div ng-if="queryMethod.query" class="actions">\n <open-in-sparql-editor\n ng-if="queryMethod.queryType === ExplainQueryType.SPARQL"\n execute-query="{{!queryMethod.errorMessage}}"\n repository-id="{{repositoryId}}"\n query="{{queryMethod.query}}">\n </open-in-sparql-editor>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_{{ queryMethod.queryType }}.tooltip"\n text-to-copy="{{queryMethod.query}}"></copy-to-clipboard>\n </div>\n </div>\n <div class="query">\n <div ng-if="!queryMethod.query" class="mb-1">{{ \'ttyg.chat_panel.labels.no_query\' | translate }}</code></div>\n <pre ng-if="queryMethod.query"><code>{{queryMethod.query}}</code></pre>\n </div>\n <div ng-if="showRawQuery(queryMethod)" class="raw-query">\n <span class="label">{{\'ttyg.chat_panel.labels.raw_query\' | translate}}:</span>\n <span class="content">{{queryMethod.rawQuery}}</span>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_raw_query.tooltip"\n text-to-copy="{{queryMethod.rawQuery}}"></copy-to-clipboard>\n </div>\n <div ng-if="queryMethod.errorMessage" class="alert no-icon alert-warning error-message">\n <div class="error-header">\n <div class="label">{{\'ttyg.chat_panel.labels.error_message\' | translate}}:</div>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_error_message.tooltip"\n text-to-copy="{{queryMethod.errorMessage}}"></copy-to-clipboard>\n </div>\n <div class="error-content">{{queryMethod.errorMessage}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div ng-if="asking" onto-loader-new size="40" guide-selector="question-loader"></div>\n</div>\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[483],{621:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-item-details.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="chat-detail">\n <div class="user-message" ng-if="chatItemDetail.question">\n <div class="question alert-help"\n gdb-tooltip="{{ \'ttyg.chat_panel.labels.question_asked\' | translate : { date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n {{ chatItemDetail.question.message }}\n </div>\n </div>\n <div class="answers" ng-repeat="answer in chatItemDetail.answers">\n <div class="assistant">\n <div class="assistant-icon alert-help"\n gdb-tooltip="{{\'ttyg.chat_panel.labels.agent_name\' | translate : { agentName: agentNameByIdMap[chatItemDetail.agentId], date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n <i class="fa fa-lg fa-message-bot"></i>\n </div>\n <div class="assistant-message">\n <markdown-content class="answer" content="{{answer.message}}" options="markdownContentOptions"></markdown-content>\n <div class="actions" ng-class="{\'hidden-actions\': !explainResponseModel[answer.id].expanded && (!showActions || !$last)}">\n <button class="btn btn-link btn-sm regenerate-question-btn"\n ng-click="regenerateQuestion()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.regenerate.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_answer.tooltip"\n text-to-copy="{{answer.message}}"></copy-to-clipboard>\n <button class="btn btn-link btn-link-only-icons btn-sm explain-response-btn" guide-selector="explain-response-btn"\n ng-click="explainResponse(answer.id)"\n ng-disabled="disabled && !explainResponseModel[answer.id]"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.explain_response.tooltip\' | translate}}">\n <i class="fa fa-wand-magic-sparkles"></i>\n <i class="fa fa-chevron-up toggle-explain-response-icon"\n ng-class="{expanded: explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded}"></i>\n </button>\n </div>\n <div class="derived-answer-hint"\n ng-if="showActions && $last && explainResponseModel[answer.id].expanded">\n <div ng-bind-html="\'ttyg.chat_panel.btn.derive_answer.hint\' | translate | trustAsHtml"></div>\n <button class="btn btn-secondary deliver-answer-btn" ng-click="onAskHowAnswerWasDerived()" guide-selector="how-derive-answer-btn">\n {{ \'ttyg.chat_panel.btn.derive_answer.label\' | translate }}\n </button>\n </div>\n <div ng-if="loadingExplainResponse[answer.id]" onto-loader-new size="40"></div>\n <div class="explain-responses" ng-if="explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded">\n <div ng-if="!explainResponseModel[answer.id].queryMethods.items.length"\n class="explain-response">\n {{ \'ttyg.chat_panel.labels.explain_no_methods\' | translate }}\n </div>\n <div ng-if="explainResponseModel[answer.id].queryMethods.items"\n class="explain-response"\n ng-repeat="queryMethod in explainResponseModel[answer.id].queryMethods.items">\n <div class="explain-call">\n <div class="header" gdb-tooltip="">\n <div class="label">\n <span class="query-method" ng-bind-html="\'ttyg.chat_panel.labels.called\' | translate:{name: queryMethod.name} | trustAsHtml">\n </span>{{ \'ttyg.chat_panel.query_colon\' | translate }}\n <span class="query-method-details" ng-bind="(\'ttyg.chat_panel.query_desc.\' + queryMethod.name) | translate">\n </span>\n </div>\n <div ng-if="queryMethod.query" class="actions">\n <open-in-sparql-editor\n ng-if="queryMethod.queryType === ExplainQueryType.SPARQL"\n execute-query="{{!queryMethod.errorMessage}}"\n repository-id="{{repositoryId}}"\n query="{{queryMethod.query}}">\n </open-in-sparql-editor>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_{{ queryMethod.queryType }}.tooltip"\n text-to-copy="{{queryMethod.query}}"></copy-to-clipboard>\n </div>\n </div>\n <div class="query">\n <div ng-if="!queryMethod.query" class="mb-1">{{ \'ttyg.chat_panel.labels.no_query\' | translate }}</code></div>\n <pre ng-if="queryMethod.query"><code>{{queryMethod.query}}</code></pre>\n </div>\n <div ng-if="showRawQuery(queryMethod)" class="raw-query">\n <span class="label">{{\'ttyg.chat_panel.labels.raw_query\' | translate}}:</span>\n <span class="content">{{queryMethod.rawQuery}}</span>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_raw_query.tooltip"\n text-to-copy="{{queryMethod.rawQuery}}"></copy-to-clipboard>\n </div>\n <div ng-if="queryMethod.errorMessage" class="alert no-icon alert-warning error-message">\n <div class="error-header">\n <div class="label">{{\'ttyg.chat_panel.labels.error_message\' | translate}}:</div>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_error_message.tooltip"\n text-to-copy="{{queryMethod.errorMessage}}"></copy-to-clipboard>\n </div>\n <div class="error-content">{{queryMethod.errorMessage}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div ng-if="asking" onto-loader-new size="40" guide-selector="question-loader"></div>\n</div>\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[484],{622:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=3.0.2-TR2" rel="stylesheet"/>\n\n<div class="chat-list-component">\n <div class="chat-list">\n <div ng-repeat="chatGroup in chatList.chatsByDay" class="chat-group">\n <label>{{ getHumanReadableChatGroupTimestamp(chatGroup.timestamp) }}</label>\n <ul>\n <li ng-repeat="chat in chatGroup.chats track by chat.hash" class="chat-item"\n ng-class="{\'selected\': chat.id === selectedChat.id, \'edited\': renamedChat && chat.id === renamedChat.id}">\n <div ng-if="!deletingChat || deletingChat.chatId !== chat.id" class="chat-detail">\n <div class="chat-name">\n <inline-editable-text\n field-name="name"\n source="chat"\n is-editing="chat.id && renamedChat && chat.id === renamedChat.id"\n on-save="onRenameChat(newText, source)"\n on-cancel="onCancelChatRenaming()"\n on-dblclick="onSelectChatForRenaming(chat)"\n on-click="onSelectChat(source)"\n title="{{chat.name}}"\n show-tooltip-on-overflow>\n </inline-editable-text>\n </div>\n <div ng-if="chat.id && (!renamedChat || chat.id !== renamedChat.id)" class="btn-group">\n <button class="btn btn-link secondary btn-sm open-chat-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openChatActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right chat-actions-menu">\n <button class="dropdown-item export-chat-btn" type="button" ng-click="onExportChat(chat)">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'ttyg.chat.btn.export_chat.label\' | translate}}</span>\n </button>\n <button class="dropdown-item rename-chat-btn" type="button" ng-click="onSelectChatForRenaming(chat)">\n <i class="fa fa-pen"></i>\n <span>{{\'ttyg.chat.btn.rename_chat.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-chat-btn" type="button" ng-click="onDeleteChat(chat)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.chat.btn.delete_chat.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-chat-loader" ng-if="deletingChat && deletingChat.chatId === chat.id && deletingChat.inProgress"\n onto-loader-fancy message="{{\'ttyg.chat.deleting_chat\' | translate}}"\n size="25"></div>\n </li>\n </ul>\n </div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[484],{622:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="chat-list-component">\n <div class="chat-list">\n <div ng-repeat="chatGroup in chatList.chatsByDay" class="chat-group">\n <label>{{ getHumanReadableChatGroupTimestamp(chatGroup.timestamp) }}</label>\n <ul>\n <li ng-repeat="chat in chatGroup.chats track by chat.hash" class="chat-item"\n ng-class="{\'selected\': chat.id === selectedChat.id, \'edited\': renamedChat && chat.id === renamedChat.id}">\n <div ng-if="!deletingChat || deletingChat.chatId !== chat.id" class="chat-detail">\n <div class="chat-name">\n <inline-editable-text\n field-name="name"\n source="chat"\n is-editing="chat.id && renamedChat && chat.id === renamedChat.id"\n on-save="onRenameChat(newText, source)"\n on-cancel="onCancelChatRenaming()"\n on-dblclick="onSelectChatForRenaming(chat)"\n on-click="onSelectChat(source)"\n title="{{chat.name}}"\n show-tooltip-on-overflow>\n </inline-editable-text>\n </div>\n <div ng-if="chat.id && (!renamedChat || chat.id !== renamedChat.id)" class="btn-group">\n <button class="btn btn-link secondary btn-sm open-chat-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openChatActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right chat-actions-menu">\n <button class="dropdown-item export-chat-btn" type="button" ng-click="onExportChat(chat)">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'ttyg.chat.btn.export_chat.label\' | translate}}</span>\n </button>\n <button class="dropdown-item rename-chat-btn" type="button" ng-click="onSelectChatForRenaming(chat)">\n <i class="fa fa-pen"></i>\n <span>{{\'ttyg.chat.btn.rename_chat.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-chat-btn" type="button" ng-click="onDeleteChat(chat)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.chat.btn.delete_chat.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-chat-loader" ng-if="deletingChat && deletingChat.chatId === chat.id && deletingChat.inProgress"\n onto-loader-fancy message="{{\'ttyg.chat.deleting_chat\' | translate}}"\n size="25"></div>\n </li>\n </ul>\n </div>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[485],{623:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=3.0.2-TR2" rel="stylesheet"/>\n\n<div class="chat-panel h-100" ng-class="chat.chatHistory.isEmpty() && !askingChatItem ? \'no-content\' : \'\'">\n\n <div class="chat-loading" ng-if="loadingChat" onto-loader-new size="40"></div>\n\n <div class="chat-details" ng-class="{\'hidden\': !chat}" ng-if="!loadingChat && !chat.chatHistory.isEmpty() || askingChatItem" guide-selector="chat-details">\n <div ng-repeat="chatItemDetail in chat.chatHistory.items" guide-selector="chat-item">\n\n \x3c!-- Before the first chat item is displayed, show the agent change info if the agent of the first response is different from the selected agent. --\x3e\n \x3c!-- <div class="alert alert-info agent-changed-info" ng-if="$first && selectedAgent && chatItemDetail.agentId !== selectedAgent.id"--\x3e\n \x3c!-- ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | trnaslate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">--\x3e\n \x3c!-- </div>--\x3e\n\n \x3c!-- Before each chat item, except the first one, is displayed, show the agent change info if the currently used agent is different from the previous one. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="!$first && chatItemDetail.agentId !== chat.chatHistory.items[$index - 1].agentId"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">\n </div>\n\n <chat-item-detail\n chat-item-detail="chatItemDetail"\n show-actions="!waitingForLastMessage && $last"\n on-regenerate-question="regenerateQuestion(chatItem)"\n on-copy-answer-to-clipboard="copyAnswerToClipboard(chatItem)"\n on-ask-how-delivered-answer="onAskHowDeliveredAnswer(chatItem)"\n asking="!askingChatItem && waitingForLastMessage && $last"\n disabled="waitingForLastMessage">\n </chat-item-detail>\n </div>\n\n \x3c!-- After all chat items are displayed, show the agent change info if the selected agent is different from the one used in the last chat item. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="askingChatItem && selectedAgent && chat.chatHistory.items.length && chat.chatHistory.items[chat.chatHistory.items.length -1].agentId !== selectedAgent.id"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(selectedAgent.id)} | trustAsHtml">\n </div>\n <chat-item-detail ng-if="askingChatItem" chat-item-detail="askingChatItem"\n asking="!!askingChatItem"></chat-item-detail>\n </div>\n <div class="new-question mt-3 d-flex" ng-if="!loadingChat" guide-selector="question-box">\n <input class="form-control question-input" ng-model="chatItem.question.message" type="text" guide-selector="question-input"\n ng-disabled="loadingChat || !selectedAgent || selectedAgent.isDeleted"\n ng-keypress="onKeypressOnInput($event)">\n <button class="btn btn-primary ask-button" guide-selector="question-ask"\n ng-disabled="!chatItem.question.message || !selectedAgent || selectedAgent.isDeleted || waitingForLastMessage || loadingChat"\n ng-click="ask()">\n <i class="fa fa-arrow-turn-left-up"></i>\n {{ \'ttyg.chat_panel.btn.ask.label \' | translate }}\n </button>\n </div>\n\n <div class="messages-hint text-muted" ng-if="!loadingChat && chat.chatHistory.isEmpty() && !waitingForLastMessage" ng-cloak>\n <div class="hint2" ng-bind="\'ttyg.chat_panel.hint2\' | translate"></div>\n <div class="hint1" ng-bind-html="\'ttyg.chat_panel.hint1\' | translate | trustAsHtml"></div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[485],{623:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="chat-panel h-100" ng-class="chat.chatHistory.isEmpty() && !askingChatItem ? \'no-content\' : \'\'">\n\n <div class="chat-loading" ng-if="loadingChat" onto-loader-new size="40"></div>\n\n <div class="chat-details" ng-class="{\'hidden\': !chat}" ng-if="!loadingChat && !chat.chatHistory.isEmpty() || askingChatItem" guide-selector="chat-details">\n <div ng-repeat="chatItemDetail in chat.chatHistory.items" guide-selector="chat-item">\n\n \x3c!-- Before the first chat item is displayed, show the agent change info if the agent of the first response is different from the selected agent. --\x3e\n \x3c!-- <div class="alert alert-info agent-changed-info" ng-if="$first && selectedAgent && chatItemDetail.agentId !== selectedAgent.id"--\x3e\n \x3c!-- ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | trnaslate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">--\x3e\n \x3c!-- </div>--\x3e\n\n \x3c!-- Before each chat item, except the first one, is displayed, show the agent change info if the currently used agent is different from the previous one. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="!$first && chatItemDetail.agentId !== chat.chatHistory.items[$index - 1].agentId"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">\n </div>\n\n <chat-item-detail\n chat-item-detail="chatItemDetail"\n show-actions="!waitingForLastMessage && $last"\n on-regenerate-question="regenerateQuestion(chatItem)"\n on-copy-answer-to-clipboard="copyAnswerToClipboard(chatItem)"\n on-ask-how-delivered-answer="onAskHowDeliveredAnswer(chatItem)"\n asking="!askingChatItem && waitingForLastMessage && $last"\n disabled="waitingForLastMessage">\n </chat-item-detail>\n </div>\n\n \x3c!-- After all chat items are displayed, show the agent change info if the selected agent is different from the one used in the last chat item. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="askingChatItem && selectedAgent && chat.chatHistory.items.length && chat.chatHistory.items[chat.chatHistory.items.length -1].agentId !== selectedAgent.id"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(selectedAgent.id)} | trustAsHtml">\n </div>\n <chat-item-detail ng-if="askingChatItem" chat-item-detail="askingChatItem"\n asking="!!askingChatItem"></chat-item-detail>\n </div>\n <div class="new-question mt-3 d-flex" ng-if="!loadingChat" guide-selector="question-box">\n <input class="form-control question-input" ng-model="chatItem.question.message" type="text" guide-selector="question-input"\n ng-disabled="loadingChat || !selectedAgent || selectedAgent.isDeleted"\n ng-keypress="onKeypressOnInput($event)">\n <button class="btn btn-primary ask-button" guide-selector="question-ask"\n ng-disabled="!chatItem.question.message || !selectedAgent || selectedAgent.isDeleted || waitingForLastMessage || loadingChat"\n ng-click="ask()">\n <i class="fa fa-arrow-turn-left-up"></i>\n {{ \'ttyg.chat_panel.btn.ask.label \' | translate }}\n </button>\n </div>\n\n <div class="messages-hint text-muted" ng-if="!loadingChat && chat.chatHistory.isEmpty() && !waitingForLastMessage" ng-cloak>\n <div class="hint2" ng-bind="\'ttyg.chat_panel.hint2\' | translate"></div>\n <div class="hint1" ng-bind-html="\'ttyg.chat_panel.hint1\' | translate | trustAsHtml"></div>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[488],{626:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-instructions-explain-modal.css?v=3.0.2-TR2" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{\'ttyg.agent.instructions_explain_modal.title\' | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <div class="instructions-explain">\n <div ng-repeat="instruction in agentInstructionsExplain" class="instruction" ng-class="{\'mb-2\': !$last}">\n <h5 class="instruction-title mb-0">\n <span\n uib-popover="{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.description\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.label\' | translate}}</span>\n </h5>\n <h7 class="text-muted d-block">({{instruction.size}} characters)</h7>\n <pre class="instruction-content">{{instruction.content}}</pre>\n </div>\n </div>\n</div>\n\n<div class="modal-footer">\n <button type="button" class="btn btn-secondary" ng-click="onCloseAgentInstructionsExplainModal()">\n {{\'ttyg.agent.instructions_explain_modal.btn.close.label\' | translate}}\n </button>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[488],{626:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-instructions-explain-modal.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{\'ttyg.agent.instructions_explain_modal.title\' | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <div class="instructions-explain">\n <div ng-repeat="instruction in agentInstructionsExplain" class="instruction" ng-class="{\'mb-2\': !$last}">\n <h5 class="instruction-title mb-0">\n <span\n uib-popover="{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.description\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.label\' | translate}}</span>\n </h5>\n <h7 class="text-muted d-block">({{instruction.size}} characters)</h7>\n <pre class="instruction-content">{{instruction.content}}</pre>\n </div>\n </div>\n</div>\n\n<div class="modal-footer">\n <button type="button" class="btn btn-secondary" ng-click="onCloseAgentInstructionsExplainModal()">\n {{\'ttyg.agent.instructions_explain_modal.btn.close.label\' | translate}}\n </button>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[489],{627:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-settings-modal.css?v=3.0.2-TR2" rel="stylesheet"/>\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.0.2-TR2" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{(\n operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.title.edit \'\n : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.title.clone\'\n : \'ttyg.agent.create_agent_modal.title.create\') | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <form novalidate name="agentSettingsForm" id="agentSettingsForm" class="agent-settings-form" guide-selector="agent-form">\n <div class="form-group agent-name-label">\n <label for="name" uib-popover="{{\'ttyg.agent.create_agent_modal.form.agent_name.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.agent_name.label\'\n | translate}}</label>\n <input type="text" class="form-control" id="name" name="name" ng-model="agentFormModel.name"\n required autocomplete="off" guide-selector="agent-name"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.agent_name.placeholder\' | translate}}">\n <div class="alert alert-danger"\n ng-if="agentSettingsForm.name.$touched && agentSettingsForm.name.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group repository-id">\n <label for="repositoryId"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.repository.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.repository.label\' |\n translate}}</label>\n <select class="form-control" id="repositoryId" name="repositoryId" ng-model="agentFormModel.repositoryId"\n required ng-change="onRepositoryChange()" guide-selector="repository-id"\n ng-options="repository.value as repository.label for repository in activeRepositoryList">\n </select>\n <div class="alert alert-danger"\n ng-if="agentSettingsForm.repositoryId.$touched && agentSettingsForm.repositoryId.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group extraction-methods-group">\n <label for="extractionMethods"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.extraction_method.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.extraction_method.label\' |\n translate}}</label>\n <div id="extractionMethods" name="extractionMethods"\n ng-model="agentFormModel.assistantExtractionMethods.extractionMethods"\n required class="accordion extraction-methods"\n ng-class="{\'has-error\': agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid}">\n <div ng-repeat="extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods"\n class="extraction-method">\n <div id="{{extractionMethod.method + \'_method_heading\'}}" class="extraction-method-heading"\n ng-class="{\'selected\': extractionMethod.selected}" guide-selector="query-method-{{extractionMethod.method}}">\n <div class="mr-0 extraction-method-toggle">\n <input type="checkbox" id="{{extractionMethod.method + \'_checkbox\'}}" guide-selector="query-method-{{extractionMethod.method}}-input"\n name="{{extractionMethod.method}}" class="switch"\n ng-click="toggleExtractionMethod(extractionMethod, $event)"\n ng-model="extractionMethod.selected"/>\n <label for="{{extractionMethod.method + \'_checkbox\'}}"></label>\n </div>\n <a class="btn btn-link panel-toggle-link"\n aria-expanded="false" aria-controls="{{extractionMethod.method + \'_method_content\'}}"\n ng-click="onExtractionMethodPanelToggle(extractionMethod)">\n <span class="mr-1"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.label\' | translate}}</span>\n <i class="fa fa-chevron-down toggle-icon"\n ng-class="{\'expanded\': extractionMethod.expanded}">\n </i>\n </a>\n </div>\n\n <div id="{{extractionMethod.method + \'_method_content\'}}"\n class="show extraction-method-content"\n aria-labelledby="{{extractionMethod.method + \'_method_heading\'}}"\n data-parent="#extractionMethods">\n\n \x3c!-- SPARQL method settings --\x3e\n\n <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL"\n class="extraction-method-options"\n ng-class="{\'has-error\': extractionMethod.selected && !extractionMethod.sparqlOption}">\n <div class="sparql-option ontology-graph-option" guide-selector="sparql-ontology-graph-option">\n <label class="radio-inline"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected" guide-selector="sparql-ontology-graph-option-input"\n ng-model="extractionMethod.sparqlOption" value="ontologyGraph">\n {{\'ttyg.agent.create_agent_modal.form.ontology_graph.label\' | translate}}\n </label>\n <div class="panel" ng-show="extractionMethod.sparqlOption === \'ontologyGraph\'">\n <div class="form-group">\n <input type="text" class="form-control" id="ontologyGraph" guide-selector="sparql-ontology-graph-input"\n name="ontologyGraph"\n ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'ontologyGraph\'"\n ng-model="extractionMethod.ontologyGraph">\n </div>\n </div>\n </div>\n <div class="sparql-option sparql-query-option">\n <label class="radio-inline"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.construct_query.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected"\n ng-model="extractionMethod.sparqlOption" value="sparqlQuery">\n {{\'ttyg.agent.create_agent_modal.form.construct_query.label\' | translate}}\n </label>\n <div class="panel" ng-show="extractionMethod.sparqlOption === \'sparqlQuery\'">\n <div class="form-group">\n <textarea type="text" class="form-control" id="sparqlQuery"\n name="sparqlQuery" rows="10"\n ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'sparqlQuery\'"\n ng-minlength="extractionMethod.sparqlQuery.minLength"\n ng-maxlength="extractionMethod.sparqlQuery.maxLength"\n ng-model="extractionMethod.sparqlQuery.value">\n </textarea>\n </div>\n </div>\n </div>\n <div class="alert alert-danger sparql-method-option-required-error mb-0"\n ng-if="extractionMethod.selected && !extractionMethod.sparqlOption">\n {{\'ttyg.agent.create_agent_modal.form.sparql_search.required_option\' | translate}}\n </div>\n <div class="add-missing-namespaces-option mt-1" guide-selector="add-missing-namespaces-option">\n <input id="addMissingNamespaces" name="addMissingNamespaces" type="checkbox" guide-selector="add-missing-namespaces"\n ng-model="extractionMethod.addMissingNamespaces">\n <label for="addMissingNamespaces"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\n \'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label\' | translate\n }}</label>\n </div>\n </div>\n\n \x3c!-- FTS method settings --\x3e\n\n <div\n ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH"\n ng-class="{\'has-error\': agentSettingsForm.$error.FTSDisabled}"\n class="extraction-method-options">\n <button class="btn btn-link btn-sm pull-right"\n ng-click="checkIfFTSEnabled()"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <div class="alert alert-danger missing-repositoryid-error mb-0"\n ng-if="!agentFormModel.repositoryId">\n {{\'ttyg.agent.create_agent_modal.form.fts_search.missing_repository_id\' | translate}}\n </div>\n <div ng-if="!ftsEnabled && agentFormModel.repositoryId" class="fts-disabled-message"\n ng-bind-html="getFTSDisabledHelpMessage()">\n </div>\n <div class="form-group max-triples" ng-show="ftsEnabled && agentFormModel.repositoryId">\n <label for="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n {{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label\'\n |\n translate}}\n </label>\n <input type="number" class="form-control"\n id="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}"\n name="maxNumberOfTriplesPerCall" min="0"\n ng-model="extractionMethod.maxNumberOfTriplesPerCall"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n\n \x3c!-- Similarity method settings --\x3e\n\n <div\n ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY"\n ng-class="{\'has-error\': agentSettingsForm.$error.missingIndex}"\n class="extraction-method-options">\n <button class="btn btn-link btn-sm pull-right"\n ng-click="updateSimilaritySearchPanel()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <div ng-if="!similarityIndexes.length" class="no-similarity-index-message">\n {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1\' |\n translate}}\n <a href="#" ng-click="goToCreateSimilarityView()">\n {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2\'\n | translate}}\n </a>\n {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3\' |\n translate}}.\n </div>\n <div ng-show="similarityIndexes.length">\n <div class="form-group similarity-index">\n <label for="similarityIndex"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_index.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_index.label\'\n | translate}}</label>\n <span ng-if="extractionMethodLoaderFlags.similarity_search" onto-loader-fancy\n size="16"></span>\n <select class="form-control" id="similarityIndex" name="similarityIndex" guide-selector="similarity-index-select"\n ng-required="extractionMethod.selected"\n ng-if="!extractionMethodLoaderFlags.similarity_search"\n ng-model="extractionMethod.similarityIndex"\n ng-options="similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes">\n </select>\n <div class="alert alert-danger"\n ng-if="extractionMethod.similarityIndex.$touched && extractionMethod.similarityIndex.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group similarity-index-threshold">\n <label for="similarityIndexThreshold"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.label\'\n | translate}}</label>\n <input type="text" class="form-control" id="similarityIndexThreshold"\n name="similarityIndexThreshold" readonly\n ng-model="extractionMethod.similarityIndexThreshold.value">\n <input id="similarityIndexThresholdSlider" name="similarityIndexThreshold"\n type="range" ng-required="extractionMethod.selected"\n min="{{extractionMethod.similarityIndexThreshold.minValue}}"\n max="{{extractionMethod.similarityIndexThreshold.maxValue}}"\n step="0.1"\n ng-model="extractionMethod.similarityIndexThreshold.value"/>\n </div>\n <div class="form-group similarity-max-triples">\n <label for="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n {{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label\'\n | translate}}</label>\n <input type="number" class="form-control"\n id="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}"\n name="maxNumberOfTriplesPerCall" min="0"\n ng-model="extractionMethod.maxNumberOfTriplesPerCall"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n </div>\n\n \x3c!-- Retrieval method settings --\x3e\n\n <div\n ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL"\n ng-class="{\'has-error\': agentSettingsForm.$error.missingConnector}"\n class="extraction-method-options">\n <button class="btn btn-link btn-sm pull-right"\n ng-click="updateRetrievalConnectorPanel()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <div ng-if="!retrievalConnectors.length" class="no-retrieval-connector-message">\n {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1\'\n | translate}}\n <a href="#" ng-click="goToConnectorsView()">\n {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2\'\n | translate}}\n </a>\n {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3\'\n | translate}}.\n </div>\n <div ng-show="retrievalConnectors.length">\n <div class="form-group retrieval-connector">\n <label for="retrievalConnectorInstance"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.connector_id.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.connector_id.label\'\n | translate}}</label>\n <span ng-if="extractionMethodLoaderFlags.retrieval_search" onto-loader-fancy\n size="16"></span>\n <select class="form-control" id="retrievalConnectorInstance"\n name="retrievalConnectorInstance"\n ng-required="extractionMethod.selected"\n ng-if="!extractionMethodLoaderFlags.retrieval_search"\n ng-model="extractionMethod.retrievalConnectorInstance"\n ng-options="retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors">\n </select>\n <div class="alert alert-danger"\n ng-if="extractionMethod.retrievalConnectorInstance.$touched && extractionMethod.retrievalConnectorInstance.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group query-template">\n <label for="queryTemplate"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.query_template.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.query_template.label\'\n |\n translate}}</label>\n <textarea type="text" class="form-control" id="queryTemplate" name="queryTemplate"\n rows="10" ng-required="extractionMethod.selected"\n ng-minlength="extractionMethod.queryTemplate.minLength"\n ng-maxlength="extractionMethod.queryTemplate.maxLength"\n ng-model="extractionMethod.queryTemplate.value">\n </textarea>\n <div class="alert alert-danger"\n ng-if="extractionMethod.name.$touched && extractionMethod.name.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group retrieval-connector-max-triples">\n <label for="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n {{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label\'\n | translate}}</label>\n <input type="number" class="form-control"\n id="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}"\n name="maxNumberOfTriplesPerCall" min="0"\n ng-model="extractionMethod.maxNumberOfTriplesPerCall"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n <div class="alert alert-danger extraction-method-required-error"\n ng-if="agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid">\n {{\'ttyg.agent.create_agent_modal.form.extraction_method.required\' | translate}}\n </div>\n </div>\n\n <div id="additionalExtractionMethods" class="form-group additional-extraction-methods">\n <label uib-popover="{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n {{\'ttyg.agent.create_agent_modal.form.additional_query_methods.label\' | translate}}\n </label>\n\n <div ng-repeat="extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods"\n class="additional-extraction-method">\n <div ng-if="ExtractionMethodTemplates[extractionMethod.method]">\n <div ng-include="\'js/angular/ttyg/templates/\' + ExtractionMethodTemplates[extractionMethod.method] + \'.html\'"></div>\n </div>\n </div>\n </div>\n\n\n <div class="form-row clearfix">\n <div class="form-group gpt-model col-md-4">\n <label for="model" uib-popover="{{\'ttyg.agent.create_agent_modal.form.model.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.model.label\' |\n translate}}</label>\n <input type="text" class="form-control" id="model" name="model" ng-model="agentFormModel.model" guide-selector="model"\n required autocomplete="off">\n <small id="modelHelp" class="form-text text-muted"\n ng-bind-html="getModelHelpMessage()">\n </small>\n <div class="alert alert-danger"\n ng-if="agentSettingsForm.model.$touched && agentSettingsForm.model.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group temperature col-md-4">\n <label for="temperature">\n <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.temperature.label\' | translate}}</span>\n <i class="fa fa-triangle-exclamation text-warning high-temperature-warning"\n ng-if="showHighTemperatureWarning"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning\' | translate}}"\n popover-trigger="mouseenter"></i>\n </label>\n <input type="text" id="temperature" name="temperature" readonly\n class="form-control" ng-class="{\'has-warning\': showHighTemperatureWarning}"\n ng-model="agentFormModel.temperature.value">\n <input id="temperatureSlider" name="temperature" type="range"\n min="{{agentFormModel.temperature.minValue}}"\n max="{{agentFormModel.temperature.maxValue}}" step="{{agentFormModel.temperature.step}}"\n ng-change="onTemperatureChange()"\n ng-model="agentFormModel.temperature.value"/>\n </div>\n <div class="form-group top-p col-md-4">\n <label for="topP" uib-popover="{{\'ttyg.agent.create_agent_modal.form.top_p.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.top_p.label\' |\n translate}}</label>\n <input type="text" class="form-control" id="topP" name="topP" readonly\n ng-model="agentFormModel.topP.value">\n <input id="topPSlider" name="topP" type="range" min="{{agentFormModel.topP.minValue}}"\n max="{{agentFormModel.topP.maxValue}}" step="{{agentFormModel.topP.step}}"\n ng-model="agentFormModel.topP.value"/>\n </div>\n \x3c!-- Hidden for now because currently this property doesn\'t work in openai, but in the future it will --\x3e\n \x3c!-- <div class="form-group seed col-md-4 pr-0">--\x3e\n \x3c!-- <label for="seed">{{\'ttyg.agent.create_agent_modal.form.seed.label\' | translate}}</label>--\x3e\n \x3c!-- <input type="number" class="form-control" id="seed" name="seed" min="0" ng-model="agentFormModel.seed"--\x3e\n \x3c!-- placeholder="{{\'ttyg.agent.create_agent_modal.form.seed.hint\' | translate}}">--\x3e\n \x3c!-- </div>--\x3e\n </div>\n\n <div class="form-group user-instructions">\n <div class="toolbar">\n <label for="userInstruction"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.user_instruction.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.user_instruction.label\' |\n translate}}</label>\n <div class="actions">\n <copy-to-clipboard\n tooltip-text="ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip"\n text-to-copy="{{agentFormModel.instructions.userInstruction}}"></copy-to-clipboard>\n <button class="btn btn-link btn-sm create-chat-btn"\n ng-click="onRestoreDefaultUserInstructions()"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip\' | translate}}">\n <i class="fa fa-arrow-rotate-left"></i>\n </button>\n </div>\n </div>\n <textarea type="text" class="form-control" id="userInstruction" name="userInstruction" rows="5" guide-selector="user-instructions"\n ng-model="agentFormModel.instructions.userInstruction"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.user_instruction.placeholder\' | translate}}">\n </textarea>\n </div>\n\n <div class="text-xs-center">\n <button type="button" ng-click="showAdvancedSettings = !showAdvancedSettings"\n class="btn btn-link btn-sm toggle-advanced-settings">\n <span ng-hide="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.show\' | translate}}<em\n class="icon-caret-down"></em></span>\n <span ng-show="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.hide\' | translate}}<em\n class="icon-caret-up"></em></span>\n </button>\n </div>\n\n <div ng-show="showAdvancedSettings" class="advanced-settings">\n <div class="form-group system-instructions">\n <div class="toolbar">\n <label for="systemInstruction">\n <span\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.system_instruction.label\' | translate}}</span>\n <i class="fa fa-triangle-exclamation text-warning overriding-system-instructions-warning"\n ng-if="showSystemInstructionWarning"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body\' | translate}}"\n popover-trigger="mouseenter"></i>\n </label>\n <div class="actions">\n <copy-to-clipboard\n tooltip-text="ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip"\n text-to-copy="{{agentFormModel.instructions.systemInstruction}}"></copy-to-clipboard>\n <button class="btn btn-link btn-sm create-chat-btn"\n ng-click="onRestoreDefaultSystemInstructions()"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip\' | translate}}">\n <i class="fa fa-arrow-rotate-left"></i>\n </button>\n </div>\n </div>\n <textarea type="text" class="form-control" id="systemInstruction" name="systemInstruction" rows="5"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.system_instruction.placeholder\' | translate}}"\n ng-class="{\'has-warning\': showSystemInstructionWarning}"\n ng-model="agentFormModel.instructions.systemInstruction"\n ng-change="onSystemInstructionChange()">\n </textarea>\n </div>\n </div>\n </form>\n</div>\n\n<div class="modal-footer">\n <button type="button" ng-click="onExplainAgentSettings()" class="btn explain-agent-settings-btn">\n {{\'ttyg.agent.create_agent_modal.btn.explain_settings.label\' | translate}}\n </button>\n <div>\n <button type="button" ng-click="cancel()" class="btn cancel-btn">\n {{\'ttyg.agent.create_agent_modal.btn.cancel.label\' | translate}}\n </button>\n <button type="button" ng-click="ok()" ng-disabled="agentSettingsForm.$invalid || savingAgent" guide-selector="save-agent-settings"\n class="btn btn-primary save-agent-settings-btn">\n <span>{{(operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.btn.save.label\'\n : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.btn.save.label\'\n : \'ttyg.agent.create_agent_modal.btn.create.label\') | translate}}</span>\n <span class="saving-agent-loader" ng-if="savingAgent" onto-loader-fancy hide-message="true"\n size="15"></span>\n </button>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[489],{627:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-settings-modal.css?v=3.0.2" rel="stylesheet"/>\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{(\n operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.title.edit \'\n : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.title.clone\'\n : \'ttyg.agent.create_agent_modal.title.create\') | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <form novalidate name="agentSettingsForm" id="agentSettingsForm" class="agent-settings-form" guide-selector="agent-form">\n <div class="form-group agent-name-label">\n <label for="name" uib-popover="{{\'ttyg.agent.create_agent_modal.form.agent_name.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.agent_name.label\'\n | translate}}</label>\n <input type="text" class="form-control" id="name" name="name" ng-model="agentFormModel.name"\n required autocomplete="off" guide-selector="agent-name"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.agent_name.placeholder\' | translate}}">\n <div class="alert alert-danger"\n ng-if="agentSettingsForm.name.$touched && agentSettingsForm.name.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group repository-id">\n <label for="repositoryId"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.repository.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.repository.label\' |\n translate}}</label>\n <select class="form-control" id="repositoryId" name="repositoryId" ng-model="agentFormModel.repositoryId"\n required ng-change="onRepositoryChange()" guide-selector="repository-id"\n ng-options="repository.value as repository.label for repository in activeRepositoryList">\n </select>\n <div class="alert alert-danger"\n ng-if="agentSettingsForm.repositoryId.$touched && agentSettingsForm.repositoryId.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group extraction-methods-group">\n <label for="extractionMethods"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.extraction_method.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.extraction_method.label\' |\n translate}}</label>\n <div id="extractionMethods" name="extractionMethods"\n ng-model="agentFormModel.assistantExtractionMethods.extractionMethods"\n required class="accordion extraction-methods"\n ng-class="{\'has-error\': agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid}">\n <div ng-repeat="extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods"\n class="extraction-method">\n <div id="{{extractionMethod.method + \'_method_heading\'}}" class="extraction-method-heading"\n ng-class="{\'selected\': extractionMethod.selected}" guide-selector="query-method-{{extractionMethod.method}}">\n <div class="mr-0 extraction-method-toggle">\n <input type="checkbox" id="{{extractionMethod.method + \'_checkbox\'}}" guide-selector="query-method-{{extractionMethod.method}}-input"\n name="{{extractionMethod.method}}" class="switch"\n ng-click="toggleExtractionMethod(extractionMethod, $event)"\n ng-model="extractionMethod.selected"/>\n <label for="{{extractionMethod.method + \'_checkbox\'}}"></label>\n </div>\n <a class="btn btn-link panel-toggle-link"\n aria-expanded="false" aria-controls="{{extractionMethod.method + \'_method_content\'}}"\n ng-click="onExtractionMethodPanelToggle(extractionMethod)">\n <span class="mr-1"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.label\' | translate}}</span>\n <i class="fa fa-chevron-down toggle-icon"\n ng-class="{\'expanded\': extractionMethod.expanded}">\n </i>\n </a>\n </div>\n\n <div id="{{extractionMethod.method + \'_method_content\'}}"\n class="show extraction-method-content"\n aria-labelledby="{{extractionMethod.method + \'_method_heading\'}}"\n data-parent="#extractionMethods">\n\n \x3c!-- SPARQL method settings --\x3e\n\n <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL"\n class="extraction-method-options"\n ng-class="{\'has-error\': extractionMethod.selected && !extractionMethod.sparqlOption}">\n <div class="sparql-option ontology-graph-option" guide-selector="sparql-ontology-graph-option">\n <label class="radio-inline"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected" guide-selector="sparql-ontology-graph-option-input"\n ng-model="extractionMethod.sparqlOption" value="ontologyGraph">\n {{\'ttyg.agent.create_agent_modal.form.ontology_graph.label\' | translate}}\n </label>\n <div class="panel" ng-show="extractionMethod.sparqlOption === \'ontologyGraph\'">\n <div class="form-group">\n <input type="text" class="form-control" id="ontologyGraph" guide-selector="sparql-ontology-graph-input"\n name="ontologyGraph"\n ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'ontologyGraph\'"\n ng-model="extractionMethod.ontologyGraph">\n </div>\n </div>\n </div>\n <div class="sparql-option sparql-query-option">\n <label class="radio-inline"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.construct_query.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected"\n ng-model="extractionMethod.sparqlOption" value="sparqlQuery">\n {{\'ttyg.agent.create_agent_modal.form.construct_query.label\' | translate}}\n </label>\n <div class="panel" ng-show="extractionMethod.sparqlOption === \'sparqlQuery\'">\n <div class="form-group">\n <textarea type="text" class="form-control" id="sparqlQuery"\n name="sparqlQuery" rows="10"\n ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'sparqlQuery\'"\n ng-minlength="extractionMethod.sparqlQuery.minLength"\n ng-maxlength="extractionMethod.sparqlQuery.maxLength"\n ng-model="extractionMethod.sparqlQuery.value">\n </textarea>\n </div>\n </div>\n </div>\n <div class="alert alert-danger sparql-method-option-required-error mb-0"\n ng-if="extractionMethod.selected && !extractionMethod.sparqlOption">\n {{\'ttyg.agent.create_agent_modal.form.sparql_search.required_option\' | translate}}\n </div>\n <div class="add-missing-namespaces-option mt-1" guide-selector="add-missing-namespaces-option">\n <input id="addMissingNamespaces" name="addMissingNamespaces" type="checkbox" guide-selector="add-missing-namespaces"\n ng-model="extractionMethod.addMissingNamespaces">\n <label for="addMissingNamespaces"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\n \'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label\' | translate\n }}</label>\n </div>\n </div>\n\n \x3c!-- FTS method settings --\x3e\n\n <div\n ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH"\n ng-class="{\'has-error\': agentSettingsForm.$error.FTSDisabled}"\n class="extraction-method-options">\n <button class="btn btn-link btn-sm pull-right"\n ng-click="checkIfFTSEnabled()"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <div class="alert alert-danger missing-repositoryid-error mb-0"\n ng-if="!agentFormModel.repositoryId">\n {{\'ttyg.agent.create_agent_modal.form.fts_search.missing_repository_id\' | translate}}\n </div>\n <div ng-if="!ftsEnabled && agentFormModel.repositoryId" class="fts-disabled-message"\n ng-bind-html="getFTSDisabledHelpMessage()">\n </div>\n <div class="form-group max-triples" ng-show="ftsEnabled && agentFormModel.repositoryId">\n <label for="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n {{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label\'\n |\n translate}}\n </label>\n <input type="number" class="form-control"\n id="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}"\n name="maxNumberOfTriplesPerCall" min="0"\n ng-model="extractionMethod.maxNumberOfTriplesPerCall"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n\n \x3c!-- Similarity method settings --\x3e\n\n <div\n ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY"\n ng-class="{\'has-error\': agentSettingsForm.$error.missingIndex}"\n class="extraction-method-options">\n <button class="btn btn-link btn-sm pull-right"\n ng-click="updateSimilaritySearchPanel()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <div ng-if="!similarityIndexes.length" class="no-similarity-index-message">\n {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1\' |\n translate}}\n <a href="#" ng-click="goToCreateSimilarityView()">\n {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2\'\n | translate}}\n </a>\n {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3\' |\n translate}}.\n </div>\n <div ng-show="similarityIndexes.length">\n <div class="form-group similarity-index">\n <label for="similarityIndex"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_index.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_index.label\'\n | translate}}</label>\n <span ng-if="extractionMethodLoaderFlags.similarity_search" onto-loader-fancy\n size="16"></span>\n <select class="form-control" id="similarityIndex" name="similarityIndex" guide-selector="similarity-index-select"\n ng-required="extractionMethod.selected"\n ng-if="!extractionMethodLoaderFlags.similarity_search"\n ng-model="extractionMethod.similarityIndex"\n ng-options="similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes">\n </select>\n <div class="alert alert-danger"\n ng-if="extractionMethod.similarityIndex.$touched && extractionMethod.similarityIndex.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group similarity-index-threshold">\n <label for="similarityIndexThreshold"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.label\'\n | translate}}</label>\n <input type="text" class="form-control" id="similarityIndexThreshold"\n name="similarityIndexThreshold" readonly\n ng-model="extractionMethod.similarityIndexThreshold.value">\n <input id="similarityIndexThresholdSlider" name="similarityIndexThreshold"\n type="range" ng-required="extractionMethod.selected"\n min="{{extractionMethod.similarityIndexThreshold.minValue}}"\n max="{{extractionMethod.similarityIndexThreshold.maxValue}}"\n step="0.1"\n ng-model="extractionMethod.similarityIndexThreshold.value"/>\n </div>\n <div class="form-group similarity-max-triples">\n <label for="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n {{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label\'\n | translate}}</label>\n <input type="number" class="form-control"\n id="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}"\n name="maxNumberOfTriplesPerCall" min="0"\n ng-model="extractionMethod.maxNumberOfTriplesPerCall"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n </div>\n\n \x3c!-- Retrieval method settings --\x3e\n\n <div\n ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL"\n ng-class="{\'has-error\': agentSettingsForm.$error.missingConnector}"\n class="extraction-method-options">\n <button class="btn btn-link btn-sm pull-right"\n ng-click="updateRetrievalConnectorPanel()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <div ng-if="!retrievalConnectors.length" class="no-retrieval-connector-message">\n {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1\'\n | translate}}\n <a href="#" ng-click="goToConnectorsView()">\n {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2\'\n | translate}}\n </a>\n {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3\'\n | translate}}.\n </div>\n <div ng-show="retrievalConnectors.length">\n <div class="form-group retrieval-connector">\n <label for="retrievalConnectorInstance"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.connector_id.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.connector_id.label\'\n | translate}}</label>\n <span ng-if="extractionMethodLoaderFlags.retrieval_search" onto-loader-fancy\n size="16"></span>\n <select class="form-control" id="retrievalConnectorInstance"\n name="retrievalConnectorInstance"\n ng-required="extractionMethod.selected"\n ng-if="!extractionMethodLoaderFlags.retrieval_search"\n ng-model="extractionMethod.retrievalConnectorInstance"\n ng-options="retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors">\n </select>\n <div class="alert alert-danger"\n ng-if="extractionMethod.retrievalConnectorInstance.$touched && extractionMethod.retrievalConnectorInstance.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group query-template">\n <label for="queryTemplate"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.query_template.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.query_template.label\'\n |\n translate}}</label>\n <textarea type="text" class="form-control" id="queryTemplate" name="queryTemplate"\n rows="10" ng-required="extractionMethod.selected"\n ng-minlength="extractionMethod.queryTemplate.minLength"\n ng-maxlength="extractionMethod.queryTemplate.maxLength"\n ng-model="extractionMethod.queryTemplate.value">\n </textarea>\n <div class="alert alert-danger"\n ng-if="extractionMethod.name.$touched && extractionMethod.name.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group retrieval-connector-max-triples">\n <label for="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n {{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label\'\n | translate}}</label>\n <input type="number" class="form-control"\n id="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}"\n name="maxNumberOfTriplesPerCall" min="0"\n ng-model="extractionMethod.maxNumberOfTriplesPerCall"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n <div class="alert alert-danger extraction-method-required-error"\n ng-if="agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid">\n {{\'ttyg.agent.create_agent_modal.form.extraction_method.required\' | translate}}\n </div>\n </div>\n\n <div id="additionalExtractionMethods" class="form-group additional-extraction-methods">\n <label uib-popover="{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip\' | translate}}"\n popover-trigger="mouseenter">\n {{\'ttyg.agent.create_agent_modal.form.additional_query_methods.label\' | translate}}\n </label>\n\n <div ng-repeat="extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods"\n class="additional-extraction-method">\n <div ng-if="ExtractionMethodTemplates[extractionMethod.method]">\n <div ng-include="\'js/angular/ttyg/templates/\' + ExtractionMethodTemplates[extractionMethod.method] + \'.html\'"></div>\n </div>\n </div>\n </div>\n\n\n <div class="form-row clearfix">\n <div class="form-group gpt-model col-md-4">\n <label for="model" uib-popover="{{\'ttyg.agent.create_agent_modal.form.model.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.model.label\' |\n translate}}</label>\n <input type="text" class="form-control" id="model" name="model" ng-model="agentFormModel.model" guide-selector="model"\n required autocomplete="off">\n <small id="modelHelp" class="form-text text-muted"\n ng-bind-html="getModelHelpMessage()">\n </small>\n <div class="alert alert-danger"\n ng-if="agentSettingsForm.model.$touched && agentSettingsForm.model.$invalid">\n {{\'required.field\' | translate}}\n </div>\n </div>\n <div class="form-group temperature col-md-4">\n <label for="temperature">\n <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.temperature.label\' | translate}}</span>\n <i class="fa fa-triangle-exclamation text-warning high-temperature-warning"\n ng-if="showHighTemperatureWarning"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning\' | translate}}"\n popover-trigger="mouseenter"></i>\n </label>\n <input type="text" id="temperature" name="temperature" readonly\n class="form-control" ng-class="{\'has-warning\': showHighTemperatureWarning}"\n ng-model="agentFormModel.temperature.value">\n <input id="temperatureSlider" name="temperature" type="range"\n min="{{agentFormModel.temperature.minValue}}"\n max="{{agentFormModel.temperature.maxValue}}" step="{{agentFormModel.temperature.step}}"\n ng-change="onTemperatureChange()"\n ng-model="agentFormModel.temperature.value"/>\n </div>\n <div class="form-group top-p col-md-4">\n <label for="topP" uib-popover="{{\'ttyg.agent.create_agent_modal.form.top_p.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.top_p.label\' |\n translate}}</label>\n <input type="text" class="form-control" id="topP" name="topP" readonly\n ng-model="agentFormModel.topP.value">\n <input id="topPSlider" name="topP" type="range" min="{{agentFormModel.topP.minValue}}"\n max="{{agentFormModel.topP.maxValue}}" step="{{agentFormModel.topP.step}}"\n ng-model="agentFormModel.topP.value"/>\n </div>\n \x3c!-- Hidden for now because currently this property doesn\'t work in openai, but in the future it will --\x3e\n \x3c!-- <div class="form-group seed col-md-4 pr-0">--\x3e\n \x3c!-- <label for="seed">{{\'ttyg.agent.create_agent_modal.form.seed.label\' | translate}}</label>--\x3e\n \x3c!-- <input type="number" class="form-control" id="seed" name="seed" min="0" ng-model="agentFormModel.seed"--\x3e\n \x3c!-- placeholder="{{\'ttyg.agent.create_agent_modal.form.seed.hint\' | translate}}">--\x3e\n \x3c!-- </div>--\x3e\n </div>\n\n <div class="form-group user-instructions">\n <div class="toolbar">\n <label for="userInstruction"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.user_instruction.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.user_instruction.label\' |\n translate}}</label>\n <div class="actions">\n <copy-to-clipboard\n tooltip-text="ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip"\n text-to-copy="{{agentFormModel.instructions.userInstruction}}"></copy-to-clipboard>\n <button class="btn btn-link btn-sm create-chat-btn"\n ng-click="onRestoreDefaultUserInstructions()"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip\' | translate}}">\n <i class="fa fa-arrow-rotate-left"></i>\n </button>\n </div>\n </div>\n <textarea type="text" class="form-control" id="userInstruction" name="userInstruction" rows="5" guide-selector="user-instructions"\n ng-model="agentFormModel.instructions.userInstruction"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.user_instruction.placeholder\' | translate}}">\n </textarea>\n </div>\n\n <div class="text-xs-center">\n <button type="button" ng-click="showAdvancedSettings = !showAdvancedSettings"\n class="btn btn-link btn-sm toggle-advanced-settings">\n <span ng-hide="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.show\' | translate}}<em\n class="icon-caret-down"></em></span>\n <span ng-show="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.hide\' | translate}}<em\n class="icon-caret-up"></em></span>\n </button>\n </div>\n\n <div ng-show="showAdvancedSettings" class="advanced-settings">\n <div class="form-group system-instructions">\n <div class="toolbar">\n <label for="systemInstruction">\n <span\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.tooltip\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.system_instruction.label\' | translate}}</span>\n <i class="fa fa-triangle-exclamation text-warning overriding-system-instructions-warning"\n ng-if="showSystemInstructionWarning"\n uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body\' | translate}}"\n popover-trigger="mouseenter"></i>\n </label>\n <div class="actions">\n <copy-to-clipboard\n tooltip-text="ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip"\n text-to-copy="{{agentFormModel.instructions.systemInstruction}}"></copy-to-clipboard>\n <button class="btn btn-link btn-sm create-chat-btn"\n ng-click="onRestoreDefaultSystemInstructions()"\n gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip\' | translate}}">\n <i class="fa fa-arrow-rotate-left"></i>\n </button>\n </div>\n </div>\n <textarea type="text" class="form-control" id="systemInstruction" name="systemInstruction" rows="5"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.system_instruction.placeholder\' | translate}}"\n ng-class="{\'has-warning\': showSystemInstructionWarning}"\n ng-model="agentFormModel.instructions.systemInstruction"\n ng-change="onSystemInstructionChange()">\n </textarea>\n </div>\n </div>\n </form>\n</div>\n\n<div class="modal-footer">\n <button type="button" ng-click="onExplainAgentSettings()" class="btn explain-agent-settings-btn">\n {{\'ttyg.agent.create_agent_modal.btn.explain_settings.label\' | translate}}\n </button>\n <div>\n <button type="button" ng-click="cancel()" class="btn cancel-btn">\n {{\'ttyg.agent.create_agent_modal.btn.cancel.label\' | translate}}\n </button>\n <button type="button" ng-click="ok()" ng-disabled="agentSettingsForm.$invalid || savingAgent" guide-selector="save-agent-settings"\n class="btn btn-primary save-agent-settings-btn">\n <span>{{(operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.btn.save.label\'\n : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.btn.save.label\'\n : \'ttyg.agent.create_agent_modal.btn.create.label\') | translate}}</span>\n <span class="saving-agent-loader" ng-if="savingAgent" onto-loader-fancy hide-message="true"\n size="15"></span>\n </button>\n </div>\n</div>\n';return __p}}}]);