graphdb-workbench 2.8.0-TR4 → 2.8.0-TR5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{0.b771c387eb20bde9a6ea.bundle.js → 0.6967ab9fb05778bb0f23.bundle.js} +2 -2
- package/dist/{1.1a45680f3bec35238550.bundle.js → 1.2d333b1dc9d9d93fa395.bundle.js} +1 -1
- package/dist/{11.df90fccb3ff14cb166d8.bundle.js → 11.a9076c27fa7279c46d49.bundle.js} +5 -5
- package/dist/{14.14d3683da668325381d3.bundle.js → 14.eaf1fb53a0c7be59d9d5.bundle.js} +2 -2
- package/dist/167.d4b7fc5fa09527e47466.bundle.js +1 -1
- package/dist/{2.9770846cbe686a33e4f8.bundle.js → 2.3cdecf40af9e7a409ab0.bundle.js} +2 -2
- package/dist/{20.6f75ff85c57c42f30433.bundle.js → 20.8d9794d3f726053d668d.bundle.js} +1 -1
- package/dist/{21.39dffe7ceff8f6658a56.bundle.js → 21.7951f078016f09edd79a.bundle.js} +1 -1
- package/dist/{23.9d9bea64ee0f22ec8159.bundle.js → 23.f14cd250b4fbb29ee2dc.bundle.js} +2 -2
- package/dist/{310.82c1148db42192c0090c.bundle.js → 310.469994de69102ac3f19e.bundle.js} +1 -1
- package/dist/{311.9874544df1bbafd10692.bundle.js → 311.cf3c7cdc8df9614c5e0d.bundle.js} +1 -1
- package/dist/{312.e1b40283b695dcb101b0.bundle.js → 312.71d9b98ccbdfe96b0e27.bundle.js} +1 -1
- package/dist/{313.d9cca6e410a0f1a448bb.bundle.js → 313.53a97f9eb084dcae87c9.bundle.js} +1 -1
- package/dist/325.993f7143c5d5592ab355.bundle.js +1 -1
- package/dist/328.c8475579baf28af54890.bundle.js +1 -1
- package/dist/329.29a283ec1f3ceb4adb26.bundle.js +1 -1
- package/dist/{33.34c20158a0c7476d953f.bundle.js → 33.4099e6d9a135c8342401.bundle.js} +1 -1
- package/dist/330.4e27caee2a547aeaf45b.bundle.js +1 -1
- package/dist/{34.cec479590af17a5f1b17.bundle.js → 34.3bd663f40f8e5d487e58.bundle.js} +1 -1
- package/dist/360.c02645ba0f7ccc709bd3.bundle.js +1 -1
- package/dist/371.4ac7a2c3459079f9fb6a.bundle.js +1 -1
- package/dist/372.8c2b50c5a331ae2b9c70.bundle.js +1 -1
- package/dist/373.9ed7674129588e479e21.bundle.js +1 -1
- package/dist/374.b8ba6d28714210a3468b.bundle.js +1 -1
- package/dist/377.ae7fb3655af86acf9cd8.bundle.js +1 -1
- package/dist/379.cee485c49fe7cbbf1b00.bundle.js +1 -1
- package/dist/{380.19a7d7b2178f303269b4.bundle.js → 380.8d892a8aaba0c859b3c2.bundle.js} +1 -1
- package/dist/49.1d0155d2196c26d66a02.bundle.js +1 -1
- package/dist/54.d9da92c299b633971397.bundle.js +1 -0
- package/dist/58.e5f89a68c158a10169a3.bundle.js +1 -0
- package/dist/{6.2cf11b39c0980889d446.bundle.js → 6.bdd0c8920d113c3720a2.bundle.js} +1 -1
- package/dist/61.e8a681d3549fc169ec69.bundle.js +1 -1
- package/dist/{70.05fb2a311f0b1542c9e3.bundle.js → 70.4c411d83a739e6825088.bundle.js} +1 -1
- package/dist/8.1e5e224c88447e09e540.bundle.js +2 -0
- package/dist/{83.8225300dc7f6501d3272.bundle.js → 83.5a2605ee11c182a18010.bundle.js} +1 -1
- package/dist/{bundle.202db8517acfc0d257cd.bundle.js → bundle.ab46df6bc4d4c7e32a6b.bundle.js} +2 -2
- package/dist/index.html +3 -3
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
- package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
- package/dist/js/angular/security/templates/user.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
- package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
- package/dist/js/angular/ttyg/templates/ttyg.html +2 -2
- package/dist/license-checker.json +2 -2
- package/dist/pages/aclmanagement.html +2 -2
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +1 -1
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +8 -8
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/import.html +2 -2
- package/dist/pages/jdbc-create.html +1 -1
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +1 -1
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +1 -1
- package/dist/pages/repository.html +1 -1
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-editor.html +1 -1
- package/dist/pages/sparql-template-create.html +1 -1
- package/dist/pages/ux-test1.html +2 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger5/README.md +1 -1
- package/dist/res/swagger5/index.css +1 -1
- package/dist/res/swagger5/index.html +12 -12
- package/dist/res/swagger5/oauth2-redirect.html +6 -6
- package/dist/res/swagger5/swagger-initializer.js +5 -0
- package/dist/res/swagger5/swagger-ui-bundle.js +1 -1
- package/dist/res/swagger5/swagger-ui-es-bundle-core.js +1 -1
- package/dist/res/swagger5/swagger-ui-es-bundle-core.js.map +1 -1
- package/dist/res/swagger5/swagger-ui-es-bundle.js +1 -1
- package/dist/res/swagger5/swagger-ui-standalone-preset.js +1 -1
- package/dist/res/swagger5/swagger-ui.js +1 -1
- package/dist/res/swagger5/swagger-ui.js.map +1 -1
- package/package.json +1 -2
- package/dist/54.1a6e4ada1e69a58b2b52.bundle.js +0 -1
- package/dist/58.463fc66ca234d1129da3.bundle.js +0 -1
- package/dist/8.7f0f98ff96fac525fd5a.bundle.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[360],{463: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=2.8.0-TR4" rel="stylesheet"/>\n\n<h1>{{pageTitle}}</h1>\n\n<div id="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\t\t\t\t\t</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-role-prefix></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" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></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 <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> · {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></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([[360],{463: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=2.8.0-TR5" rel="stylesheet"/>\n\n<h1>{{pageTitle}}</h1>\n\n<div id="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\t\t\t\t\t</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-role-prefix></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" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></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 <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> · {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></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([[371],{476:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=2.8.0-
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[371],{476:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=2.8.0-TR5" 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 <span class="selected-filter">{{selectedAgentsFilter.label}}</span>\n <i class="fa-regular 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" ng-if="agent.repositoryId">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i class="fa-kit fa-gdb-repo-graphdb"></i>\n {{agent.repositoryId}}\n </div>\n </div>\n <div class="agent-info agent-no-repo" ng-if="!agent.repositoryId">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i class="fa-regular fa-triangle-exclamation text-warning"></i>\n {{\'ttyg.agent.deleted_repository\' | translate}}\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-regular 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-regular 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-regular 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-regular 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([[372],{477:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=2.8.0-
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[372],{477:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=2.8.0-TR5" rel="stylesheet"/>\n\n<div class="btn-group agent-select-menu" uib-dropdown>\n <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle\n ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted && selectedAgent.repositoryId ? (selectedAgent.name + \' · \' + selectedAgent.repositoryId) : null}}">\n <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span>\n <span ng-if="selectedAgent && !selectedAgent.isDeleted && selectedAgent.repositoryId">{{selectedAgent.name}} · {{selectedAgent.repositoryId}}</span>\n <span ng-if="selectedAgent && !selectedAgent.isDeleted && !selectedAgent.repositoryId">\n {{selectedAgent.name}} · <i class="fa-regular fa-triangle-exclamation text-warning"></i>\n {{\'ttyg.agent.deleted_repository\' | translate}}\n </span>\n <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning">\n <i class="fa-regular 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">\n <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item"\n ng-class="{\'selected\': agentOption.selected}">\n <a href="#" ng-if="agentOption.data.agent.repositoryId" class="agent-with-repo-item"\n ng-click="onAgentSelected(agentOption.data.agent)">\n <span class="agent-name">{{agentOption.label}}</span> ·\n <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span>\n </a>\n <a href="#" ng-if="!agentOption.data.agent.repositoryId" class="agent-without-repo-item"\n ng-click="onAgentWithoutRepoSelected(agentOption)">\n <span class="agent-name">{{agentOption.label}}</span> ·\n <i class="fa-regular fa-triangle-exclamation text-warning"></i>\n <span class="repository-id">{{\'ttyg.agent.deleted_repository\' | translate}}</span>\n </a>\n </li>\n </ul>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[373],{478:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=2.8.0-
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[373],{478:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=2.8.0-TR5" rel="stylesheet"/>\n\n<div class="chat-list-component">\n <div ng-repeat="chatGroup in chatList.chatsByDay" class="chat-group">\n <label>{{getHumanReadableTimestamp(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 class="chat-name">\n <inline-editable-text\n field-name="name"\n source="chat"\n is-editing="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 </inline-editable-text>\n </div>\n <div ng-if="!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-regular 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-regular 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-regular 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-regular fa-trash-can"></i>\n <span>{{\'ttyg.chat.btn.delete_chat.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </li>\n </ul>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[374],{479:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=2.8.0-
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[374],{479:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=2.8.0-TR5" rel="stylesheet"/>\n\n<div class="chat-panel h-100">\n\n <div class="messages-hint text-muted" ng-if="chat.chatHistory.isEmpty()">\n {{ \'ttyg.chat_panel.hint\' | translate }}\n </div>\n\n <div class="chat-details" ng-class="{\'hidden\': !chat}">\n <div class="chat-detail" ng-repeat="chatItem in chat.chatHistory.items">\n <div class="user-message">\n <div class="question alert-help">\n {{ chatItem.question.message }}\n </div>\n </div>\n <div class="assistant">\n <div class="assistant-icon alert-help">\n <i class="fa-regular fa-message-bot"></i>\n </div>\n <div class="assistant-message">\n <div class="answer">\n {{ chatItem.answer.message }}\n </div>\n <div class="actions" ng-class="{\'hidden-actions\': !$last}">\n <button class="btn btn-link secondary btn-sm regenerate-question-btn"\n ng-click="regenerateQuestion(chatItem)"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.regenerate.tooltip\' | translate}}">\n <i class="fa-regular fa-arrows-rotate"></i>\n </button>\n <button class="btn btn-link secondary btn-sm copy-answer-btn"\n ng-click="copyAnswerToClipboard(chatItem)"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.copy.tooltip\' | translate}}">\n <i class="fa-regular fa-clone"></i>\n </button>\n <i class="fa-regular fa-wand-magic-sparkles"></i>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class="mew-question mb-3 mt-2 d-flex">\n <input class="form-control question-input" ng-model="chatItem.question.message" type="text">\n <button class="btn btn-primary ask-button" ng-disabled="!chatItem.question.message || !selectedAgent || selectedAgent.isDeleted" ng-click="ask()">\n <i class="fa-regular fa-arrow-turn-left-up"></i>\n {{ \'ttyg.chat_panel.btn.ask.label \' | translate }}\n </button>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[377],{482:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-settings-modal.css?v=2.8.0-TR4" rel="stylesheet"/>\n<link href="js/lib/rzslider/rzslider.min.css?v=2.8.0-TR4" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{(isEdit ? \'ttyg.agent.create_agent_modal.title.edit \' : \'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">\n <div class="form-group agent-name">\n <label for="name">{{\'ttyg.agent.create_agent_modal.form.agent_name.label\' | translate}}</label>\n <input type="text" class="form-control" id="name" name="name" ng-model="agentFormModel.name"\n required autocomplete="off"\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">{{\'ttyg.agent.create_agent_modal.form.repository.label\' | translate}}</label>\n <select class="form-control" id="repositoryId" name="repositoryId" ng-model="agentFormModel.repositoryId"\n required ng-change="onRepositoryChange()"\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">{{\'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}">\n <div class="mr-0 extraction-method-toggle">\n <input type="checkbox" id="{{extractionMethod.method + \'_checkbox\'}}"\n name="{{extractionMethod}}" class="switch"\n ng-change="toggleExtractionMethod()"\n ng-model="extractionMethod.selected"/>\n <label for="{{extractionMethod.method + \'_checkbox\'}}"></label>\n </div>\n <a class="btn btn-link panel-toggle-link collapsed" data-toggle="collapse"\n data-target="#{{extractionMethod.method + \'_method_content\'}}"\n aria-expanded="false" aria-controls="{{extractionMethod.method + \'_method_content\'}}"\n ng-click="onExtractionMethodPanelToggle(extractionMethod)">\n <span class="mr-1">{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.label\' | translate}}</span>\n <i class="fa-regular fa-chevron-down toggle-icon"></i>\n </a>\n </div>\n\n <div id="{{extractionMethod.method + \'_method_content\'}}"\n class="collapse 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.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">\n <label class="radio-inline">\n <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected"\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"\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 <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"\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>\n\n \x3c!-- FTS method settings --\x3e\n\n <div ng-if="extractionMethod.method === extractionMethods.FTS_SEARCH"\n class="extraction-method-options">\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 {{\'ttyg.agent.create_agent_modal.form.max_number_of_triples_per_call.label\' |\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.max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n\n \x3c!-- Similarity method settings --\x3e\n\n <div ng-if="extractionMethod.method === extractionMethods.SIMILARITY"\n class="extraction-method-options">\n <div ng-if="!similarityIndexes.length" class="no-similarity-index-message"\n ng-bind-html="getNoSimilarityIndexHelpMessage()">\n </div>\n <div ng-show="similarityIndexes.length">\n <div class="form-group similarity-index">\n <label for="similarityIndex">{{\'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"\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">{{\'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="{{extractionMethod.similarityIndexThreshold.step}}"\n ng-model="extractionMethod.similarityIndexThreshold.value"/>\n </div>\n <div class="form-group similarity-max-triples">\n <label for="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}">\n {{\'ttyg.agent.create_agent_modal.form.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.max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n </div>\n\n \x3c!-- Retrieval method settings --\x3e\n\n <div ng-if="extractionMethod.method === extractionMethods.RETRIEVAL"\n class="extraction-method-options">\n <div ng-if="!retrievalConnectors.length" class="no-retrieval-connector-message"\n ng-bind-html="getNoRetrievalConnectorHelpMessage()">\n </div>\n <div ng-show="retrievalConnectors.length">\n <div class="form-group retrieval-connector">\n <label for="retrievalConnectorInstance">{{\'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">{{\'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 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 {{\'ttyg.agent.create_agent_modal.form.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.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 class="form-group additional-extraction-methods">\n <label>{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.label\' | translate}}</label>\n <div\n ng-repeat="additionalExtractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods"\n class="additional-extraction-method">\n <input type="checkbox" id="{{additionalExtractionMethod.method + \'_checkbox\'}}"\n name="{{additionalExtractionMethod.method}}" class="switch"\n ng-model="additionalExtractionMethod.selected"/>\n <label for="{{additionalExtractionMethod.method + \'_checkbox\'}}"></label>\n <span class="extraction-method-label">{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.method.\' +\n additionalExtractionMethod.method | translate}}</span>\n </div>\n </div>\n\n <div class="form-group gpt-model">\n <label for="model">{{\'ttyg.agent.create_agent_modal.form.model.label\' | translate}}</label>\n <input type="text" class="form-control" id="model" name="model" ng-model="agentFormModel.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\n <div class="form-row clearfix">\n <div class="form-group temperature col-md-4 pl-0">\n <label for="temperature">{{\'ttyg.agent.create_agent_modal.form.temperature.label\' | translate}}</label>\n <input type="text" class="form-control" id="temperature" name="temperature" readonly\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-model="agentFormModel.temperature.value"/>\n </div>\n <div class="form-group top-p col-md-4">\n <label for="topP">{{\'ttyg.agent.create_agent_modal.form.top_p.label\' | 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 <div class="form-group seed col-md-4 pr-0">\n <label for="seed">{{\'ttyg.agent.create_agent_modal.form.seed.label\' | translate}}</label>\n <input type="number" class="form-control" id="seed" name="seed" min="0" ng-model="agentFormModel.seed"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.seed.hint\' | translate}}">\n </div>\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 <label for="systemInstruction">{{\'ttyg.agent.create_agent_modal.form.system_instruction.label\' |\n translate}}</label>\n <textarea type="text" class="form-control" id="systemInstruction" name="systemInstruction"\n ng-model="agentFormModel.instructions.systemInstruction"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.system_instruction.placeholder\' | translate}}">\n </textarea>\n </div>\n <div class="form-group user-instructions">\n <label for="userInstruction">{{\'ttyg.agent.create_agent_modal.form.user_instruction.label\' |\n translate}}</label>\n <textarea type="text" class="form-control" id="userInstruction" name="userInstruction"\n ng-model="agentFormModel.instructions.userInstruction"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.user_instruction.placeholder\' | translate}}">\n </textarea>\n </div>\n </div>\n </form>\n</div>\n\n<div class="modal-footer">\n <button type="button" ng-click="cancel()" class="btn btn-link 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"\n class="btn btn-primary save-agent-settings-btn">\n {{( isEdit ? \'ttyg.agent.create_agent_modal.btn.save.label\' : \'ttyg.agent.create_agent_modal.btn.create.label\') | translate}}\n </button>\n</div>\n';return __p}}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[377],{482:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-settings-modal.css?v=2.8.0-TR5" rel="stylesheet"/>\n<link href="js/lib/rzslider/rzslider.min.css?v=2.8.0-TR5" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{(isEdit ? \'ttyg.agent.create_agent_modal.title.edit \' : \'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">\n <div class="form-group agent-name">\n <label for="name">{{\'ttyg.agent.create_agent_modal.form.agent_name.label\' | translate}}</label>\n <input type="text" class="form-control" id="name" name="name" ng-model="agentFormModel.name"\n required autocomplete="off"\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">{{\'ttyg.agent.create_agent_modal.form.repository.label\' | translate}}</label>\n <select class="form-control" id="repositoryId" name="repositoryId" ng-model="agentFormModel.repositoryId"\n required ng-change="onRepositoryChange()"\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">{{\'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}">\n <div class="mr-0 extraction-method-toggle">\n <input type="checkbox" id="{{extractionMethod.method + \'_checkbox\'}}"\n name="{{extractionMethod}}" class="switch"\n ng-change="toggleExtractionMethod()"\n ng-model="extractionMethod.selected"/>\n <label for="{{extractionMethod.method + \'_checkbox\'}}"></label>\n </div>\n <a class="btn btn-link panel-toggle-link collapsed" data-toggle="collapse"\n data-target="#{{extractionMethod.method + \'_method_content\'}}"\n aria-expanded="false" aria-controls="{{extractionMethod.method + \'_method_content\'}}"\n ng-click="onExtractionMethodPanelToggle(extractionMethod)">\n <span class="mr-1">{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.label\' | translate}}</span>\n <i class="fa-regular fa-chevron-down toggle-icon"></i>\n </a>\n </div>\n\n <div id="{{extractionMethod.method + \'_method_content\'}}"\n class="collapse 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.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">\n <label class="radio-inline">\n <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected"\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"\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 <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"\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>\n\n \x3c!-- FTS method settings --\x3e\n\n <div ng-if="extractionMethod.method === extractionMethods.FTS_SEARCH"\n class="extraction-method-options">\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 {{\'ttyg.agent.create_agent_modal.form.max_number_of_triples_per_call.label\' |\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.max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n\n \x3c!-- Similarity method settings --\x3e\n\n <div ng-if="extractionMethod.method === extractionMethods.SIMILARITY"\n class="extraction-method-options">\n <div ng-if="!similarityIndexes.length" class="no-similarity-index-message"\n ng-bind-html="getNoSimilarityIndexHelpMessage()">\n </div>\n <div ng-show="similarityIndexes.length">\n <div class="form-group similarity-index">\n <label for="similarityIndex">{{\'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"\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">{{\'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="{{extractionMethod.similarityIndexThreshold.step}}"\n ng-model="extractionMethod.similarityIndexThreshold.value"/>\n </div>\n <div class="form-group similarity-max-triples">\n <label for="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}">\n {{\'ttyg.agent.create_agent_modal.form.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.max_number_of_triples_per_call.placeholder\' | translate}}">\n </div>\n </div>\n </div>\n\n \x3c!-- Retrieval method settings --\x3e\n\n <div ng-if="extractionMethod.method === extractionMethods.RETRIEVAL"\n class="extraction-method-options">\n <div ng-if="!retrievalConnectors.length" class="no-retrieval-connector-message"\n ng-bind-html="getNoRetrievalConnectorHelpMessage()">\n </div>\n <div ng-show="retrievalConnectors.length">\n <div class="form-group retrieval-connector">\n <label for="retrievalConnectorInstance">{{\'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">{{\'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 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 {{\'ttyg.agent.create_agent_modal.form.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.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 class="form-group additional-extraction-methods">\n <label>{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.label\' | translate}}</label>\n <div\n ng-repeat="additionalExtractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods"\n class="additional-extraction-method">\n <input type="checkbox" id="{{additionalExtractionMethod.method + \'_checkbox\'}}"\n name="{{additionalExtractionMethod.method}}" class="switch"\n ng-model="additionalExtractionMethod.selected"/>\n <label for="{{additionalExtractionMethod.method + \'_checkbox\'}}"></label>\n <span class="extraction-method-label">{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.method.\' +\n additionalExtractionMethod.method | translate}}</span>\n </div>\n </div>\n\n <div class="form-group gpt-model">\n <label for="model">{{\'ttyg.agent.create_agent_modal.form.model.label\' | translate}}</label>\n <input type="text" class="form-control" id="model" name="model" ng-model="agentFormModel.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\n <div class="form-row clearfix">\n <div class="form-group temperature col-md-4 pl-0">\n <label for="temperature">{{\'ttyg.agent.create_agent_modal.form.temperature.label\' | translate}}</label>\n <input type="text" class="form-control" id="temperature" name="temperature" readonly\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-model="agentFormModel.temperature.value"/>\n </div>\n <div class="form-group top-p col-md-4">\n <label for="topP">{{\'ttyg.agent.create_agent_modal.form.top_p.label\' | 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 <div class="form-group seed col-md-4 pr-0">\n <label for="seed">{{\'ttyg.agent.create_agent_modal.form.seed.label\' | translate}}</label>\n <input type="number" class="form-control" id="seed" name="seed" min="0" ng-model="agentFormModel.seed"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.seed.hint\' | translate}}">\n </div>\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 <label for="systemInstruction">{{\'ttyg.agent.create_agent_modal.form.system_instruction.label\' |\n translate}}</label>\n <textarea type="text" class="form-control" id="systemInstruction" name="systemInstruction"\n ng-model="agentFormModel.instructions.systemInstruction"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.system_instruction.placeholder\' | translate}}">\n </textarea>\n </div>\n <div class="form-group user-instructions">\n <label for="userInstruction">{{\'ttyg.agent.create_agent_modal.form.user_instruction.label\' |\n translate}}</label>\n <textarea type="text" class="form-control" id="userInstruction" name="userInstruction"\n ng-model="agentFormModel.instructions.userInstruction"\n placeholder="{{\'ttyg.agent.create_agent_modal.form.user_instruction.placeholder\' | translate}}">\n </textarea>\n </div>\n </div>\n </form>\n</div>\n\n<div class="modal-footer">\n <button type="button" ng-click="cancel()" class="btn btn-link 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"\n class="btn btn-primary save-agent-settings-btn">\n {{( isEdit ? \'ttyg.agent.create_agent_modal.btn.save.label\' : \'ttyg.agent.create_agent_modal.btn.create.label\') | translate}}\n </button>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[379],{484:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/no-agents-view.css?v=2.8.0-
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[379],{484:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/no-agents-view.css?v=2.8.0-TR5" rel="stylesheet"/>\n\n<div class="no-agents-view-component">\n <div class="content">\n <div class="alert alert-help mb-3">{{ \'ttyg.agent.messages.help_1\' | translate }}</div>\n <div class="alert alert-help mb-3">{{ \'ttyg.agent.messages.help_2\' | translate }}</div>\n\n <div class="actions">\n <button class="btn btn-outline-primary btn-lg text-xs-left create-agent-btn" ng-click="onCreateAgent()">\n <i class="fa-regular fa-message-bot fa-xl"></i>\n <span class="text ml-1">{{\'ttyg.agent.fat_btn.create_agent.label\' | translate}}</span>\n </button>\n </div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[380],{485:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/ttyg.css?v=2.8.0-
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[380],{485:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/ttyg.css?v=2.8.0-TR5" rel="stylesheet"/>\n\n<div class="ttyg-view">\n <h1 id="ttyg-view-title">\n {{ title }}\n <span class="btn btn-link"\n uib-popover-template="\'js/angular/templates/titlePopoverTemplate.html\'"\n popover-trigger="mouseenter"\n popover-placement="bottom-right"\n popover-append-to-body="true"><span class="icon-info text-tertiary"></span></span>\n </h1>\n\n <div core-errors></div>\n\n <div onto-loader-new\n ng-show="loadingAgents"\n class="ttyg-page-loader"\n size="100">\n </div>\n\n <no-agents-view ng-cloak ng-if="!loadingAgents && (!agents || agents.isEmpty())"></no-agents-view>\n\n <div id="ttyg-container" class="ttyg-container" ng-show="getActiveRepository() && !loadingAgents && agents && !agents.isEmpty()">\n\n <div id="left-sidebar" class="left-sidebar sidebar" ng-class="showChats ? \'expanded\' : \'collapsed\'">\n <div class="toolbar">\n <button class="btn btn-link secondary btn-sm toggle-chats-sidebar-btn"\n ng-if="true"\n ng-click="toggleChatsListSidebar()"\n ng-disabled="false"\n gdb-tooltip="{{\'ttyg.chat.btn.\' + (showChats ? \'close_sidebar\' : \'open_sidebar\') + \'.tooltip\' | translate}}">\n <i class="fa-regular fa-sidebar"></i>\n </button>\n <button class="btn btn-link secondary btn-sm create-chat-btn"\n ng-if="chats && !chats.isEmpty()"\n ng-click="startNewChat()"\n ng-disabled="false"\n gdb-tooltip="{{\'ttyg.chat.btn.create_chat.tooltip\' | translate}}">\n <i class="fa-regular fa-pen-to-square"></i>\n </button>\n </div>\n <pageslide\n ps-class="chat-list-panel slide-panel"\n ps-container="left-sidebar"\n ps-open="showChats"\n onopen="onopen"\n onclose="onclose"\n ps-side="left"\n ps-click-outside="false"\n ps-size="80vw">\n <div class="sidebar-content">\n <chat-list ng-if="chats" chat-list="chats"></chat-list>\n <div ng-if="loadingChats" onto-loader-fancy message="{{\'ttyg.chat.loading_chats\' | translate}}"\n size="25" style="height: 75vh; display: flex;"></div>\n </div>\n </pageslide>\n </div>\n\n <div class="chat-content">\n <div class="toolbar">\n <agent-select-menu class="mr-1"></agent-select-menu>\n <button class="btn btn-link secondary btn-sm edit-current-agent-btn mr-1"\n ng-if="true"\n ng-click="onEditAgent()"\n ng-disabled="false"\n gdb-tooltip="{{\'ttyg.agent.btn.edit_agent.tooltip\' | translate}}">\n <i class="fa-regular fa-gear"></i>\n </button>\n <button class="btn btn-link secondary btn-sm export-current-chat-btn"\n ng-if="true"\n ng-click="onExportSelectedChat()"\n ng-disabled="false"\n gdb-tooltip="{{\'ttyg.chat.btn.export_chat.tooltip\' | translate}}">\n <i class="fa-regular fa-arrow-down-to-line"></i>\n </button>\n </div>\n\n <div class="chat">\n <div uib-collapse="!isCollapsed" id="ot-help-text" class="alert alert-info">\n <button type="button" ng-click="isCollapsed = false" gdb-tooltip="{{\'common.close\' | translate}}"\n class="close"\n aria-label="Close"></button>\n <div ng-include="helpTemplateUrl"></div>\n </div>\n\n <chat-panel class="selected-chat-panel"></chat-panel>\n </div>\n \x3c!-- <div class="controls">--\x3e\n \x3c!-- <button class="btn btn-link btn-lg" ng-click="isCollapsed = !isCollapsed">--\x3e\n \x3c!-- <i class="icon-help"></i>--\x3e\n \x3c!-- </button>--\x3e\n \x3c!-- <button class="btn btn-link btn-lg" ng-click="openSettings()">--\x3e\n \x3c!-- <i class="icon-settings"></i>--\x3e\n \x3c!-- </button>--\x3e\n \x3c!-- <a class="btn btn-link btn-lg secondary" ng-click="clear()">--\x3e\n \x3c!-- <i class="icon-trash"></i>--\x3e\n \x3c!-- </a>--\x3e\n \x3c!-- </div>--\x3e\n </div>\n\n <div id="right-sidebar" class="right-sidebar sidebar" ng-class="showAgents ? \'expanded\' : \'collapsed\'">\n <div class="toolbar">\n <button class="btn btn-link secondary btn-sm help-btn"\n ng-if="true"\n ng-click="openHelp()"\n ng-disabled="false"\n gdb-tooltip="{{\'ttyg.help.btn.show_help.tooltip\' | translate}}">\n <i class="fa-regular fa-circle-question"></i>\n </button>\n <button class="btn btn-link secondary btn-sm create-agent-btn"\n ng-if="true"\n ng-click="onCreateAgent()"\n ng-disabled="false"\n gdb-tooltip="{{\'ttyg.agent.btn.create_agent.tooltip\' | translate}}">\n <i class="fa-regular fa-circle-plus"></i>\n </button>\n <button class="btn btn-link secondary btn-sm toggle-agents-sidebar-btn"\n ng-if="true"\n ng-click="toggleAgentsListSidebar()"\n ng-disabled="false"\n gdb-tooltip="{{\'ttyg.agent.btn.\' + (showAgents ? \'close_sidebar\' : \'open_sidebar\') + \'.tooltip\' | translate}}">\n <i class="fa-regular" ng-class="showAgents ? \'fa-xmark\' : \'fa-message-bot\'"></i>\n </button>\n </div>\n\n <pageslide\n ps-class="agent-list-panel slide-panel"\n ps-container="right-sidebar"\n ps-open="showAgents"\n onopen="onopen"\n onclose="onclose"\n ps-side="right"\n ps-click-outside="false"\n ps-size="80vw">\n <div class="sidebar-content">\n <agent-list ng-if="agents && agentListFilterModel.length" agent-list="agents"\n agent-list-filter-model="agentListFilterModel"></agent-list>\n <div ng-if="reloadingAgents" onto-loader-fancy message="{{\'ttyg.agent.loading_agents\' | translate}}"\n size="25" style="height: 75vh; display: flex;"></div>\n </div>\n </pageslide>\n </div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{207:function(t,e,r){"use strict";r.r(e);var n=r(501),a=r(500);r(11);function o(t,e,r,o,s,c,i,l,d,u,p,f,h){return{restrict:"AE",template:'<div id="domain-range"></div>',scope:{showPredicatesInfoPanel:"=",selectedPredicate:"=",collapseEdges:"="},link:function(u){const p=l((function(){!function(u){var p=d3.select("#domain-range").append("svg").attr("viewBox","0 0 1200 600").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null),g=d3.forceSimulation(),y=d3.drag().subject((function(t){return t})).on("start",(function(t,e){g.stop(),e.fx=t.x,e.fy=t.y,d3.select(this).classed("selected",!0)})).on("end",(function(t,e){e.fx=null,e.fy=null,d3.select(this).classed("selected",!1),b?(g.alpha(.2).restart(),b=!1):g.restart()})).on("drag",(function(t,e){b=!0,g.alphaTarget(0).restart(),e.fx=t.x,e.fy=t.y})),x=p.append("defs");x.append("marker").attrs({id:"arrow",viewBox:"0 -5 10 10",refX:10,refY:0,markerUnits:"strokeWidth",markerWidth:5,markerHeight:5,orient:"auto",fill:f}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),x.append("marker").attrs({id:"collapsed-arrow",viewBox:"0 -5 10 10",refX:9,refY:0,markerUnits:"strokeWidth",markerWidth:4,markerHeight:4,orient:"auto",fill:f}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),x.append("marker").attrs({id:"arrow-loop",viewBox:"0 -5 10 10",refX:7,refY:0,markerUnits:"strokeWidth",markerWidth:5,markerHeight:5,orient:"auto",fill:f}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),d3.select("#download-svg").on("mouseover",(function(){var t=n.a.Export.getCSSRules("css/domain-range-graph.css?v=2.8.0-TR4");$("defs").append('<style type="text/css"><![CDATA['+t+"]]></style>");var e=n.a.Export.generateBase64ImageSource("#domain-range svg");d3.select(this).attrs({href:e,download:"domain-range-graph-"+r.getActiveRepository()+".svg"})})),function(){var t=d3.select(".legend-container").append("svg").attr("viewBox","0 0 "+1200/7+" "+1200/7*1.2).attr("preserveAspectRatio","xMidYMid meet");t.append("rect").attrs({width:1200/7,height:1200/7*1.2}).style("fill","rgba(235, 235, 235, 0.9)");var e=16+1200/18/2.5,r=e+1200/90;t.append("circle").attrs({class:"legend-class-node",cx:(16+e)/2,cy:30,r:1200/18/4.5}),t.append("text").attrs({x:r,y:30+1200/370}).style("font-size",1200/90/1.1+"px").text("main class node"),t.append("circle").attrs({class:"legend-object-node",cx:(16+e)/2,cy:70,r:1200/110/1.25}),t.append("text").attrs({x:r,y:30+1200/370+40}).style("font-size",1200/90/1.1+"px").text("class node"),t.append("circle").attrs({class:"legend-datatype-node",cx:(16+e)/2,cy:70+1200/45,r:1200/110/2}),t.append("text").attrs({x:r,y:99.90990990990991}).style("font-size",1200/90/1.1+"px").text("datatype node"),t.append("line").attrs({class:"property-arrow",x1:16,y1:123.33333333333334,x2:e,y2:123.33333333333334}).style("stroke-width",1.2).attr("marker-end","url("+s.absUrl()+"#arrow)"),t.append("text").attrs({x:r,y:126.57657657657658}).style("font-size",1200/90/1.1+"px").text("explicit property"),t.append("line").attrs({class:"implicit-property-arrow",x1:16,y1:150,x2:e,y2:150}).style("stroke-width",1.2).attr("marker-end","url("+s.absUrl()+"#arrow)"),t.append("text").attrs({x:r,y:150+1200/370}).style("font-size",1200/90/1.1+"px").text("implicit property"),t.append("line").attrs({class:"collapsed-property-arrow",x1:16,y1:150+1200/45,x2:e,y2:150+1200/45}).style("stroke-width",2).attr("marker-end","url("+s.absUrl()+"#collapsed-arrow)"),t.append("text").attrs({x:r,y:179.9099099099099}).style("font-size",1200/90/1.1+"px").text("collapsed property")}();var m=s.search().uri,v=s.search().name;const k=s.search().collapsed;(function(t,e){o.getDomainRangeData(t,e).success((function(t,e,r){u.domainRangeGraphData=t})).error((function(t){d.error("Request for "+v+" failed!")}))})(m,k),$(window).on("popstate",(function(){c.set(i.DOMAIN_RANGE_WENT_BACK,!0)})),e.onpopstate=function(e){e.state&&t.$broadcast("changeCollapsedEdgesState",e.state.collapsed)},u.$watch("collapseEdges",(function(){angular.isUndefined(u.collapseEdges)||(c.set(i.DOMAIN_RANGE_COLLAPSE_EDGES,u.collapseEdges),"true"!==c.get(i.DOMAIN_RANGE_WENT_BACK)&&function(e){t.$broadcast("switchEdgeMode",{uri:m,name:v,collapsed:e})}(u.collapseEdges),c.remove(i.DOMAIN_RANGE_WENT_BACK))})),u.$watch("domainRangeGraphData",(function(){if(u.domainRangeGraphData){var r=_.cloneDeep(u.domainRangeGraphData);const P=r.nodes,j=r.links;g.nodes(P).force("x",d3.forceX(600)).force("y",d3.forceY(300)).force("charge",d3.forceManyBody().strength(-800)).force("link",d3.forceLink(j).distance(1200/3.5));var n=p.selectAll(".link").data(j).enter().append("g");function o(t){t.style("stroke",f),t.style("stroke-width",2),t.attr("marker-end","url("+s.absUrl()+"#collapsed-arrow)")}var c,i,d=0;n.each((function(t){if(t.objectPropNodeClassUri!==m)c=n.append("line").attrs({class:"link","marker-end":"url("+s.absUrl()+"#arrow)"}).style("stroke-width",1.2).each((function(t){switch(t.propertyType){case"objectLeft":t.targetRadius=1200/18;break;case"objectRight":t.targetRadius=1200/110;break;case"datatype":t.targetRadius=1200/110/2;break;default:t.targetRadius=0}var e=d3.select(this);t.targetNodeEdgeCount>1?o(e):t.implicit&&e.style("stroke-dasharray","3, 3")}));else{if(angular.isUndefined(i)){i=d3.select(this).append("path").attrs({d:"M 0 0 A "+1200/18/2+" "+1200/18/2+" 0 1 1 0 "+1200/18/2,class:"loop-link",fill:"none","marker-end":"url("+s.absUrl()+"#arrow-loop)"}).style("stroke-width",1.2)}(d+=t.targetNodeEdgeCount)>1&&o(d3.select(".loop-link"))}}));var x={};function k(){$.isEmptyObject(x)||(x.text.style("fill","black"),x.background.style("fill","#f0f0f0"))}function b(t,e){k(),x.text=d3.select(this),x.background=d3.select(this.previousSibling),x.text.style("fill","white"),x.background.style("fill",f),l((function(){u.showPredicatesInfoPanel=!0,u.selectedPredicate=e})),t.stopPropagation()}$("document").ready((function(){$("#domain-range").bind("click",k)}));var w=n.append("text").attr("class",(function(t){return t.objectPropNodeClassUri===m?"loop-link-property-name":"property-name"})).attr("dx",(function(t){return 1200/18/2*("objectLeft"===t.propertyType?1:-1)})).style("text-anchor",(function(t){return"objectLeft"===t.propertyType?"end":"start"})).style("font-size",1200/90).text((function(t){return t.targetNodeEdgeCount>1?t.targetNodeEdgeCount+" predicates":t.name}));w.each((function(t){var r=d3.select(this);/\d\spredicates/.test(r.text())?r.style("font-weight","bold").on("click",b):r.on("click",(function(t,r){e.open("resource?uri="+encodeURIComponent(r.uri),"_blank")}))}));var E=n.append("rect").attr("class",(function(t){return t.objectPropNodeClassUri!==m?"link-background":"loop-link-background"})).attr("width",(function(t){return t.calculatedWidth=this.previousSibling.getBBox().width,t.calculatedWidth+4})).attr("height",(function(t){return t.calculatedHeight=this.previousSibling.getBBox().height,t.calculatedHeight+2})).attr("transform",(function(t){var e=2-1200/18/2*("objectLeft"===t.propertyType?1:-1);return"objectLeft"===t.propertyType&&(e+=t.calculatedWidth),"translate(-"+e+",-"+(2+t.calculatedHeight/2)+")"})).on("click",(function(t){t.stopPropagation()})),N=p.selectAll(".node").data(P).enter().append("g"),R=N.filter((function(t){return t.objectPropClassUri!==m})).append("circle").each((function(t){var e=d3.select(this);"main"===t.classPosition?e.attrs({class:"class-node",r:1200/18}).attr("marker-end","url("+s.absUrl()+"#loop-link)"):null===t.objectPropClassName?e.attrs({class:"datatype-node",r:1200/110/2}):e.attrs({class:"object-prop-node",r:1200/110})})).call(y);d3.selectAll(".object-prop-node").on("dblclick",(function(e,r,n){u.$apply((function(){t.$broadcast("reloadDomainRangeGraphView",r,n)}))})),N.filter((function(t){return t.objectPropClassName&&t.objectPropClassUri!==m})).append("text").attr("class",(function(t){return t.classPosition+"-class-label"})).style("font-size",1200/90).text((function(t){return t.objectPropClassName})).on("click",(function(t,r){e.open("resource?uri="+encodeURIComponent(r.objectPropClassUri),"_blank")}));var C=N.select("text");p.select(".class-node").each((function(){d3.select(this.parentNode).append("text").attr("class","rdf-class-label").style("font-size",(function(t){return a.a.Text.calcFontSize(v,1200/18)})).text(v).on("click",(function(){e.open("resource?uri="+encodeURIComponent(m),"_blank")}))}));var T=p.select(".class-node + text"),A=d3.select(".class-node"),L=d3.selectAll(".loop-link-background"),M=d3.selectAll(".loop-link-property-name");if(w=d3.selectAll(".property-name"),!angular.isUndefined(i)){var U=[];L.each((function(t,e){d3.select(this);U.push({idx:e,width:t.calculatedWidth,height:t.calculatedHeight})}))}g.on("tick",(function(t){var e=8*g.alpha();function r(t){var e=t.x+1200/18*2,r=t.y-1200/18/1.9;var n=[];L.each((function(a,o){n.push(a),o<h?function(n,a){var o=$.grep(U,(function(t){return t.idx==a}));a>0&&(e+=parseFloat(a*(o[0].height/(a/1.4)))),n.attrs({transform:"rotate(270, "+t.x+","+t.y+") translate("+e+","+r+")",width:o[0].height,height:o[0].width})}(d3.select(this),o):d3.select(this).remove()})),function(t){var e;d3.select(".view-more-preds-label").style("font-weight","bold").each((function(r){r.target.allEdges=t,e=this.getComputedTextLength()})).on("click",b),d3.select(".view-more-preds-rect").attr("height",e+4)}(n)}c.filter((function(t){return t.objectPropNodeClassUri!==m})).attr("x1",(function(t){return t.source.x})).attr("y1",(function(t){return t.source.y})).attr("x2",(function(t){return t.targetX})).attr("y2",(function(t){return t.targetY})).each((function(t){!function(t){"objectLeft"===t.propertyType?(t.source.x-=8*e,t.source.y-=e/9):(t.target.x+=8*e,t.target.y-=e/9)}(t);var r=Math.atan2(t.target.y-t.source.y,t.target.x-t.source.x);t.targetX=t.target.x-Math.cos(r)*t.targetRadius,t.targetY=t.target.y-Math.sin(r)*t.targetRadius})),R.each((function(t){"main"!==t.classPosition||angular.isUndefined(i)||(!function(t){var e=t.x+64,r=t.y-1200/18/5.7-5;i.attr("transform","rotate(270, "+t.x+","+t.y+") translate("+e+","+r+")")}(t),function(t){function e(e,r){var n=$.grep(U,(function(t){return t.idx==r})),a=0;r>0&&(a=parseFloat(2*r*(n[0].height/1.4)));var o=t.x,s=t.y-1200/18*2.1-a;e.attrs({x:o,y:s}).moveToFront()}M.each((function(t,r){var n=d3.select(this),a=M.size()-h;a<0?e(n,r):(0==r&&!u.collapseEdges&&a>1&&(!function(t,e,r){t.classed("view-more-preds-label",!0).text(r+" predicates more ..."),null!==this.nextSibling&&e.classed("view-more-preds-rect",!0)}(n,d3.select(this.nextSibling),a),e(n,r)),r<h?e(n,r):n.remove())}))}(t),r(t)),t.objectPropClassUri!==m&&d3.select(this).attr("cx",(function(t){return"main"===t.classPosition?function(t){!window.ActiveXObject&&"ActiveXObject"in window&&(Math.log10=function(t){return Math.log(t)/Math.LN10});var e=A.attr("cx")-600,r=.5*Math.log10(Math.abs(e));return t.x+=e>0?-r:r,t.x}(t):t.x})).attr("cy",(function(t){return t.y}))})),T.attr("x",(function(t){return t.x})).attr("y",(function(t){return t.y})).moveToFront(),E.filter((function(t){return t.objectPropNodeClassUri!==m})).attr("x",(function(t){return t.target.x>t.source.x?t.source.x+(t.target.x-t.source.x)/2:t.target.x+(t.source.x-t.target.x)/2})).attr("y",(function(t){return t.target.y>t.source.y?t.source.y+(t.target.y-t.source.y)/2:t.target.y+(t.source.y-t.target.y)/2})).moveToFront(),w.attr("x",(function(t){return t.target.x>t.source.x?t.source.x+(t.target.x-t.source.x)/2:t.target.x+(t.source.x-t.target.x)/2})).attr("y",(function(t){return t.target.y>t.source.y?t.source.y+(t.target.y-t.source.y)/2:t.target.y+(t.source.y-t.target.y)/2})).moveToFront(),C.attr("x",(function(t){return"right"===t.classPosition?t.x+1200/110*1.2:t.x-1200/110*1.2})).attr("y",(function(t){return t.y})).moveToFront()}))}}));let b=!1}(u)}),50);u.$on("$destroy",(function(){l.cancel(p)}))}}}angular.module("graphdb.framework.graphexplore.directives.domainrange",["graphdb.framework.graphexplore.controllers.domainrange","graphdb.framework.utils.localstorageadapter"]).constant("ONTO_RED","var(--primary-color)").constant("ONTO_GREEN","var(--tertiary-color)").constant("ONTO_BLUE","var(--secondary-color)").constant("NON_COLLAPSED_REFLEXIVE_LINK_LIMIT",6).directive("domainRangeGraph",o),o.$inject=["$rootScope","$window","$repositories","GraphDataRestService","$location","LocalStorageAdapter","LSKeys","$timeout","toastr","ONTO_RED","ONTO_GREEN","ONTO_BLUE","NON_COLLAPSED_REFLEXIVE_LINK_LIMIT"]},490:function(t,e,r){var n,a;n=[r(498)],void 0===(a=function(){function t(t,e){return t.each((function(){var t=e.apply(this,arguments),r=select(this);for(var n in t)r.attr(n,t[n])}))}function e(t,e){for(var r in e)t.attr(r,e[r]);return t}return"undefined"==typeof d3&&(d3=r(498)),d3.selection.prototype.attrs=function(r){return("function"==typeof r?t:e)(this,r)},d3.selection.prototype.moveToFront=function(){return this.each((function(){d3.select(this.parentNode.appendChild(this))}))},d3.selection.prototype.moveToBack=function(){return this.each((function(){const t=this.parentNode.firstChild;t&&this.parentNode.insertBefore(this,t)}))},d3}.apply(e,n))||(t.exports=a)},500:function(t,e,r){"use strict";r(490);var n=n||{};n.Text=function(){function t(t,e,r,n){r=r||10;var a=e/3;return"string"==typeof t?(a*=10/(t.substring(0,e/3).length+1.5),a+=1,t.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(a*=.6),a<r&&(a=r),Math.round(a)):(a<r&&(a=r),Math.round(a))}return{calcFontSizeRaw:t,calcFontSize:function(e,r,n,a){return t(e,r,n)+"px"},getTextWithElipsisIfNeeded:function(t,e){return"string"==typeof t&&t.length>e?t.substring(0,e-3)+"...":t}}}(),n.Transition={fadeIn:function(t,e){t.style("opacity",0).transition().duration(e).style("opacity",1)},fadeOut:function(t,e){t.style("opacity",1).transition().duration(e).style("opacity",0)}},n.Click=function(){const t=function(t,r){let n,a=1,o=arguments.length;for(;++a<o;)n=arguments[a],t[n]=e(t,r,r[n]);return t};function e(t,e,r){return function(){var n=r.apply(e,arguments);return n===e?t:n}}return{delayDblClick:function(){var e=d3.dispatch("click","dblclick");return t((function(t){var r,n=null;t.on("mousedown",(function(){r=d3.pointer(document.body),+new Date})),t.on("mouseup",(function(t,a){var o,s,c;(s=r,c=d3.pointer(document.body),Math.sqrt(Math.pow(s[0]-c[0],2),Math.pow(s[1]-c[1],2))>5)||(n?(window.clearTimeout(n),n=null,e.call("dblclick",t,t,a)):n=window.setTimeout((o=t,function(){e.call("click",o,o,a),n=null}),250))}))}),e,"on")}}}(),e.a=n},501:function(t,e,r){"use strict";r(490);var n=n||{};n.Export={getCSSRules:function(t){const e=$('link[href="'+t+'"]')[0].sheet.rules;let r="";return _.each(e,(function(t){r+=t.cssText})),r},generateBase64ImageSource:function(t){t||(t="svg");const e=d3.selectAll(t).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(e)))}},e.a=n}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{207:function(t,e,r){"use strict";r.r(e);var n=r(501),a=r(500);r(11);function o(t,e,r,o,s,c,i,l,d,u,p,f,h){return{restrict:"AE",template:'<div id="domain-range"></div>',scope:{showPredicatesInfoPanel:"=",selectedPredicate:"=",collapseEdges:"="},link:function(u){const p=l((function(){!function(u){var p=d3.select("#domain-range").append("svg").attr("viewBox","0 0 1200 600").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null),g=d3.forceSimulation(),y=d3.drag().subject((function(t){return t})).on("start",(function(t,e){g.stop(),e.fx=t.x,e.fy=t.y,d3.select(this).classed("selected",!0)})).on("end",(function(t,e){e.fx=null,e.fy=null,d3.select(this).classed("selected",!1),b?(g.alpha(.2).restart(),b=!1):g.restart()})).on("drag",(function(t,e){b=!0,g.alphaTarget(0).restart(),e.fx=t.x,e.fy=t.y})),x=p.append("defs");x.append("marker").attrs({id:"arrow",viewBox:"0 -5 10 10",refX:10,refY:0,markerUnits:"strokeWidth",markerWidth:5,markerHeight:5,orient:"auto",fill:f}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),x.append("marker").attrs({id:"collapsed-arrow",viewBox:"0 -5 10 10",refX:9,refY:0,markerUnits:"strokeWidth",markerWidth:4,markerHeight:4,orient:"auto",fill:f}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),x.append("marker").attrs({id:"arrow-loop",viewBox:"0 -5 10 10",refX:7,refY:0,markerUnits:"strokeWidth",markerWidth:5,markerHeight:5,orient:"auto",fill:f}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),d3.select("#download-svg").on("mouseover",(function(){var t=n.a.Export.getCSSRules("css/domain-range-graph.css?v=2.8.0-TR5");$("defs").append('<style type="text/css"><![CDATA['+t+"]]></style>");var e=n.a.Export.generateBase64ImageSource("#domain-range svg");d3.select(this).attrs({href:e,download:"domain-range-graph-"+r.getActiveRepository()+".svg"})})),function(){var t=d3.select(".legend-container").append("svg").attr("viewBox","0 0 "+1200/7+" "+1200/7*1.2).attr("preserveAspectRatio","xMidYMid meet");t.append("rect").attrs({width:1200/7,height:1200/7*1.2}).style("fill","rgba(235, 235, 235, 0.9)");var e=16+1200/18/2.5,r=e+1200/90;t.append("circle").attrs({class:"legend-class-node",cx:(16+e)/2,cy:30,r:1200/18/4.5}),t.append("text").attrs({x:r,y:30+1200/370}).style("font-size",1200/90/1.1+"px").text("main class node"),t.append("circle").attrs({class:"legend-object-node",cx:(16+e)/2,cy:70,r:1200/110/1.25}),t.append("text").attrs({x:r,y:30+1200/370+40}).style("font-size",1200/90/1.1+"px").text("class node"),t.append("circle").attrs({class:"legend-datatype-node",cx:(16+e)/2,cy:70+1200/45,r:1200/110/2}),t.append("text").attrs({x:r,y:99.90990990990991}).style("font-size",1200/90/1.1+"px").text("datatype node"),t.append("line").attrs({class:"property-arrow",x1:16,y1:123.33333333333334,x2:e,y2:123.33333333333334}).style("stroke-width",1.2).attr("marker-end","url("+s.absUrl()+"#arrow)"),t.append("text").attrs({x:r,y:126.57657657657658}).style("font-size",1200/90/1.1+"px").text("explicit property"),t.append("line").attrs({class:"implicit-property-arrow",x1:16,y1:150,x2:e,y2:150}).style("stroke-width",1.2).attr("marker-end","url("+s.absUrl()+"#arrow)"),t.append("text").attrs({x:r,y:150+1200/370}).style("font-size",1200/90/1.1+"px").text("implicit property"),t.append("line").attrs({class:"collapsed-property-arrow",x1:16,y1:150+1200/45,x2:e,y2:150+1200/45}).style("stroke-width",2).attr("marker-end","url("+s.absUrl()+"#collapsed-arrow)"),t.append("text").attrs({x:r,y:179.9099099099099}).style("font-size",1200/90/1.1+"px").text("collapsed property")}();var m=s.search().uri,v=s.search().name;const k=s.search().collapsed;(function(t,e){o.getDomainRangeData(t,e).success((function(t,e,r){u.domainRangeGraphData=t})).error((function(t){d.error("Request for "+v+" failed!")}))})(m,k),$(window).on("popstate",(function(){c.set(i.DOMAIN_RANGE_WENT_BACK,!0)})),e.onpopstate=function(e){e.state&&t.$broadcast("changeCollapsedEdgesState",e.state.collapsed)},u.$watch("collapseEdges",(function(){angular.isUndefined(u.collapseEdges)||(c.set(i.DOMAIN_RANGE_COLLAPSE_EDGES,u.collapseEdges),"true"!==c.get(i.DOMAIN_RANGE_WENT_BACK)&&function(e){t.$broadcast("switchEdgeMode",{uri:m,name:v,collapsed:e})}(u.collapseEdges),c.remove(i.DOMAIN_RANGE_WENT_BACK))})),u.$watch("domainRangeGraphData",(function(){if(u.domainRangeGraphData){var r=_.cloneDeep(u.domainRangeGraphData);const P=r.nodes,j=r.links;g.nodes(P).force("x",d3.forceX(600)).force("y",d3.forceY(300)).force("charge",d3.forceManyBody().strength(-800)).force("link",d3.forceLink(j).distance(1200/3.5));var n=p.selectAll(".link").data(j).enter().append("g");function o(t){t.style("stroke",f),t.style("stroke-width",2),t.attr("marker-end","url("+s.absUrl()+"#collapsed-arrow)")}var c,i,d=0;n.each((function(t){if(t.objectPropNodeClassUri!==m)c=n.append("line").attrs({class:"link","marker-end":"url("+s.absUrl()+"#arrow)"}).style("stroke-width",1.2).each((function(t){switch(t.propertyType){case"objectLeft":t.targetRadius=1200/18;break;case"objectRight":t.targetRadius=1200/110;break;case"datatype":t.targetRadius=1200/110/2;break;default:t.targetRadius=0}var e=d3.select(this);t.targetNodeEdgeCount>1?o(e):t.implicit&&e.style("stroke-dasharray","3, 3")}));else{if(angular.isUndefined(i)){i=d3.select(this).append("path").attrs({d:"M 0 0 A "+1200/18/2+" "+1200/18/2+" 0 1 1 0 "+1200/18/2,class:"loop-link",fill:"none","marker-end":"url("+s.absUrl()+"#arrow-loop)"}).style("stroke-width",1.2)}(d+=t.targetNodeEdgeCount)>1&&o(d3.select(".loop-link"))}}));var x={};function k(){$.isEmptyObject(x)||(x.text.style("fill","black"),x.background.style("fill","#f0f0f0"))}function b(t,e){k(),x.text=d3.select(this),x.background=d3.select(this.previousSibling),x.text.style("fill","white"),x.background.style("fill",f),l((function(){u.showPredicatesInfoPanel=!0,u.selectedPredicate=e})),t.stopPropagation()}$("document").ready((function(){$("#domain-range").bind("click",k)}));var w=n.append("text").attr("class",(function(t){return t.objectPropNodeClassUri===m?"loop-link-property-name":"property-name"})).attr("dx",(function(t){return 1200/18/2*("objectLeft"===t.propertyType?1:-1)})).style("text-anchor",(function(t){return"objectLeft"===t.propertyType?"end":"start"})).style("font-size",1200/90).text((function(t){return t.targetNodeEdgeCount>1?t.targetNodeEdgeCount+" predicates":t.name}));w.each((function(t){var r=d3.select(this);/\d\spredicates/.test(r.text())?r.style("font-weight","bold").on("click",b):r.on("click",(function(t,r){e.open("resource?uri="+encodeURIComponent(r.uri),"_blank")}))}));var E=n.append("rect").attr("class",(function(t){return t.objectPropNodeClassUri!==m?"link-background":"loop-link-background"})).attr("width",(function(t){return t.calculatedWidth=this.previousSibling.getBBox().width,t.calculatedWidth+4})).attr("height",(function(t){return t.calculatedHeight=this.previousSibling.getBBox().height,t.calculatedHeight+2})).attr("transform",(function(t){var e=2-1200/18/2*("objectLeft"===t.propertyType?1:-1);return"objectLeft"===t.propertyType&&(e+=t.calculatedWidth),"translate(-"+e+",-"+(2+t.calculatedHeight/2)+")"})).on("click",(function(t){t.stopPropagation()})),N=p.selectAll(".node").data(P).enter().append("g"),R=N.filter((function(t){return t.objectPropClassUri!==m})).append("circle").each((function(t){var e=d3.select(this);"main"===t.classPosition?e.attrs({class:"class-node",r:1200/18}).attr("marker-end","url("+s.absUrl()+"#loop-link)"):null===t.objectPropClassName?e.attrs({class:"datatype-node",r:1200/110/2}):e.attrs({class:"object-prop-node",r:1200/110})})).call(y);d3.selectAll(".object-prop-node").on("dblclick",(function(e,r,n){u.$apply((function(){t.$broadcast("reloadDomainRangeGraphView",r,n)}))})),N.filter((function(t){return t.objectPropClassName&&t.objectPropClassUri!==m})).append("text").attr("class",(function(t){return t.classPosition+"-class-label"})).style("font-size",1200/90).text((function(t){return t.objectPropClassName})).on("click",(function(t,r){e.open("resource?uri="+encodeURIComponent(r.objectPropClassUri),"_blank")}));var C=N.select("text");p.select(".class-node").each((function(){d3.select(this.parentNode).append("text").attr("class","rdf-class-label").style("font-size",(function(t){return a.a.Text.calcFontSize(v,1200/18)})).text(v).on("click",(function(){e.open("resource?uri="+encodeURIComponent(m),"_blank")}))}));var T=p.select(".class-node + text"),A=d3.select(".class-node"),L=d3.selectAll(".loop-link-background"),M=d3.selectAll(".loop-link-property-name");if(w=d3.selectAll(".property-name"),!angular.isUndefined(i)){var U=[];L.each((function(t,e){d3.select(this);U.push({idx:e,width:t.calculatedWidth,height:t.calculatedHeight})}))}g.on("tick",(function(t){var e=8*g.alpha();function r(t){var e=t.x+1200/18*2,r=t.y-1200/18/1.9;var n=[];L.each((function(a,o){n.push(a),o<h?function(n,a){var o=$.grep(U,(function(t){return t.idx==a}));a>0&&(e+=parseFloat(a*(o[0].height/(a/1.4)))),n.attrs({transform:"rotate(270, "+t.x+","+t.y+") translate("+e+","+r+")",width:o[0].height,height:o[0].width})}(d3.select(this),o):d3.select(this).remove()})),function(t){var e;d3.select(".view-more-preds-label").style("font-weight","bold").each((function(r){r.target.allEdges=t,e=this.getComputedTextLength()})).on("click",b),d3.select(".view-more-preds-rect").attr("height",e+4)}(n)}c.filter((function(t){return t.objectPropNodeClassUri!==m})).attr("x1",(function(t){return t.source.x})).attr("y1",(function(t){return t.source.y})).attr("x2",(function(t){return t.targetX})).attr("y2",(function(t){return t.targetY})).each((function(t){!function(t){"objectLeft"===t.propertyType?(t.source.x-=8*e,t.source.y-=e/9):(t.target.x+=8*e,t.target.y-=e/9)}(t);var r=Math.atan2(t.target.y-t.source.y,t.target.x-t.source.x);t.targetX=t.target.x-Math.cos(r)*t.targetRadius,t.targetY=t.target.y-Math.sin(r)*t.targetRadius})),R.each((function(t){"main"!==t.classPosition||angular.isUndefined(i)||(!function(t){var e=t.x+64,r=t.y-1200/18/5.7-5;i.attr("transform","rotate(270, "+t.x+","+t.y+") translate("+e+","+r+")")}(t),function(t){function e(e,r){var n=$.grep(U,(function(t){return t.idx==r})),a=0;r>0&&(a=parseFloat(2*r*(n[0].height/1.4)));var o=t.x,s=t.y-1200/18*2.1-a;e.attrs({x:o,y:s}).moveToFront()}M.each((function(t,r){var n=d3.select(this),a=M.size()-h;a<0?e(n,r):(0==r&&!u.collapseEdges&&a>1&&(!function(t,e,r){t.classed("view-more-preds-label",!0).text(r+" predicates more ..."),null!==this.nextSibling&&e.classed("view-more-preds-rect",!0)}(n,d3.select(this.nextSibling),a),e(n,r)),r<h?e(n,r):n.remove())}))}(t),r(t)),t.objectPropClassUri!==m&&d3.select(this).attr("cx",(function(t){return"main"===t.classPosition?function(t){!window.ActiveXObject&&"ActiveXObject"in window&&(Math.log10=function(t){return Math.log(t)/Math.LN10});var e=A.attr("cx")-600,r=.5*Math.log10(Math.abs(e));return t.x+=e>0?-r:r,t.x}(t):t.x})).attr("cy",(function(t){return t.y}))})),T.attr("x",(function(t){return t.x})).attr("y",(function(t){return t.y})).moveToFront(),E.filter((function(t){return t.objectPropNodeClassUri!==m})).attr("x",(function(t){return t.target.x>t.source.x?t.source.x+(t.target.x-t.source.x)/2:t.target.x+(t.source.x-t.target.x)/2})).attr("y",(function(t){return t.target.y>t.source.y?t.source.y+(t.target.y-t.source.y)/2:t.target.y+(t.source.y-t.target.y)/2})).moveToFront(),w.attr("x",(function(t){return t.target.x>t.source.x?t.source.x+(t.target.x-t.source.x)/2:t.target.x+(t.source.x-t.target.x)/2})).attr("y",(function(t){return t.target.y>t.source.y?t.source.y+(t.target.y-t.source.y)/2:t.target.y+(t.source.y-t.target.y)/2})).moveToFront(),C.attr("x",(function(t){return"right"===t.classPosition?t.x+1200/110*1.2:t.x-1200/110*1.2})).attr("y",(function(t){return t.y})).moveToFront()}))}}));let b=!1}(u)}),50);u.$on("$destroy",(function(){l.cancel(p)}))}}}angular.module("graphdb.framework.graphexplore.directives.domainrange",["graphdb.framework.graphexplore.controllers.domainrange","graphdb.framework.utils.localstorageadapter"]).constant("ONTO_RED","var(--primary-color)").constant("ONTO_GREEN","var(--tertiary-color)").constant("ONTO_BLUE","var(--secondary-color)").constant("NON_COLLAPSED_REFLEXIVE_LINK_LIMIT",6).directive("domainRangeGraph",o),o.$inject=["$rootScope","$window","$repositories","GraphDataRestService","$location","LocalStorageAdapter","LSKeys","$timeout","toastr","ONTO_RED","ONTO_GREEN","ONTO_BLUE","NON_COLLAPSED_REFLEXIVE_LINK_LIMIT"]},490:function(t,e,r){var n,a;n=[r(498)],void 0===(a=function(){function t(t,e){return t.each((function(){var t=e.apply(this,arguments),r=select(this);for(var n in t)r.attr(n,t[n])}))}function e(t,e){for(var r in e)t.attr(r,e[r]);return t}return"undefined"==typeof d3&&(d3=r(498)),d3.selection.prototype.attrs=function(r){return("function"==typeof r?t:e)(this,r)},d3.selection.prototype.moveToFront=function(){return this.each((function(){d3.select(this.parentNode.appendChild(this))}))},d3.selection.prototype.moveToBack=function(){return this.each((function(){const t=this.parentNode.firstChild;t&&this.parentNode.insertBefore(this,t)}))},d3}.apply(e,n))||(t.exports=a)},500:function(t,e,r){"use strict";r(490);var n=n||{};n.Text=function(){function t(t,e,r,n){r=r||10;var a=e/3;return"string"==typeof t?(a*=10/(t.substring(0,e/3).length+1.5),a+=1,t.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(a*=.6),a<r&&(a=r),Math.round(a)):(a<r&&(a=r),Math.round(a))}return{calcFontSizeRaw:t,calcFontSize:function(e,r,n,a){return t(e,r,n)+"px"},getTextWithElipsisIfNeeded:function(t,e){return"string"==typeof t&&t.length>e?t.substring(0,e-3)+"...":t}}}(),n.Transition={fadeIn:function(t,e){t.style("opacity",0).transition().duration(e).style("opacity",1)},fadeOut:function(t,e){t.style("opacity",1).transition().duration(e).style("opacity",0)}},n.Click=function(){const t=function(t,r){let n,a=1,o=arguments.length;for(;++a<o;)n=arguments[a],t[n]=e(t,r,r[n]);return t};function e(t,e,r){return function(){var n=r.apply(e,arguments);return n===e?t:n}}return{delayDblClick:function(){var e=d3.dispatch("click","dblclick");return t((function(t){var r,n=null;t.on("mousedown",(function(){r=d3.pointer(document.body),+new Date})),t.on("mouseup",(function(t,a){var o,s,c;(s=r,c=d3.pointer(document.body),Math.sqrt(Math.pow(s[0]-c[0],2),Math.pow(s[1]-c[1],2))>5)||(n?(window.clearTimeout(n),n=null,e.call("dblclick",t,t,a)):n=window.setTimeout((o=t,function(){e.call("click",o,o,a),n=null}),250))}))}),e,"on")}}}(),e.a=n},501:function(t,e,r){"use strict";r(490);var n=n||{};n.Export={getCSSRules:function(t){const e=$('link[href="'+t+'"]')[0].sheet.rules;let r="";return _.each(e,(function(t){r+=t.cssText})),r},generateBase64ImageSource:function(t){t||(t="svg");const e=d3.selectAll(t).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(e)))}},e.a=n}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[54,97,248,294],{264:function(e,t,s){"use strict";s.r(t);var a=s(75),n=s(72),i=s(79);function c(e,t,s){return{restrict:"E",templateUrl:"js/angular/ttyg/templates/chat-panel.html",link:(c,o,r)=>{c.chat=void 0,c.selectedAgent=void 0,c.chatItem=void 0,c.ask=()=>{c.chatItem.chatId?_(c.chatItem):E()},c.regenerateQuestion=e=>{const t=h();t.setQuestionMessage(e.getQuestionMessage()),_(t)},c.copyAnswerToClipboard=e=>{s.emit(a.TTYGEventName.COPY_ANSWER_TO_CLIPBOARD,e)};const E=()=>{s.emit(a.TTYGEventName.CREATE_CHAT,c.chatItem)},_=e=>{s.emit(a.TTYGEventName.ASK_QUESTION,e)},h=()=>{const e=new i.ChatItemModel;return e.question=new n.ChatMessageModel({role:n.CHAT_MESSAGE_ROLE.USER}),c.chat&&(e.chatId=c.chat.id),c.selectedAgent&&(e.agentId=c.selectedAgent.id),e},d=[];d.push(c.$watchCollection("chat.chatHistory.items",()=>{const e=o.find(".chat-details")[0];e.scrollTop=e.scrollHeight})),d.push(s.onSelectedChatUpdated(e=>{c.chat=e,c.chatItem=h()})),d.push(s.onSelectedAgentChanged(e=>{c.selectedAgent=e,c.selectedAgent&&(c.chatItem||(c.chatItem=h()),c.chatItem.agentId=c.selectedAgent.id)})),d.push(s.subscribe(a.TTYGEventName.COPY_ANSWER_TO_CLIPBOARD_SUCCESSFUL,()=>{e.success(t.instant("ttyg.chat_panel.messages.answer_copy_successful"))})),d.push(s.subscribe(a.TTYGEventName.COPY_ANSWER_TO_CLIPBOARD_FAILURE,()=>{e.success(t.instant("ttyg.chat_panel.messages.answer_copy_failed"))})),c.$on("$destroy",()=>{d.forEach(e=>e())}),c.chatItem=h()}}}angular.module("graphdb.framework.ttyg.directives.chat-panel",[]).directive("chatPanel",c),c.$inject=["toastr","$translate","TTYGContextService"]},72:function(e,t,s){"use strict";s.r(t),s.d(t,"ChatMessageModel",(function(){return a})),s.d(t,"CHAT_MESSAGE_ROLE",(function(){return n}));class a{constructor(e){this._id=e.id,this._role=e.role,this._message=e.message,this._timestamp=e.timestamp}get id(){return this._id}set id(e){this._id=e}get role(){return this._role}set role(e){this._role=e}get message(){return this._message}set message(e){this._message=e}get timestamp(){return this._timestamp}set timestamp(e){this._timestamp=e}}const n={USER:"user",ASSISTANT:"assistant"}},75:function(e,t,s){"use strict";s.r(t),s.d(t,"TTYGEventName",(function(){return i}));var a=s(30);function n(e){let t=void 0,s=void 0,n=void 0,c=void 0;const o=()=>Object(a.cloneDeep)(t),r=()=>Object(a.cloneDeep)(s),E=()=>Object(a.cloneDeep)(n),_=()=>Object(a.cloneDeep)(c),h=(t,s)=>{e.emitSync(t,Object(a.cloneDeep)(s))},d=(t,s)=>e.subscribeSync(t,e=>s(e));return{emit:h,subscribe:d,getChats:r,updateChats:e=>{s=Object(a.cloneDeep)(e),h(i.CHAT_LIST_UPDATED,r())},onChatsListChanged:e=>(s&&angular.isFunction(e)&&e(r()),d(i.CHAT_LIST_UPDATED,t=>e(t))),getSelectedChat:E,selectChat:e=>{n&&n.id===e||(n=Object(a.cloneDeep)(e),h(i.SELECT_CHAT,E()))},onSelectedChatChanged:e=>(n&&angular.isFunction(e)&&e(E()),d(i.SELECT_CHAT,t=>e(t))),updateSelectedChat:e=>{n&&n.id!==e.id||(n=Object(a.cloneDeep)(e),h(i.SELECTED_CHAT_UPDATED,E()))},onSelectedChatUpdated:e=>(n&&angular.isFunction(e)&&e(E()),d(i.SELECTED_CHAT_UPDATED,t=>e(t))),updateAgents:e=>{t=Object(a.cloneDeep)(e),h(i.AGENT_LIST_UPDATED,o())},onAgentsListChanged:e=>(t&&angular.isFunction(e)&&e(o()),d(i.AGENT_LIST_UPDATED,t=>e(t))),getAgents:o,selectAgent:e=>{c=Object(a.cloneDeep)(e),h(i.AGENT_SELECTED,_())},getSelectedAgent:_,onSelectedAgentChanged:e=>(c&&angular.isFunction(e)&&e(_()),d(i.AGENT_SELECTED,t=>e(t)))}}angular.module("graphdb.framework.ttyg.services.ttygcontext",[]).factory("TTYGContextService",n),n.$inject=["EventEmitterService"];const i={CREATE_CHAT:"createChat",CREATE_CHAT_SUCCESSFUL:"chatCreated",CREATE_CHAT_FAILURE:"chatCreationFailed",RENAME_CHAT:"renameChat",RENAME_CHAT_SUCCESSFUL:"chatRenamed",RENAME_CHAT_FAILURE:"chatRenamedFailure",SELECT_CHAT:"selectChat",SELECTED_CHAT_UPDATED:"selectChatUpdated",DELETE_CHAT:"deleteChat",DELETE_CHAT_SUCCESSFUL:"chatDeleted",DELETE_CHAT_FAILURE:"chatDeletedFailure",CHAT_EXPORT:"chatExport",CHAT_EXPORT_SUCCESSFUL:"chatExportSuccess",CHAT_EXPORT_FAILURE:"chatExportFailure",CHAT_LIST_UPDATED:"chatListUpdated",ASK_QUESTION:"askQuestion",LOAD_CHAT:"loadChat",LOAD_CHAT_SUCCESSFUL:"loadChatSuccess",LOAD_CHAT_FAILURE:"loadChatFailure",AGENT_LIST_UPDATED:"agentListUpdated",CREATE_AGENT:"createAgent",EDIT_AGENT:"editAgent",DELETE_AGENT:"deleteAgent",AGENT_DELETED:"agentDeleted",DELETING_AGENT:"deletingAgent",AGENT_SELECTED:"agentSelected",COPY_ANSWER_TO_CLIPBOARD:"copyAnswerToClipboard",COPY_ANSWER_TO_CLIPBOARD_SUCCESSFUL:"copyAnswerToClipboardSuccess",COPY_ANSWER_TO_CLIPBOARD_FAILURE:"copyAnswerToClipboardFailure"}},79:function(e,t,s){"use strict";s.r(t),s.d(t,"ChatItemModel",(function(){return n})),s.d(t,"ChatItemsListModel",(function(){return i}));var a=s(72);class n{constructor(e,t,s,a){this._chatId=e,this._agentId=t,this._question=s,this._answer=a}get chatId(){return this._chatId}set chatId(e){this._chatId=e}get agentId(){return this._agentId}set agentId(e){this._agentId=e}get question(){return this._question}set question(e){this._question=e}get answer(){return this._answer}set answer(e){this._answer=e}setQuestionMessage(e){this._question||(this._question=new a.ChatMessageModel({role:a.CHAT_MESSAGE_ROLE.USER})),this._question.message=e}getQuestionMessage(){return this._question.message}toCreateChatRequestPayload(){return{agentId:this._agentId,question:this._question.message}}toAskRequestPayload(){return{conversationId:this._chatId,agentId:this._agentId,question:this._question.message}}}class i{constructor(e=[]){this._items=e}isEmpty(){return 0===this._items.length}appendItem(e){this._items.push(e)}get items(){return this._items}set items(e){this._items=e||[]}}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[58,130,294],{127:function(e,t){function n(e){return{restrict:"E",scope:{fieldName:"@",source:"=",onSave:"&",onCancel:"&",onClick:"&",onDblclick:"&",isEditing:"="},templateUrl:"js/angular/core/directives/inline-editable-text/templates/inline-editable-text.template.html",link:function(t,n){t.editableModel={};const a=[];let c;t.onKeydown=e=>{"Enter"===e.key?(o(),t.editableModel.text!==t.text&&t.onSave({newText:t.editableModel.text,source:t.source})):"Escape"===e.key&&i()},t.onCancelEditing=()=>{i()},t.onSelect=()=>{c?(o(),t.onDblclick({source:t.source})):c=e((function(){t.onClick({source:t.source}),o()}),250)};const i=()=>{o(),t.onCancel()},o=()=>{e.cancel(c),c=void 0};a.push(t.$watch("isEditing",a=>{a&&(t.editableModel.text=t.source[t.fieldName],e(()=>{const e=n.find("input")[0];e.focus(),e.select()},0))}));t.$on("$destroy",()=>{a.forEach(e=>e()),o()})}}}angular.module("graphdb.framework.core.directives.inline-editable-text",[]).directive("inlineEditableText",n),n.$inject=["$timeout"]},263:function(e,t,n){"use strict";n.r(t);n(127);var a=n(0),c=n(75);function i(e,t,n){return{restrict:"E",templateUrl:"js/angular/ttyg/templates/chat-list.html",scope:{chatList:"="},link:(i,o,E)=>{i.selectedChat=void 0,i.renamedChat=void 0,i.onSelectChatForRenaming=e=>{i.renamedChat=e},i.onSelectChat=t=>{i.selectedChat&&i.selectedChat.id===t.id||(e.selectChat(t),i.renamedChat=void 0)},i.onDeleteChat=i=>{const o=n.instant("ttyg.dialog.delete.title"),E=Object(a.decodeHTML)(n.instant("ttyg.dialog.delete.body",{chatName:i.name}));t.openConfirmation(o,E,()=>e.emit(c.TTYGEventName.DELETE_CHAT,i))},i.onRenameChat=(t,n)=>{n.name=t,i.renamedChat=void 0,e.emit(c.TTYGEventName.RENAME_CHAT,n)},i.onExportChat=t=>{e.emit(c.TTYGEventName.CHAT_EXPORT,t)},i.onCancelChatRenaming=()=>{i.renamedChat=void 0};const l=[];l.push(e.onSelectedChatChanged(e=>{i.selectedChat=e})),i.$on("$destroy",()=>{l.forEach(e=>e())})}}}angular.module("graphdb.framework.ttyg.directives.chat-list",["graphdb.framework.core.directives.inline-editable-text"]).directive("chatList",i),i.$inject=["TTYGContextService","ModalService","$translate"]},75:function(e,t,n){"use strict";n.r(t),n.d(t,"TTYGEventName",(function(){return i}));var a=n(30);function c(e){let t=void 0,n=void 0,c=void 0,o=void 0;const E=()=>Object(a.cloneDeep)(t),l=()=>Object(a.cloneDeep)(n),d=()=>Object(a.cloneDeep)(c),C=()=>Object(a.cloneDeep)(o),r=(t,n)=>{e.emitSync(t,Object(a.cloneDeep)(n))},T=(t,n)=>e.subscribeSync(t,e=>n(e));return{emit:r,subscribe:T,getChats:l,updateChats:e=>{n=Object(a.cloneDeep)(e),r(i.CHAT_LIST_UPDATED,l())},onChatsListChanged:e=>(n&&angular.isFunction(e)&&e(l()),T(i.CHAT_LIST_UPDATED,t=>e(t))),getSelectedChat:d,selectChat:e=>{c&&c.id===e||(c=Object(a.cloneDeep)(e),r(i.SELECT_CHAT,d()))},onSelectedChatChanged:e=>(c&&angular.isFunction(e)&&e(d()),T(i.SELECT_CHAT,t=>e(t))),updateSelectedChat:e=>{c&&c.id!==e.id||(c=Object(a.cloneDeep)(e),r(i.SELECTED_CHAT_UPDATED,d()))},onSelectedChatUpdated:e=>(c&&angular.isFunction(e)&&e(d()),T(i.SELECTED_CHAT_UPDATED,t=>e(t))),updateAgents:e=>{t=Object(a.cloneDeep)(e),r(i.AGENT_LIST_UPDATED,E())},onAgentsListChanged:e=>(t&&angular.isFunction(e)&&e(E()),T(i.AGENT_LIST_UPDATED,t=>e(t))),getAgents:E,selectAgent:e=>{o=Object(a.cloneDeep)(e),r(i.AGENT_SELECTED,C())},getSelectedAgent:C,onSelectedAgentChanged:e=>(o&&angular.isFunction(e)&&e(C()),T(i.AGENT_SELECTED,t=>e(t)))}}angular.module("graphdb.framework.ttyg.services.ttygcontext",[]).factory("TTYGContextService",c),c.$inject=["EventEmitterService"];const i={CREATE_CHAT:"createChat",CREATE_CHAT_SUCCESSFUL:"chatCreated",CREATE_CHAT_FAILURE:"chatCreationFailed",RENAME_CHAT:"renameChat",RENAME_CHAT_SUCCESSFUL:"chatRenamed",RENAME_CHAT_FAILURE:"chatRenamedFailure",SELECT_CHAT:"selectChat",SELECTED_CHAT_UPDATED:"selectChatUpdated",DELETE_CHAT:"deleteChat",DELETE_CHAT_SUCCESSFUL:"chatDeleted",DELETE_CHAT_FAILURE:"chatDeletedFailure",CHAT_EXPORT:"chatExport",CHAT_EXPORT_SUCCESSFUL:"chatExportSuccess",CHAT_EXPORT_FAILURE:"chatExportFailure",CHAT_LIST_UPDATED:"chatListUpdated",ASK_QUESTION:"askQuestion",LOAD_CHAT:"loadChat",LOAD_CHAT_SUCCESSFUL:"loadChatSuccess",LOAD_CHAT_FAILURE:"loadChatFailure",AGENT_LIST_UPDATED:"agentListUpdated",CREATE_AGENT:"createAgent",EDIT_AGENT:"editAgent",DELETE_AGENT:"deleteAgent",AGENT_DELETED:"agentDeleted",DELETING_AGENT:"deletingAgent",AGENT_SELECTED:"agentSelected",COPY_ANSWER_TO_CLIPBOARD:"copyAnswerToClipboard",COPY_ANSWER_TO_CLIPBOARD_SUCCESSFUL:"copyAnswerToClipboardSuccess",COPY_ANSWER_TO_CLIPBOARD_FAILURE:"copyAnswerToClipboardFailure"}}}]);
|