graphdb-workbench 1.10.0 → 1.11.0-TR1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/113.2c059fa7d06fd04149eb.bundle.js +1 -1
- package/dist/113.2c059fa7d06fd04149eb.bundle.js.map +1 -1
- package/dist/{14.c7175f400470b470e034.bundle.js → 14.f54e86c6c14979405fa0.bundle.js} +2 -2
- package/dist/{14.c7175f400470b470e034.bundle.js.map → 14.f54e86c6c14979405fa0.bundle.js.map} +1 -1
- package/dist/{15.ee6ee4d2bfb39e3a3463.bundle.js → 15.42e5580cb96eefbb1f0b.bundle.js} +2 -2
- package/dist/15.42e5580cb96eefbb1f0b.bundle.js.map +1 -0
- package/dist/{16.4f2dd5523c959e251803.bundle.js → 16.01bd96cfd64f6b616999.bundle.js} +2 -2
- package/dist/{16.4f2dd5523c959e251803.bundle.js.map → 16.01bd96cfd64f6b616999.bundle.js.map} +1 -1
- package/dist/20.5678adc34fb429524c27.bundle.js +2 -0
- package/dist/20.5678adc34fb429524c27.bundle.js.map +1 -0
- package/dist/22.93d86caa997992a46006.bundle.js +1 -1
- package/dist/22.93d86caa997992a46006.bundle.js.map +1 -1
- package/dist/28.bbe49746541a2419b9a7.bundle.js +1 -1
- package/dist/28.bbe49746541a2419b9a7.bundle.js.map +1 -1
- package/dist/30.5ed60b4ae0a67956c66b.bundle.js +1 -1
- package/dist/30.5ed60b4ae0a67956c66b.bundle.js.map +1 -1
- package/dist/{31.c145115d59bf2f02f5b5.bundle.js → 31.55ec940532c5c198ee2a.bundle.js} +2 -2
- package/dist/31.55ec940532c5c198ee2a.bundle.js.map +1 -0
- package/dist/36.53cea4c4866328aef1aa.bundle.js +2 -0
- package/dist/36.53cea4c4866328aef1aa.bundle.js.map +1 -0
- package/dist/37.571a0ab8fb0508c3f1fe.bundle.js +1 -1
- package/dist/37.571a0ab8fb0508c3f1fe.bundle.js.map +1 -1
- package/dist/38.c611acd72558ca546c47.bundle.js +1 -1
- package/dist/38.c611acd72558ca546c47.bundle.js.map +1 -1
- package/dist/{87.0fed97d34d3e2f8af810.bundle.js → 87.27e343cd04a808d56135.bundle.js} +2 -2
- package/dist/87.27e343cd04a808d56135.bundle.js.map +1 -0
- package/dist/{90.fce1495e881075936e99.bundle.js → 90.aa5ea8b430a1404b2dbf.bundle.js} +2 -2
- package/dist/{90.fce1495e881075936e99.bundle.js.map → 90.aa5ea8b430a1404b2dbf.bundle.js.map} +1 -1
- package/dist/91.d13fc0367803e8d0aab5.bundle.js +2 -0
- package/dist/91.d13fc0367803e8d0aab5.bundle.js.map +1 -0
- package/dist/{bundle.8b4973d79f7cc6941a9e.bundle.js → bundle.80fd0b52981f2d638a9b.bundle.js} +4 -4
- package/dist/bundle.80fd0b52981f2d638a9b.bundle.js.map +1 -0
- package/dist/index.html +3 -3
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/clusterInfo.html +1 -1
- package/dist/pages/create-index.html +5 -5
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +29 -17
- package/dist/pages/graphs-visualizations.html +13 -13
- package/dist/pages/import.html +1 -1
- package/dist/pages/jdbc-create.html +7 -7
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +2 -2
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +2 -2
- package/dist/pages/repository.html +2 -2
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-template-create.html +7 -7
- package/dist/pages/sparql.html +3 -3
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger/index.html +25 -25
- package/package.json +1 -1
- package/dist/15.ee6ee4d2bfb39e3a3463.bundle.js.map +0 -1
- package/dist/20.f2a27fe43402d1da5e2d.bundle.js +0 -2
- package/dist/20.f2a27fe43402d1da5e2d.bundle.js.map +0 -1
- package/dist/31.c145115d59bf2f02f5b5.bundle.js.map +0 -1
- package/dist/36.466f06017a4f9d2277fb.bundle.js +0 -2
- package/dist/36.466f06017a4f9d2277fb.bundle.js.map +0 -1
- package/dist/87.0fed97d34d3e2f8af810.bundle.js.map +0 -1
- package/dist/91.bfc9e9776b5b89e08668.bundle.js +0 -2
- package/dist/91.bfc9e9776b5b89e08668.bundle.js.map +0 -1
- package/dist/bundle.8b4973d79f7cc6941a9e.bundle.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[20,43,49,90,96,104],{117:function(e,t,r){"use strict";r.r(t);r(2),r(7),r(13),r(76),r(78),r(79),r(35),r(33),r(34);angular.module("graphdb.framework.similarity",["graphdb.framework.core.controllers","graphdb.framework.core.directives","graphdb.framework.rest.similarity.service","graphdb.framework.similarity.controllers.create","graphdb.framework.similarity.controllers.list","graphdb.framework.core.directives.queryeditor.controllers","graphdb.framework.core.directives.queryeditor.sparqltab","graphdb.framework.core.directives.queryeditor.queryeditor"])},31:function(e,t){function r(e){return{showToastMessageWithDelay:function(t){return new Promise(r=>{e.success(t),setTimeout(r,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",r),r.$inject=["toastr"]},35:function(e,t,r){"use strict";r.r(t);r(4);function n(e,t,r,n){return{restrict:"AE",template:'<a class="nav-link" role="tab" data-toggle="tab" blur="submit" editable-text="tab.name" e-form="editCurrentlySelectedOnly" ng-click="selectThisTab($event)" ng-dblclick="editCurrentTab()" ><span ng-class="{\'text-muted\': !tab.name}">{{ tab.name || \'Unnamed\'}}</span><button type="button" ng-click="deleteTab($event)" class="btn btn-link btn-sm secondary delete-sparql-tab-btn" title="Delete tab"><i class="icon-close"></i></button></a>',replace:!0,controller:["$scope","$element","$rootScope","ModalService","toastr",function(e,n,i,a,o){function s(e){return $(e).attr("data-id")}function c(e){$('a[data-id = "'+e+'"]').tab("show")}e.state={},$(n).on("shown.bs.tab",(function(e){i.$broadcast("tabAction",e)})),e.deleteTab=function(u){if(u.preventDefault(),u.stopPropagation(),e.tabs.length<2)return void o.warning("Last tab must remain open.");u.shiftKey?(e.state.selectedTabId=s(n),a.openSimpleModal({title:"Confirm",message:"Are you sure you want to delete all query tabs except selected tab?",warning:!0}).result.then((function(){var n;n=e.state.selectedTabId,e.tabs=e.tabs.filter((function(e){if(e.id===n)return e})),c(e.tabs[0].id),t.set(r.TABS_STATE,e.tabs),i.$broadcast("deleteAllexeptSelected",e.tabs)}))):(e.state.idForDelete=s(n),a.openSimpleModal({title:"Confirm",message:"Are you sure you want to close this query tab?",warning:!0}).result.then((function(){!function(t){if(angular.isUndefined(t))throw"Delete by id was called with undefined id";const r=function(t){for(let r=0;r<e.tabs.length;r++){if(e.tabs[r].id===t)return r}}(t);e.tabs.splice(r,1),t===e.currentQuery.id&&e.tabs.length>0&&c(r>0?e.tabs[r-1].id:e.tabs[0].id)}(e.state.idForDelete)})));angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.editCurrentTab=function(){if(s(n)!==e.currentQuery.id)return;e.editCurrentlySelectedOnly.$show();const t=$(".editable-buttons");t.children(".btn.btn-primary").addClass("btn-sm"),t.children(".btn.btn-default").addClass("btn-sm"),$(".editable-controls .editable-input").addClass("form-control-sm").on("change",(function(t){e.currentQuery.name=t.currentTarget.$$currentValue})),$(".editable-buttons .glyphicon.glyphicon-ok").removeClass("glyphicon glyphicon-ok").addClass("fa fa-check"),$(".editable-buttons .glyphicon.glyphicon-remove").removeClass("glyphicon glyphicon-remove").addClass("fa fa-close")},e.selectThisTab=function(t){t.preventDefault(),t.stopPropagation(),e.isTabChangeOk(!1)&&$(n).tab("show")}}]}}angular.module("graphdb.framework.core.directives.queryeditor.sparqltab",["graphdb.framework.core","graphdb.framework.utils.localstorageadapter"]).directive("sparqlTab",n),n.$inject=["$rootScope","LocalStorageAdapter","LSKeys","ModalService"]},76:function(e,t){angular.module("graphdb.framework.rest.similarity.service",[]).factory("SimilarityRestService",n),n.$inject=["$http","$repositories"];const r="rest/similarity";function n(e){return{getIndexes:function(){return e.get(r)},getSearchQueries:function(){return e.get(`${r}/config`)},rebuildIndex:function(e){return t("PUT",e.name,e.options,e.selectQuery,e.searchQuery,e.analogicalQuery,e.stopList,e.infer,e.sameAs,e.type)},deleteIndex:function(t){return e.delete(`${r}?name=${t.name}`)},createIndex:t,getSamples:function(){return e.get(`${r}/samples`)},getQuery:function(t){return e.get("rest/similarity/query",{params:{name:t.indexName,options:t.indexOptions,stopList:t.indexStopList,selectQuery:t.query,infer:t.queryInference,sameAs:t.querySameAs,type:t.viewType,analyzer:t.indexAnalyzer}})},saveSearchQuery:function(t){return e({method:"put",url:"rest/similarity/search-query",data:t})}};function t(t,n,i,a,o,s,c,u,l,d,y){return e({method:t,url:`${r}`,noCancelOnRouteChange:!0,data:{name:n,options:i,selectQuery:a,stopList:c,infer:u,sameAs:l,type:d,analyzer:y,searchQuery:o,analogicalQuery:s}})}}},78:function(e,t,r){"use strict";r.r(t);var n=r(207),i=r.n(n);function a(e,t,r,n,a,o,s,c,u,l){const d="http://www.ontotext.com/graphdb/similarity/",y="http://www.ontotext.com/graphdb/similarity/psi/",p=y+"any",g=function(e){return'"'+e+'"'},f=function(e){return void 0===e||e.startsWith("<<")&&e.endsWith(">>")?e:"<"+e+">"};function m(){return!e.getActiveRepository()||e.isActiveRepoFedXType()||e.isActiveRepoOntopType()}e.info=u,e.pluginDisabled=!1,e.getActiveRepository=function(){return n.getActiveRepository()},e.checkPluginEnabled=function(){m()||l.checkSimilarityPluginEnabled().done((function(t){e.pluginDisabled=t.indexOf("false")>0})).fail((function(e){r.error(getError(e),"Could not check plugin enabled!")}))},e.enabledSimilarityPlugin=function(){l.enableSimilarityPlugin().done((function(){e.pluginDisabled=!1,e.getSimilarityIndexes()})).fail((function(e){r.error(getError(e),"Could not enable plugin!")}))},m()||s.getSearchQueries().success((function(t){e.searchQueries=t})).error((function(e){const t=getError(e);r.error(t,"Could not get search queries")})),e.encodeURIComponent=function(e){return encodeURIComponent(e)},e.getSimilarityIndexes=function(){m()||e.pluginDisabled||s.getIndexes().success((function(t){e.similarityIndexes=t})).error((function(e){const t=getError(e);r.error(t,"Could not get indexes")}))},e.pullList=function(){if(m()||e.pluginDisabled)return;e.getSimilarityIndexes();const r=t((function(){"false"!==$("#indexes-table").attr("aria-expanded")&&e.getSimilarityIndexes()}),5e3);e.$on("$destroy",(function(){t.cancel(r)}))};const h=e.$on("repositoryIsSet",(function(){e.checkPluginEnabled(),e.pullList()}));let w;function b(){e.getAutocompletePromise=c.checkAutocompleteStatus()}e.getActiveRepository()&&(e.checkPluginEnabled(),e.pullList()),e.$watch((function(){return n.getActiveRepository()}),(function(){!e.getActiveRepository()||e.isActiveRepoOntopType()||e.isActiveRepoFedXType()||(e.getNamespacesPromise=l.getNamespaces(e.getActiveRepository()).success((function(t){b(),e.usedPrefixes={},t.results.bindings.forEach((function(t){e.usedPrefixes[t.prefix.value]=t.namespace.value})),w=i()(document.getElementById("yasr"),{getUsedPrefixes:e.usedPrefixes,persistency:!1,hideHeader:!0})})).error((function(e){r.error(getError(e),"Cannot get namespaces for repository. View will not work properly;")})))})),e.$on("autocompleteStatus",(function(){b()})),e.loading=!1,e.selected=void 0,e.searchType="searchTerm",e.resultType="termResult",e.$watch("searchType",(function(){e.empty=!0})),e.goToSimilarityIndex=function(t){"BUILT"!==t.status&&"OUTDATED"!==t.status&&"REBUILDING"!==t.status||(e.empty=!0,e.selected!==t&&(e.lastSearch=void 0,e.selected=t),"text"===t.type?e.searchType="searchTerm":"predication"===t.type&&(e.searchType="searchEntity"),"text"!==t.type&&"predication"!==t.type||$("#indexes-table").collapse("hide"))};const x=function(t){const r=angular.element(document.getElementById("yasr-inner")),n=angular.element(document.getElementById("results-loader"));t?(e.loading=!0,r.addClass("opacity-hide"),n.removeClass("opacity-hide")):(e.loading=!1,r.removeClass("opacity-hide"),n.addClass("opacity-hide"))};e.performSearch=function(t,i,a,o,s){x(!0);let c=i;e.lastSearch={},e.lastSearch.type=a,"searchEntityPredicate"===a&&(c=e.psiSubject,e.lastSearch.predicate=i),c="searchTerm"===a?g(c):f(c),e.lastSearch.termOrSubject=c;let u;u="searchAnalogical"===a?e.selected.analogicalQuery?e.selected.analogicalQuery:e.searchQueries.analogical:e.selected.searchQuery?e.selected.searchQuery:e.searchQueries[e.selected.type];const l={query:u,$index:f("http://www.ontotext.com/graphdb/similarity/instance/"+t),$query:c,$searchType:f(("text"===e.selected.type?d:y)+("searchEntityPredicate"===a?"searchEntity":a)),$resultType:f("text"===e.selected.type?d+o:y+"entityResult"),$parameters:g(s)};"searchEntityPredicate"===a&&(l.$psiPredicate=e.lastSearch.predicate?f(e.lastSearch.predicate):f(p)),"searchAnalogical"===a&&(e.searchSubject=i,l.$givenSubject=f(e.analogicalSubject),l.$givenObject=f(e.analogicalObject),l.$searchSubject=f(i)),$.ajax({method:"GET",url:"repositories/"+n.getActiveRepository(),data:l,headers:{Accept:"application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8"}}).done((function(e,t,r){x(!1),w.setResponse(e,t,r)})).fail((function(e){r.error(getError(e),"Could not get resource!"),x(!1)}))},e.viewSearchQuery=function(){let t;t="searchAnalogical"===e.lastSearch.type?e.selected.analogicalQuery?e.selected.analogicalQuery:e.searchQueries.analogical:e.selected.searchQuery?e.selected.searchQuery:e.searchQueries[e.selected.type];const r=t.replace("?index","inst:"+e.selected.name).replace("?query",e.lastSearch.termOrSubject).replace("?searchType",("text"===e.selected.type?":":"psi:")+("searchEntityPredicate"===e.lastSearch.type?"searchEntity":e.lastSearch.type)).replace("?resultType","text"===e.selected.type?":"+e.resultType:"psi:entityResult").replace("?parameters",g(e.searchParameters?e.searchParameters:"")).replace("?psiPredicate",e.lastSearch.predicate?f(e.lastSearch.predicate):f(p)).replace("?givenSubject",f(e.analogicalSubject)).replace("?givenObject",f(e.analogicalObject)).replace("?searchSubject",f(e.searchSubject));o.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return r}}})},e.deleteIndex=function(t){a.openSimpleModal({title:"Confirm",message:"Are you sure you want to delete the index '"+t.name+"'?",warning:!0}).result.then((function(){s.deleteIndex(t).then((function(){e.getSimilarityIndexes()}),(function(e){r.error(getError(e))}))}))},e.viewCreateQuery=function(e){s.getQuery({indexName:e.name,indexOptions:e.options,query:e.selectQuery,indexStopList:e.stopList,queryInference:e.infer,querySameAs:e.sameAs,viewType:e.type,indexAnalyzer:e.analyzer}).success((function(e){o.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return e}}})}))},e.rebuildIndex=function(t){t.searchQuery||(t.searchQuery=t.type?e.searchQueries[t.type]:e.searchQueries.text),a.openSimpleModal({title:"Confirm",message:"Are you sure you want to rebuild the whole index '"+t.name+"'?<br>You will still be able to use the latest successful build!",warning:!0}).result.then((function(){t.status="REBUILDING",s.rebuildIndex(t).then((function(e){}),(function(e){r.error(getError(e))}))}))},e.copyToClipboardResult=function(e){a.openCopyToClipboardModal(e)},e.trimIRI=function(e){return _.trim(e,"<>")},window.addEventListener("beforeunload",(function e(){h(),window.removeEventListener("beforeunload",e)}))}angular.module("graphdb.framework.similarity.controllers.list",[]).controller("SimilarityCtrl",a),a.$inject=["$scope","$interval","toastr","$repositories","ModalService","$modal","SimilarityRestService","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService"]},79:function(e,t,r){"use strict";r.r(t);r(31),r(4);function n(e,t,r,n,i,a,o,s,c,u,l,d){const y=o.search().type;void 0===y||y.startsWith("text")?e.viewType="text":e.viewType=y;e.newIndex={},e.info=s,e.page=1;const p={id:"1",name:"",query:"",inference:!0,sameAs:!0};const g=function(){var r;if(e.editSearchQuery=o.search().editSearchQuery,e.page=e.editSearchQuery?2:1,e.newIndex.name=(r=o.search().name)?1!==e.page?r:"Copy_of_"+r:"",e.newIndex.options=o.search().options?o.search().options:"text"===e.viewType?"-termweight idf":"",e.searchQueries&&(e.newIndex.searchQuery=o.search().searchQuery?o.search().searchQuery:e.searchQueries[e.viewType],"predication"===e.viewType&&(e.newIndex.analogicalQuery=o.search().analogicalQuery?o.search().analogicalQuery:e.searchQueries.analogical)),e.editSearchQuery)e.currentQuery.query=e.newIndex.searchQuery,e.notoolbarInference=!0,e.notoolbarSameAs=!0,window.editor&&e.setQuery(e.newIndex.searchQuery);else{if("text"===e.viewType&&e.allSamples){e.samples=e.allSamples.text,e.newIndex.stopList=o.search().stopList?o.search().stopList:void 0,e.newIndex.analyzer=o.search().analyzer?o.search().analyzer:"org.apache.lucene.analysis.en.EnglishAnalyzer";const t=w("-literal_index");void 0!==t&&(e.newIndex.isLiteralIndex=t),window.editor&&e.setQuery(e.samples.literals)}"predication"===e.viewType&&e.allSamples&&(i.getIndexes().success((function(t){if(e.literalIndexes=["no-index"].concat(t.filter((function(e){return"textLiteral"===e.type&&("BUILT"===e.status||"OUTDATED"===e.status)})).map((function(e){return e.name}))),void 0===e.newIndex.inputIndex){const t=w("-input_index");if(void 0!==t)for(let r=0;r<e.literalIndexes.length;r++)t===e.literalIndexes[r]&&(e.newIndex.inputIndex=e.literalIndexes[r])}void 0===e.newIndex.inputIndex&&(e.newIndex.inputIndex=e.literalIndexes[0])})).error((function(e){const r=getError(e);t.error(r,"Could not get indexes")})),e.samples=e.allSamples.predication,window.editor&&e.setQuery(e.samples.predication))}},f=new RegExp("^[a-zA-Z0-9-_]+$"),m=function(){return e.invalidIndexName=!1,e.saveQueries(),e.newIndex.name?f.test(e.newIndex.name)?e.newIndex.query?e.newIndex.searchQuery?"predication"!==e.viewType||e.newIndex.analogicalQuery?"SELECT"===window.editor.getQueryType()||void t.error("Similarity index requires SELECT queries."):(t.error("Analogical query cannot be empty."),!1):(t.error("Search query cannot be empty."),!1):(t.error("Select query cannot be empty."),!1):(e.invalidIndexName='Index name can contain only letters (a-z, A-Z), numbers (0-9), "-" and "_"',!1):(e.invalidIndexName="Index name cannot be empty",!1)},h=function(t,r){e.newIndex.options=e.newIndex.options+(""===e.newIndex.options?"":" ")+t+" "+r};function w(t){const r=e.newIndex.options.split(" ");for(let n=0;n<r.length;n++)if(r[n]===t&&n+1<r.length){const t=r[n+1];return delete r[n],delete r[n+1],e.newIndex.options=r.join(" "),t}}function b(e){}function x(t,r,n){const i=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=t,t?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=r,e.extraMessage=n,i.addClass("hide")):(e.progressMessage="",e.extraMessage="",i.removeClass("hide")),null===e.$$phase&&e.$apply()}function S(t){function r(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0}const i=t;if(e.orientationViewMode){if("yasr"===e.viewMode){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px"}else e.noPadding={},document.querySelector(".CodeMirror-wrap").style.height="";document.getElementById("yasr").style.minHeight=""}else if(e.noPadding={paddingRight:15,paddingLeft:0},window.editor&&document.querySelector(".CodeMirror-wrap")){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px",document.getElementById("yasr").style.minHeight=e+"px"}else{let t;t=n(i?function(){e.fixSizesOnHorizontalViewModeSwitch(i)}:e.fixSizesOnHorizontalViewModeSwitch,100),e.$on("$destroy",(function(){n.cancel(t)}))}window.yasr&&window.yasr.container&&n((function(){window.yasr.container.resize()}),100)}function I(){S(!0)}function v(e){n((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function Q(r,n){e.executedQueryTab=e.currentQuery,"SELECT"===window.editor.getQueryType()?n&&"SELECT"!==window.editor.getQueryType()?t.warning("Explain only works with SELECT queries."):"update"!==window.editor.getQueryMode()?(e.explainRequested=n,e.queryIsRunning||(r?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.viewMode="editor",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch(),x(!0,"Evaluating query"),window.editor.query())):t.warning("Cannot execute updates from this editor."):t.error("Similarity indexes work only with SELECT queries.")}function T(){x(!0,"Refreshing namespaces","Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first."),u.getRepositoryNamespaces().success((function(t){const r={};t.results.bindings.forEach((function(e){r[e.prefix.value]=e.namespace.value})),e.namespaces=r})).error((function(t){e.repositoryError=getError(t)})).finally((function(){x(!1)}))}function C(){a.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){const r=getError(e);return t.error(r,"Error! Could not add known prefixes"),!0}))}function q(t){let r=void 0;return angular.forEach(e.tabsData,(function(e){if(e.name===t.name&&e.query===t.body)return r=e.id,e})),r}function E(){e.tabsData=[e.currentQuery];const t=e.currentQuery;null===e.currentQuery.query||""===e.currentQuery.query?window.editor.setValue(" "):window.editor.setValue(e.currentQuery.query||" "),n((function(){e.currentTabConfig={},e.currentTabConfig.queryType=t.queryType,e.currentTabConfig.resultsCount=t.resultsCount,e.currentTabConfig.offset=t.offset,e.currentTabConfig.allResultsCount=t.allResultsCount,e.currentTabConfig.page=t.page,e.currentTabConfig.pageSize=t.pageSize,e.currentTabConfig.timeFinished=t.timeFinished,e.currentTabConfig.timeTook=t.timeTook,e.currentTabConfig.sizeDelta=t.sizeDelta,e.$apply()}),0),$("#yasr").css("padding","0")}function A(e){return $(e).attr("data-id")}i.getSearchQueries().success((function(t){e.searchQueries=t,i.getSamples().success((function(t){p.query=o.search().selectQuery?o.search().selectQuery:t.text.literals,p.inference=!("false"===o.search().infer),p.sameAs=!("false"===o.search().sameAs),e.tabsData=e.tabs=[p],e.currentQuery=angular.copy(p),e.allSamples=t,g()}))})).error((function(e){const r=getError(e);t.error(r,"Could not get search queries")})),e.$watch("viewType",(function(){g()})),e.helpHidden=1===l.get(d.HIDE_SIMILARITY_HELP),e.toggleHelp=function(t){void 0===t&&(t=l.get(d.HIDE_SIMILARITY_HELP)),1!==t?(l.set(d.HIDE_SIMILARITY_HELP,1),e.helpHidden=!0):(l.set(d.HIDE_SIMILARITY_HELP,0),e.helpHidden=!1)},e.viewQuery=function(){m()&&i.getQuery({indexName:e.newIndex.name,indexOptions:e.newIndex.options,query:e.currentQuery.query,indexStopList:e.newIndex.stopList,queryInference:e.currentQuery.inference,querySameAs:e.currentQuery.sameAs,viewType:e.viewType,indexAnalyzer:e.newIndex.analyzer}).success((function(e){e&&r.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return e}}})}))},e.$watch("newIndex.name",(function(){e.isInvalidIndexName=!1,e.isEmptyIndexName=!1})),e.saveQueries=function(){const t=window.editor.getValue().trim();1===e.page?e.newIndex.query=t:2===e.page?e.newIndex.searchQuery=t:3===e.page&&(e.newIndex.analogicalQuery=t)},e.goToPage=function(t){1!==t&&"yasr"!==e.viewMode&&(e.showEditor(),n((function(){2===t&&(e.currentQuery.query=e.newIndex.searchQuery),3===t&&(e.currentQuery.query=e.newIndex.analogicalQuery),window.editor.setValue(e.currentQuery.query||" ")}))),e.saveQueries(),1===t?e.currentQuery.query=e.newIndex.query:2===t?e.currentQuery.query=e.newIndex.searchQuery:3===t&&(e.currentQuery.query=e.newIndex.analogicalQuery),E(),e.notoolbar=1!==t,e.page=t},e.createIndex=function(){m()&&i.getIndexes().success((function(r){if(r.forEach((function(t){t.name===e.newIndex.name&&(e.invalidIndexName="Index with this name already exists.")})),!e.invalidIndexName){let r=e.viewType;if(void 0!==e.literalIndexes){const t=e.newIndex.inputIndex;t!==e.literalIndexes[0]&&h("-input_index",t)}"true"===e.newIndex.isLiteralIndex&&(h("-literal_index","true"),r="textLiteral"),i.createIndex("POST",e.newIndex.name,e.newIndex.options,e.newIndex.query,e.newIndex.searchQuery,e.newIndex.analogicalQuery,e.newIndex.stopList,e.currentQuery.inference,e.currentQuery.sameAs,r,e.newIndex.analyzer).error((function(e){t.error(getError(e),"Could not create index")})),o.url("similarity")}})).error((function(e){const r=getError(e);t.error(r,"Could not get indexes")}))},e.setQuery=function(e){window.editor.setValue(e||" ")},e.showEditor=function(){window.editor.xhr&&window.editor.xhr.abort(),e.viewMode="yasr"},e.showPreview=function(){e.currentQuery.outputType="table",e.runQuery()},e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:100,page:1,allResultsCount:0,resultsCount:0}},e.queryExists=!1,e.resetCurrentTabConfig(),e.tabsData=e.tabs=[p],e.saveTab=function(t){const r=function(t){for(let r=0;r<e.tabsData.length;r++){if(e.tabsData[r].id===t)return r}}(t);if(void 0===r)return{};const n=e.tabsData[r];return e.saveQueryToLocal(n),n},e.loadTab=E,e.addNewTab=function(e,t,r){},e.runQuery=Q,e.getNamespaces=T,e.changePagination=function(){Q(!0,e.explainRequested)},e.toggleSampleQueries=function(){},e.addKnownPrefixes=C,e.getExistingTabId=q,e.querySelected=function(t){const r=q(t);e.toggleSampleQueries(),angular.isDefined(r)?v(r):e.addNewTab(null,t.name,t.body)},e.saveQueryToLocal=b,e.setLoader=x,e.getLoaderMessage=function(){const t=(Date.now()-e.queryStartTime)/1e3,r=e.getHumanReadableSeconds(t);let n="";n=e.progressMessage?e.progressMessage+"... "+r:"Running operation..."+r;e.extraMessage&&t>10&&(n+="\n"+e.extraMessage);return n},e.fixSizesOnHorizontalViewModeSwitch=S,e.changeViewMode=function(t){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,S(),$(".dataTables_filter").remove(),$(".resultsTable").remove(),n((function(){E(),v(t)}),100)},e.showHideEditor=I,e.focusQueryEditor=function(){angular.element(document).find(".editable-input").is(":focus")||angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.orientationViewMode=!0,e.getActiveRepository(),e.orientationViewMode||I(),e.getActiveRepository()&&T(),e.$on("$destroy",(function(){window.editor=null,window.yasr=null})),$("textarea").on("paste",(function(){n((function(){C()}),0)})),e.$watchCollection("[currentQuery.inference, currentQuery.sameAs]",(function(){e.currentQuery})),e.$on("tabAction",(function(t,r){r.relatedTarget&&e.saveTab(A(r.relatedTarget)),e.loadTab(A(r.target))})),e.$on("deleteAllexeptSelected",(function(t,r){e.tabsData=r,e.tabs=r})),e.currentQuery=angular.copy(p),e.showSampleQueries=!1,e.savedQuery={},e.sampleQueries={},e.getResultsDescription=function(){},e.getUpdateDescription=function(){},e.getStaleWarningMessage=function(){},e.saveSearchQuery=function(){if("SELECT"!==window.editor.getQueryType())return void t.error("Similarity index requires SELECT queries.");let r={name:e.newIndex.name,changedQuery:e.currentQuery.query,isSearchQuery:2===e.page};return i.saveSearchQuery(JSON.stringify(r)).then((async function(){await c.showToastMessageWithDelay(2===e.page?"Changed search query":"Changed analogical query"),o.url("similarity")}),(function(e){t.error(getError(e),"Could not change query!")}))},e.getCloseBtnMsg=function(){return"Closes "+(e.editSearchQuery?"query edition":"index creation")+" without saving the changes."}}angular.module("graphdb.framework.similarity.controllers.create",["graphdb.framework.utils.notifications","graphdb.framework.utils.localstorageadapter"]).controller("CreateSimilarityIdxCtrl",n),n.$inject=["$scope","toastr","$modal","$timeout","SimilarityRestService","SparqlRestService","$location","productInfo","Notifications","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys"]}}]);
|
|
2
|
+
//# sourceMappingURL=20.5678adc34fb429524c27.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/similarity/app.js","webpack:///./src/js/angular/utils/notifications.js","webpack:///./src/js/angular/core/directives/queryeditor/sparql-tab.directive.js","webpack:///./src/js/angular/rest/similarity.rest.service.js","webpack:///./src/js/angular/similarity/controllers/similarity-list.controller.js","webpack:///./src/js/angular/similarity/controllers/create-index.controller.js"],"names":["angular","module","Notifications","toastr","showToastMessageWithDelay","message","Promise","r","success","setTimeout","factory","$inject","sparqlTabDirective","$rootScope","LocalStorageAdapter","LSKeys","ModalService","restrict","template","replace","controller","$scope","$element","getQueryID","element","$","attr","selectTab","id","tab","state","on","e","$broadcast","deleteTab","preventDefault","stopPropagation","tabs","length","warning","shiftKey","selectedTabId","openSimpleModal","title","result","then","filter","obj","set","TABS_STATE","idForDelete","isUndefined","idx","i","findTabIndexByID","splice","currentQuery","deleteTabByID","document","find","focus","editCurrentTab","editCurrentlySelectedOnly","$show","$editableButtons","children","addClass","$el","name","currentTarget","$$currentValue","removeClass","selectThisTab","isTabChangeOk","directive","SimilarityRestService","SIMILARITY_ENDPOINT","$http","getIndexes","get","getSearchQueries","rebuildIndex","index","createIndex","options","selectQuery","searchQuery","analogicalQuery","stopList","infer","sameAs","type","deleteIndex","delete","getSamples","getQuery","data","params","indexName","indexOptions","indexStopList","query","queryInference","querySameAs","viewType","analyzer","indexAnalyzer","saveSearchQuery","method","url","noCancelOnRouteChange","SimilarityCtrl","$interval","$repositories","$modal","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService","PREFIX","PREFIX_PREDICATION","ANY_PREDICATE","literalForQuery","literal","iriForQuery","iri","undefined","startsWith","endsWith","shouldSkipCall","getActiveRepository","isActiveRepoFedXType","isActiveRepoOntopType","info","pluginDisabled","checkPluginEnabled","checkSimilarityPluginEnabled","done","indexOf","fail","error","getError","enabledSimilarityPlugin","enableSimilarityPlugin","getSimilarityIndexes","searchQueries","msg","encodeURIComponent","param","similarityIndexes","pullList","timer","$on","cancel","repoIsSetListener","yasr","checkAutocompleteStatus","getAutocompletePromise","$watch","getNamespacesPromise","getNamespaces","usedPrefixes","results","bindings","forEach","prefix","value","namespace","getElementById","getUsedPrefixes","persistency","hideHeader","loading","selected","searchType","resultType","empty","goToSimilarityIndex","status","lastSearch","collapse","toggleOntoLoader","showLoader","yasrInnerContainer","resultsLoader","performSearch","uri","parameters","termOrSubject","psiSubject","predicate","sparqlQuery","sendData","$index","$query","$searchType","$resultType","$parameters","$psiPredicate","searchSubject","$givenSubject","analogicalSubject","$givenObject","analogicalObject","$searchSubject","ajax","headers","Accept","textStatus","jqXhrOrErrorString","setResponse","viewSearchQuery","queryTemplate","replacedQuery","searchParameters","open","templateUrl","resolve","err","viewCreateQuery","text","res","copyToClipboardResult","openCopyToClipboardModal","trimIRI","_","trim","window","addEventListener","removeRepoIsSetListener","removeEventListener","CreateSimilarityIdxCtrl","$timeout","SparqlRestService","$location","indexType","search","newIndex","page","defaultTabConfig","inference","initForViewType","indexNameFromLocation","editSearchQuery","notoolbarInference","notoolbarSameAs","editor","setQuery","allSamples","samples","isLiteralIndex","getAndRemoveOption","literalIndexes","concat","map","inputIndex","desiredIdx","j","filenamePattern","RegExp","validateIndex","invalidIndexName","saveQueries","test","getQueryType","appendOption","option","key","optArr","split","join","saveQueryToLocal","currentQueryTab","setLoader","isRunning","progressMessage","extraMessage","queryIsRunning","queryStartTime","Date","now","countTimeouted","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalViewParam","visibleWindowHeight","innerHeight","documentElement","clientHeight","body","verticalView","orientationViewMode","viewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","container","resize","showHideEditor","runQuery","changePage","explain","executedQueryTab","getQueryMode","explainRequested","currentTabConfig","resultsCount","resetCurrentTabConfig","getRepositoryNamespaces","namespaces","repositoryError","finally","addKnownPrefixes","JSON","stringify","getValue","isDefined","setValue","getExistingTabId","existingTabId","tabsData","item","loadTab","queryType","offset","allResultsCount","pageSize","timeFinished","timeTook","sizeDelta","css","copy","helpHidden","HIDE_SIMILARITY_HELP","toggleHelp","viewQuery","isInvalidIndexName","isEmptyIndexName","goToPage","showEditor","notoolbar","xhr","abort","showPreview","outputType","queryExists","saveTab","addNewTab","callback","tabName","savedQuery","changePagination","toggleSampleQueries","querySelected","tabId","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","tabID","remove","focusQueryEditor","is","$watchCollection","tabEvent","relatedTarget","target","showSampleQueries","sampleQueries","getResultsDescription","getUpdateDescription","getStaleWarningMessage","changedQuery","isSearchQuery","async","response","getCloseBtnMsg"],"mappings":"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","file":"20.5678adc34fb429524c27.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/controllers';\nimport 'angular/rest/similarity.rest.service';\nimport 'angular/similarity/controllers/similarity-list.controller';\nimport 'angular/similarity/controllers/create-index.controller';\nimport 'angular/core/directives/queryeditor/sparql-tab.directive';\nimport 'angular/core/directives/queryeditor/query-editor.controller';\nimport 'angular/core/directives/queryeditor/query-editor.directive';\n\nangular.module('graphdb.framework.similarity', [\n 'graphdb.framework.core.controllers',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.rest.similarity.service',\n 'graphdb.framework.similarity.controllers.create',\n 'graphdb.framework.similarity.controllers.list',\n 'graphdb.framework.core.directives.queryeditor.controllers',\n 'graphdb.framework.core.directives.queryeditor.sparqltab',\n 'graphdb.framework.core.directives.queryeditor.queryeditor'\n]);\n","angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr'];\n\nfunction Notifications(toastr) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success(message);\n setTimeout(r, 200);\n });\n }\n}\n","import 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.core.directives.queryeditor.sparqltab', [\n 'graphdb.framework.core',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .directive('sparqlTab', sparqlTabDirective);\n\nsparqlTabDirective.$inject = ['$rootScope', 'LocalStorageAdapter', 'LSKeys', 'ModalService'];\n\nfunction sparqlTabDirective($rootScope, LocalStorageAdapter, LSKeys, ModalService) {\n const SparqlTabCtrl = ['$scope', '$element', '$rootScope', 'ModalService', 'toastr', function ($scope, $element, $rootScope, ModalService, toastr) {\n $scope.state = {};\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabs.length; i++) {\n const tab = $scope.tabs[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $($element).on('shown.bs.tab', function (e) {\n $rootScope.$broadcast('tabAction', e);\n });\n\n $scope.deleteTab = deleteTab;\n $scope.editCurrentTab = editCurrentTab;\n $scope.selectThisTab = selectThisTab;\n\n function selectThisTab(e) {\n e.preventDefault();\n e.stopPropagation();\n if ($scope.isTabChangeOk(false)) {\n $($element).tab('show');\n }\n }\n\n function selectTab(id) {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }\n\n function deleteTab(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if ($scope.tabs.length < 2) {\n toastr.warning('Last tab must remain open.');\n return;\n }\n\n if (e.shiftKey) {\n $scope.state.selectedTabId = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to delete all query tabs except selected tab?',\n warning: true\n }).result.then(function () {\n deleteAllTabsExceptSelected($scope.state.selectedTabId);\n });\n } else {\n $scope.state.idForDelete = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to close this query tab?',\n warning: true\n }).result.then(function () {\n deleteTabByID($scope.state.idForDelete);\n });\n }\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n\n function editCurrentTab() {\n if (getQueryID($element) !== $scope.currentQuery.id) {\n return;\n }\n $scope.editCurrentlySelectedOnly.$show();\n //fix for buttons for edit\n const $editableButtons = $(\".editable-buttons\");\n $editableButtons.children(\".btn.btn-primary\").addClass('btn-sm');\n $editableButtons.children(\".btn.btn-default\").addClass('btn-sm');\n $('.editable-controls .editable-input').addClass('form-control-sm').on('change', function ($el) {\n $scope.currentQuery.name = $el.currentTarget.$$currentValue;\n });\n //$('.editable-buttons').css('margin-top', '5px');\n //$('.editable-input.editable-has-buttons').css('width', '50%');\n $('.editable-buttons .glyphicon.glyphicon-ok')\n .removeClass('glyphicon glyphicon-ok')\n .addClass('fa fa-check');\n $('.editable-buttons .glyphicon.glyphicon-remove')\n .removeClass('glyphicon glyphicon-remove')\n .addClass('fa fa-close');\n }\n\n function deleteTabByID(id) {\n if (angular.isUndefined(id)) {\n throw 'Delete by id was called with undefined id';\n }\n const idx = findTabIndexByID(id);\n $scope.tabs.splice(idx, 1);\n\n if (id === $scope.currentQuery.id) {\n if ($scope.tabs.length > 0) {\n if (idx > 0) {\n // select previous tab if we deleted any but the first tab\n selectTab($scope.tabs[idx - 1].id);\n } else {\n // select first tab if we deleted the first tab\n selectTab($scope.tabs[0].id);\n }\n }\n }\n }\n\n function deleteAllTabsExceptSelected(id) {\n $scope.tabs = $scope.tabs.filter(function (obj) {\n if (obj.id === id) {\n return obj;\n }\n });\n selectTab($scope.tabs[0].id);\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n $rootScope.$broadcast('deleteAllexeptSelected', $scope.tabs);\n }\n }];\n\n return {\n restrict: 'AE',\n // for some reason when you extract this template in a file and use templateUrl it selects all tabs when editing the tab name, not only the currently selected one\n template: '<a class=\"nav-link\" role=\"tab\" data-toggle=\"tab\" blur=\"submit\" editable-text=\"tab.name\" e-form=\"editCurrentlySelectedOnly\" ng-click=\"selectThisTab($event)\" ng-dblclick=\"editCurrentTab()\" ><span ng-class=\"{\\'text-muted\\': !tab.name}\">{{ tab.name || \\'Unnamed\\'}}</span><button type=\"button\" ng-click=\"deleteTab($event)\" class=\"btn btn-link btn-sm secondary delete-sparql-tab-btn\" title=\"Delete tab\"><i class=\"icon-close\"></i></button></a>',\n replace: true,\n controller: SparqlTabCtrl\n };\n}\n","angular\n .module('graphdb.framework.rest.similarity.service', [])\n .factory('SimilarityRestService', SimilarityRestService);\n\nSimilarityRestService.$inject = ['$http', '$repositories'];\n\nconst SIMILARITY_ENDPOINT = 'rest/similarity';\n\nfunction SimilarityRestService($http) {\n\n return {\n getIndexes,\n getSearchQueries,\n rebuildIndex,\n deleteIndex,\n createIndex,\n getSamples,\n getQuery,\n saveSearchQuery\n };\n\n function getIndexes() {\n return $http.get(SIMILARITY_ENDPOINT);\n }\n\n function getSamples() {\n return $http.get(`${SIMILARITY_ENDPOINT}/samples`);\n }\n\n function getSearchQueries() {\n return $http.get(`${SIMILARITY_ENDPOINT}/config`);\n }\n\n function createIndex(method, name, options, selectQuery, searchQuery, analogicalQuery, stopList, infer, sameAs, type, analyzer) {\n return $http({\n method,\n url: `${SIMILARITY_ENDPOINT}`,\n noCancelOnRouteChange: true,\n data: {\n name,\n options,\n selectQuery,\n stopList,\n infer,\n sameAs,\n type,\n analyzer,\n searchQuery,\n analogicalQuery\n }\n }\n );\n }\n\n function rebuildIndex(index) {\n return createIndex('PUT', index.name, index.options, index.selectQuery, index.searchQuery, index.analogicalQuery, index.stopList, index.infer, index.sameAs, index.type);\n }\n\n function deleteIndex(index) {\n return $http.delete(`${SIMILARITY_ENDPOINT}?name=${index.name}`);\n }\n\n function getQuery(data) {\n return $http.get('rest/similarity/query',\n {\n params: {\n name: data.indexName,\n options: data.indexOptions,\n stopList: data.indexStopList,\n selectQuery: data.query,\n infer: data.queryInference,\n sameAs: data.querySameAs,\n type: data.viewType,\n analyzer: data.indexAnalyzer\n }\n });\n }\n\n function saveSearchQuery(data) {\n return $http({\n method: 'put',\n url: 'rest/similarity/search-query',\n data\n });\n }\n}\n","import YASR from 'lib/yasr.bundled';\n\nangular\n .module('graphdb.framework.similarity.controllers.list', [])\n .controller('SimilarityCtrl', SimilarityCtrl);\n\nSimilarityCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', 'ModalService', '$modal', 'SimilarityRestService', 'AutocompleteRestService', 'productInfo', 'RDF4JRepositoriesRestService'];\n\nfunction SimilarityCtrl($scope, $interval, toastr, $repositories, ModalService, $modal, SimilarityRestService, AutocompleteRestService, productInfo, RDF4JRepositoriesRestService) {\n\n const PREFIX = 'http://www.ontotext.com/graphdb/similarity/';\n const PREFIX_PREDICATION = 'http://www.ontotext.com/graphdb/similarity/psi/';\n const PREFIX_INSTANCE = PREFIX + 'instance/';\n const ANY_PREDICATE = PREFIX_PREDICATION + 'any';\n\n const literalForQuery = function (literal) {\n return '\"' + literal + '\"';\n };\n\n // TODO: Fix cases when this function is called with undefined\n const iriForQuery = function (iri) {\n // Do not put brackets on nested triples\n if (iri === undefined || iri.startsWith(\"<<\") && iri.endsWith(\">>\")) {\n return iri;\n }\n return '<' + iri + '>';\n };\n\n $scope.info = productInfo;\n $scope.pluginDisabled = false;\n\n $scope.getActiveRepository = function () {\n return $repositories.getActiveRepository();\n };\n\n $scope.checkPluginEnabled = function () {\n if (shouldSkipCall()) {\n return;\n }\n RDF4JRepositoriesRestService.checkSimilarityPluginEnabled()\n .done(function (data) {\n $scope.pluginDisabled = data.indexOf('false') > 0;\n })\n .fail(function (data) {\n toastr.error(getError(data), 'Could not check plugin enabled!');\n });\n };\n\n $scope.enabledSimilarityPlugin = function () {\n RDF4JRepositoriesRestService.enableSimilarityPlugin()\n .done(function () {\n $scope.pluginDisabled = false;\n $scope.getSimilarityIndexes();\n })\n .fail(function (data) {\n toastr.error(getError(data), 'Could not enable plugin!');\n });\n };\n\n // Don't call functions if one of the following conditions are met\n function shouldSkipCall() {\n return !$scope.getActiveRepository() ||\n $scope.isActiveRepoFedXType() ||\n $scope.isActiveRepoOntopType();\n }\n\n if (!shouldSkipCall()) {\n SimilarityRestService.getSearchQueries().success(function (data) {\n $scope.searchQueries = data;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get search queries');\n });\n }\n\n $scope.encodeURIComponent = function (param) {\n return encodeURIComponent(param);\n };\n\n // get similarity indexes\n $scope.getSimilarityIndexes = function () {\n if (shouldSkipCall() || $scope.pluginDisabled) {\n return;\n }\n SimilarityRestService.getIndexes()\n .success(function (data) {\n $scope.similarityIndexes = data;\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get indexes');\n });\n };\n\n $scope.pullList = function () {\n if (shouldSkipCall() || $scope.pluginDisabled) {\n return;\n }\n $scope.getSimilarityIndexes();\n const timer = $interval(function () {\n if ($('#indexes-table').attr('aria-expanded') !== 'false') {\n $scope.getSimilarityIndexes();\n }\n }, 5000);\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n };\n\n // Check if warning message should be shown or removed on repository change\n const repoIsSetListener = $scope.$on('repositoryIsSet', function () {\n $scope.checkPluginEnabled();\n $scope.pullList();\n });\n if ($scope.getActiveRepository()) {\n $scope.checkPluginEnabled();\n $scope.pullList();\n }\n\n let yasr;\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n // Don't try to get namespaces for ontop or fedx repository\n if ($scope.getActiveRepository() && !$scope.isActiveRepoOntopType() && !$scope.isActiveRepoFedXType()) {\n $scope.getNamespacesPromise = RDF4JRepositoriesRestService.getNamespaces($scope.getActiveRepository())\n .success(function (data) {\n checkAutocompleteStatus();\n $scope.usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n $scope.usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n yasr = YASR(document.getElementById('yasr'), { // eslint-disable-line new-cap\n //this way, the URLs in the results are prettified using the defined prefixes\n getUsedPrefixes: $scope.usedPrefixes,\n persistency: false,\n hideHeader: true\n });\n }).error(function (data) {\n toastr.error(getError(data), 'Cannot get namespaces for repository. View will not work properly;');\n });\n }\n });\n\n function checkAutocompleteStatus() {\n $scope.getAutocompletePromise = AutocompleteRestService.checkAutocompleteStatus();\n }\n\n $scope.$on('autocompleteStatus', function() {\n checkAutocompleteStatus();\n });\n\n $scope.loading = false;\n\n $scope.selected = undefined;\n $scope.searchType = 'searchTerm';\n $scope.resultType = 'termResult';\n\n $scope.$watch('searchType', function () {\n $scope.empty = true;\n });\n\n $scope.goToSimilarityIndex = function (index) {\n if (!('BUILT' === index.status || 'OUTDATED' === index.status || 'REBUILDING' === index.status)) {\n return;\n }\n $scope.empty = true;\n if ($scope.selected !== index) {\n $scope.lastSearch = undefined;\n $scope.selected = index;\n }\n if (index.type === 'text') {\n $scope.searchType = 'searchTerm';\n } else if (index.type === 'predication') {\n $scope.searchType = 'searchEntity';\n }\n if (index.type === 'text' || index.type === 'predication') {\n $('#indexes-table').collapse('hide');\n }\n };\n\n const toggleOntoLoader = function (showLoader) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n const resultsLoader = angular.element(document.getElementById('results-loader'));\n /* Angular b**it. For some reason the loader behaved strangely with ng-show not always showing */\n if (showLoader) {\n $scope.loading = true;\n yasrInnerContainer.addClass('opacity-hide');\n resultsLoader.removeClass('opacity-hide');\n } else {\n $scope.loading = false;\n yasrInnerContainer.removeClass('opacity-hide');\n resultsLoader.addClass('opacity-hide');\n }\n };\n\n $scope.performSearch = function (index, uri, searchType, resultType, parameters) {\n\n toggleOntoLoader(true);\n\n // this is either the search term or the iri for the subject\n let termOrSubject = uri;\n\n $scope.lastSearch = {};\n $scope.lastSearch.type = searchType;\n\n if (searchType === 'searchEntityPredicate') {\n termOrSubject = $scope.psiSubject;\n $scope.lastSearch.predicate = uri;\n }\n\n if (searchType === 'searchTerm') {\n termOrSubject = literalForQuery(termOrSubject);\n } else {\n termOrSubject = iriForQuery(termOrSubject);\n }\n\n $scope.lastSearch.termOrSubject = termOrSubject;\n\n const headers = {Accept: 'application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8'};\n let sparqlQuery;\n if (searchType === 'searchAnalogical') {\n sparqlQuery = ($scope.selected.analogicalQuery) ? $scope.selected.analogicalQuery : $scope.searchQueries['analogical'];\n } else {\n sparqlQuery = ($scope.selected.searchQuery) ? $scope.selected.searchQuery : $scope.searchQueries[$scope.selected.type];\n }\n const sendData = {\n query: sparqlQuery,\n $index: iriForQuery(PREFIX_INSTANCE + index),\n $query: termOrSubject,\n $searchType: iriForQuery(($scope.selected.type === 'text' ? PREFIX : PREFIX_PREDICATION) + (searchType === 'searchEntityPredicate' ? 'searchEntity' : searchType)),\n $resultType: iriForQuery($scope.selected.type === 'text' ? PREFIX + resultType : PREFIX_PREDICATION + 'entityResult'),\n $parameters: literalForQuery(parameters)\n };\n\n if (searchType === 'searchEntityPredicate') {\n sendData.$psiPredicate = $scope.lastSearch.predicate ? iriForQuery($scope.lastSearch.predicate) : iriForQuery(ANY_PREDICATE);\n }\n\n if (searchType === 'searchAnalogical') {\n $scope.searchSubject = uri;\n sendData.$givenSubject = iriForQuery($scope.analogicalSubject);\n sendData.$givenObject = iriForQuery($scope.analogicalObject);\n sendData.$searchSubject = iriForQuery(uri);\n }\n\n $.ajax({\n method: 'GET',\n url: 'repositories/' + $repositories.getActiveRepository(),\n data: sendData,\n headers: headers\n }).done(function (data, textStatus, jqXhrOrErrorString) {\n toggleOntoLoader(false);\n yasr.setResponse(data, textStatus, jqXhrOrErrorString);\n }).fail(function (data) {\n toastr.error(getError(data), 'Could not get resource!');\n toggleOntoLoader(false);\n });\n };\n\n $scope.viewSearchQuery = function () {\n let queryTemplate;\n if ($scope.lastSearch.type === 'searchAnalogical') {\n queryTemplate = ($scope.selected.analogicalQuery) ? $scope.selected.analogicalQuery : $scope.searchQueries['analogical'];\n } else {\n queryTemplate = ($scope.selected.searchQuery) ? $scope.selected.searchQuery : $scope.searchQueries[$scope.selected.type];\n }\n const replacedQuery = queryTemplate\n .replace('?index', 'inst:' + $scope.selected.name)\n .replace('?query', $scope.lastSearch.termOrSubject)\n .replace('?searchType', ($scope.selected.type === 'text' ? ':' : 'psi:') + ($scope.lastSearch.type === 'searchEntityPredicate' ? 'searchEntity' : $scope.lastSearch.type))\n .replace('?resultType', $scope.selected.type === 'text' ? ':' + $scope.resultType : 'psi:entityResult')\n .replace('?parameters', literalForQuery((!$scope.searchParameters) ? '' : $scope.searchParameters))\n .replace('?psiPredicate', $scope.lastSearch.predicate ? iriForQuery($scope.lastSearch.predicate) : iriForQuery(ANY_PREDICATE))\n .replace('?givenSubject', iriForQuery($scope.analogicalSubject))\n .replace('?givenObject', iriForQuery($scope.analogicalObject))\n .replace('?searchSubject', iriForQuery($scope.searchSubject));\n\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return replacedQuery;\n }\n }\n });\n };\n\n\n $scope.deleteIndex = function (index) {\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to delete the index ' + '\\'' + index.name + '\\'?',\n warning: true\n }).result\n .then(function () {\n SimilarityRestService.deleteIndex(index)\n .then(function () {\n $scope.getSimilarityIndexes();\n }, function (err) {\n toastr.error(getError(err));\n });\n });\n };\n\n $scope.viewCreateQuery = function (index) {\n SimilarityRestService.getQuery({\n indexName: index.name,\n indexOptions: index.options,\n query: index.selectQuery,\n indexStopList: index.stopList,\n queryInference: index.infer,\n querySameAs: index.sameAs,\n viewType: index.type,\n indexAnalyzer: index.analyzer\n }).success(function (query) {\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n });\n };\n\n $scope.rebuildIndex = function (index) {\n // Migration\n if (!index.searchQuery) {\n index.searchQuery = index.type ? $scope.searchQueries[index.type] : $scope.searchQueries.text;\n }\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to rebuild the whole index ' + '\\'' + index.name + '\\'?' + '<br>You will still be able to use the latest successful build!',\n warning: true\n }).result\n .then(function () {\n index.status = 'REBUILDING';\n SimilarityRestService.rebuildIndex(index)\n .then(function (res) {\n }, function (err) {\n toastr.error(getError(err));\n });\n });\n };\n\n $scope.copyToClipboardResult = function (uri) {\n ModalService.openCopyToClipboardModal(uri);\n };\n\n $scope.trimIRI = function (iri) {\n return _.trim(iri, \"<>\");\n };\n\n window.addEventListener('beforeunload', removeRepoIsSetListener);\n\n function removeRepoIsSetListener() {\n repoIsSetListener();\n window.removeEventListener('beforeunload', removeRepoIsSetListener);\n }\n}\n","import 'angular/utils/notifications';\nimport 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.similarity.controllers.create', [\n 'graphdb.framework.utils.notifications',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .controller('CreateSimilarityIdxCtrl', CreateSimilarityIdxCtrl);\n\nCreateSimilarityIdxCtrl.$inject = ['$scope', 'toastr', '$modal', '$timeout', 'SimilarityRestService', 'SparqlRestService', '$location', 'productInfo', 'Notifications', 'RDF4JRepositoriesRestService', 'LocalStorageAdapter', 'LSKeys'];\n\nfunction CreateSimilarityIdxCtrl($scope, toastr, $modal, $timeout, SimilarityRestService, SparqlRestService, $location, productInfo, Notifications, RDF4JRepositoriesRestService, LocalStorageAdapter, LSKeys) {\n\n const indexType = $location.search().type;\n if (indexType === undefined || indexType.startsWith('text')) {\n $scope.viewType = 'text';\n } else {\n $scope.viewType = indexType;\n }\n\n const textDefaultOptions = '-termweight idf';\n const predDefaultOptions = '';\n $scope.newIndex = {};\n\n $scope.info = productInfo;\n $scope.page = 1;\n\n const defaultTabConfig = {\n id: '1',\n name: '',\n query: '',\n inference: true,\n sameAs: true\n };\n\n let getNewIndexName = function (indexNameFromLocation) {\n if (indexNameFromLocation) {\n if ($scope.page !== 1) {\n return indexNameFromLocation;\n } else {\n return 'Copy_of_' + indexNameFromLocation;\n }\n }\n return '';\n };\n\n const initForViewType = function () {\n $scope.editSearchQuery = $location.search().editSearchQuery;\n $scope.page = $scope.editSearchQuery ? 2 : 1;\n $scope.newIndex.name = getNewIndexName($location.search().name);\n $scope.newIndex.options = ($location.search().options ? $location.search().options : ($scope.viewType === \"text\") ? textDefaultOptions : predDefaultOptions);\n\n if ($scope.searchQueries) {\n $scope.newIndex.searchQuery = $location.search().searchQuery ? $location.search().searchQuery : $scope.searchQueries[$scope.viewType];\n if ($scope.viewType === 'predication') {\n $scope.newIndex.analogicalQuery = $location.search().analogicalQuery ? $location.search().analogicalQuery : $scope.searchQueries['analogical'];\n }\n }\n\n if ($scope.editSearchQuery) {\n // Default will be opened search query tab for edition\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n $scope.notoolbarInference = true;\n $scope.notoolbarSameAs = true;\n if (window.editor) {\n $scope.setQuery($scope.newIndex.searchQuery);\n }\n } else {\n if ($scope.viewType === 'text' && $scope.allSamples) {\n $scope.samples = $scope.allSamples['text'];\n $scope.newIndex.stopList = ($location.search().stopList ? $location.search().stopList : undefined);\n $scope.newIndex.analyzer = ($location.search().analyzer ? $location.search().analyzer : 'org.apache.lucene.analysis.en.EnglishAnalyzer');\n const isLiteralIndex = getAndRemoveOption('-literal_index');\n if (isLiteralIndex !== undefined) {\n $scope.newIndex.isLiteralIndex = isLiteralIndex;\n }\n if (window.editor) {\n $scope.setQuery($scope.samples['literals']);\n }\n }\n if ($scope.viewType === 'predication' && $scope.allSamples) {\n SimilarityRestService.getIndexes()\n .success(function (data) {\n $scope.literalIndexes = ['no-index'].concat(data\n .filter(function (idx) {\n return idx.type === 'textLiteral' && (idx.status === 'BUILT' || idx.status === 'OUTDATED')\n })\n .map(function (idx) {\n return idx.name;\n }));\n\n if ($scope.newIndex.inputIndex === undefined) {\n const desiredIdx = getAndRemoveOption('-input_index');\n if (desiredIdx !== undefined) {\n for (let j = 0; j < $scope.literalIndexes.length; j++) {\n if (desiredIdx === $scope.literalIndexes[j]) {\n $scope.newIndex.inputIndex = $scope.literalIndexes[j];\n }\n }\n }\n }\n if ($scope.newIndex.inputIndex === undefined) {\n $scope.newIndex.inputIndex = $scope.literalIndexes[0];\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get indexes');\n });\n\n $scope.samples = $scope.allSamples['predication'];\n if (window.editor) {\n $scope.setQuery($scope.samples['predication']);\n }\n }\n }\n };\n\n const filenamePattern = new RegExp('^[a-zA-Z0-9-_]+$');\n\n const validateIndex = function () {\n $scope.invalidIndexName = false;\n $scope.saveQueries();\n if (!$scope.newIndex.name) {\n $scope.invalidIndexName = 'Index name cannot be empty';\n return false;\n }\n if (!filenamePattern.test($scope.newIndex.name)) {\n $scope.invalidIndexName = 'Index name can contain only letters (a-z, A-Z), numbers (0-9), \"-\" and \"_\"';\n return false;\n }\n\n if (!$scope.newIndex.query) {\n toastr.error('Select query cannot be empty.');\n return false;\n }\n\n if (!$scope.newIndex.searchQuery) {\n toastr.error('Search query cannot be empty.');\n return false;\n }\n\n if ($scope.viewType === 'predication' && !$scope.newIndex.analogicalQuery) {\n toastr.error('Analogical query cannot be empty.');\n return false;\n }\n\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity index requires SELECT queries.');\n return;\n }\n\n return true;\n };\n\n const appendOption = function (option, value) {\n $scope.newIndex.options = $scope.newIndex.options + ($scope.newIndex.options === '' ? '' : ' ') + option + ' ' + value;\n };\n\n SimilarityRestService.getSearchQueries().success(function (data) {\n $scope.searchQueries = data;\n SimilarityRestService.getSamples().success(function (samples) {\n defaultTabConfig.query = $location.search().selectQuery ? $location.search().selectQuery : samples['text']['literals'];\n defaultTabConfig.inference = !($location.search().infer === 'false');\n defaultTabConfig.sameAs = !($location.search().sameAs === 'false');\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n $scope.currentQuery = angular.copy(defaultTabConfig);\n $scope.allSamples = samples;\n initForViewType();\n });\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get search queries');\n });\n\n $scope.$watch('viewType', function () {\n initForViewType();\n });\n\n $scope.helpHidden = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP) === 1;\n $scope.toggleHelp = function (value) {\n if (value === undefined) {\n value = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP);\n }\n if (value !== 1) {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 1);\n $scope.helpHidden = true;\n } else {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 0);\n $scope.helpHidden = false;\n }\n };\n\n $scope.viewQuery = function () {\n if (!validateIndex()) {\n return;\n }\n\n SimilarityRestService.getQuery({\n indexName: $scope.newIndex.name,\n indexOptions: $scope.newIndex.options,\n query: $scope.currentQuery.query,\n indexStopList: $scope.newIndex.stopList,\n queryInference: $scope.currentQuery.inference,\n querySameAs: $scope.currentQuery.sameAs,\n viewType: $scope.viewType,\n indexAnalyzer: $scope.newIndex.analyzer\n }).success(function (query) {\n if (query) {\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n }\n });\n };\n\n $scope.$watch('newIndex.name', function () {\n $scope.isInvalidIndexName = false;\n $scope.isEmptyIndexName = false;\n });\n\n $scope.saveQueries = function () {\n // save the current query\n const query = window.editor.getValue().trim();\n if ($scope.page === 1) {\n $scope.newIndex.query = query;\n } else if ($scope.page === 2) {\n $scope.newIndex.searchQuery = query;\n } else if ($scope.page === 3) {\n $scope.newIndex.analogicalQuery = query;\n }\n };\n\n $scope.goToPage = function (page) {\n // ugly fix for GDB-3099\n if (page !== 1 && $scope.viewMode !== 'yasr') {\n $scope.showEditor();\n $timeout(function () {\n if (page === 2) {\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n }\n if (page === 3) {\n $scope.currentQuery.query = $scope.newIndex.analogicalQuery;\n }\n\n window.editor.setValue($scope.currentQuery.query || ' ');\n });\n }\n\n $scope.saveQueries();\n // get the saved query\n if (page === 1) {\n $scope.currentQuery.query = $scope.newIndex.query;\n } else if (page === 2) {\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n } else if (page === 3) {\n $scope.currentQuery.query = $scope.newIndex.analogicalQuery;\n }\n\n loadTab();\n $scope.notoolbar = page !== 1;\n\n $scope.page = page;\n };\n\n $scope.createIndex = function () {\n if (!validateIndex()) {\n return;\n }\n // Check existing indexes\n SimilarityRestService.getIndexes()\n .success(function (data) {\n data.forEach(function (index) {\n if (index.name === $scope.newIndex.name) {\n $scope.invalidIndexName = 'Index with this name already exists.';\n }\n });\n if (!$scope.invalidIndexName) {\n let indexType = $scope.viewType;\n\n if ($scope.literalIndexes !== undefined) {\n const inputIndex = $scope.newIndex.inputIndex;\n if (inputIndex !== $scope.literalIndexes[0]) {\n appendOption('-input_index', inputIndex);\n }\n }\n if ($scope.newIndex.isLiteralIndex === 'true') {\n appendOption('-literal_index', 'true');\n indexType = 'textLiteral';\n }\n\n SimilarityRestService.createIndex('POST',\n $scope.newIndex.name,\n $scope.newIndex.options,\n $scope.newIndex.query,\n $scope.newIndex.searchQuery,\n $scope.newIndex.analogicalQuery,\n $scope.newIndex.stopList,\n $scope.currentQuery.inference,\n $scope.currentQuery.sameAs,\n indexType,\n $scope.newIndex.analyzer)\n .error(function (err) {\n toastr.error(getError(err), 'Could not create index');\n });\n $location.url('similarity');\n }\n\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get indexes');\n });\n };\n\n // Called when user clicks on a sample query\n $scope.setQuery = function (query) {\n // Hack for YASQE bug\n window.editor.setValue(query ? query : ' ');\n };\n\n // TODO don't copy paste each time, this is the same as in the graph config\n // DOWN HERE WE KEEP EVERYTHING PURELY QUERY EDITOR (MOSTLY BORROWED FROM query-editor.controller.js)\n\n $scope.showEditor = function () {\n if (window.editor.xhr) {\n window.editor.xhr.abort();\n }\n $scope.viewMode = 'yasr';\n };\n\n $scope.showPreview = function () {\n // For some reason YASR gets confused and sets this to rawResponse\n // if we execute a CONSTRUCT and then a SELECT. This makes sure it's always table.\n $scope.currentQuery.outputType = 'table';\n $scope.runQuery();\n };\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 100, // page limit 100 as this is only used for preview\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = true;\n\n // start of repository actions\n $scope.getActiveRepository();\n\n function getAndRemoveOption(key) {\n const optArr = $scope.newIndex.options.split(' ');\n for (let i = 0; i < optArr.length; i++) {\n if (optArr[i] === key && i + 1 < optArr.length) {\n const value = optArr[i + 1];\n\n delete optArr[i];\n delete optArr[i + 1];\n $scope.newIndex.options = optArr.join(' ');\n\n return value;\n }\n }\n return undefined;\n }\n\n function saveQueryToLocal(currentQueryTab) {\n }\n\n function setLoader(isRunning, progressMessage, extraMessage) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n yasrInnerContainer.addClass('hide');\n } else {\n $scope.progressMessage = '';\n $scope.extraMessage = '';\n yasrInnerContainer.removeClass('hide');\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n const timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n let message = '';\n\n if ($scope.progressMessage) {\n message = $scope.progressMessage + '... ' + timeHuman;\n } else {\n message = 'Running operation...' + timeHuman;\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += '\\n' + $scope.extraMessage;\n }\n\n return message;\n }\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalViewParam) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n const verticalView = verticalViewParam;\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector('.CodeMirror-wrap')) {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n //window.editor.refresh();\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView);\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n } else {\n $scope.noPadding = {};\n document.querySelector('.CodeMirror-wrap').style.height = '';\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode(tabID) {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n fixSizesOnHorizontalViewModeSwitch();\n $('.dataTables_filter').remove();\n $('.resultsTable').remove();\n $timeout(function () {\n loadTab();\n selectTab(tabID);\n }, 100);\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(':focus')) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n // end of query editor results orientation operations\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery;\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity indexes work only with SELECT queries.');\n return;\n }\n if (explain && !(window.editor.getQueryType() === 'SELECT')) {\n toastr.warning('Explain only works with SELECT queries.');\n return;\n }\n\n if (window.editor.getQueryMode() === 'update') {\n toastr.warning('Cannot execute updates from this editor.');\n return;\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n // Hides the editor and shows the yasr results\n $scope.viewMode = 'editor';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch();\n }\n\n setLoader(true, 'Evaluating query');\n window.editor.query();\n }\n }\n\n // FIXME: this is copy-pasted in graphs-config.controller.js and query-editor.controller.js. Find a way to avoid duplications\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, 'Refreshing namespaces', 'Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first.');\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n if ($scope.getActiveRepository()) {\n getNamespaces();\n }\n\n $scope.$on('$destroy', function () {\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n }\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Error! Could not add known prefixes');\n return true;\n });\n }\n\n $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n angular.forEach($scope.tabsData, function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n\n return existingTabId;\n }\n\n\n // end of query operations\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function () {\n saveQueryToLocal($scope.currentQuery);\n });\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n //tab.query = window.editor.getValue();\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n function addNewTab(callback, tabName, savedQuery) {\n }\n\n function loadTab() {\n $scope.tabsData = [$scope.currentQuery];\n\n const tab = $scope.currentQuery;\n\n if ($scope.currentQuery.query === null || $scope.currentQuery.query === '') {\n // hack for YASQE bug\n window.editor.setValue(' ');\n } else {\n window.editor.setValue($scope.currentQuery.query || ' ');\n }\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.$apply();\n }, 0);\n\n //Remove paddign of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n $scope.loadTab(getQueryID(tabEvent.target));\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = angular.copy(defaultTabConfig);\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n\n $scope.getResultsDescription = function () {\n };\n\n $scope.getUpdateDescription = function () {\n };\n\n $scope.getStaleWarningMessage = function () {\n };\n\n $scope.saveSearchQuery = function () {\n // Should validate that query is SELECT\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity index requires SELECT queries.');\n return;\n }\n let data = {\n name: $scope.newIndex.name,\n changedQuery: $scope.currentQuery.query,\n isSearchQuery: $scope.page === 2\n };\n\n return SimilarityRestService.saveSearchQuery(JSON.stringify(data))\n .then(async function () {\n await Notifications.showToastMessageWithDelay($scope.page === 2 ? 'Changed search query' : 'Changed analogical query');\n $location.url('similarity');\n }, function (response) {\n toastr.error(getError(response), 'Could not change query!');\n });\n };\n\n $scope.getCloseBtnMsg = function () {\n return \"Closes \" + ($scope.editSearchQuery ? \"query edition\": \"index creation\") + \" without saving the changes.\"\n }\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{205:function(e,t,n){"use strict";var r=r||{};r.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),r.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},r.Click={delayDblClick:function(){var e=d3.dispatch("click","dblclick");return d3.rebind((function(t){var n,r=null;t.on("mousedown",(function(){n=d3.mouse(document.body),new Date})),t.on("mouseup",(function(t){var i,a;i=n,a=d3.mouse(document.body),Math.sqrt(Math.pow(i[0]-a[0],2),Math.pow(i[1]-a[1],2))>5||(r?(window.clearTimeout(r),r=null,e.dblclick(t)):r=window.setTimeout((d3.event,function(){e.click(t),r=null}),250))}))}),e,"on")}},t.a=r},206:function(e,t,n){"use strict";var r=r||{};r.Export={getCSSRules:function(e){var t=$('link[href="'+e+'"]')[0].sheet.rules,n="";return _.each(t,(function(e){n+=e.cssText})),n},generateBase64ImageSource:function(){var e=d3.selectAll("svg").attr({version:"1.1",xmlns:"http://www.w3.org/2000/svg"}).node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(e)))}},t.a=r},208:function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),i=null,a=null,o=null,s=null;function l(e){var t;i="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=i.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(o=r.pop());var i,a=n.apply(this,r),u=t.apply(this,r),h=e.apply(this,r),p=f(),v=d.length,y=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft,m=s.apply(this,r);for(p.html(a).style({opacity:1,"pointer-events":"all"});v--;)p.classed(d[v],!1);return i=c.get(h).apply(this),m?p.style(m):p.classed(h,!0).style({top:i.top+u[0]+y+"px",left:i.left+u[1]+g+"px"}),l},l.hide=function(){return f().style({opacity:0,"pointer-events":"none"}),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:d3.functor(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:d3.functor(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:d3.functor(e),l):n},l.customPosition=function(e){return arguments.length?(s=null==e?e:d3.functor(e),l):s},l.destroy=function(){return r&&(f().remove(),r=null),l};var c=d3.map({n:function(){var e=h();return{top:e.n.y-r.offsetHeight,left:e.n.x-r.offsetWidth/2}},s:function(){var e=h();return{top:e.s.y,left:e.s.x-r.offsetWidth/2}},e:function(){var e=h();return{top:e.e.y-r.offsetHeight/2,left:e.e.x}},w:function(){var e=h();return{top:e.w.y-r.offsetHeight/2,left:e.w.x-r.offsetWidth}},nw:function(){var e=h();return{top:e.nw.y-r.offsetHeight,left:e.nw.x-r.offsetWidth}},ne:function(){var e=h();return{top:e.ne.y-r.offsetHeight,left:e.ne.x}},sw:function(){var e=h();return{top:e.sw.y,left:e.sw.x-r.offsetWidth}},se:function(){var e=h();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){var e=d3.select(document.createElement("div"));return e.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box"}),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),d3.select(r)}function h(){for(var e=o||d3.event.target;void 0===e.getScreenCTM&&"undefined"===e.parentNode;)e=e.parentNode;var t={},n=e.getScreenCTM(),r=e.getBBox(),i=r.width,s=r.height,l=r.x,c=r.y;return a.x=l,a.y=c,t.nw=a.matrixTransform(n),a.x+=i,t.ne=a.matrixTransform(n),a.y+=s,t.se=a.matrixTransform(n),a.x-=i,t.sw=a.matrixTransform(n),a.y-=s/2,t.w=a.matrixTransform(n),a.x+=i,t.e=a.matrixTransform(n),a.x-=i/2,a.y-=s/2,t.n=a.matrixTransform(n),a.y+=s,t.s=a.matrixTransform(n),t}return l}})?r.apply(t,i):r)||(e.exports=a)},214:function(e,t,n){"use strict";var r=r||{};r.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var r=0;r<t.children.length;r++)e(t.children[r]);if(1===t.children.length){var i=1.2*t.size;n&&(i=.1*t.children[0].size),t.children.push({name:"placeholder",size:i})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var r=t[n];"placeholder"===r.name?t.splice(n,1):r.children&&e(r.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var r=n.x-n.children[0].x;n.children[0].x+=r,i(n.children[0],r)}}function i(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,i(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,r=0;r<e.length;r++){var i=e[r];i.x-=t,i.y-=n}}},t.a=r},58:function(e,t,n){"use strict";n.r(t);var r=n(208),i=n.n(r),a=n(214),o=n(205),s=n(206);n(4);function l(e,t,n,r,l,c,d,u,f,h,p){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(v,y,g){!function(v,y){var g=800,m=800,x=m,w=20,S=d3.layout.pack().size([x-w,x-w]).value((function(e){return e.size})),C=d3.scale.linear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(d3.interpolateHcl),E=d3.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 "+g+" "+m).attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function R(){return E.append("svg:g").attr({id:"main-group",transform:"translate("+g/2+","+m/2+")"})}function T(){return"true"===h.get(p.CLASS_HIERARCHY_HIDE_PREFIXES)}function A(){var e=s.a.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=1.10.0");d3.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),d3.selectAll("g").style("opacity",1);var t=s.a.Export.generateBase64ImageSource();d3.select(this).attr({href:t,download:"class-hierarchy-"+c.getActiveRepository()+".svg"})}v.hidePrefixes=T();var H,P,I=R();if(!v.classHierarchyData.classCount&&c.getActiveRepository()&&!c.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=h.get(`classHierarchy-selectedGraph-${c.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success((function(t,n,r){e.loader=!1,207===n&&d.warning("You can update the diagram by pressing the reload button.","Repository data has changed"),v.classHierarchyData=t,d3.select("#download-svg").on("mouseover",A)})).error((function(t){e.loader=!1,e.hierarchyError=getError(t),d.error("Request for "+f+" failed! "+getError(t))}))}var b,k,F,L,D,N,z,O,U={};function M(n,s,c,d){F&&F(),L&&L(),d3.selectAll("#main-group").remove(),I=R(),a.a.SingleChild.addPlaceholders(n,!0),k=c||n;var h,p=S.nodes(n);k.isInFocusTransitive=!0,a.a.SingleChild.removePlaceholders(p),a.a.SingleChild.centerNodes(p),a.a.SingleChild.makePositionsRelativeToZero(p);var y=i()().attr("class","d3-tip").customPosition((function(e){return{top:"inherit",bottom:r.innerHeight-d3.event.clientY+"px",right:r.innerWidth-d3.event.clientX+"px"}})).html((function(e){return e.name}));E.call(y);var g=I.selectAll("circle").data(p).enter().append("g");s.doFade&&g.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)}));var m,T=[],A=g.append("circle").attr("class",(function(e){return e.role})).style("fill",(function(e){return e.children?C(e.depth):"#E0D0D0"})).each((function(e){if(e.circle=d3.select(this),e.name!==f){var t=e.name;T.push({name:t}),U[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",(function(){s.noPrefixes?y.show(e):e.textHidden?y.show(e):y.hide(e)})),e.circle.on("mouseout",y.hide)}}));function D(e){d3.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),m=e}function N(){v.showClassInfoPanel=!1}T&&(T=_.uniqBy(T,"name"),v.flattenedClassNames=T);var $=o.a.Click.delayDblClick();d3.selectAll(".parent, .topLevelParent, .child, .root").call($);P=function(e){Z(e),e.name===f?(N(),d3.selectAll(".selected").classed("selected",!1)):(D(e),v.selectedClass=m,v.showClassInfoPanel=!0,v.$on("sidePanelClosed",(function(t){d3.selectAll(".selected").classed("selected",e.selected=!1)})))},$.on("click",(function(e){e.id&&r.history.pushState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),y.hide(),P(e)})),$.on("dblclick",(function(t){t!==n&&(y.hide(),D(t),e.$broadcast("goToDomainRangeGraphView",m,k),d3.event.stopPropagation())}));var z=0;E.on("wheel",(function(){y.hide();var e=d3.event;e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var i=e.target.__data__;if(i||(i=k),"in"===n){if(i!==k){for(;i.parent&&!i.parent.isInFocusTransitive;)i=i.parent;i.depth<k.depth&&(i=k)}if(i===k&&i.children){for(var a=i.children[0],o=1;o<i.children.length;o++)i.children[o].sortingRank>a.sortingRank&&(a=i.children[o]);i=a}Z(i,!0)}else"out"===n&&(i=k.parent)&&Z(i,!0);k.name===f&&r.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),V()}}));var O=I.selectAll("text").data(p).enter().append("text").attr("class",(function(e){return e.children&&e.children.length?"label":"label child-label"})).each((function(e){e.textSel=d3.select(this)}));s.noPrefixes?(b!==n&&(O.each((function(e){var t=e.name.indexOf(":");e.name.indexOf("http://")>-1?e.noPrefixName=e.name:t>-1&&(e.noPrefixName=e.name.substring(t+1))})),b=n),O.style("font-size",(function(e){return o.a.Text.calcFontSize(e.noPrefixName,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)}))):O.style("font-size",(function(e){return o.a.Text.calcFontSize(e.name,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r/3)})),O.style("display",(function(e){return e.parent===n?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")})),s.doFade&&!s.keepPrevState&&O.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)})),H=function(){function e(e){e&&A.each((function(t){e==t.id&&P(t)}))}var n=t.hash();r.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var M=I.selectAll("circle, text");function W(e,t){var n=x/e[2];h=e,M.attr("transform",(function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"})),A.attr("r",(function(e){return e.r*n})),t&&O.each((function(e){e.fullName!==k.topLevelParentUri&&k.topLevelParentUri!==f||(e.textSel.style("display","none"),k.children&&k.children.length?_.each(k.children,(function(e){e.textSel.style("display","inline")})):k.textSel.style("display","inline"),k.parent&&_.each(k.parent.children,(function(e){e.name!==k.name&&e.textSel.style("display","inline")})))})),O.style("font-size",(function(e){return s.noPrefixes?o.a.Text.calcFontSize(e.noPrefixName,e.r*n):o.a.Text.calcFontSize(e.name,e.r*n)})).text((function(e){return s.noPrefixes?o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r*n/3)}))}function Y(e){var t=2*e+w;return 2*e/t<.3&&(t=2*e+2),t}function B(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive||(e.textHidden=!0,this.style.display="none")}function G(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive&&(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display="")}function Z(e,t){if(l((function(){v.showExternalElements=e.name===f})),e.id&&r.history.replaceState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),k!==e){if(t&&(N(),d3.selectAll(".selected").classed("selected",!1)),k.parent)for(var n=k;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=n.children,n=n.parent;if(2*(k=e).r/(2*k.r+w)<.3||v.currentSliderValue>v.currentBrowserLimit)W([k.x,k.y,Y(k.r)]),O.each((function(e){B.call(this,e),G.call(this,e)}));else d3.transition().duration(u).tween("zoom",(function(e){var t=d3.interpolateZoom(h,[k.x,k.y,Y(k.r)]);return function(e){W(t(e))}})).selectAll("text").each("start",B).each("end",G)}}W([k.x,k.y,Y(k.r)],d),F=v.$on("rootFocus",(function(){r.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),P(n)})),L=v.$on("classSearch",(function(e){P(e)}))}function V(){var t=v.classHierarchyData.classCount;let n=h.get(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,h.set(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",V),window.addEventListener("beforeunload",(function e(){window.removeEventListener("resize",V),window.removeEventListener("beforeunload",e)})),v.$watch("classHierarchyData",(function(){D&&D(),N&&N(),z&&z(),O&&O();var e=T();if(v.classHierarchyData.classCount){V();var t=angular.copy(v.classHierarchyData);var n,r,i=function(e){return S.nodes(e).sort((function(e,t){return e.sortingRank>t.sortingRank?-1:e.sortingRank<t.sortingRank?1:e.depth>t.depth?1:e.depth<t.depth?-1:0}))}(t);function a(e,t){var i={keepPrevState:!0,noPrefixes:T()};r=i.noPrefixes,M(n||e,i,k,!0),l((function(){h.set(p.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H()}),70)}function o(e,i,o){if(e){h.set(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:f,children:[]};for(var s=new Set,l=1;l<=e;l++)s.add(i[l].id),i[l].parent===i[0]&&n.children.push(i[l]);if(function e(t){if(t.children){for(var n=[],r=0;r<t.children.length;r++)s.has(t.children[r].id)&&n.push($.extend({},t.children[r]));t.children=n;for(r=0;r<t.children.length;r++)e(t.children[r])}}(n),o)r=angular.isUndefined(r)?T():r,M(n,{noPrefixes:r});else a(t)}}var s,c=h.get(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)o(c,i);else{var d={doFade:!0,keepPrevState:!0,noPrefixes:T()};M(t,d),H()}D=v.$watch("hidePrefixes",(function(n){angular.isUndefined(n)||e?e=void 0:l((function(){!function(e){angular.isUndefined(e)||h.set(p.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),a(t,!0)}),50)}),!0),N=v.$watch("currentSliderValue",(function(e){o(e,i,!0)}),!0),O=v.$on("onEnterKeypressSearchAction",(function(e){s&&P(s)})),z=v.$on("searchedClass",(function(e,t){(s=U[t.name])&&P(s)}))}}),!0)}(v)}}}angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys"]}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{205:function(e,t,n){"use strict";var r=r||{};r.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),r.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},r.Click={delayDblClick:function(){var e=d3.dispatch("click","dblclick");return d3.rebind((function(t){var n,r=null;t.on("mousedown",(function(){n=d3.mouse(document.body),new Date})),t.on("mouseup",(function(t){var i,a;i=n,a=d3.mouse(document.body),Math.sqrt(Math.pow(i[0]-a[0],2),Math.pow(i[1]-a[1],2))>5||(r?(window.clearTimeout(r),r=null,e.dblclick(t)):r=window.setTimeout((d3.event,function(){e.click(t),r=null}),250))}))}),e,"on")}},t.a=r},206:function(e,t,n){"use strict";var r=r||{};r.Export={getCSSRules:function(e){var t=$('link[href="'+e+'"]')[0].sheet.rules,n="";return _.each(t,(function(e){n+=e.cssText})),n},generateBase64ImageSource:function(){var e=d3.selectAll("svg").attr({version:"1.1",xmlns:"http://www.w3.org/2000/svg"}).node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(e)))}},t.a=r},208:function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),i=null,a=null,o=null,s=null;function l(e){var t;i="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=i.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(o=r.pop());var i,a=n.apply(this,r),u=t.apply(this,r),h=e.apply(this,r),p=f(),v=d.length,y=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft,m=s.apply(this,r);for(p.html(a).style({opacity:1,"pointer-events":"all"});v--;)p.classed(d[v],!1);return i=c.get(h).apply(this),m?p.style(m):p.classed(h,!0).style({top:i.top+u[0]+y+"px",left:i.left+u[1]+g+"px"}),l},l.hide=function(){return f().style({opacity:0,"pointer-events":"none"}),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:d3.functor(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:d3.functor(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:d3.functor(e),l):n},l.customPosition=function(e){return arguments.length?(s=null==e?e:d3.functor(e),l):s},l.destroy=function(){return r&&(f().remove(),r=null),l};var c=d3.map({n:function(){var e=h();return{top:e.n.y-r.offsetHeight,left:e.n.x-r.offsetWidth/2}},s:function(){var e=h();return{top:e.s.y,left:e.s.x-r.offsetWidth/2}},e:function(){var e=h();return{top:e.e.y-r.offsetHeight/2,left:e.e.x}},w:function(){var e=h();return{top:e.w.y-r.offsetHeight/2,left:e.w.x-r.offsetWidth}},nw:function(){var e=h();return{top:e.nw.y-r.offsetHeight,left:e.nw.x-r.offsetWidth}},ne:function(){var e=h();return{top:e.ne.y-r.offsetHeight,left:e.ne.x}},sw:function(){var e=h();return{top:e.sw.y,left:e.sw.x-r.offsetWidth}},se:function(){var e=h();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){var e=d3.select(document.createElement("div"));return e.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box"}),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),d3.select(r)}function h(){for(var e=o||d3.event.target;void 0===e.getScreenCTM&&"undefined"===e.parentNode;)e=e.parentNode;var t={},n=e.getScreenCTM(),r=e.getBBox(),i=r.width,s=r.height,l=r.x,c=r.y;return a.x=l,a.y=c,t.nw=a.matrixTransform(n),a.x+=i,t.ne=a.matrixTransform(n),a.y+=s,t.se=a.matrixTransform(n),a.x-=i,t.sw=a.matrixTransform(n),a.y-=s/2,t.w=a.matrixTransform(n),a.x+=i,t.e=a.matrixTransform(n),a.x-=i/2,a.y-=s/2,t.n=a.matrixTransform(n),a.y+=s,t.s=a.matrixTransform(n),t}return l}})?r.apply(t,i):r)||(e.exports=a)},214:function(e,t,n){"use strict";var r=r||{};r.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var r=0;r<t.children.length;r++)e(t.children[r]);if(1===t.children.length){var i=1.2*t.size;n&&(i=.1*t.children[0].size),t.children.push({name:"placeholder",size:i})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var r=t[n];"placeholder"===r.name?t.splice(n,1):r.children&&e(r.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var r=n.x-n.children[0].x;n.children[0].x+=r,i(n.children[0],r)}}function i(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,i(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,r=0;r<e.length;r++){var i=e[r];i.x-=t,i.y-=n}}},t.a=r},58:function(e,t,n){"use strict";n.r(t);var r=n(208),i=n.n(r),a=n(214),o=n(205),s=n(206);n(4);function l(e,t,n,r,l,c,d,u,f,h,p){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(v,y,g){!function(v,y){var g=800,m=800,x=m,w=20,S=d3.layout.pack().size([x-w,x-w]).value((function(e){return e.size})),C=d3.scale.linear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(d3.interpolateHcl),E=d3.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 "+g+" "+m).attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function R(){return E.append("svg:g").attr({id:"main-group",transform:"translate("+g/2+","+m/2+")"})}function T(){return"true"===h.get(p.CLASS_HIERARCHY_HIDE_PREFIXES)}function A(){var e=s.a.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=1.11.0-TR1");d3.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),d3.selectAll("g").style("opacity",1);var t=s.a.Export.generateBase64ImageSource();d3.select(this).attr({href:t,download:"class-hierarchy-"+c.getActiveRepository()+".svg"})}v.hidePrefixes=T();var H,P,I=R();if(!v.classHierarchyData.classCount&&c.getActiveRepository()&&!c.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=h.get(`classHierarchy-selectedGraph-${c.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success((function(t,n,r){e.loader=!1,207===n&&d.warning("You can update the diagram by pressing the reload button.","Repository data has changed"),v.classHierarchyData=t,d3.select("#download-svg").on("mouseover",A)})).error((function(t){e.loader=!1,e.hierarchyError=getError(t),d.error("Request for "+f+" failed! "+getError(t))}))}var b,k,F,L,D,N,z,O,U={};function M(n,s,c,d){F&&F(),L&&L(),d3.selectAll("#main-group").remove(),I=R(),a.a.SingleChild.addPlaceholders(n,!0),k=c||n;var h,p=S.nodes(n);k.isInFocusTransitive=!0,a.a.SingleChild.removePlaceholders(p),a.a.SingleChild.centerNodes(p),a.a.SingleChild.makePositionsRelativeToZero(p);var y=i()().attr("class","d3-tip").customPosition((function(e){return{top:"inherit",bottom:r.innerHeight-d3.event.clientY+"px",right:r.innerWidth-d3.event.clientX+"px"}})).html((function(e){return e.name}));E.call(y);var g=I.selectAll("circle").data(p).enter().append("g");s.doFade&&g.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)}));var m,T=[],A=g.append("circle").attr("class",(function(e){return e.role})).style("fill",(function(e){return e.children?C(e.depth):"#E0D0D0"})).each((function(e){if(e.circle=d3.select(this),e.name!==f){var t=e.name;T.push({name:t}),U[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",(function(){s.noPrefixes?y.show(e):e.textHidden?y.show(e):y.hide(e)})),e.circle.on("mouseout",y.hide)}}));function D(e){d3.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),m=e}function N(){v.showClassInfoPanel=!1}T&&(T=_.uniqBy(T,"name"),v.flattenedClassNames=T);var $=o.a.Click.delayDblClick();d3.selectAll(".parent, .topLevelParent, .child, .root").call($);P=function(e){Z(e),e.name===f?(N(),d3.selectAll(".selected").classed("selected",!1)):(D(e),v.selectedClass=m,v.showClassInfoPanel=!0,v.$on("sidePanelClosed",(function(t){d3.selectAll(".selected").classed("selected",e.selected=!1)})))},$.on("click",(function(e){e.id&&r.history.pushState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),y.hide(),P(e)})),$.on("dblclick",(function(t){t!==n&&(y.hide(),D(t),e.$broadcast("goToDomainRangeGraphView",m,k),d3.event.stopPropagation())}));var z=0;E.on("wheel",(function(){y.hide();var e=d3.event;e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var i=e.target.__data__;if(i||(i=k),"in"===n){if(i!==k){for(;i.parent&&!i.parent.isInFocusTransitive;)i=i.parent;i.depth<k.depth&&(i=k)}if(i===k&&i.children){for(var a=i.children[0],o=1;o<i.children.length;o++)i.children[o].sortingRank>a.sortingRank&&(a=i.children[o]);i=a}Z(i,!0)}else"out"===n&&(i=k.parent)&&Z(i,!0);k.name===f&&r.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),V()}}));var O=I.selectAll("text").data(p).enter().append("text").attr("class",(function(e){return e.children&&e.children.length?"label":"label child-label"})).each((function(e){e.textSel=d3.select(this)}));s.noPrefixes?(b!==n&&(O.each((function(e){var t=e.name.indexOf(":");e.name.indexOf("http://")>-1?e.noPrefixName=e.name:t>-1&&(e.noPrefixName=e.name.substring(t+1))})),b=n),O.style("font-size",(function(e){return o.a.Text.calcFontSize(e.noPrefixName,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)}))):O.style("font-size",(function(e){return o.a.Text.calcFontSize(e.name,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r/3)})),O.style("display",(function(e){return e.parent===n?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")})),s.doFade&&!s.keepPrevState&&O.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)})),H=function(){function e(e){e&&A.each((function(t){e==t.id&&P(t)}))}var n=t.hash();r.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var M=I.selectAll("circle, text");function W(e,t){var n=x/e[2];h=e,M.attr("transform",(function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"})),A.attr("r",(function(e){return e.r*n})),t&&O.each((function(e){e.fullName!==k.topLevelParentUri&&k.topLevelParentUri!==f||(e.textSel.style("display","none"),k.children&&k.children.length?_.each(k.children,(function(e){e.textSel.style("display","inline")})):k.textSel.style("display","inline"),k.parent&&_.each(k.parent.children,(function(e){e.name!==k.name&&e.textSel.style("display","inline")})))})),O.style("font-size",(function(e){return s.noPrefixes?o.a.Text.calcFontSize(e.noPrefixName,e.r*n):o.a.Text.calcFontSize(e.name,e.r*n)})).text((function(e){return s.noPrefixes?o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r*n/3)}))}function Y(e){var t=2*e+w;return 2*e/t<.3&&(t=2*e+2),t}function B(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive||(e.textHidden=!0,this.style.display="none")}function G(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive&&(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display="")}function Z(e,t){if(l((function(){v.showExternalElements=e.name===f})),e.id&&r.history.replaceState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),k!==e){if(t&&(N(),d3.selectAll(".selected").classed("selected",!1)),k.parent)for(var n=k;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=n.children,n=n.parent;if(2*(k=e).r/(2*k.r+w)<.3||v.currentSliderValue>v.currentBrowserLimit)W([k.x,k.y,Y(k.r)]),O.each((function(e){B.call(this,e),G.call(this,e)}));else d3.transition().duration(u).tween("zoom",(function(e){var t=d3.interpolateZoom(h,[k.x,k.y,Y(k.r)]);return function(e){W(t(e))}})).selectAll("text").each("start",B).each("end",G)}}W([k.x,k.y,Y(k.r)],d),F=v.$on("rootFocus",(function(){r.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),P(n)})),L=v.$on("classSearch",(function(e){P(e)}))}function V(){var t=v.classHierarchyData.classCount;let n=h.get(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,h.set(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",V),window.addEventListener("beforeunload",(function e(){window.removeEventListener("resize",V),window.removeEventListener("beforeunload",e)})),v.$watch("classHierarchyData",(function(){D&&D(),N&&N(),z&&z(),O&&O();var e=T();if(v.classHierarchyData.classCount){V();var t=angular.copy(v.classHierarchyData);var n,r,i=function(e){return S.nodes(e).sort((function(e,t){return e.sortingRank>t.sortingRank?-1:e.sortingRank<t.sortingRank?1:e.depth>t.depth?1:e.depth<t.depth?-1:0}))}(t);function a(e,t){var i={keepPrevState:!0,noPrefixes:T()};r=i.noPrefixes,M(n||e,i,k,!0),l((function(){h.set(p.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H()}),70)}function o(e,i,o){if(e){h.set(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:f,children:[]};for(var s=new Set,l=1;l<=e;l++)s.add(i[l].id),i[l].parent===i[0]&&n.children.push(i[l]);if(function e(t){if(t.children){for(var n=[],r=0;r<t.children.length;r++)s.has(t.children[r].id)&&n.push($.extend({},t.children[r]));t.children=n;for(r=0;r<t.children.length;r++)e(t.children[r])}}(n),o)r=angular.isUndefined(r)?T():r,M(n,{noPrefixes:r});else a(t)}}var s,c=h.get(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)o(c,i);else{var d={doFade:!0,keepPrevState:!0,noPrefixes:T()};M(t,d),H()}D=v.$watch("hidePrefixes",(function(n){angular.isUndefined(n)||e?e=void 0:l((function(){!function(e){angular.isUndefined(e)||h.set(p.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),a(t,!0)}),50)}),!0),N=v.$watch("currentSliderValue",(function(e){o(e,i,!0)}),!0),O=v.$on("onEnterKeypressSearchAction",(function(e){s&&P(s)})),z=v.$on("searchedClass",(function(e,t){(s=U[t.name])&&P(s)}))}}),!0)}(v)}}}angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys"]}}]);
|
|
2
2
|
//# sourceMappingURL=22.93d86caa997992a46006.bundle.js.map
|