graphdb-workbench 3.0.2-TR1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/{18.b09e14d8a204a28fb95b.bundle.js → 18.b2d04af2d60cc37a5ebe.bundle.js} +1 -1
  2. package/dist/{190.431c135250df34322375.bundle.js → 190.4969eb91b83aaa7cd263.bundle.js} +1 -1
  3. package/dist/231.909faa919088245e9988.bundle.js +1 -1
  4. package/dist/{29.1f79f4caa66f63bd6611.bundle.js → 29.5ec5948f2e30819e6dc8.bundle.js} +1 -1
  5. package/dist/{30.2125e28509307f3a225f.bundle.js → 30.a60e3c2ac0de3b37e185.bundle.js} +1 -1
  6. package/dist/31.7452fe0f096c31a9a1f1.bundle.js +2 -0
  7. package/dist/{38.79bf8cac11760d2e69be.bundle.js → 38.8819c36a5204129f3dbc.bundle.js} +1 -1
  8. package/dist/{41.0d8779a7af2eb26cf157.bundle.js → 41.c6545eb0ce13e63738d2.bundle.js} +1 -1
  9. package/dist/410.b74d59055b7cf830abe5.bundle.js +1 -1
  10. package/dist/416.68f6286f80654cdbe4e4.bundle.js +1 -1
  11. package/dist/417.70adf0a6f0571c394764.bundle.js +1 -1
  12. package/dist/42.baaa159c3b1e81422600.bundle.js +1 -1
  13. package/dist/423.6edb13ec0cf08388c947.bundle.js +1 -1
  14. package/dist/424.725b821051516e73783a.bundle.js +1 -1
  15. package/dist/425.03fcf969da1a4e92fec3.bundle.js +1 -1
  16. package/dist/426.aa6924f6f1192d037009.bundle.js +1 -1
  17. package/dist/427.5c7b72141707b841e8a3.bundle.js +1 -1
  18. package/dist/428.0d471ce7c68654947c04.bundle.js +1 -1
  19. package/dist/{44.45a26f697588279fbc60.bundle.js → 44.ec337831549cfeaab224.bundle.js} +1 -1
  20. package/dist/443.969280af4067a22d1a8b.bundle.js +1 -1
  21. package/dist/444.a5971579184b091ed392.bundle.js +1 -1
  22. package/dist/445.2b20cb9e68a11879f6c4.bundle.js +1 -1
  23. package/dist/446.fe3cf3d6e288c8c4444b.bundle.js +1 -1
  24. package/dist/447.d1d078921f6f28e2fa38.bundle.js +1 -1
  25. package/dist/448.d6c9bed6d99b8b23619f.bundle.js +1 -1
  26. package/dist/468.8e259940c62a68ef3055.bundle.js +1 -1
  27. package/dist/{48.ba4cec793ef54b1611e5.bundle.js → 48.8726b8de8055297cec7c.bundle.js} +1 -1
  28. package/dist/480.379bf3b338e0a3224a1f.bundle.js +1 -1
  29. package/dist/481.0387239b174f787e70ea.bundle.js +1 -1
  30. package/dist/483.c81275cb05dd78ce389f.bundle.js +1 -1
  31. package/dist/484.25a82c267c3a705d2a65.bundle.js +1 -1
  32. package/dist/485.91cbfbfd37eccde375c9.bundle.js +1 -1
  33. package/dist/488.a69dcce23066c0dafdf7.bundle.js +1 -1
  34. package/dist/489.a976085b601cccf438d4.bundle.js +1 -1
  35. package/dist/49.ec8921fc54aaae50ca52.bundle.js +1 -1
  36. package/dist/490.d3e0f3e499b5a24f6808.bundle.js +1 -1
  37. package/dist/491.62c185868f9d99dd5713.bundle.js +1 -1
  38. package/dist/50.4886e820614f9dadb147.bundle.js +1 -0
  39. package/dist/{54.c54ba6791e3926ebb553.bundle.js → 54.f1ed20f259011ef082b2.bundle.js} +1 -1
  40. package/dist/76.fc1058890354a7ee6abe.bundle.js +1 -1
  41. package/dist/{bundle.6c88507cb6367ac80d16.bundle.js → bundle.fc37b3e514d7594f55be.bundle.js} +3 -3
  42. package/dist/css/rdf-class-hierarchy.css +1 -1
  43. package/dist/index.html +3 -3
  44. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  45. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  46. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  47. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  48. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  49. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  50. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  51. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  52. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  53. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
  54. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  55. package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
  56. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  57. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  58. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  59. package/dist/js/angular/security/templates/user.html +2 -2
  60. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  61. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  62. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  63. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  64. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  65. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  66. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
  67. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  68. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  69. package/dist/license-checker.json +2 -2
  70. package/dist/pages/aclmanagement.html +2 -2
  71. package/dist/pages/autocomplete.html +1 -1
  72. package/dist/pages/choose-repository-type.html +1 -1
  73. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  74. package/dist/pages/create-index.html +1 -1
  75. package/dist/pages/dependencies.html +1 -1
  76. package/dist/pages/domainRangeInfo.html +2 -2
  77. package/dist/pages/edit.html +1 -1
  78. package/dist/pages/explore.html +1 -1
  79. package/dist/pages/export.html +1 -1
  80. package/dist/pages/find.html +1 -1
  81. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  82. package/dist/pages/graphs-visualizations.html +7 -7
  83. package/dist/pages/guides.html +1 -1
  84. package/dist/pages/import.html +2 -2
  85. package/dist/pages/jdbc-create.html +1 -1
  86. package/dist/pages/monitor/backup-and-restore.html +1 -1
  87. package/dist/pages/monitor/queries.html +1 -1
  88. package/dist/pages/monitor/resources.html +1 -1
  89. package/dist/pages/namespaces.html +2 -2
  90. package/dist/pages/plugins.html +1 -1
  91. package/dist/pages/rdfClassHierarchyInfo.html +9 -11
  92. package/dist/pages/rdfrank.html +2 -2
  93. package/dist/pages/repositories.html +1 -1
  94. package/dist/pages/repository.html +1 -1
  95. package/dist/pages/similarity-indexes.html +1 -1
  96. package/dist/pages/sparql-editor.html +1 -1
  97. package/dist/pages/sparql-template-create.html +1 -1
  98. package/dist/pages/ux-test1.html +2 -2
  99. package/dist/pages/webapi.html +2 -2
  100. package/dist/res/swagger5/index.html +12 -12
  101. package/package.json +1 -1
  102. package/dist/31.e0747ab3d38bd6efa832.bundle.js +0 -2
  103. package/dist/50.ee3ed147b2bc2382a0a2.bundle.js +0 -1
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[444],{580:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-endpoint-management.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="graphql-endpoint-management-view">\n <h1 id="title-container">\n <span id="graphql-endpoint-management-title-label">{{title}}</span>\n <page-info-tooltip></page-info-tooltip>\n </h1>\n\n <div core-errors></div>\n\n <div onto-loader-new\n ng-show="loadingEndpointsInfo"\n class="graphql-endpoint-management-page-loader"\n size="100">\n </div>\n\n <div ng-if="getActiveRepository() && !loadingEndpointsInfo" class="endpoint-management-container">\n\n <div class="toolbar">\n <div class="endpoints-filter">\n <input type="text" ng-if="hasEndpoints" class="form-control endpoints-filter-field"\n placeholder="{{\'graphql.endpoints_management.toolbar.endpoints_filter.placeholder\' | translate}}"\n ng-model="filterTerm" ng-change="onEndpointsFilter(filterTerm)" aria-label="Filter endpoints"\n autocomplete="off">\n </div>\n\n <div class="actions">\n <button class="btn btn-primary create-endpoint-btn" ng-click="startCreateEndpointWizard()"\n gdb-tooltip="{{\'graphql.endpoints_management.toolbar.create_endpoint.tooltip\' | translate}}">\n <span class="fa-kit fa-gdb-graphql"></span>&nbsp;\n <span>{{\'graphql.endpoints_management.toolbar.create_endpoint.label\' | translate}}</span>\n </button>\n <button class="btn btn-secondary import-schema-definition-btn ml-1" ng-click="importSchema()"\n gdb-tooltip="{{\'graphql.endpoints_management.toolbar.import_schema.tooltip\' | translate}}">\n <span class="fa fa-upload"></span>&nbsp;\n <span>{{\'graphql.endpoints_management.toolbar.import_schema.label\' | translate}}</span>\n </button>\n </div>\n </div>\n\n <div ng-if="!hasEndpoints" class="alert alert-info no-endpoints mt-2">\n <span>{{\'graphql.endpoints_management.table.messages.no_endpoints_in_repository\' | translate}}</span>\n </div>\n\n <table ng-if="hasEndpoints" class="endpoints-info-table table mt-1"\n aria-describedby="GraphQL endpoints info table">\n <thead>\n <tr>\n <th scope="col" class="toggle-col"></th>\n <th scope="col" class="status-col"></th>\n <th scope="col" class="endpoint-id-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.id.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.id.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-label-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.label.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.label.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-is-default-col text-center">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_default.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.is_default.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-is-active-col text-center">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_active.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.is_active.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-modified-on-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.modified_on.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.modified_on.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-types-count-col numeric">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.types_count.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.types_count.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-props-count-col numeric">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.props_count.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.props_count.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-actions-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.actions.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.actions.label\' | translate}}\n </span>\n </th>\n </tr>\n </thead>\n\n <tr ng-if="operationInProgress" class="overlay-row">\n <td colspan="9">\n <div class="endpoint-operation-progress" onto-loader-fancy size="100" hide-message="true"></div>\n </td>\n </tr>\n\n <tbody>\n <tr ng-repeat-start="endpoint in endpointsInfoList.endpoints track by endpoint.endpointId">\n <td class="toggle-row">\n <a href="#" ng-click="toggleRow($event, $index)">\n <i class="fa fa-chevron-right" ng-if="expandedRow !== $index"></i>\n <i class="fa fa-chevron-down" ng-if="expandedRow === $index"></i>\n </a>\n </td>\n <td class="status-cell">\n <a href="#" ng-if="endpoint.errors > 0 || endpoint.warnings > 0"\n ng-click="onShowEndpointReport(endpoint)"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.view_report.tooltip\' | translate}}"\n class="endpoint-report-link btn btn-link">\n <i ng-if="!endpoint.createdSuccessfully" class="fa-regular fa-circle-xmark status-failed"></i>\n <i ng-if="endpoint.createdSuccessfully" class="fa-regular fa-circle-check status-success"></i>\n </a>\n </td>\n <td>\n <span ng-if="!endpoint.active"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.inactive.tooltip\' | translate}}"\n class="endpoint-link">{{endpoint.endpointId}}</span>\n <a ng-if="endpoint.active" href="#" ng-click="onExploreEndpoint(endpoint)"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.active.tooltip\' | translate}}"\n class="endpoint-link">{{endpoint.endpointId}}</a>\n </td>\n <td>{{endpoint.label}}</td>\n <td class="default-endpoint-selector">\n <label class="endpoint-default-state">\n <input type="radio" ng-model="selectedDefaultEndpoint.default" ng-value="endpoint.default"\n ng-disabled="!endpoint.createdSuccessfully"\n ng-change="setEndpointAsDefault(endpoint)"/>\n </label>\n </td>\n <td class="active-endpoint-selector">\n <span ng-click="!endpoint.createdSuccessfully || toggleEndpointActiveState(endpoint)"\n class="toggle-active-state">\n <input type="checkbox" class="switch" ng-checked="endpoint.active"\n ng-disabled="!endpoint.createdSuccessfully"/>\n <label></label>\n </span>\n </td>\n <td title="{{endpoint.lastModified}}">{{endpoint.lastModified | date: \'yyyy-MM-dd\'}}</td>\n <td class="objects-count numeric">{{endpoint.objectsCount}}</td>\n <td class="properties-count numeric">{{endpoint.propertiesCount}}</td>\n <td class="endpoint-actions">\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-endpoint-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right endpoint-actions-menu">\n <button class="dropdown-item export-schema-btn" type="button"\n ng-click="onExportSchema(endpoint)">\n <i class="fa fa-arrow-down-to-line"></i>&nbsp;\n <span>{{\'graphql.endpoints_management.table.actions.export_schema.label\' | translate}}</span>\n </button>\n <button class="dropdown-item configure-endpoint-btn" type="button"\n ng-click="onConfigureEndpoint(endpoint)">\n <i class="fa fa-gear"></i>&nbsp;\n <span>{{\'graphql.endpoints_management.table.actions.configure_endpoint.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-endpoint-btn" type="button"\n ng-click="onDeleteEndpoint(endpoint)">\n <i class="fa fa-trash-can"></i>&nbsp;\n <span>{{\'graphql.endpoints_management.table.actions.delete_endpoint.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </td>\n </tr>\n <tr ng-repeat-end ng-if="expandedRow === $index" class="endpoint-description-row">\n <td></td>\n <td colspan="8">\n <strong>{{\'graphql.endpoints_management.table.labels.description\' | translate}}</strong>\n <div class="endpoint-description">{{endpoint.description}}</div>\n </td>\n </tr>\n <tr ng-if="endpointsInfoList.endpoints.length === 0" class="no-results">\n <td colspan="9">\n <div class="alert alert-info">\n <span>{{\'graphql.endpoints_management.table.messages.endpoints_filter_no_result\' | translate}}</span>\n </div>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n\n\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[444],{580:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-endpoint-management.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="graphql-endpoint-management-view">\n <h1 id="title-container">\n <span id="graphql-endpoint-management-title-label">{{title}}</span>\n <page-info-tooltip></page-info-tooltip>\n </h1>\n\n <div core-errors></div>\n\n <div onto-loader-new\n ng-show="loadingEndpointsInfo"\n class="graphql-endpoint-management-page-loader"\n size="100">\n </div>\n\n <div ng-if="getActiveRepository() && !loadingEndpointsInfo" class="endpoint-management-container">\n\n <div class="toolbar">\n <div class="endpoints-filter">\n <input type="text" ng-if="hasEndpoints" class="form-control endpoints-filter-field"\n placeholder="{{\'graphql.endpoints_management.toolbar.endpoints_filter.placeholder\' | translate}}"\n ng-model="filterTerm" ng-change="onEndpointsFilter(filterTerm)" aria-label="Filter endpoints"\n autocomplete="off">\n </div>\n\n <div class="actions">\n <button class="btn btn-primary create-endpoint-btn" ng-click="startCreateEndpointWizard()"\n gdb-tooltip="{{\'graphql.endpoints_management.toolbar.create_endpoint.tooltip\' | translate}}">\n <span class="fa-kit fa-gdb-graphql"></span>&nbsp;\n <span>{{\'graphql.endpoints_management.toolbar.create_endpoint.label\' | translate}}</span>\n </button>\n <button class="btn btn-secondary import-schema-definition-btn ml-1" ng-click="importSchema()"\n gdb-tooltip="{{\'graphql.endpoints_management.toolbar.import_schema.tooltip\' | translate}}">\n <span class="fa fa-upload"></span>&nbsp;\n <span>{{\'graphql.endpoints_management.toolbar.import_schema.label\' | translate}}</span>\n </button>\n </div>\n </div>\n\n <div ng-if="!hasEndpoints" class="alert alert-info no-endpoints mt-2">\n <span>{{\'graphql.endpoints_management.table.messages.no_endpoints_in_repository\' | translate}}</span>\n </div>\n\n <table ng-if="hasEndpoints" class="endpoints-info-table table mt-1"\n aria-describedby="GraphQL endpoints info table">\n <thead>\n <tr>\n <th scope="col" class="toggle-col"></th>\n <th scope="col" class="status-col"></th>\n <th scope="col" class="endpoint-id-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.id.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.id.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-label-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.label.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.label.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-is-default-col text-center">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_default.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.is_default.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-is-active-col text-center">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_active.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.is_active.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-modified-on-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.modified_on.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.modified_on.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-types-count-col numeric">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.types_count.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.types_count.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-props-count-col numeric">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.props_count.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.props_count.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-actions-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.actions.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.actions.label\' | translate}}\n </span>\n </th>\n </tr>\n </thead>\n\n <tr ng-if="operationInProgress" class="overlay-row">\n <td colspan="9">\n <div class="endpoint-operation-progress" onto-loader-fancy size="100" hide-message="true"></div>\n </td>\n </tr>\n\n <tbody>\n <tr ng-repeat-start="endpoint in endpointsInfoList.endpoints track by endpoint.endpointId">\n <td class="toggle-row">\n <a href="#" ng-click="toggleRow($event, $index)">\n <i class="fa fa-chevron-right" ng-if="expandedRow !== $index"></i>\n <i class="fa fa-chevron-down" ng-if="expandedRow === $index"></i>\n </a>\n </td>\n <td class="status-cell">\n <a href="#" ng-if="endpoint.errors > 0 || endpoint.warnings > 0"\n ng-click="onShowEndpointReport(endpoint)"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.view_report.tooltip\' | translate}}"\n class="endpoint-report-link btn btn-link">\n <i ng-if="!endpoint.createdSuccessfully" class="fa-regular fa-circle-xmark status-failed"></i>\n <i ng-if="endpoint.createdSuccessfully" class="fa-regular fa-circle-check status-success"></i>\n </a>\n </td>\n <td>\n <span ng-if="!endpoint.active"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.inactive.tooltip\' | translate}}"\n class="endpoint-link">{{endpoint.endpointId}}</span>\n <a ng-if="endpoint.active" href="#" ng-click="onExploreEndpoint(endpoint)"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.active.tooltip\' | translate}}"\n class="endpoint-link">{{endpoint.endpointId}}</a>\n </td>\n <td>{{endpoint.label}}</td>\n <td class="default-endpoint-selector">\n <label class="endpoint-default-state">\n <input type="radio" ng-model="selectedDefaultEndpoint.default" ng-value="endpoint.default"\n ng-disabled="!endpoint.createdSuccessfully"\n ng-change="setEndpointAsDefault(endpoint)"/>\n </label>\n </td>\n <td class="active-endpoint-selector">\n <span ng-click="!endpoint.createdSuccessfully || toggleEndpointActiveState(endpoint)"\n class="toggle-active-state">\n <input type="checkbox" class="switch" ng-checked="endpoint.active"\n ng-disabled="!endpoint.createdSuccessfully"/>\n <label></label>\n </span>\n </td>\n <td title="{{endpoint.lastModified}}">{{endpoint.lastModified | date: \'yyyy-MM-dd\'}}</td>\n <td class="objects-count numeric">{{endpoint.objectsCount}}</td>\n <td class="properties-count numeric">{{endpoint.propertiesCount}}</td>\n <td class="endpoint-actions">\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-endpoint-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right endpoint-actions-menu">\n <button class="dropdown-item export-schema-btn" type="button"\n ng-click="onExportSchema(endpoint)">\n <i class="fa fa-arrow-down-to-line"></i>&nbsp;\n <span>{{\'graphql.endpoints_management.table.actions.export_schema.label\' | translate}}</span>\n </button>\n <button class="dropdown-item configure-endpoint-btn" type="button"\n ng-click="onConfigureEndpoint(endpoint)">\n <i class="fa fa-gear"></i>&nbsp;\n <span>{{\'graphql.endpoints_management.table.actions.configure_endpoint.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-endpoint-btn" type="button"\n ng-click="onDeleteEndpoint(endpoint)">\n <i class="fa fa-trash-can"></i>&nbsp;\n <span>{{\'graphql.endpoints_management.table.actions.delete_endpoint.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </td>\n </tr>\n <tr ng-repeat-end ng-if="expandedRow === $index" class="endpoint-description-row">\n <td></td>\n <td colspan="8">\n <strong>{{\'graphql.endpoints_management.table.labels.description\' | translate}}</strong>\n <div class="endpoint-description">{{endpoint.description}}</div>\n </td>\n </tr>\n <tr ng-if="endpointsInfoList.endpoints.length === 0" class="no-results">\n <td colspan="9">\n <div class="alert alert-info">\n <span>{{\'graphql.endpoints_management.table.messages.endpoints_filter_no_result\' | translate}}</span>\n </div>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n\n\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[445],{581:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-playground.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="graphql-playground-view">\n <h1 id="title-container">\n <span id="graphql-playground-title-label">{{title}}</span>\n <page-info-tooltip></page-info-tooltip>\n\n <div ng-if="!loadingEndpoints && graphqlEndpoints.length" class="toolbar pull-right">\n <select ng-model="selectedGraphqlEndpoint"\n ng-options="endpoint as endpoint.label for endpoint in graphqlEndpoints"\n ng-change="onGraphqlEndpointChange(selectedGraphqlEndpoint)"\n class="form-control graphql-endpoint-selector"\n gdb-tooltip="{{\'graphql.playground.endpoint_selector.tooltip\' | translate}}"\n tooltip-placement="top">\n </select>\n </div>\n </h1>\n\n <div core-errors></div>\n\n <div onto-loader-new\n ng-show="loadingEndpoints"\n class="graphql-playground-page-loader"\n size="100">\n </div>\n\n <div class="content" ng-if="initialized">\n <div class="no-endpoints-view" ng-show="!loadingEndpoints && configuration === undefined && !graphqlEndpoints.length">\n <div class="alert alert-warning">\n <div ng-bind-html="\'graphql.playground.message.no_schemas_in_repository\' | translate | trustAsHtml"></div>\n </div>\n </div>\n\n <div class="graphql-playground-container" ng-if="!loadingEndpoints && configuration && getActiveRepositoryNoError()">\n <graphql-playground id="graphql-playground" configuration="configuration"></graphql-playground>\n </div>\n </div>\n</div>\n\n\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[445],{581:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-playground.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="graphql-playground-view">\n <h1 id="title-container">\n <span id="graphql-playground-title-label">{{title}}</span>\n <page-info-tooltip></page-info-tooltip>\n\n <div ng-if="!loadingEndpoints && graphqlEndpoints.length" class="toolbar pull-right">\n <select ng-model="selectedGraphqlEndpoint"\n ng-options="endpoint as endpoint.label for endpoint in graphqlEndpoints"\n ng-change="onGraphqlEndpointChange(selectedGraphqlEndpoint)"\n class="form-control graphql-endpoint-selector"\n gdb-tooltip="{{\'graphql.playground.endpoint_selector.tooltip\' | translate}}"\n tooltip-placement="top">\n </select>\n </div>\n </h1>\n\n <div core-errors></div>\n\n <div onto-loader-new\n ng-show="loadingEndpoints"\n class="graphql-playground-page-loader"\n size="100">\n </div>\n\n <div class="content" ng-if="initialized">\n <div class="no-endpoints-view" ng-show="!loadingEndpoints && configuration === undefined && !graphqlEndpoints.length">\n <div class="alert alert-warning">\n <div ng-bind-html="\'graphql.playground.message.no_schemas_in_repository\' | translate | trustAsHtml"></div>\n </div>\n </div>\n\n <div class="graphql-playground-container" ng-if="!loadingEndpoints && configuration && getActiveRepositoryNoError()">\n <graphql-playground id="graphql-playground" configuration="configuration"></graphql-playground>\n </div>\n </div>\n</div>\n\n\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[446],{582:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="modal-header">\n <h3 class="modal-title">{{\'graphql.endpoints_management.endpoint_configuration_modal.title\' | translate}}</h3>\n <span ng-click="toggleAdvancedSettings()" class="toggle-advanced-settings">\n <input type="checkbox" class="switch" ng-checked="showAdvancedSettings"/>\n <label></label>\n <span>{{\'graphql.endpoints_management.endpoint_configuration_modal.actions.show_advanced_settings.label\' | translate}}</span>\n </span>\n</div>\n<div class="modal-body graphql-endpoint-configuration-modal-body">\n <div class="graphql-endpoint-configuration-loader" onto-loader-new hide-message="true"\n size="100" ng-show="loadingEndpointConfigurationSettings"></div>\n\n <dynamic-form ng-if="!loadingEndpointConfigurationSettings" form-model="endpointConfigurationSettings.settings"\n on-validity-change="handleValidityChange(valid)" show-all-fields="showAdvancedSettings"\n translation-key-prefix="graphql.endpoints_management.endpoint_configuration_modal.settings."\n form-ctrl="formCtrl">\n </dynamic-form>\n</div>\n<div class="modal-footer mt-0">\n <button type="button" class="btn btn-secondary cancel-btn" ng-click="cancel()">{{\'common.cancel.btn\' | translate}}\n </button>\n <button id="graphql-endpoint-configuration-modal-submit"\n class="btn btn-primary"\n ng-disabled="!endpointConfigurationSettingsValid || savingEndpointSettings || formCtrl.$pristine"\n ng-click="ok()" type="submit">\n <span>{{\'save.changes.label\' | translate}}</span>\n <span class="saving-endpoint-settings" ng-if="savingEndpointSettings" onto-loader-fancy hide-message="true"\n size="15"></span>\n </button>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[446],{582:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="modal-header">\n <h3 class="modal-title">{{\'graphql.endpoints_management.endpoint_configuration_modal.title\' | translate}}</h3>\n <span ng-click="toggleAdvancedSettings()" class="toggle-advanced-settings">\n <input type="checkbox" class="switch" ng-checked="showAdvancedSettings"/>\n <label></label>\n <span>{{\'graphql.endpoints_management.endpoint_configuration_modal.actions.show_advanced_settings.label\' | translate}}</span>\n </span>\n</div>\n<div class="modal-body graphql-endpoint-configuration-modal-body">\n <div class="graphql-endpoint-configuration-loader" onto-loader-new hide-message="true"\n size="100" ng-show="loadingEndpointConfigurationSettings"></div>\n\n <dynamic-form ng-if="!loadingEndpointConfigurationSettings" form-model="endpointConfigurationSettings.settings"\n on-validity-change="handleValidityChange(valid)" show-all-fields="showAdvancedSettings"\n translation-key-prefix="graphql.endpoints_management.endpoint_configuration_modal.settings."\n form-ctrl="formCtrl">\n </dynamic-form>\n</div>\n<div class="modal-footer mt-0">\n <button type="button" class="btn btn-secondary cancel-btn" ng-click="cancel()">{{\'common.cancel.btn\' | translate}}\n </button>\n <button id="graphql-endpoint-configuration-modal-submit"\n class="btn btn-primary"\n ng-disabled="!endpointConfigurationSettingsValid || savingEndpointSettings || formCtrl.$pristine"\n ng-click="ok()" type="submit">\n <span>{{\'save.changes.label\' | translate}}</span>\n <span class="saving-endpoint-settings" ng-if="savingEndpointSettings" onto-loader-fancy hide-message="true"\n size="15"></span>\n </button>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[447],{583:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/endpoint-generation-failure-result-modal.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h3 class="modal-title">\n {{\'graphql.endpoints_management.generation_failure_report_modal.title\' | translate}}</h3>\n</div>\n\n<div class="modal-body endpoint-generation-failure-result-modal-body">\n <div ng-if="endpointReport.errors > 0" class="alert alert-danger">\n {{\'graphql.endpoints_management.generation_failure_report_modal.failing_reason_message\' | translate}}\n </div>\n\n <div ng-if="endpointReport.warnings > 0 && endpointReport.errors === 0" class="alert alert-info">\n {{\'graphql.endpoints_management.generation_failure_report_modal.warning_reason_message\' | translate}}\n </div>\n\n <table class="report table table-bordered" aria-label="Endpoint generation failure report table">\n <thead>\n <tr class="labels-row">\n <th scope="col">\n <strong\n class="errors-count mr-2">{{\'graphql.endpoints_management.generation_failure_report_modal.errors\' |\n translate: {errorCount: endpointReport.errors} }}</strong>\n <strong\n class="warnings-count">{{\'graphql.endpoints_management.generation_failure_report_modal.warnings\' |\n translate: {warningCount: endpointReport.warnings} }}</strong>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="error in endpointReport.messages.errors" class="error-row">\n <td>\n <div class="alert alert-danger">{{error}}</div>\n </td>\n </tr>\n <tr ng-repeat="warning in endpointReport.messages.warnings" class="warning-row">\n <td>\n <div class="alert alert-warning">{{warning}}</div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class="modal-footer mt-0">\n <button id="download-failure-report" class="btn btn-secondary mr-1" ng-click="downloadReport()">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'graphql.endpoints_management.generation_failure_report_modal.actions.download_report.label\' | translate}}</span>\n </button>\n <button ng-if="endpointReport.errors === 0 && endpointReport.warnings > 0" id="delete-warnings"\n class="btn btn-primary" ng-click="deleteReport()">\n <span>{{\'graphql.endpoints_management.generation_failure_report_modal.actions.delete_report.label\' | translate}}</span>\n </button>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[447],{583:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/endpoint-generation-failure-result-modal.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h3 class="modal-title">\n {{\'graphql.endpoints_management.generation_failure_report_modal.title\' | translate}}</h3>\n</div>\n\n<div class="modal-body endpoint-generation-failure-result-modal-body">\n <div ng-if="endpointReport.errors > 0" class="alert alert-danger">\n {{\'graphql.endpoints_management.generation_failure_report_modal.failing_reason_message\' | translate}}\n </div>\n\n <div ng-if="endpointReport.warnings > 0 && endpointReport.errors === 0" class="alert alert-info">\n {{\'graphql.endpoints_management.generation_failure_report_modal.warning_reason_message\' | translate}}\n </div>\n\n <table class="report table table-bordered" aria-label="Endpoint generation failure report table">\n <thead>\n <tr class="labels-row">\n <th scope="col">\n <strong\n class="errors-count mr-2">{{\'graphql.endpoints_management.generation_failure_report_modal.errors\' |\n translate: {errorCount: endpointReport.errors} }}</strong>\n <strong\n class="warnings-count">{{\'graphql.endpoints_management.generation_failure_report_modal.warnings\' |\n translate: {warningCount: endpointReport.warnings} }}</strong>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="error in endpointReport.messages.errors" class="error-row">\n <td>\n <div class="alert alert-danger">{{error}}</div>\n </td>\n </tr>\n <tr ng-repeat="warning in endpointReport.messages.warnings" class="warning-row">\n <td>\n <div class="alert alert-warning">{{warning}}</div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class="modal-footer mt-0">\n <button id="download-failure-report" class="btn btn-secondary mr-1" ng-click="downloadReport()">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'graphql.endpoints_management.generation_failure_report_modal.actions.download_report.label\' | translate}}</span>\n </button>\n <button ng-if="endpointReport.errors === 0 && endpointReport.warnings > 0" id="delete-warnings"\n class="btn btn-primary" ng-click="deleteReport()">\n <span>{{\'graphql.endpoints_management.generation_failure_report_modal.actions.delete_report.label\' | translate}}</span>\n </button>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[448],{584:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/import-endpoint-definition-modal.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="modal-header px-2">\n <button type="button" class="close" ng-click="close()"></button>\n <h3 class="modal-title">{{\'graphql.endpoints_management.import_definition_modal.title\' | translate}}</h3>\n</div>\n\n<div class="modal-body import-endpoint-definition-modal-body m-2">\n <div class="toolbar">\n <button ngf-select multiple ngf-accept="\'{{allowedFileTypesString}}\'" ngf-keep="false"\n ngf-change="onFilesChange($files, $file, $newFiles, $duplicateFiles, $invalidFiles)"\n class="btn btn-primary file-selector-btn">\n <i class="fa fa-check"></i>\n <span>{{\'graphql.endpoints_management.import_definition_modal.actions.select_files.label\' | translate}}</span>\n </button>\n <button ng-click="onImport()" ng-disabled="!definitionFiles || definitionFiles.size === 0"\n class="btn btn-primary upload-btn ml-1">\n <i class="fa fa-upload"></i>\n <span>{{\'graphql.endpoints_management.import_definition_modal.actions.import.label\' | translate}}</span>\n </button>\n </div>\n\n <div ng-show="progress >= 0" class="progress mt-1">\n <div role="progressbar" class="progress-bar" style="width:{{progress}}%">\n {{progress}}%\n </div>\n </div>\n\n <div class="upload-area mt-1" ngf-drop ngf-multiple="true" ngf-accept="\'{{allowedFileTypesString}}\'"\n ngf-keep="false" ngf-drag-over-class="dragover"\n ngf-change="onFilesChange($files, $file, $newFiles, $duplicateFiles, $invalidFiles)">\n <div ng-if="!definitionFiles || definitionFiles.size === 0" class="no-files-placeholder">\n {{\'graphql.endpoints_management.import_definition_modal.messages.no_files_selected\' | translate}}\n </div>\n\n <table ng-if="definitionFiles && definitionFiles.size > 0" class="table table-hover file-list mt-1">\n <tr ng-repeat-start="definitionFile in definitionFiles.list" class="file-item">\n <td class="file-info">\n <strong class="file-name">{{definitionFile.file.name}}</strong>,\n <em class="file-size">{{definitionFile.file.size | bytes}}</em>\n </td>\n <td class="import-status">\n <span ng-if="!definitionFile.list" class="status tag"\n ng-class="definitionFile.viewStatus">{{definitionFile.statusMessage | translate}}</span>\n </td>\n <td>\n <a href="#" ng-if="definitionFile.endpointId"\n ng-click="onExploreEndpoint(definitionFile.endpointId)"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.explore_endpoint.tooltip\' | translate}}"\n class="endpoint-link">{{definitionFile.endpointId}}</a>\n <a href="#" ng-if="definitionFile.report && definitionFile.status === ImportStatus.FAIL"\n ng-click="onOpenReport(definitionFile.report)"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.view_report.tooltip\' | translate}}"\n class="report-link btn-link">\n {{\'graphql.endpoints_management.import_definition_modal.actions.view_report.label\' | translate}}\n </a>\n </td>\n <td class="file-actions">\n <button ng-if="!progress" ng-click="onRemoveFile(definitionFile)"\n class="btn btn-link btn-sm secondary remove-file-btn"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.remove_file.tooltip\' | translate}}">\n <i class="icon-close"></i>\n </button>\n </td>\n </tr>\n \x3c!-- Nested definition files from zip archives --\x3e\n <tr ng-repeat-end ng-if="definitionFile.list && definitionFile.list.list.length > 0"\n ng-repeat="subFile in definitionFile.list.list" class="file-item sub-file">\n <td class="file-info">\n <span class="sub-file-indent">└─</span>\n <strong class="file-name">{{subFile.filename}}</strong>\n </td>\n <td class="import-status">\n <span class="status tag" ng-class="subFile.viewStatus">{{subFile.statusMessage | translate}}</span>\n </td>\n <td>\n <a href="#" ng-if="subFile.endpointId"\n ng-click="onExploreEndpoint(subFile.endpointId)"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.explore_endpoint.tooltip\' | translate}}"\n class="endpoint-link">{{subFile.endpointId}}</a>\n <a href="#" ng-if="subFile.report && subFile.status === ImportStatus.FAIL"\n ng-click="onOpenReport(subFile.report)"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.view_report.tooltip\' | translate}}"\n class="report-link btn-link">\n {{\'graphql.endpoints_management.import_definition_modal.actions.view_report.label\' | translate}}\n </a>\n </td>\n <td class="file-actions"></td>\n </tr>\n </table>\n\n <div class="file-format-info mt-1">\n {{\'graphql.endpoints_management.import_definition_modal.messages.allowed_file_types\' | translate}}\n </div>\n </div>\n</div>\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[448],{584:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/import-endpoint-definition-modal.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="modal-header px-2">\n <button type="button" class="close" ng-click="close()"></button>\n <h3 class="modal-title">{{\'graphql.endpoints_management.import_definition_modal.title\' | translate}}</h3>\n</div>\n\n<div class="modal-body import-endpoint-definition-modal-body m-2">\n <div class="toolbar">\n <button ngf-select multiple ngf-accept="\'{{allowedFileTypesString}}\'" ngf-keep="false"\n ngf-change="onFilesChange($files, $file, $newFiles, $duplicateFiles, $invalidFiles)"\n class="btn btn-primary file-selector-btn">\n <i class="fa fa-check"></i>\n <span>{{\'graphql.endpoints_management.import_definition_modal.actions.select_files.label\' | translate}}</span>\n </button>\n <button ng-click="onImport()" ng-disabled="!definitionFiles || definitionFiles.size === 0"\n class="btn btn-primary upload-btn ml-1">\n <i class="fa fa-upload"></i>\n <span>{{\'graphql.endpoints_management.import_definition_modal.actions.import.label\' | translate}}</span>\n </button>\n </div>\n\n <div ng-show="progress >= 0" class="progress mt-1">\n <div role="progressbar" class="progress-bar" style="width:{{progress}}%">\n {{progress}}%\n </div>\n </div>\n\n <div class="upload-area mt-1" ngf-drop ngf-multiple="true" ngf-accept="\'{{allowedFileTypesString}}\'"\n ngf-keep="false" ngf-drag-over-class="dragover"\n ngf-change="onFilesChange($files, $file, $newFiles, $duplicateFiles, $invalidFiles)">\n <div ng-if="!definitionFiles || definitionFiles.size === 0" class="no-files-placeholder">\n {{\'graphql.endpoints_management.import_definition_modal.messages.no_files_selected\' | translate}}\n </div>\n\n <table ng-if="definitionFiles && definitionFiles.size > 0" class="table table-hover file-list mt-1">\n <tr ng-repeat-start="definitionFile in definitionFiles.list" class="file-item">\n <td class="file-info">\n <strong class="file-name">{{definitionFile.file.name}}</strong>,\n <em class="file-size">{{definitionFile.file.size | bytes}}</em>\n </td>\n <td class="import-status">\n <span ng-if="!definitionFile.list" class="status tag"\n ng-class="definitionFile.viewStatus">{{definitionFile.statusMessage | translate}}</span>\n </td>\n <td>\n <a href="#" ng-if="definitionFile.endpointId"\n ng-click="onExploreEndpoint(definitionFile.endpointId)"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.explore_endpoint.tooltip\' | translate}}"\n class="endpoint-link">{{definitionFile.endpointId}}</a>\n <a href="#" ng-if="definitionFile.report && definitionFile.status === ImportStatus.FAIL"\n ng-click="onOpenReport(definitionFile.report)"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.view_report.tooltip\' | translate}}"\n class="report-link btn-link">\n {{\'graphql.endpoints_management.import_definition_modal.actions.view_report.label\' | translate}}\n </a>\n </td>\n <td class="file-actions">\n <button ng-if="!progress" ng-click="onRemoveFile(definitionFile)"\n class="btn btn-link btn-sm secondary remove-file-btn"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.remove_file.tooltip\' | translate}}">\n <i class="icon-close"></i>\n </button>\n </td>\n </tr>\n \x3c!-- Nested definition files from zip archives --\x3e\n <tr ng-repeat-end ng-if="definitionFile.list && definitionFile.list.list.length > 0"\n ng-repeat="subFile in definitionFile.list.list" class="file-item sub-file">\n <td class="file-info">\n <span class="sub-file-indent">└─</span>\n <strong class="file-name">{{subFile.filename}}</strong>\n </td>\n <td class="import-status">\n <span class="status tag" ng-class="subFile.viewStatus">{{subFile.statusMessage | translate}}</span>\n </td>\n <td>\n <a href="#" ng-if="subFile.endpointId"\n ng-click="onExploreEndpoint(subFile.endpointId)"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.explore_endpoint.tooltip\' | translate}}"\n class="endpoint-link">{{subFile.endpointId}}</a>\n <a href="#" ng-if="subFile.report && subFile.status === ImportStatus.FAIL"\n ng-click="onOpenReport(subFile.report)"\n gdb-tooltip="{{\'graphql.endpoints_management.import_definition_modal.actions.view_report.tooltip\' | translate}}"\n class="report-link btn-link">\n {{\'graphql.endpoints_management.import_definition_modal.actions.view_report.label\' | translate}}\n </a>\n </td>\n <td class="file-actions"></td>\n </tr>\n </table>\n\n <div class="file-format-info mt-1">\n {{\'graphql.endpoints_management.import_definition_modal.messages.allowed_file_types\' | translate}}\n </div>\n </div>\n</div>\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[468],{604:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.0.2-TR1" rel="stylesheet"/>\n<link href=\'css/user.css?v=3.0.2-TR1\' rel=\'stylesheet\' type=\'text/css\'/>\n\n<h1>\n {{pageTitle}}\n <page-info-tooltip></page-info-tooltip>\n</h1>\n\n<div id="wb-user" class="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n <label class="d-block" ng-if="showCookiePolicyLink">\n <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button>\n </label>\n\n </div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n add-on-paste="true"\n replace-spaces-with-dashes="false"\n paste-split-pattern="[\\s+]"\n on-tag-adding="isCustomRoleValid($tag)"\n on-tag-added="addCustomRole($tag)"\n ng-keydown="checkUserInput($event)"\n ng-cut="removeErrorOnCut()"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"\n custom-prefix-tags-input></tags-input>\n <div class="small" ng-hide="isRoleValid">\n <small>{{\'security.user.role.too.short\' | translate}}</small>\n </div>\n <div class="small prefix-warning" ng-if="form.customRoleTag.$warning">\n <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small>\n </div>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm table-fixed bordered-table" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn" class="repository-column auth-column">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center read-column auth-column"><span class="auth-column-label">{{\'security.label.read\' | translate}}</span><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center write-column auth-column"><span class="auth-column-label">{{\'security.label.write\' | translate}}</span><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n <th id="graphql" class="text-xs-center auth-column graphql-column"><span class="auth-column-label">{{\'security.label.graphql\' | translate}}</span></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <span ng-click="setGrantedAuthorities()">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')">\n </span>\n </th>\n <th class="text-xs-center write-any">\n <span ng-click="setGrantedAuthorities()">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')">\n </span>\n </th>\n\n <th class="text-xs-center">\n <span ng-click="setGrantedAuthorities()">\n <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[\'*\']" ng-checked="hasGraphqlPermission(\'*\')" ng-disabled="graphqlCheckDisabled(\'*\')">\n </span>\n </th>\n\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getAllAccessibleRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small><em ng-if="(hasGraphqlPermission(repository) || hasGraphqlPermission(\'*\')) && (hasReadPermission(repository) || hasReadPermission(\'*\') || hasWritePermission(repository) || hasWritePermission(\'*\'))" class="fa-kit fa-gdb-graphql graphql-icon text-info" gdb-tooltip="{{\'security.tooltip.graphql\' | translate}}"></em> &middot; {{repository.location ? repository.location : \'repo.local\' | translate}}</small></td>\n <td class="text-xs-center read-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)">\n </span>\n </td>\n <td class="text-xs-center write-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)">\n </span>\n </td>\n <td class="text-xs-center graphql-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[createUniqueKey(repository)]" ng-checked="hasGraphqlPermission(repository)" ng-disabled="graphqlCheckDisabled(repository)">\n </span>\n </td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[468],{604:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.0.2" rel="stylesheet"/>\n<link href=\'css/user.css?v=3.0.2\' rel=\'stylesheet\' type=\'text/css\'/>\n\n<h1>\n {{pageTitle}}\n <page-info-tooltip></page-info-tooltip>\n</h1>\n\n<div id="wb-user" class="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n <label class="d-block" ng-if="showCookiePolicyLink">\n <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button>\n </label>\n\n </div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n add-on-paste="true"\n replace-spaces-with-dashes="false"\n paste-split-pattern="[\\s+]"\n on-tag-adding="isCustomRoleValid($tag)"\n on-tag-added="addCustomRole($tag)"\n ng-keydown="checkUserInput($event)"\n ng-cut="removeErrorOnCut()"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"\n custom-prefix-tags-input></tags-input>\n <div class="small" ng-hide="isRoleValid">\n <small>{{\'security.user.role.too.short\' | translate}}</small>\n </div>\n <div class="small prefix-warning" ng-if="form.customRoleTag.$warning">\n <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small>\n </div>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm table-fixed bordered-table" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn" class="repository-column auth-column">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center read-column auth-column"><span class="auth-column-label">{{\'security.label.read\' | translate}}</span><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center write-column auth-column"><span class="auth-column-label">{{\'security.label.write\' | translate}}</span><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n <th id="graphql" class="text-xs-center auth-column graphql-column"><span class="auth-column-label">{{\'security.label.graphql\' | translate}}</span></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <span ng-click="setGrantedAuthorities()">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')">\n </span>\n </th>\n <th class="text-xs-center write-any">\n <span ng-click="setGrantedAuthorities()">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')">\n </span>\n </th>\n\n <th class="text-xs-center">\n <span ng-click="setGrantedAuthorities()">\n <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[\'*\']" ng-checked="hasGraphqlPermission(\'*\')" ng-disabled="graphqlCheckDisabled(\'*\')">\n </span>\n </th>\n\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getAllAccessibleRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small><em ng-if="(hasGraphqlPermission(repository) || hasGraphqlPermission(\'*\')) && (hasReadPermission(repository) || hasReadPermission(\'*\') || hasWritePermission(repository) || hasWritePermission(\'*\'))" class="fa-kit fa-gdb-graphql graphql-icon text-info" gdb-tooltip="{{\'security.tooltip.graphql\' | translate}}"></em> &middot; {{repository.location ? repository.location : \'repo.local\' | translate}}</small></td>\n <td class="text-xs-center read-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)">\n </span>\n </td>\n <td class="text-xs-center write-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)">\n </span>\n </td>\n <td class="text-xs-center graphql-rights">\n <span ng-click="setGrantedAuthorities()">\n <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[createUniqueKey(repository)]" ng-checked="hasGraphqlPermission(repository)" ng-disabled="graphqlCheckDisabled(repository)">\n </span>\n </td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[48,125,258,297,305,388],{104:function(e,t,r){"use strict";r.r(t),r.d(t,"RenderingMode",(function(){return n}));var n={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},115:function(e,t,r){"use strict";r.r(t),r.d(t,"YasqeMode",(function(){return n}));var n={WRITE:"WRITE",READ:"READ",PROTECTED:"PROTECTED"}},118:function(e,t){function r(e,t){return{showToastMessageWithDelay:function(r){return new Promise((function(n){e.success(t.instant(r)),setTimeout(n,300)}))}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",r),r.$inject=["toastr","$translate"]},138:function(e,t,r){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,a(n.key),n)}}function a(e){var t=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==n(t)?t:t+""}r.r(t),r.d(t,"StartMode",(function(){return s})),r.d(t,"GraphsConfig",(function(){return u}));var s={QUERY:"query",NODE:"node",SEARCH:"search"},u=function(){return e=function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.SEARCH,i=arguments.length>3?arguments[3]:void 0,a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],u=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],c=arguments.length>6?arguments[6]:void 0,f=arguments.length>7?arguments[7]:void 0,p=arguments.length>8?arguments[8]:void 0,h=arguments.length>9?arguments[9]:void 0,l=arguments.length>10?arguments[10]:void 0,d=arguments.length>11?arguments[11]:void 0,y=arguments.length>12?arguments[12]:void 0,g=arguments.length>13?arguments[13]:void 0,v=arguments.length>14?arguments[14]:void 0,m=arguments.length>15?arguments[15]:void 0,w=arguments.length>16?arguments[16]:void 0,Q=arguments.length>17?arguments[17]:void 0,b=arguments.length>18?arguments[18]:void 0,E=arguments.length>19?arguments[19]:void 0,_=arguments.length>20?arguments[20]:void 0;o(this,e),this._id=t,this._name=r,this._startMode=n,this._owner=i,this._startQueryIncludeInferred=a,this._startQuerySameAs=u,this._startGraphQuery=c,this._startIRI=f,this._startIRILabel=p,this._expandQuery=h,this._resourceQuery=l,this._predicateLabelQuery=d,this._resourcePropertiesQuery=y,this._shared=g,this._description=v,this._hint=m,this._startGraphQueryDescription=w,this._expandQueryDescription=Q,this._resourceQueryDescription=b,this._predicateLabelQueryDescription=E,this._resourcePropertiesQueryDescription=_},(t=[{key:"isStartMode",value:function(e){return this.startMode===e}},{key:"isDefaultGraph",value:function(){return"Minimal"===this.name||"Advanced"===this.name}},{key:"getPropertyDescription",value:function(e){return this["".concat(e,"Description")]}},{key:"getQueryType",value:function(e){var t;return this.isStartMode(s.QUERY)&&1===e?t=this.startGraphQuery:2===e?t=this.expandQuery:3===e?t=this.resourceQuery:4===e?t=this.predicateLabelQuery:5===e&&(t=this.resourcePropertiesQuery),t||""}},{key:"updateModel",value:function(e,t){return this.isStartMode(s.QUERY)&&1===t?this.startGraphQuery=e:2===t?this.expandQuery=e:3===t?this.resourceQuery=e:4===t?this.predicateLabelQuery=e:5===t&&(this.resourcePropertiesQuery=e),this}},{key:"toSavePayload",value:function(){return{id:this.id,name:this.name,startMode:this.startMode,owner:this.owner,startQueryIncludeInferred:this.startQueryIncludeInferred,startQuerySameAs:this.startQuerySameAs,startGraphQuery:this.startGraphQuery,startIRI:this.startIRI,startIRILabel:this.startIRILabel,expandQuery:this.expandQuery,resourceQuery:this.resourceQuery,predicateLabelQuery:this.predicateLabelQuery,resourcePropertiesQuery:this.resourcePropertiesQuery,shared:this.shared,description:this.description,hint:this.hint}}},{key:"id",get:function(){return this._id},set:function(e){this._id=e}},{key:"name",get:function(){return this._name},set:function(e){this._name=e}},{key:"startMode",get:function(){return this._startMode},set:function(e){this._startMode=e}},{key:"owner",get:function(){return this._owner},set:function(e){this._owner=e}},{key:"startQueryIncludeInferred",get:function(){return this._startQueryIncludeInferred},set:function(e){this._startQueryIncludeInferred=e}},{key:"startQuerySameAs",get:function(){return this._startQuerySameAs},set:function(e){this._startQuerySameAs=e}},{key:"startGraphQuery",get:function(){return this._startGraphQuery},set:function(e){this._startGraphQuery=e}},{key:"startIRI",get:function(){return this._startIRI},set:function(e){this._startIRI=e}},{key:"startIRILabel",get:function(){return this._startIRILabel},set:function(e){this._startIRILabel=e}},{key:"expandQuery",get:function(){return this._expandQuery},set:function(e){this._expandQuery=e}},{key:"resourceQuery",get:function(){return this._resourceQuery},set:function(e){this._resourceQuery=e}},{key:"predicateLabelQuery",get:function(){return this._predicateLabelQuery},set:function(e){this._predicateLabelQuery=e}},{key:"resourcePropertiesQuery",get:function(){return this._resourcePropertiesQuery},set:function(e){this._resourcePropertiesQuery=e}},{key:"shared",get:function(){return this._shared},set:function(e){this._shared=e}},{key:"description",get:function(){return this._description},set:function(e){this._description=e}},{key:"hint",get:function(){return this._hint},set:function(e){this._hint=e}},{key:"startGraphQueryDescription",get:function(){return this._startGraphQueryDescription},set:function(e){this._startGraphQueryDescription=e}},{key:"expandQueryDescription",get:function(){return this._expandQueryDescription},set:function(e){this._expandQueryDescription=e}},{key:"resourceQueryDescription",get:function(){return this._resourceQueryDescription},set:function(e){this._resourceQueryDescription=e}},{key:"predicateLabelQueryDescription",get:function(){return this._predicateLabelQueryDescription},set:function(e){this._predicateLabelQueryDescription=e}},{key:"resourcePropertiesQueryDescription",get:function(){return this._resourcePropertiesQueryDescription},set:function(e){this._resourcePropertiesQueryDescription=e}}])&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()},159:function(e,t,r){"use strict";r.r(t),r.d(t,"mapGraphsConfigResponseToModel",(function(){return o})),r.d(t,"mapGraphConfigSampleToGraphConfig",(function(){return i})),r.d(t,"mapGraphConfigSamplesToGraphConfigs",(function(){return a}));var n=r(138),o=function(e){return new n.GraphsConfig(e.id,e.name,e.startMode,e.owner,e.startQueryIncludeInferred,e.startQuerySameAs,e.startGraphQuery,e.startIRI,e.startIRILabel,e.expandQuery,e.resourceQuery,e.predicateLabelQuery,e.resourcePropertiesQuery,e.shared,e.description,e.hint)},i=function(e){return new n.GraphsConfig(e.id,e.name,e.startMode,e.owner,e.startQueryIncludeInferred,e.startQuerySameAs,e.startGraphQuery,e.startIRI,e.startIRILabel,e.expandQuery,e.resourceQuery,e.predicateLabelQuery,e.resourcePropertiesQuery,e.shared,e.description,e.hint,e.startGraphQueryDescription,e.expandQueryDescription,e.resourceQueryDescription,e.predicateLabelQueryDescription,e.resourcePropertiesQueryDescription)},a=function(e){return e.map((function(e){return i(e)}))}},303:function(e,t,r){"use strict";r.r(t);r(118),r(15),r(29);var n=r(115),o=r(104),i=r(27),a=r(138),s=r(159),u=r(11);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */f=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function p(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var i=t&&t.prototype instanceof m?t:m,a=Object.create(i.prototype),s=new D(n||[]);return o(a,"_invoke",{value:C(e,r,s)}),a}function l(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var d="suspendedStart",y="executing",g="completed",v={};function m(){}function w(){}function Q(){}var b={};p(b,a,(function(){return this}));var E=Object.getPrototypeOf,_=E&&E(E(G([])));_&&_!==r&&n.call(_,a)&&(b=_);var x=Q.prototype=m.prototype=Object.create(b);function I(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function r(o,i,a,s){var u=l(e[o],e,i);if("throw"!==u.type){var f=u.arg,p=f.value;return p&&"object"==c(p)&&n.call(p,"__await")?t.resolve(p.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(p).then((function(e){f.value=e,a(f)}),(function(e){return r("throw",e,a,s)}))}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function C(t,r,n){var o=d;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===g){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=R(s,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var c=l(t,r,n);if("normal"===c.type){if(o=n.done?g:"suspendedYield",c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=g,n.method="throw",n.arg=c.arg)}}}function R(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,R(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=l(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function G(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(c(t)+" is not iterable")}return w.prototype=Q,o(x,"constructor",{value:Q,configurable:!0}),o(Q,"constructor",{value:w,configurable:!0}),w.displayName=p(Q,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,Q):(e.__proto__=Q,p(e,u,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},I(S.prototype),p(S.prototype,s,(function(){return this})),t.AsyncIterator=S,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new S(h(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},I(x),p(x,u,"Generator"),p(x,a,(function(){return this})),p(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=G,D.prototype={constructor:D,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(k),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:G(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function p(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){p(i,n,o,a,s,"next",e)}function s(e){p(i,n,o,a,s,"throw",e)}a(void 0)}))}}function l(e,t,r,c,p,l,d,y,g,v,m,w,Q,b,E,_,x){var I;t.newConfig=new a.GraphsConfig,t.revertConfig=void 0,t.page=1,t.totalPages=5,t.helpHidden=1===w.get(Q.HIDE_GRAPH_CONFIG_HELP),t.isUpdate=!1,t.shared=!1,t.canEditActiveRepo=t.canWriteActiveRepo(),t.samples=[],t.tabConfig={inference:t.newConfig.startQueryIncludeInferred,sameAs:t.newConfig.startQuerySameAs},t.isAutocompleteEnabled=void 0,t.repositoryNamespaces=void 0,t.tabsViewModel=[];var S=v.configName,C=l.getActiveRepository();t.toggleHelp=function(e){void 0===e&&(e=w.get(Q.HIDE_GRAPH_CONFIG_HELP)),1!==e?(w.set(Q.HIDE_GRAPH_CONFIG_HELP,1),t.helpHidden=!0):(w.set(Q.HIDE_GRAPH_CONFIG_HELP,0),t.helpHidden=!1)},t.fixedVisualCallback=function(e,r){t.newConfig.startIRI=e,t.newConfig.startIRILabel=r,I=!0},t.isDefaultGraph=function(e){return e.isDefaultGraph()},t.isUserGraph=function(e){return!e.isDefaultGraph()},t.getSampleName=function(e,t){if(!e)return"";var r=e.getPropertyDescription(t);return r||(e.id?"Copy of "+e.name:e.name)},t.createGraphConfig=function(e){g.createGraphConfig(e).success(h(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,m.showToastMessageWithDelay("graphexplore.saved.new.config");case 2:c.url("graphs-visualizations");case 3:case"end":return e.stop()}}),e)})))).error((function(e){p.error(getError(e),b.instant("graphexplore.error.could.not.create"))}))},t.updateGraphConfig=function(e){g.updateGraphConfig(e).success(h(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,m.showToastMessageWithDelay("graphexplore.saved.config");case 2:c.url("graphs-visualizations");case 3:case"end":return e.stop()}}),e)})))).error((function(e){p.error(getError(e),b.instant("graphexplore.error.could.not.save"))}))},t.goToPage=function(e){t.page!==e&&A((function(){t.showEditor(),t.page=e}))},t.goToPreviousPage=function(){t.page>1&&t.goToPage(t.page-1),j()&&(I=!1)},t.goToNextPage=function(){Y(),t.newConfig.isStartMode(a.StartMode.NODE)&&!I||t.goToPage(t.page+1)},t.saveGraphConfig=function(){Y(),j()&&!I||(t.newConfig.startQueryIncludeInferred=t.tabConfig.inference,t.newConfig.startQuerySameAs=t.tabConfig.sameAs,t.newConfig.name&&(t.newConfig.name=t.newConfig.name.replace(/\s+/g," ").trim()),A((function(){t.newConfig.name?(t.queryEditorIsDirty=!1,t.isUpdate?t.updateGraphConfig(t.newConfig.toSavePayload()):t.createGraphConfig(t.newConfig.toSavePayload())):O(b.instant("graphexplore.provide.config.name"))})))},t.setQuery=function(){var e=h(f().mark((function e(r){var n;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r||" ",e.next=3,R();case 3:e.sent.setQuery(n),t.markDirty();case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),t.markDirty=h(f().mark((function e(){var r,n;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.revertConfig){e.next=6;break}return r=t.revertConfig.getQueryType(t.page),e.next=4,G();case 4:n=e.sent,t.queryEditorIsDirty=r!==n;case 6:case"end":return e.stop()}}),e)}))),t.showEditor=function(){t.viewMode="yasr",P(),D()},t.showPreview=function(){t.viewMode="editor",L()},t.revertEditor=function(){t.setQuery(t.revertConfig.getQueryType(t.page)),t.queryEditorIsDirty=!1};var R=function(){return i.YasguiComponentDirectiveUtil.getOntotextYasguiElementAsync("#query-editor")},L=function(){var e=h(f().mark((function e(r,n){var o,i;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return o=e.sent,e.next=5,o.getQueryType();case 5:if(i=e.sent,!n||"SELECT"===i||"CONSTRUCT"===i||"DESCRIBE"===i){e.next=9;break}return p.warning(b.instant("query.editor.warning.msg")),e.abrupt("return");case 9:return e.next=11,o.getQueryMode();case 11:if("update"!==e.sent){e.next=15;break}return p.warning(b.instant("cannot.execute.update.error")),e.abrupt("return");case 15:t.queryIsRunning||(t.viewMode="editor",k());case 16:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),k=function(){var e=h(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:e.sent.query(o.RenderingMode.YASR);case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),D=function(){var e=h(f().mark((function e(){var t;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return t=e.sent,e.abrupt("return",t.changeRenderMode(o.RenderingMode.YASQE));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),G=function(){var e=h(f().mark((function e(){var t;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return t=e.sent,e.abrupt("return",t.getQuery());case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),P=function(){var e=h(f().mark((function e(){var t;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return t=e.sent,e.abrupt("return",t.abortQuery());case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),M=function(){var e=h(f().mark((function e(){var r,n;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return r=e.sent,e.next=5,r.getQuery();case 5:return n=(n=e.sent).trim(),e.abrupt("return",t.newConfig.updateModel(n,t.page));case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),A=function(){var e=h(f().mark((function e(r){var n;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,M();case 2:n=e.sent,1===t.page?n.isStartMode(a.StartMode.NODE)&&!n.startIRI?O(b.instant("graphexplore.select.start.node")):n.isStartMode(a.StartMode.QUERY)&&!n.startGraphQuery?O(b.instant("graphexplore.provide.query")):n.isStartMode(a.StartMode.QUERY)?N(r,n.startGraphQuery,"graph"):r():2===t.page?N(r,n.expandQuery,"construct",["node"]):3===t.page?N(r,n.resourceQuery,"tuple",["node"],[],["type","label","comment","rank"]):4===t.page?N(r,n.predicateLabelQuery,"tuple",["edge"],["label"]):5===t.page&&N(r,n.resourcePropertiesQuery,"tuple",["node"],["property","value"]);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),T=function(){t.tabConfig.inference=t.newConfig.startQueryIncludeInferred,t.tabConfig.sameAs=t.newConfig.startQuerySameAs,t.setQuery(t.newConfig.getQueryType(t.page))},O=function(e){p.warning(e)},N=function(e,t,r,n,o,i){t?g.validateQuery(t,r,n,o,i).success((function(){e()})).error((function(e){O(getError(e))})):e()},Y=function(){j()&&t.$broadcast("addStartFixedNodeAutomatically",{startIRI:t.newConfig.startIRI})},j=function(){return 1===t.page&&t.newConfig.isStartMode(a.StartMode.NODE)},q=function(){g.getGraphConfigSamples().success((function(e){t.samples=Object(s.mapGraphConfigSamplesToGraphConfigs)(e).filter((function(e){return!e.id||t.newConfig.id!==e.id||(t.revertConfig=e,!1)}))})).error((function(e){p.error(getError(e),b.instant("graphexplore.error.graph.configs"))}))},$={endpoint:function(){return"repositories/".concat(l.getActiveRepository())},showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showYasqeActionButtons:!1,yasqeActionButtons:i.INFERRED_AND_SAME_AS_BUTTONS_CONFIGURATION,showQueryButton:!1,initialQuery:" ",componentId:"graphs-config",render:o.RenderingMode.YASQE,maxPersistentResponseSize:0,showYasqeResizer:!1,yasqeMode:n.YasqeMode.PROTECTED,infer:t.newConfig.startQueryIncludeInferred,sameAs:t.newConfig.startQuerySameAs},U=function(e,r,n){t.queryIsRunning=e},H=function(){window.removeEventListener("beforeunload",F),z.forEach((function(e){return e()}))},F=function(e){t.queryEditorIsDirty&&(e.returnValue=!0)},W=function(){t.tabsViewModel=[{page:1,label:b.instant("starting.point.label"),type:"startGraphQuery"},{page:2,label:b.instant("graph.expansion"),type:"expandQuery"},{page:3,label:b.instant("node.basics"),type:"resourceQuery"},{page:4,label:b.instant("edge.basics"),type:"predicateLabelQuery"},{page:5,label:b.instant("node.extra"),type:"resourcePropertiesQuery"}]},z=[];z.push(_.onSelectedRepositoryIdUpdated((function(e){e?x.getNamespaces(e).then((function(e){t.repositoryNamespaces=e})).catch((function(e){var t=getError(e);p.error(t,b.instant("error.getting.namespaces.for.repo"))})):t.repositoryNamespaces=new u.NamespacesListModel}))),z.push(_.onAutocompleteEnabledUpdated((function(e){t.isAutocompleteEnabled=e}))),z.push(t.$on("$locationChangeStart",(function(e,r){if(t.queryEditorIsDirty){e.preventDefault();!function(e,t,r,n){E.openSimpleModal({title:e,message:t,warning:!0}).result.then((function(){angular.isFunction(r)&&r()}),(function(){angular.isFunction(n)&&n()}))}(b.instant("common.confirm"),b.instant("visual.config.warning.unsaved.changes"),(function(){H();var e=c.absUrl().length-c.url().length,t=r.substring(e);c.path(t)}))}else H()}))),z.push(t.$on("$destroy",H)),z.push(t.$watch(t.getActiveRepositoryObject,(function(){(t.newConfig.isStartMode(a.StartMode.QUERY)||t.page>1)&&(t.viewMode="yasr",P().then(D))}))),z.push(e.$on("$translateChangeSuccess",(function(){W()}))),window.addEventListener("beforeunload",F),t.$watch("newConfig.startMode",(function(e){e===a.StartMode.QUERY&&T()})),t.$watch("page",(function(e){(t.newConfig.isStartMode(a.StartMode.QUERY)||e>1)&&(t.showEditor(),T())})),W(),l.getPrefixes(C).then((function(e){return function(e){var r=t.$watch((function(){return t.getActiveRepositoryObject()}),(function(o){if(o){t.canEditActiveRepo=t.canWriteActiveRepo();var i=angular.extend({},$,{prefixes:e,yasqeMode:t.canWriteActiveRepo()?n.YasqeMode.WRITE:n.YasqeMode.PROTECTED});t.yasguiConfig=i,r()}}))}(e)})).finally((function(){return U(!1)})),S?(t.isUpdate=!0,g.getConfig(S).then((function(e){t.newConfig=e,q()})).catch((function(e){p.error(getError(e),b.instant("created.connector",{name:S}))}))):(t.isUpdate=!1,q()),t.getActiveRepository()&&(U(!0,b.instant("common.refreshing.namespaces"),b.instant("common.extra.message")),l.getPrefixes(l.getActiveRepository()).then((function(e){t.namespaces=e})).catch((function(e){t.repositoryError=getError(e)})).finally((function(){U(!1)})))}angular.module("graphdb.framework.graphexplore.controllers.graphviz.config",["graphdb.framework.utils.notifications","graphdb.framework.utils.localstorageadapter","graphdb.core.services.workbench-context","graphdb.framework.core.services.rdf4j.repositories"]).controller("GraphConfigCtrl",l),l.$inject=["$rootScope","$scope","$timeout","$location","toastr","$repositories","SparqlRestService","$filter","GraphConfigRestService","$routeParams","Notifications","LocalStorageAdapter","LSKeys","$translate","ModalService","WorkbenchContextService","RDF4JRepositoriesService"]}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[48,125,258,297,305,388],{104:function(e,t,r){"use strict";r.r(t),r.d(t,"RenderingMode",(function(){return n}));var n={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},115:function(e,t,r){"use strict";r.r(t),r.d(t,"YasqeMode",(function(){return n}));var n={WRITE:"WRITE",READ:"READ",PROTECTED:"PROTECTED"}},118:function(e,t){function r(e,t){return{showToastMessageWithDelay:function(r){return new Promise((function(n){e.success(t.instant(r)),setTimeout(n,300)}))}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",r),r.$inject=["toastr","$translate"]},138:function(e,t,r){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,a(n.key),n)}}function a(e){var t=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==n(t)?t:t+""}r.r(t),r.d(t,"StartMode",(function(){return s})),r.d(t,"GraphsConfig",(function(){return u}));var s={QUERY:"query",NODE:"node",SEARCH:"search"},u=function(){return e=function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.SEARCH,i=arguments.length>3?arguments[3]:void 0,a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],u=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],c=arguments.length>6?arguments[6]:void 0,f=arguments.length>7?arguments[7]:void 0,p=arguments.length>8?arguments[8]:void 0,h=arguments.length>9?arguments[9]:void 0,l=arguments.length>10?arguments[10]:void 0,d=arguments.length>11?arguments[11]:void 0,y=arguments.length>12?arguments[12]:void 0,g=arguments.length>13?arguments[13]:void 0,v=arguments.length>14?arguments[14]:void 0,m=arguments.length>15?arguments[15]:void 0,w=arguments.length>16?arguments[16]:void 0,Q=arguments.length>17?arguments[17]:void 0,b=arguments.length>18?arguments[18]:void 0,E=arguments.length>19?arguments[19]:void 0,_=arguments.length>20?arguments[20]:void 0;o(this,e),this._id=t,this._name=r,this._startMode=n,this._owner=i,this._startQueryIncludeInferred=a,this._startQuerySameAs=u,this._startGraphQuery=c,this._startIRI=f,this._startIRILabel=p,this._expandQuery=h,this._resourceQuery=l,this._predicateLabelQuery=d,this._resourcePropertiesQuery=y,this._shared=g,this._description=v,this._hint=m,this._startGraphQueryDescription=w,this._expandQueryDescription=Q,this._resourceQueryDescription=b,this._predicateLabelQueryDescription=E,this._resourcePropertiesQueryDescription=_},(t=[{key:"isStartMode",value:function(e){return this.startMode===e}},{key:"isDefaultGraph",value:function(){return"Minimal"===this.name||"Advanced"===this.name}},{key:"getPropertyDescription",value:function(e){return this["".concat(e,"Description")]}},{key:"getQueryType",value:function(e){var t;return this.isStartMode(s.QUERY)&&1===e?t=this.startGraphQuery:2===e?t=this.expandQuery:3===e?t=this.resourceQuery:4===e?t=this.predicateLabelQuery:5===e&&(t=this.resourcePropertiesQuery),t||""}},{key:"updateModel",value:function(e,t){return this.isStartMode(s.QUERY)&&1===t?this.startGraphQuery=e:2===t?this.expandQuery=e:3===t?this.resourceQuery=e:4===t?this.predicateLabelQuery=e:5===t&&(this.resourcePropertiesQuery=e),this}},{key:"toSavePayload",value:function(){return{id:this.id,name:this.name,startMode:this.startMode,owner:this.owner,startQueryIncludeInferred:this.startQueryIncludeInferred,startQuerySameAs:this.startQuerySameAs,startGraphQuery:this.startGraphQuery,startIRI:this.startIRI,startIRILabel:this.startIRILabel,expandQuery:this.expandQuery,resourceQuery:this.resourceQuery,predicateLabelQuery:this.predicateLabelQuery,resourcePropertiesQuery:this.resourcePropertiesQuery,shared:this.shared,description:this.description,hint:this.hint}}},{key:"id",get:function(){return this._id},set:function(e){this._id=e}},{key:"name",get:function(){return this._name},set:function(e){this._name=e}},{key:"startMode",get:function(){return this._startMode},set:function(e){this._startMode=e}},{key:"owner",get:function(){return this._owner},set:function(e){this._owner=e}},{key:"startQueryIncludeInferred",get:function(){return this._startQueryIncludeInferred},set:function(e){this._startQueryIncludeInferred=e}},{key:"startQuerySameAs",get:function(){return this._startQuerySameAs},set:function(e){this._startQuerySameAs=e}},{key:"startGraphQuery",get:function(){return this._startGraphQuery},set:function(e){this._startGraphQuery=e}},{key:"startIRI",get:function(){return this._startIRI},set:function(e){this._startIRI=e}},{key:"startIRILabel",get:function(){return this._startIRILabel},set:function(e){this._startIRILabel=e}},{key:"expandQuery",get:function(){return this._expandQuery},set:function(e){this._expandQuery=e}},{key:"resourceQuery",get:function(){return this._resourceQuery},set:function(e){this._resourceQuery=e}},{key:"predicateLabelQuery",get:function(){return this._predicateLabelQuery},set:function(e){this._predicateLabelQuery=e}},{key:"resourcePropertiesQuery",get:function(){return this._resourcePropertiesQuery},set:function(e){this._resourcePropertiesQuery=e}},{key:"shared",get:function(){return this._shared},set:function(e){this._shared=e}},{key:"description",get:function(){return this._description},set:function(e){this._description=e}},{key:"hint",get:function(){return this._hint},set:function(e){this._hint=e}},{key:"startGraphQueryDescription",get:function(){return this._startGraphQueryDescription},set:function(e){this._startGraphQueryDescription=e}},{key:"expandQueryDescription",get:function(){return this._expandQueryDescription},set:function(e){this._expandQueryDescription=e}},{key:"resourceQueryDescription",get:function(){return this._resourceQueryDescription},set:function(e){this._resourceQueryDescription=e}},{key:"predicateLabelQueryDescription",get:function(){return this._predicateLabelQueryDescription},set:function(e){this._predicateLabelQueryDescription=e}},{key:"resourcePropertiesQueryDescription",get:function(){return this._resourcePropertiesQueryDescription},set:function(e){this._resourcePropertiesQueryDescription=e}}])&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()},159:function(e,t,r){"use strict";r.r(t),r.d(t,"mapGraphsConfigResponseToModel",(function(){return o})),r.d(t,"mapGraphConfigSampleToGraphConfig",(function(){return i})),r.d(t,"mapGraphConfigSamplesToGraphConfigs",(function(){return a}));var n=r(138),o=function(e){return new n.GraphsConfig(e.id,e.name,e.startMode,e.owner,e.startQueryIncludeInferred,e.startQuerySameAs,e.startGraphQuery,e.startIRI,e.startIRILabel,e.expandQuery,e.resourceQuery,e.predicateLabelQuery,e.resourcePropertiesQuery,e.shared,e.description,e.hint)},i=function(e){return new n.GraphsConfig(e.id,e.name,e.startMode,e.owner,e.startQueryIncludeInferred,e.startQuerySameAs,e.startGraphQuery,e.startIRI,e.startIRILabel,e.expandQuery,e.resourceQuery,e.predicateLabelQuery,e.resourcePropertiesQuery,e.shared,e.description,e.hint,e.startGraphQueryDescription,e.expandQueryDescription,e.resourceQueryDescription,e.predicateLabelQueryDescription,e.resourcePropertiesQueryDescription)},a=function(e){return e.map((function(e){return i(e)}))}},303:function(e,t,r){"use strict";r.r(t);r(118),r(15),r(29);var n=r(115),o=r(104),i=r(27),a=r(138),s=r(159),u=r(11);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */f=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function p(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var i=t&&t.prototype instanceof m?t:m,a=Object.create(i.prototype),s=new D(n||[]);return o(a,"_invoke",{value:C(e,r,s)}),a}function l(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var d="suspendedStart",y="executing",g="completed",v={};function m(){}function w(){}function Q(){}var b={};p(b,a,(function(){return this}));var E=Object.getPrototypeOf,_=E&&E(E(G([])));_&&_!==r&&n.call(_,a)&&(b=_);var x=Q.prototype=m.prototype=Object.create(b);function I(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function r(o,i,a,s){var u=l(e[o],e,i);if("throw"!==u.type){var f=u.arg,p=f.value;return p&&"object"==c(p)&&n.call(p,"__await")?t.resolve(p.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(p).then((function(e){f.value=e,a(f)}),(function(e){return r("throw",e,a,s)}))}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function C(t,r,n){var o=d;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===g){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=R(s,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var c=l(t,r,n);if("normal"===c.type){if(o=n.done?g:"suspendedYield",c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=g,n.method="throw",n.arg=c.arg)}}}function R(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,R(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=l(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function G(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(c(t)+" is not iterable")}return w.prototype=Q,o(x,"constructor",{value:Q,configurable:!0}),o(Q,"constructor",{value:w,configurable:!0}),w.displayName=p(Q,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,Q):(e.__proto__=Q,p(e,u,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},I(S.prototype),p(S.prototype,s,(function(){return this})),t.AsyncIterator=S,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new S(h(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},I(x),p(x,u,"Generator"),p(x,a,(function(){return this})),p(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=G,D.prototype={constructor:D,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(k),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:G(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function p(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){p(i,n,o,a,s,"next",e)}function s(e){p(i,n,o,a,s,"throw",e)}a(void 0)}))}}function l(e,t,r,c,p,l,d,y,g,v,m,w,Q,b,E,_,x){var I;t.newConfig=new a.GraphsConfig,t.revertConfig=void 0,t.page=1,t.totalPages=5,t.helpHidden=1===w.get(Q.HIDE_GRAPH_CONFIG_HELP),t.isUpdate=!1,t.shared=!1,t.canEditActiveRepo=t.canWriteActiveRepo(),t.samples=[],t.tabConfig={inference:t.newConfig.startQueryIncludeInferred,sameAs:t.newConfig.startQuerySameAs},t.isAutocompleteEnabled=void 0,t.repositoryNamespaces=void 0,t.tabsViewModel=[];var S=v.configName,C=l.getActiveRepository();t.toggleHelp=function(e){void 0===e&&(e=w.get(Q.HIDE_GRAPH_CONFIG_HELP)),1!==e?(w.set(Q.HIDE_GRAPH_CONFIG_HELP,1),t.helpHidden=!0):(w.set(Q.HIDE_GRAPH_CONFIG_HELP,0),t.helpHidden=!1)},t.fixedVisualCallback=function(e,r){t.newConfig.startIRI=e,t.newConfig.startIRILabel=r,I=!0},t.isDefaultGraph=function(e){return e.isDefaultGraph()},t.isUserGraph=function(e){return!e.isDefaultGraph()},t.getSampleName=function(e,t){if(!e)return"";var r=e.getPropertyDescription(t);return r||(e.id?"Copy of "+e.name:e.name)},t.createGraphConfig=function(e){g.createGraphConfig(e).success(h(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,m.showToastMessageWithDelay("graphexplore.saved.new.config");case 2:c.url("graphs-visualizations");case 3:case"end":return e.stop()}}),e)})))).error((function(e){p.error(getError(e),b.instant("graphexplore.error.could.not.create"))}))},t.updateGraphConfig=function(e){g.updateGraphConfig(e).success(h(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,m.showToastMessageWithDelay("graphexplore.saved.config");case 2:c.url("graphs-visualizations");case 3:case"end":return e.stop()}}),e)})))).error((function(e){p.error(getError(e),b.instant("graphexplore.error.could.not.save"))}))},t.goToPage=function(e){t.page!==e&&P((function(){t.showEditor(),t.page=e}))},t.goToPreviousPage=function(){t.page>1&&t.goToPage(t.page-1),j()&&(I=!1)},t.goToNextPage=function(){Y(),t.newConfig.isStartMode(a.StartMode.NODE)&&!I||t.goToPage(t.page+1)},t.saveGraphConfig=function(){Y(),j()&&!I||(t.newConfig.startQueryIncludeInferred=t.tabConfig.inference,t.newConfig.startQuerySameAs=t.tabConfig.sameAs,t.newConfig.name&&(t.newConfig.name=t.newConfig.name.replace(/\s+/g," ").trim()),P((function(){t.newConfig.name?(t.queryEditorIsDirty=!1,t.isUpdate?t.updateGraphConfig(t.newConfig.toSavePayload()):t.createGraphConfig(t.newConfig.toSavePayload())):N(b.instant("graphexplore.provide.config.name"))})))},t.setQuery=function(){var e=h(f().mark((function e(r){var n;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r||" ",e.next=3,R();case 3:e.sent.setQuery(n),t.markDirty();case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),t.markDirty=h(f().mark((function e(){var r,n;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.revertConfig){e.next=6;break}return r=t.revertConfig.getQueryType(t.page),e.next=4,G();case 4:n=e.sent,t.queryEditorIsDirty=r!==n;case 6:case"end":return e.stop()}}),e)}))),t.showEditor=function(){t.viewMode="yasr",A(),D()},t.showPreview=function(){t.viewMode="editor",L()},t.revertEditor=function(){t.setQuery(t.revertConfig.getQueryType(t.page)),t.queryEditorIsDirty=!1};var R=function(){return i.YasguiComponentDirectiveUtil.getOntotextYasguiElementAsync("#query-editor")},L=function(){var e=h(f().mark((function e(r,n){var o,i;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return o=e.sent,e.next=5,o.getQueryType();case 5:if(i=e.sent,!n||"SELECT"===i||"CONSTRUCT"===i||"DESCRIBE"===i){e.next=9;break}return p.warning(b.instant("query.editor.warning.msg")),e.abrupt("return");case 9:return e.next=11,o.getQueryMode();case 11:if("update"!==e.sent){e.next=15;break}return p.warning(b.instant("cannot.execute.update.error")),e.abrupt("return");case 15:t.queryIsRunning||(t.viewMode="editor",k());case 16:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),k=function(){var e=h(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:e.sent.query(o.RenderingMode.YASR);case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),D=function(){var e=h(f().mark((function e(){var t;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return t=e.sent,e.abrupt("return",t.changeRenderMode(o.RenderingMode.YASQE));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),G=function(){var e=h(f().mark((function e(){var t;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return t=e.sent,e.abrupt("return",t.getQuery());case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),A=function(){var e=h(f().mark((function e(){var t;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return t=e.sent,e.abrupt("return",t.abortQuery());case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),M=function(){var e=h(f().mark((function e(){var r,n;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R();case 2:return r=e.sent,e.next=5,r.getQuery();case 5:return n=(n=e.sent).trim(),e.abrupt("return",t.newConfig.updateModel(n,t.page));case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),P=function(){var e=h(f().mark((function e(r){var n;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,M();case 2:n=e.sent,1===t.page?n.isStartMode(a.StartMode.NODE)&&!n.startIRI?N(b.instant("graphexplore.select.start.node")):n.isStartMode(a.StartMode.QUERY)&&!n.startGraphQuery?N(b.instant("graphexplore.provide.query")):n.isStartMode(a.StartMode.QUERY)?O(r,n.startGraphQuery,"graph"):r():2===t.page?O(r,n.expandQuery,"construct",["node"]):3===t.page?O(r,n.resourceQuery,"tuple",["node"],[],["type","label","comment","rank"]):4===t.page?O(r,n.predicateLabelQuery,"tuple",["edge"],["label"]):5===t.page&&O(r,n.resourcePropertiesQuery,"tuple",["node"],["property","value"]);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),T=function(){t.tabConfig.inference=t.newConfig.startQueryIncludeInferred,t.tabConfig.sameAs=t.newConfig.startQuerySameAs,t.setQuery(t.newConfig.getQueryType(t.page))},N=function(e){p.warning(e)},O=function(e,t,r,n,o,i){t?g.validateQuery(t,r,n,o,i).success((function(){e()})).error((function(e){N(getError(e))})):e()},Y=function(){j()&&t.$broadcast("addStartFixedNodeAutomatically",{startIRI:t.newConfig.startIRI})},j=function(){return 1===t.page&&t.newConfig.isStartMode(a.StartMode.NODE)},q=function(){g.getGraphConfigSamples().success((function(e){t.samples=Object(s.mapGraphConfigSamplesToGraphConfigs)(e).filter((function(e){return!e.id||t.newConfig.id!==e.id||(t.revertConfig=e,!1)}))})).error((function(e){p.error(getError(e),b.instant("graphexplore.error.graph.configs"))}))},$={endpoint:function(){return"repositories/".concat(l.getActiveRepository())},showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showYasqeActionButtons:!1,yasqeActionButtons:i.INFERRED_AND_SAME_AS_BUTTONS_CONFIGURATION,showQueryButton:!1,initialQuery:" ",componentId:"graphs-config",render:o.RenderingMode.YASQE,maxPersistentResponseSize:0,showYasqeResizer:!1,yasqeMode:n.YasqeMode.READ,infer:t.newConfig.startQueryIncludeInferred,sameAs:t.newConfig.startQuerySameAs},U=function(e,r,n){t.queryIsRunning=e},H=function(){window.removeEventListener("beforeunload",F),z.forEach((function(e){return e()}))},F=function(e){t.queryEditorIsDirty&&(e.returnValue=!0)},W=function(){t.tabsViewModel=[{page:1,label:b.instant("starting.point.label"),type:"startGraphQuery"},{page:2,label:b.instant("graph.expansion"),type:"expandQuery"},{page:3,label:b.instant("node.basics"),type:"resourceQuery"},{page:4,label:b.instant("edge.basics"),type:"predicateLabelQuery"},{page:5,label:b.instant("node.extra"),type:"resourcePropertiesQuery"}]},z=[];z.push(_.onSelectedRepositoryIdUpdated((function(e){e?x.getNamespaces(e).then((function(e){t.repositoryNamespaces=e})).catch((function(e){var t=getError(e);p.error(t,b.instant("error.getting.namespaces.for.repo"))})):t.repositoryNamespaces=new u.NamespacesListModel}))),z.push(_.onAutocompleteEnabledUpdated((function(e){t.isAutocompleteEnabled=e}))),z.push(t.$on("$locationChangeStart",(function(e,r){if(t.queryEditorIsDirty){e.preventDefault();!function(e,t,r,n){E.openSimpleModal({title:e,message:t,warning:!0}).result.then((function(){angular.isFunction(r)&&r()}),(function(){angular.isFunction(n)&&n()}))}(b.instant("common.confirm"),b.instant("visual.config.warning.unsaved.changes"),(function(){H();var e=c.absUrl().length-c.url().length,t=r.substring(e);c.path(t)}))}else H()}))),z.push(t.$on("$destroy",H)),z.push(t.$watch(t.getActiveRepositoryObject,(function(){(t.newConfig.isStartMode(a.StartMode.QUERY)||t.page>1)&&(t.viewMode="yasr",A().then(D))}))),z.push(e.$on("$translateChangeSuccess",(function(){W()}))),window.addEventListener("beforeunload",F),t.$watch("newConfig.startMode",(function(e){e===a.StartMode.QUERY&&T()})),t.$watch("page",(function(e){(t.newConfig.isStartMode(a.StartMode.QUERY)||e>1)&&(t.showEditor(),T())})),W(),l.getPrefixes(C).then((function(e){return function(e){var r=t.$watch((function(){return t.getActiveRepositoryObject()}),(function(o){if(o){t.canEditActiveRepo=t.canWriteActiveRepo();var i=angular.extend({},$,{prefixes:e,yasqeMode:t.canWriteActiveRepo()?n.YasqeMode.WRITE:n.YasqeMode.READ});t.yasguiConfig=i,r()}}))}(e)})).finally((function(){return U(!1)})),S?(t.isUpdate=!0,g.getConfig(S).then((function(e){t.newConfig=e,q()})).catch((function(e){p.error(getError(e),b.instant("created.connector",{name:S}))}))):(t.isUpdate=!1,q()),t.getActiveRepository()&&(U(!0,b.instant("common.refreshing.namespaces"),b.instant("common.extra.message")),l.getPrefixes(l.getActiveRepository()).then((function(e){t.namespaces=e})).catch((function(e){t.repositoryError=getError(e)})).finally((function(){U(!1)})))}angular.module("graphdb.framework.graphexplore.controllers.graphviz.config",["graphdb.framework.utils.notifications","graphdb.framework.utils.localstorageadapter","graphdb.core.services.workbench-context","graphdb.framework.core.services.rdf4j.repositories"]).controller("GraphConfigCtrl",l),l.$inject=["$rootScope","$scope","$timeout","$location","toastr","$repositories","SparqlRestService","$filter","GraphConfigRestService","$routeParams","Notifications","LocalStorageAdapter","LSKeys","$translate","ModalService","WorkbenchContextService","RDF4JRepositoriesService"]}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[480],{618:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="agent-list-component">\n <div class="agents-filter-dropdown btn-group" uib-dropdown>\n <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle">\n <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i>\n <span class="selected-filter">{{selectedAgentsFilter.label}}</span>\n <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i>\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="filterModel in agentListFilterModel">\n <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)"\n data-value="{{filterModel.label}}">\n {{filterModel.label}}\n </button>\n </li>\n </ul>\n </div>\n\n <div class="agent-list">\n <div ng-if="!agentList.agents.length" class="alert alert-warning">\n {{\'ttyg.agent.messages.no_agents\' | translate}}\n </div>\n\n <div ng-repeat="agent in agentList.filterableAgents">\n <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item"\n ng-class="{\'selected\': agent.id === selectedAgent.id}">\n <div class="agent-info">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n {{agent.repositoryId}}\n </div>\n </div>\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-agent-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openAgentActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right agent-actions-menu">\n <button class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)">\n <i class="fa fa-gear"></i>\n <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span>\n </button>\n <button class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)">\n <i class="fa fa-clone"></i>\n <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress"\n onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}"\n size="25"></div>\n </div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[480],{618:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="agent-list-component">\n <div class="agents-filter-dropdown btn-group" uib-dropdown>\n <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle">\n <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i>\n <span class="selected-filter">{{selectedAgentsFilter.label}}</span>\n <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i>\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="filterModel in agentListFilterModel">\n <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)"\n data-value="{{filterModel.label}}">\n {{filterModel.label}}\n </button>\n </li>\n </ul>\n </div>\n\n <div class="agent-list">\n <div ng-if="!agentList.agents.length" class="alert alert-warning">\n {{\'ttyg.agent.messages.no_agents\' | translate}}\n </div>\n\n <div ng-repeat="agent in agentList.filterableAgents">\n <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item"\n ng-class="{\'selected\': agent.id === selectedAgent.id}">\n <div class="agent-info">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n {{agent.repositoryId}}\n </div>\n </div>\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-agent-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openAgentActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right agent-actions-menu">\n <button class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)">\n <i class="fa fa-gear"></i>\n <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span>\n </button>\n <button class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)">\n <i class="fa fa-clone"></i>\n <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress"\n onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}"\n size="25"></div>\n </div>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[481],{619:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="btn-group agent-select-menu" uib-dropdown guide-selector="select-agent-dropdown">\n <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle guide-selector="select-agent-dropdown-toggle"\n ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + \' &middot; \' + selectedAgent.repositoryId) : null}}">\n <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span>\n <div ng-if="selectedAgent && !selectedAgent.isDeleted" class="selected-agent-option">\n <span class="agent-name" guide-selector="selected-agent">{{selectedAgent.name}}</span> &middot;\n <i ng-if="!selectedAgent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="selectedAgent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{selectedAgent.repositoryId}}</span>\n </div>\n <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning">\n <i class="fa fa-triangle-exclamation"></i>\n {{\'ttyg.agent.agent_select_menu.deleted_agent\' | translate}}\n </span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="single-button" guide-selector="select-agent-panel">\n <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item"\n ng-class="{\'selected\': agentOption.selected}"\n ng-attr-title="{{agentOption.label}} &middot; {{agentOption.data.agent.repositoryId}}">\n <a href="#"\n class="agent-option"\n ng-click="onAgentSelected(agentOption.data.agent)">\n <span class="agent-name">{{agentOption.label}}</span> &middot;\n <i ng-if="!agentOption.data.agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agentOption.data.agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span>\n </a>\n </li>\n </ul>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[481],{619:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="btn-group agent-select-menu" uib-dropdown guide-selector="select-agent-dropdown">\n <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle guide-selector="select-agent-dropdown-toggle"\n ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + \' &middot; \' + selectedAgent.repositoryId) : null}}">\n <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span>\n <div ng-if="selectedAgent && !selectedAgent.isDeleted" class="selected-agent-option">\n <span class="agent-name" guide-selector="selected-agent">{{selectedAgent.name}}</span> &middot;\n <i ng-if="!selectedAgent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="selectedAgent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{selectedAgent.repositoryId}}</span>\n </div>\n <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning">\n <i class="fa fa-triangle-exclamation"></i>\n {{\'ttyg.agent.agent_select_menu.deleted_agent\' | translate}}\n </span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="single-button" guide-selector="select-agent-panel">\n <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item"\n ng-class="{\'selected\': agentOption.selected}"\n ng-attr-title="{{agentOption.label}} &middot; {{agentOption.data.agent.repositoryId}}">\n <a href="#"\n class="agent-option"\n ng-click="onAgentSelected(agentOption.data.agent)">\n <span class="agent-name">{{agentOption.label}}</span> &middot;\n <i ng-if="!agentOption.data.agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agentOption.data.agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span>\n </a>\n </li>\n </ul>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[483],{621:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-item-details.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="chat-detail">\n <div class="user-message" ng-if="chatItemDetail.question">\n <div class="question alert-help"\n gdb-tooltip="{{ \'ttyg.chat_panel.labels.question_asked\' | translate : { date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n {{ chatItemDetail.question.message }}\n </div>\n </div>\n <div class="answers" ng-repeat="answer in chatItemDetail.answers">\n <div class="assistant">\n <div class="assistant-icon alert-help"\n gdb-tooltip="{{\'ttyg.chat_panel.labels.agent_name\' | translate : { agentName: agentNameByIdMap[chatItemDetail.agentId], date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n <i class="fa fa-lg fa-message-bot"></i>\n </div>\n <div class="assistant-message">\n <markdown-content class="answer" content="{{answer.message}}" options="markdownContentOptions"></markdown-content>\n <div class="actions" ng-class="{\'hidden-actions\': !explainResponseModel[answer.id].expanded && (!showActions || !$last)}">\n <button class="btn btn-link btn-sm regenerate-question-btn"\n ng-click="regenerateQuestion()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.regenerate.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_answer.tooltip"\n text-to-copy="{{answer.message}}"></copy-to-clipboard>\n <button class="btn btn-link btn-link-only-icons btn-sm explain-response-btn" guide-selector="explain-response-btn"\n ng-click="explainResponse(answer.id)"\n ng-disabled="disabled && !explainResponseModel[answer.id]"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.explain_response.tooltip\' | translate}}">\n <i class="fa fa-wand-magic-sparkles"></i>\n <i class="fa fa-chevron-up toggle-explain-response-icon"\n ng-class="{expanded: explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded}"></i>\n </button>\n </div>\n <div class="derived-answer-hint"\n ng-if="showActions && $last && explainResponseModel[answer.id].expanded">\n <div ng-bind-html="\'ttyg.chat_panel.btn.derive_answer.hint\' | translate | trustAsHtml"></div>\n <button class="btn btn-secondary deliver-answer-btn" ng-click="onAskHowAnswerWasDerived()" guide-selector="how-derive-answer-btn">\n {{ \'ttyg.chat_panel.btn.derive_answer.label\' | translate }}\n </button>\n </div>\n <div ng-if="loadingExplainResponse[answer.id]" onto-loader-new size="40"></div>\n <div class="explain-responses" ng-if="explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded">\n <div ng-if="!explainResponseModel[answer.id].queryMethods.items.length"\n class="explain-response">\n {{ \'ttyg.chat_panel.labels.explain_no_methods\' | translate }}\n </div>\n <div ng-if="explainResponseModel[answer.id].queryMethods.items"\n class="explain-response"\n ng-repeat="queryMethod in explainResponseModel[answer.id].queryMethods.items">\n <div class="explain-call">\n <div class="header" gdb-tooltip="">\n <div class="label">\n <span class="query-method" ng-bind-html="\'ttyg.chat_panel.labels.called\' | translate:{name: queryMethod.name} | trustAsHtml">\n </span>{{ \'ttyg.chat_panel.query_colon\' | translate }}\n <span class="query-method-details" ng-bind="(\'ttyg.chat_panel.query_desc.\' + queryMethod.name) | translate">\n </span>\n </div>\n <div ng-if="queryMethod.query" class="actions">\n <open-in-sparql-editor\n ng-if="queryMethod.queryType === ExplainQueryType.SPARQL"\n execute-query="{{!queryMethod.errorMessage}}"\n repository-id="{{repositoryId}}"\n query="{{queryMethod.query}}">\n </open-in-sparql-editor>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_{{ queryMethod.queryType }}.tooltip"\n text-to-copy="{{queryMethod.query}}"></copy-to-clipboard>\n </div>\n </div>\n <div class="query">\n <div ng-if="!queryMethod.query" class="mb-1">{{ \'ttyg.chat_panel.labels.no_query\' | translate }}</code></div>\n <pre ng-if="queryMethod.query"><code>{{queryMethod.query}}</code></pre>\n </div>\n <div ng-if="showRawQuery(queryMethod)" class="raw-query">\n <span class="label">{{\'ttyg.chat_panel.labels.raw_query\' | translate}}:</span>\n <span class="content">{{queryMethod.rawQuery}}</span>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_raw_query.tooltip"\n text-to-copy="{{queryMethod.rawQuery}}"></copy-to-clipboard>\n </div>\n <div ng-if="queryMethod.errorMessage" class="alert no-icon alert-warning error-message">\n <div class="error-header">\n <div class="label">{{\'ttyg.chat_panel.labels.error_message\' | translate}}:</div>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_error_message.tooltip"\n text-to-copy="{{queryMethod.errorMessage}}"></copy-to-clipboard>\n </div>\n <div class="error-content">{{queryMethod.errorMessage}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div ng-if="asking" onto-loader-new size="40" guide-selector="question-loader"></div>\n</div>\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[483],{621:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-item-details.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="chat-detail">\n <div class="user-message" ng-if="chatItemDetail.question">\n <div class="question alert-help"\n gdb-tooltip="{{ \'ttyg.chat_panel.labels.question_asked\' | translate : { date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n {{ chatItemDetail.question.message }}\n </div>\n </div>\n <div class="answers" ng-repeat="answer in chatItemDetail.answers">\n <div class="assistant">\n <div class="assistant-icon alert-help"\n gdb-tooltip="{{\'ttyg.chat_panel.labels.agent_name\' | translate : { agentName: agentNameByIdMap[chatItemDetail.agentId], date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n <i class="fa fa-lg fa-message-bot"></i>\n </div>\n <div class="assistant-message">\n <markdown-content class="answer" content="{{answer.message}}" options="markdownContentOptions"></markdown-content>\n <div class="actions" ng-class="{\'hidden-actions\': !explainResponseModel[answer.id].expanded && (!showActions || !$last)}">\n <button class="btn btn-link btn-sm regenerate-question-btn"\n ng-click="regenerateQuestion()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.regenerate.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_answer.tooltip"\n text-to-copy="{{answer.message}}"></copy-to-clipboard>\n <button class="btn btn-link btn-link-only-icons btn-sm explain-response-btn" guide-selector="explain-response-btn"\n ng-click="explainResponse(answer.id)"\n ng-disabled="disabled && !explainResponseModel[answer.id]"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.explain_response.tooltip\' | translate}}">\n <i class="fa fa-wand-magic-sparkles"></i>\n <i class="fa fa-chevron-up toggle-explain-response-icon"\n ng-class="{expanded: explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded}"></i>\n </button>\n </div>\n <div class="derived-answer-hint"\n ng-if="showActions && $last && explainResponseModel[answer.id].expanded">\n <div ng-bind-html="\'ttyg.chat_panel.btn.derive_answer.hint\' | translate | trustAsHtml"></div>\n <button class="btn btn-secondary deliver-answer-btn" ng-click="onAskHowAnswerWasDerived()" guide-selector="how-derive-answer-btn">\n {{ \'ttyg.chat_panel.btn.derive_answer.label\' | translate }}\n </button>\n </div>\n <div ng-if="loadingExplainResponse[answer.id]" onto-loader-new size="40"></div>\n <div class="explain-responses" ng-if="explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded">\n <div ng-if="!explainResponseModel[answer.id].queryMethods.items.length"\n class="explain-response">\n {{ \'ttyg.chat_panel.labels.explain_no_methods\' | translate }}\n </div>\n <div ng-if="explainResponseModel[answer.id].queryMethods.items"\n class="explain-response"\n ng-repeat="queryMethod in explainResponseModel[answer.id].queryMethods.items">\n <div class="explain-call">\n <div class="header" gdb-tooltip="">\n <div class="label">\n <span class="query-method" ng-bind-html="\'ttyg.chat_panel.labels.called\' | translate:{name: queryMethod.name} | trustAsHtml">\n </span>{{ \'ttyg.chat_panel.query_colon\' | translate }}\n <span class="query-method-details" ng-bind="(\'ttyg.chat_panel.query_desc.\' + queryMethod.name) | translate">\n </span>\n </div>\n <div ng-if="queryMethod.query" class="actions">\n <open-in-sparql-editor\n ng-if="queryMethod.queryType === ExplainQueryType.SPARQL"\n execute-query="{{!queryMethod.errorMessage}}"\n repository-id="{{repositoryId}}"\n query="{{queryMethod.query}}">\n </open-in-sparql-editor>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_{{ queryMethod.queryType }}.tooltip"\n text-to-copy="{{queryMethod.query}}"></copy-to-clipboard>\n </div>\n </div>\n <div class="query">\n <div ng-if="!queryMethod.query" class="mb-1">{{ \'ttyg.chat_panel.labels.no_query\' | translate }}</code></div>\n <pre ng-if="queryMethod.query"><code>{{queryMethod.query}}</code></pre>\n </div>\n <div ng-if="showRawQuery(queryMethod)" class="raw-query">\n <span class="label">{{\'ttyg.chat_panel.labels.raw_query\' | translate}}:</span>\n <span class="content">{{queryMethod.rawQuery}}</span>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_raw_query.tooltip"\n text-to-copy="{{queryMethod.rawQuery}}"></copy-to-clipboard>\n </div>\n <div ng-if="queryMethod.errorMessage" class="alert no-icon alert-warning error-message">\n <div class="error-header">\n <div class="label">{{\'ttyg.chat_panel.labels.error_message\' | translate}}:</div>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_error_message.tooltip"\n text-to-copy="{{queryMethod.errorMessage}}"></copy-to-clipboard>\n </div>\n <div class="error-content">{{queryMethod.errorMessage}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div ng-if="asking" onto-loader-new size="40" guide-selector="question-loader"></div>\n</div>\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[484],{622:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="chat-list-component">\n <div class="chat-list">\n <div ng-repeat="chatGroup in chatList.chatsByDay" class="chat-group">\n <label>{{ getHumanReadableChatGroupTimestamp(chatGroup.timestamp) }}</label>\n <ul>\n <li ng-repeat="chat in chatGroup.chats track by chat.hash" class="chat-item"\n ng-class="{\'selected\': chat.id === selectedChat.id, \'edited\': renamedChat && chat.id === renamedChat.id}">\n <div ng-if="!deletingChat || deletingChat.chatId !== chat.id" class="chat-detail">\n <div class="chat-name">\n <inline-editable-text\n field-name="name"\n source="chat"\n is-editing="chat.id && renamedChat && chat.id === renamedChat.id"\n on-save="onRenameChat(newText, source)"\n on-cancel="onCancelChatRenaming()"\n on-dblclick="onSelectChatForRenaming(chat)"\n on-click="onSelectChat(source)"\n title="{{chat.name}}"\n show-tooltip-on-overflow>\n </inline-editable-text>\n </div>\n <div ng-if="chat.id && (!renamedChat || chat.id !== renamedChat.id)" class="btn-group">\n <button class="btn btn-link secondary btn-sm open-chat-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openChatActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right chat-actions-menu">\n <button class="dropdown-item export-chat-btn" type="button" ng-click="onExportChat(chat)">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'ttyg.chat.btn.export_chat.label\' | translate}}</span>\n </button>\n <button class="dropdown-item rename-chat-btn" type="button" ng-click="onSelectChatForRenaming(chat)">\n <i class="fa fa-pen"></i>\n <span>{{\'ttyg.chat.btn.rename_chat.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-chat-btn" type="button" ng-click="onDeleteChat(chat)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.chat.btn.delete_chat.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-chat-loader" ng-if="deletingChat && deletingChat.chatId === chat.id && deletingChat.inProgress"\n onto-loader-fancy message="{{\'ttyg.chat.deleting_chat\' | translate}}"\n size="25"></div>\n </li>\n </ul>\n </div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[484],{622:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="chat-list-component">\n <div class="chat-list">\n <div ng-repeat="chatGroup in chatList.chatsByDay" class="chat-group">\n <label>{{ getHumanReadableChatGroupTimestamp(chatGroup.timestamp) }}</label>\n <ul>\n <li ng-repeat="chat in chatGroup.chats track by chat.hash" class="chat-item"\n ng-class="{\'selected\': chat.id === selectedChat.id, \'edited\': renamedChat && chat.id === renamedChat.id}">\n <div ng-if="!deletingChat || deletingChat.chatId !== chat.id" class="chat-detail">\n <div class="chat-name">\n <inline-editable-text\n field-name="name"\n source="chat"\n is-editing="chat.id && renamedChat && chat.id === renamedChat.id"\n on-save="onRenameChat(newText, source)"\n on-cancel="onCancelChatRenaming()"\n on-dblclick="onSelectChatForRenaming(chat)"\n on-click="onSelectChat(source)"\n title="{{chat.name}}"\n show-tooltip-on-overflow>\n </inline-editable-text>\n </div>\n <div ng-if="chat.id && (!renamedChat || chat.id !== renamedChat.id)" class="btn-group">\n <button class="btn btn-link secondary btn-sm open-chat-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openChatActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right chat-actions-menu">\n <button class="dropdown-item export-chat-btn" type="button" ng-click="onExportChat(chat)">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'ttyg.chat.btn.export_chat.label\' | translate}}</span>\n </button>\n <button class="dropdown-item rename-chat-btn" type="button" ng-click="onSelectChatForRenaming(chat)">\n <i class="fa fa-pen"></i>\n <span>{{\'ttyg.chat.btn.rename_chat.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-chat-btn" type="button" ng-click="onDeleteChat(chat)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.chat.btn.delete_chat.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-chat-loader" ng-if="deletingChat && deletingChat.chatId === chat.id && deletingChat.inProgress"\n onto-loader-fancy message="{{\'ttyg.chat.deleting_chat\' | translate}}"\n size="25"></div>\n </li>\n </ul>\n </div>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[485],{623:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=3.0.2-TR1" rel="stylesheet"/>\n\n<div class="chat-panel h-100" ng-class="chat.chatHistory.isEmpty() && !askingChatItem ? \'no-content\' : \'\'">\n\n <div class="chat-loading" ng-if="loadingChat" onto-loader-new size="40"></div>\n\n <div class="chat-details" ng-class="{\'hidden\': !chat}" ng-if="!loadingChat && !chat.chatHistory.isEmpty() || askingChatItem" guide-selector="chat-details">\n <div ng-repeat="chatItemDetail in chat.chatHistory.items" guide-selector="chat-item">\n\n \x3c!-- Before the first chat item is displayed, show the agent change info if the agent of the first response is different from the selected agent. --\x3e\n \x3c!-- <div class="alert alert-info agent-changed-info" ng-if="$first && selectedAgent && chatItemDetail.agentId !== selectedAgent.id"--\x3e\n \x3c!-- ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | trnaslate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">--\x3e\n \x3c!-- </div>--\x3e\n\n \x3c!-- Before each chat item, except the first one, is displayed, show the agent change info if the currently used agent is different from the previous one. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="!$first && chatItemDetail.agentId !== chat.chatHistory.items[$index - 1].agentId"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">\n </div>\n\n <chat-item-detail\n chat-item-detail="chatItemDetail"\n show-actions="!waitingForLastMessage && $last"\n on-regenerate-question="regenerateQuestion(chatItem)"\n on-copy-answer-to-clipboard="copyAnswerToClipboard(chatItem)"\n on-ask-how-delivered-answer="onAskHowDeliveredAnswer(chatItem)"\n asking="!askingChatItem && waitingForLastMessage && $last"\n disabled="waitingForLastMessage">\n </chat-item-detail>\n </div>\n\n \x3c!-- After all chat items are displayed, show the agent change info if the selected agent is different from the one used in the last chat item. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="askingChatItem && selectedAgent && chat.chatHistory.items.length && chat.chatHistory.items[chat.chatHistory.items.length -1].agentId !== selectedAgent.id"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(selectedAgent.id)} | trustAsHtml">\n </div>\n <chat-item-detail ng-if="askingChatItem" chat-item-detail="askingChatItem"\n asking="!!askingChatItem"></chat-item-detail>\n </div>\n <div class="new-question mt-3 d-flex" ng-if="!loadingChat" guide-selector="question-box">\n <input class="form-control question-input" ng-model="chatItem.question.message" type="text" guide-selector="question-input"\n ng-disabled="loadingChat || !selectedAgent || selectedAgent.isDeleted"\n ng-keypress="onKeypressOnInput($event)">\n <button class="btn btn-primary ask-button" guide-selector="question-ask"\n ng-disabled="!chatItem.question.message || !selectedAgent || selectedAgent.isDeleted || waitingForLastMessage || loadingChat"\n ng-click="ask()">\n <i class="fa fa-arrow-turn-left-up"></i>\n {{ \'ttyg.chat_panel.btn.ask.label \' | translate }}\n </button>\n </div>\n\n <div class="messages-hint text-muted" ng-if="!loadingChat && chat.chatHistory.isEmpty() && !waitingForLastMessage" ng-cloak>\n <div class="hint2" ng-bind="\'ttyg.chat_panel.hint2\' | translate"></div>\n <div class="hint1" ng-bind-html="\'ttyg.chat_panel.hint1\' | translate | trustAsHtml"></div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[485],{623:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="chat-panel h-100" ng-class="chat.chatHistory.isEmpty() && !askingChatItem ? \'no-content\' : \'\'">\n\n <div class="chat-loading" ng-if="loadingChat" onto-loader-new size="40"></div>\n\n <div class="chat-details" ng-class="{\'hidden\': !chat}" ng-if="!loadingChat && !chat.chatHistory.isEmpty() || askingChatItem" guide-selector="chat-details">\n <div ng-repeat="chatItemDetail in chat.chatHistory.items" guide-selector="chat-item">\n\n \x3c!-- Before the first chat item is displayed, show the agent change info if the agent of the first response is different from the selected agent. --\x3e\n \x3c!-- <div class="alert alert-info agent-changed-info" ng-if="$first && selectedAgent && chatItemDetail.agentId !== selectedAgent.id"--\x3e\n \x3c!-- ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | trnaslate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">--\x3e\n \x3c!-- </div>--\x3e\n\n \x3c!-- Before each chat item, except the first one, is displayed, show the agent change info if the currently used agent is different from the previous one. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="!$first && chatItemDetail.agentId !== chat.chatHistory.items[$index - 1].agentId"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">\n </div>\n\n <chat-item-detail\n chat-item-detail="chatItemDetail"\n show-actions="!waitingForLastMessage && $last"\n on-regenerate-question="regenerateQuestion(chatItem)"\n on-copy-answer-to-clipboard="copyAnswerToClipboard(chatItem)"\n on-ask-how-delivered-answer="onAskHowDeliveredAnswer(chatItem)"\n asking="!askingChatItem && waitingForLastMessage && $last"\n disabled="waitingForLastMessage">\n </chat-item-detail>\n </div>\n\n \x3c!-- After all chat items are displayed, show the agent change info if the selected agent is different from the one used in the last chat item. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="askingChatItem && selectedAgent && chat.chatHistory.items.length && chat.chatHistory.items[chat.chatHistory.items.length -1].agentId !== selectedAgent.id"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(selectedAgent.id)} | trustAsHtml">\n </div>\n <chat-item-detail ng-if="askingChatItem" chat-item-detail="askingChatItem"\n asking="!!askingChatItem"></chat-item-detail>\n </div>\n <div class="new-question mt-3 d-flex" ng-if="!loadingChat" guide-selector="question-box">\n <input class="form-control question-input" ng-model="chatItem.question.message" type="text" guide-selector="question-input"\n ng-disabled="loadingChat || !selectedAgent || selectedAgent.isDeleted"\n ng-keypress="onKeypressOnInput($event)">\n <button class="btn btn-primary ask-button" guide-selector="question-ask"\n ng-disabled="!chatItem.question.message || !selectedAgent || selectedAgent.isDeleted || waitingForLastMessage || loadingChat"\n ng-click="ask()">\n <i class="fa fa-arrow-turn-left-up"></i>\n {{ \'ttyg.chat_panel.btn.ask.label \' | translate }}\n </button>\n </div>\n\n <div class="messages-hint text-muted" ng-if="!loadingChat && chat.chatHistory.isEmpty() && !waitingForLastMessage" ng-cloak>\n <div class="hint2" ng-bind="\'ttyg.chat_panel.hint2\' | translate"></div>\n <div class="hint1" ng-bind-html="\'ttyg.chat_panel.hint1\' | translate | trustAsHtml"></div>\n </div>\n</div>\n';return __p}}}]);