graphdb-workbench 3.5.0-TR6 → 3.5.0-TR7
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/{64709.c9dd701b460f7a01912a.bundle.js → 64709.7f7589b98377766e6759.bundle.js} +2 -2
- package/dist/{64709.c9dd701b460f7a01912a.bundle.js.map → 64709.7f7589b98377766e6759.bundle.js.map} +1 -1
- package/dist/{65677.6757f662d3748755f7ab.bundle.js → 65677.e1e4987b00cb679abcdd.bundle.js} +2 -2
- package/dist/{65677.6757f662d3748755f7ab.bundle.js.map → 65677.e1e4987b00cb679abcdd.bundle.js.map} +1 -1
- package/dist/{80933.e70b799e74306eaa8e7c.bundle.js → 80933.a7d9700f5fae19eec1a2.bundle.js} +2 -2
- package/dist/{80933.e70b799e74306eaa8e7c.bundle.js.map → 80933.a7d9700f5fae19eec1a2.bundle.js.map} +1 -1
- package/dist/{82917.bff8ab16dadada15a0cd.bundle.js → 82917.9f1deb0b178ffa9509e1.bundle.js} +2 -2
- package/dist/{82917.bff8ab16dadada15a0cd.bundle.js.map → 82917.9f1deb0b178ffa9509e1.bundle.js.map} +1 -1
- package/dist/{86099.e6f4f8ccb0c8844c2ebb.bundle.js → 86099.09b02083be9893bf7ad2.bundle.js} +2 -2
- package/dist/{86099.e6f4f8ccb0c8844c2ebb.bundle.js.map → 86099.09b02083be9893bf7ad2.bundle.js.map} +1 -1
- package/dist/css/lib/ontotext-yasgui-web-component.css +1 -1
- package/dist/index.html +8 -8
- package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
- package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
- package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
- package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +2 -2
- package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
- package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
- package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
- package/dist/js/angular/core/templates/search-resource-input.html +1 -1
- package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
- package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
- package/dist/js/angular/graphql/templates/graphql-playground.html +2 -2
- package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
- package/dist/js/angular/security/templates/user.html +2 -2
- package/dist/js/angular/security/templates/users.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +3 -3
- package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
- package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
- package/dist/{legacyWorkbench.55d5a3106a7e59bb84f4.js → legacyWorkbench.b0aa09ab19cc19ff8269.js} +3 -3
- package/dist/{legacyWorkbench.55d5a3106a7e59bb84f4.js.map → legacyWorkbench.b0aa09ab19cc19ff8269.js.map} +1 -1
- package/dist/pages/aclmanagement.html +1 -1
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +1 -1
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +8 -8
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/home.html +1 -1
- package/dist/pages/import.html +2 -2
- package/dist/pages/jdbc-create.html +1 -1
- package/dist/pages/jdbc.html +1 -1
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +1 -1
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +1 -1
- package/dist/pages/repository.html +1 -1
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-editor.html +1 -1
- package/dist/pages/sparql-template-create.html +1 -1
- package/dist/pages/sparql-templates.html +1 -1
- package/dist/pages/ux-test1.html +2 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/plugins/plugins-bundle.js +1 -1
- package/dist/plugins/plugins-bundle.js.map +1 -1
- package/dist/res/swagger5/index.html +11 -11
- package/dist/workbench/workbench/166.09512c1f89f0fb02.js +1 -0
- package/dist/workbench/workbench/workbenchApp.js +1 -1
- package/package.json +2 -2
- package/dist/workbench/workbench/166.f66b305e42da6cab.js +0 -1
- /package/dist/{legacyWorkbench.55d5a3106a7e59bb84f4.js.LICENSE.txt → legacyWorkbench.b0aa09ab19cc19ff8269.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_esm_id__=86099;export const __webpack_esm_ids__=[86099];export const __webpack_esm_modules__={86099(e,t,n){var a=n(82667),r=n(89687),i=n(9508),s=n(44482),c=n(66886),o=(n(38473),n(57154));function l(e,t,n,l,d,h,u,f,p,g,x,m){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(y,A,v){!function(y){let A=!1;let v,S;const C=s.pack().size([780,780]),R=s.scaleLinear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(s.interpolateHcl),E=s.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function P(){return E.append("svg:g").attrs({id:"main-group",transform:"translate(400,400)"})}function w(){return"true"===g.get(x.CLASS_HIERARCHY_HIDE_PREFIXES)}function H(){const e=c.A.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=3.5.0-TR6");s.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),s.selectAll("g").style("opacity",1);const t=c.A.Export.generateBase64ImageSource("#classChart svg");s.select(this).attrs({href:t,download:"class-hierarchy-"+h.getActiveRepository()+".svg"})}y.hidePrefixes=w();let I=P();const T=!!y.classHierarchyData?.classCount,L=h.getActiveRepository()&&!h.isSystemRepository();let k,D,N,b,F;(0,o.service)(o.LicenseContextService).onLicenseChanged(t=>{t?.valid&&!T&&L&&function(){e.loader=!0,e.hierarchyError=!1;const t=g.get(`classHierarchy-selectedGraph-${h.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success(function(t,n){e.loader=!1,207===n&&u.warning(m.instant("graphexplore.update.diagram"),m.instant("graphexplore.repository.data.changed")),y.classHierarchyData=t,s.select("#download-svg").on("mouseover",H)}).error(function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(m.instant("graphexplore.error.request.failed",{name:p,error:getError(t)}))})}()});const O={};function z(n,c,o,h){b&&b(),F&&F(),s.selectAll("#main-group").remove(),I=P(),r.A.SingleChild.addPlaceholders(n,!0),S=s.hierarchy(n),S.sum(function(e){return e.size}),N=o||S,C(S);const u=S.descendants();let g;N.isInFocusTransitive=!0,r.A.SingleChild.removePlaceholders(u),r.A.SingleChild.centerNodes(u),r.A.SingleChild.makePositionsRelativeToZero(u),v||(v=(0,a.A)().attr("class","d3-tip").customPosition(function(e,t){return{top:"inherit",bottom:l.innerHeight-t.clientY+"px",right:l.innerWidth-t.clientX+"px"}}).html(function(e){return e.data.name}),E.call(v));const x=I.selectAll("circle").data(u).enter().append("g");c.doFade&&x.each(function(e){i.A.Transition.fadeIn(s.select(this),550)});let m=[];const w=x.append("circle").attr("class",function(e){return e.data.role}).attr("data-test",function(e){return"class-"+e.data.name}).attr("guide-selector",function(e){return"class-"+e.data.name}).style("fill",function(e){return e.children?R(e.depth):"#E0D0D0"}).each(function(e){if(e.circle=s.select(this),e.data.name!==p){const t=e.data.name;m.push({name:t}),O[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",function(t){c.noPrefixes||e.textHidden?v.show(e,t):v.hide(e)}),e.circle.on("mouseout",v.hide)}}).on("gdb-focus",(e,t)=>D(t)).on("gdb-zoom",(e,t)=>Z(t));let H;function T(e){s.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),H=e}function L(){y.showClassInfoPanel=!1}m&&(m=_.uniqBy(m,"name"),y.flattenedClassNames=m);const $=i.A.Click.delayDblClick();s.selectAll(".parent, .topLevelParent, .child, .root").call($),D=function(e){Z(e),e.data.name===p?(L(),s.selectAll(".selected").classed("selected",!1)):(T(e),A||(y.selectedClass=H,y.showClassInfoPanel=!0),y.$on("sidePanelClosed",function(t){s.selectAll(".selected").classed("selected",e.selected=!1)}))},$.on("click",function(e,t){t.data.id&&l.history.pushState({id:t.data.id},"classHierarchyPage"+t.data.id,"hierarchy#"+t.data.id),v.hide(),D(t)}),$.on("dblclick",function(t,a){a!==n&&(v.hide(),T(a),e.$broadcast("goToDomainRangeGraphView",H,N),t.stopPropagation())});let z=0;E.on("wheel",function(e){v.hide(),e.preventDefault(),e.stopPropagation();const t=Date.now();if(!(t-z>100))return;z=t;let n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");let a=e.target.__data__;if(a||(a=N),"in"===n){if(a!==N){for(;a.parent&&!a.parent.isInFocusTransitive;)a=a.parent;a.depth<N.depth&&(a=N)}if(a===N&&a.children){let e=a.children[0];for(let t=1;t<a.children.length;t++)a.children[t].sortingRank>e.sortingRank&&(e=a.children[t]);e.children&&(a=e)}else a.children||(a=a.parent);Z(a,!0)}else"out"===n&&(a=N.parent,a&&Z(a,!0));N.data.name===p&&l.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),U()});const Y=I.selectAll("text").data(u).enter().append("text").attr("class",function(e){return e.children&&e.children.length?"label":"label child-label"}).each(function(e){e.textSel=s.select(this)});c.noPrefixes?(Y.each(function(e){const t=e.data.name.indexOf(":");e.data.name.indexOf("http://")>-1?e.noPrefixName=e.data.name:t>-1&&(e.noPrefixName=e.data.name.substring(t+1))}),Y.style("font-size",function(e){return i.A.Text.calcFontSize(e.noPrefixName,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)})):Y.style("font-size",function(e){return i.A.Text.calcFontSize(e.data.name,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r/3)}),Y.style("display",function(e){return e.parent&&e.parent.data===N.data?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")}),c.doFade&&!c.keepPrevState&&Y.each(function(e){i.A.Transition.fadeIn(s.select(this),550)}),k=function(){function e(e){e&&w.each(function(t){+e===t.data.id&&D(t)})}const n=t.hash();l.onpopstate=function(t){t.state&&!t.state.skipOnPopState&&e(t.state.id)},e(n)};const B=I.selectAll("circle, text");function V(e,t){const n=800/e[2];g=e,B.attr("transform",function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"}),w.attr("r",function(e){return e.r*n}),t&&Y.each(function(e){e.data.fullName!==N.data.topLevelParentUri&&N.data.topLevelParentUri!==p||(e.textSel.style("display","none"),N.children&&N.children.length?_.each(N.children,function(e){e.textSel.style("display","inline")}):N.textSel.style("display","inline"),N.parent&&_.each(N.parent.children,function(e){e.data.name!==N.data.name&&e.textSel.style("display","inline")}))}),Y.style("font-size",function(e){return c.noPrefixes?i.A.Text.calcFontSize(e.noPrefixName,e.r*n):i.A.Text.calcFontSize(e.data.name,e.r*n)}).text(function(e){return c.noPrefixes?i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r*n/3)})}function M(e){let t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display=""):(e.textHidden=!0,this.style.display="none")}function Z(e,t){if(d(function(){y.showExternalElements=e.data.name===p}),N===e)return;if(e.data.id&&l.history.replaceState({id:e.data.id,skipOnPopState:!0},"classHierarchyPage"+e.data.id,"hierarchy#"+e.data.id),!e.children&&(e=e.parent,N===e))return;if(t&&(L(),s.selectAll(".selected").classed("selected",!1)),N.parent){let e=N;for(;e;)e.isInFocusTransitive=!1,e=e.parent}let n=e;for(;n;)n.isInFocusTransitive=!!n.children,n=n.parent;N=e,2*N.r/(2*N.r+20)<.3||y.currentSliderValue>y.currentBrowserLimit?(V([N.x,N.y,M(N.r)]),Y.each(function(e){W.call(this,e)})):s.transition().duration(f).tween("zoom",function(e){const t=s.interpolateZoom(g,[N.x,N.y,M(N.r)]);return function(e){V(t(e))}}).selectAll("text").each(W)}V([N.x,N.y,M(N.r)],h),b=y.$on("rootFocus",function(){l.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),D(S)}),F=y.$on("classSearch",function(e){D(e)})}function U(){const t=y.classHierarchyData.classCount;let n=g.get(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,g.set(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}let Y,B,V,M;window.addEventListener("resize",U),window.addEventListener("beforeunload",function e(){window.removeEventListener("resize",U),window.removeEventListener("beforeunload",e)}),y.$watch("classHierarchyData",function(){Y&&Y(),B&&B(),V&&V(),M&&M();let e=w();if(y.classHierarchyData.classCount){U();const t=structuredClone(y.classHierarchyData);const n=s.hierarchy(t).descendants().sort(function(e,t){return e.data.sortingRank>t.data.sortingRank?-1:e.data.sortingRank<t.data.sortingRank||e.data.depth>t.data.depth?1:e.data.depth<t.data.depth?-1:0});let a,r;function i(e,t){const n={keepPrevState:!0,noPrefixes:w()};r=n.noPrefixes,z(a||e,n,N,!0),d(()=>{g.set(x.CLASS_HIERARCHY_SWITCH_PREFIXES,t),k(),A=!1},70)}function c(e,n,s){if(!e)return;g.set(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),a={name:p,children:[]};const c=new Set;for(let t=1;t<=e;t++)c.add(n[t].data.id),n[t].parent===n[0]&&a.children.push(n[t].data);(function e(t){if(!t.children)return;const n=[];for(const e of t.children)c.has(e.id)&&n.push($.extend({},e));t.children=n;for(const n of t.children)e(n)})(a),s?(r=angular.isUndefined(r)?w():r,z(a,{noPrefixes:r})):i(t)}const o=g.get(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(o)c(o,n);else{const h={doFade:!0,keepPrevState:!0,noPrefixes:w()};z(t,h),k()}let l;Y=y.$watch("hidePrefixes",function(n){angular.isUndefined(n)||e?e=void 0:d(function(){A=!0,function(e){angular.isUndefined(e)||g.set(x.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),i(t,!0)},50)},!0),B=y.$watch("currentSliderValue",function(e){c(e,n,!0)},!0),M=y.$on("onEnterKeypressSearchAction",function(e){l&&D(l)}),V=y.$on("searchedClass",function(e,t){l=O[t.name],l&&D(l)})}},!0)}(y)}}}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","$translate"]},89687(e,t,n){n.d(t,{A:()=>r});var a=a||{};a.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var a=0;a<t.children.length;a++)e(t.children[a]);if(1===t.children.length){var r=1.2*t.size;n&&(r=.1*t.children[0].size),t.children.push({name:"placeholder",size:r})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var a=t[n];"placeholder"===a.data.name?t.splice(n,1):a.children&&e(a.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var a=n.x-n.children[0].x;n.children[0].x+=a,r(n.children[0],a)}}function r(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,r(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,a=0;a<e.length;a++){var r=e[a];r.x-=t,r.y-=n}}};const r=a},66886(e,t,n){n.d(t,{A:()=>i}),n(11014);const a={selectAll:n(44482).selectAll};var r=r||{};r.Export={getCSSRules:function(e){const t=$('link[href="'+e+'"]')[0].sheet.rules;let n="";return _.each(t,function(e){n+=e.cssText}),n},generateBase64ImageSource:function(e){e||(e="svg");const t=a.selectAll(e).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(t)))}};const i=r}};
|
|
2
|
-
//# sourceMappingURL=86099.
|
|
1
|
+
export const __webpack_esm_id__=86099;export const __webpack_esm_ids__=[86099];export const __webpack_esm_modules__={86099(e,t,n){var a=n(82667),r=n(89687),i=n(9508),s=n(44482),c=n(66886),o=(n(38473),n(57154));function l(e,t,n,l,d,h,u,f,p,g,x,m){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(y,A,v){!function(y){let A=!1;let v,S;const C=s.pack().size([780,780]),R=s.scaleLinear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(s.interpolateHcl),E=s.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function P(){return E.append("svg:g").attrs({id:"main-group",transform:"translate(400,400)"})}function w(){return"true"===g.get(x.CLASS_HIERARCHY_HIDE_PREFIXES)}function H(){const e=c.A.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=3.5.0-TR7");s.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),s.selectAll("g").style("opacity",1);const t=c.A.Export.generateBase64ImageSource("#classChart svg");s.select(this).attrs({href:t,download:"class-hierarchy-"+h.getActiveRepository()+".svg"})}y.hidePrefixes=w();let I=P();const T=!!y.classHierarchyData?.classCount,L=h.getActiveRepository()&&!h.isSystemRepository();let k,D,N,b,F;(0,o.service)(o.LicenseContextService).onLicenseChanged(t=>{t?.valid&&!T&&L&&function(){e.loader=!0,e.hierarchyError=!1;const t=g.get(`classHierarchy-selectedGraph-${h.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success(function(t,n){e.loader=!1,207===n&&u.warning(m.instant("graphexplore.update.diagram"),m.instant("graphexplore.repository.data.changed")),y.classHierarchyData=t,s.select("#download-svg").on("mouseover",H)}).error(function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(m.instant("graphexplore.error.request.failed",{name:p,error:getError(t)}))})}()});const O={};function z(n,c,o,h){b&&b(),F&&F(),s.selectAll("#main-group").remove(),I=P(),r.A.SingleChild.addPlaceholders(n,!0),S=s.hierarchy(n),S.sum(function(e){return e.size}),N=o||S,C(S);const u=S.descendants();let g;N.isInFocusTransitive=!0,r.A.SingleChild.removePlaceholders(u),r.A.SingleChild.centerNodes(u),r.A.SingleChild.makePositionsRelativeToZero(u),v||(v=(0,a.A)().attr("class","d3-tip").customPosition(function(e,t){return{top:"inherit",bottom:l.innerHeight-t.clientY+"px",right:l.innerWidth-t.clientX+"px"}}).html(function(e){return e.data.name}),E.call(v));const x=I.selectAll("circle").data(u).enter().append("g");c.doFade&&x.each(function(e){i.A.Transition.fadeIn(s.select(this),550)});let m=[];const w=x.append("circle").attr("class",function(e){return e.data.role}).attr("data-test",function(e){return"class-"+e.data.name}).attr("guide-selector",function(e){return"class-"+e.data.name}).style("fill",function(e){return e.children?R(e.depth):"#E0D0D0"}).each(function(e){if(e.circle=s.select(this),e.data.name!==p){const t=e.data.name;m.push({name:t}),O[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",function(t){c.noPrefixes||e.textHidden?v.show(e,t):v.hide(e)}),e.circle.on("mouseout",v.hide)}}).on("gdb-focus",(e,t)=>D(t)).on("gdb-zoom",(e,t)=>Z(t));let H;function T(e){s.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),H=e}function L(){y.showClassInfoPanel=!1}m&&(m=_.uniqBy(m,"name"),y.flattenedClassNames=m);const $=i.A.Click.delayDblClick();s.selectAll(".parent, .topLevelParent, .child, .root").call($),D=function(e){Z(e),e.data.name===p?(L(),s.selectAll(".selected").classed("selected",!1)):(T(e),A||(y.selectedClass=H,y.showClassInfoPanel=!0),y.$on("sidePanelClosed",function(t){s.selectAll(".selected").classed("selected",e.selected=!1)}))},$.on("click",function(e,t){t.data.id&&l.history.pushState({id:t.data.id},"classHierarchyPage"+t.data.id,"hierarchy#"+t.data.id),v.hide(),D(t)}),$.on("dblclick",function(t,a){a!==n&&(v.hide(),T(a),e.$broadcast("goToDomainRangeGraphView",H,N),t.stopPropagation())});let z=0;E.on("wheel",function(e){v.hide(),e.preventDefault(),e.stopPropagation();const t=Date.now();if(!(t-z>100))return;z=t;let n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");let a=e.target.__data__;if(a||(a=N),"in"===n){if(a!==N){for(;a.parent&&!a.parent.isInFocusTransitive;)a=a.parent;a.depth<N.depth&&(a=N)}if(a===N&&a.children){let e=a.children[0];for(let t=1;t<a.children.length;t++)a.children[t].sortingRank>e.sortingRank&&(e=a.children[t]);e.children&&(a=e)}else a.children||(a=a.parent);Z(a,!0)}else"out"===n&&(a=N.parent,a&&Z(a,!0));N.data.name===p&&l.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),U()});const Y=I.selectAll("text").data(u).enter().append("text").attr("class",function(e){return e.children&&e.children.length?"label":"label child-label"}).each(function(e){e.textSel=s.select(this)});c.noPrefixes?(Y.each(function(e){const t=e.data.name.indexOf(":");e.data.name.indexOf("http://")>-1?e.noPrefixName=e.data.name:t>-1&&(e.noPrefixName=e.data.name.substring(t+1))}),Y.style("font-size",function(e){return i.A.Text.calcFontSize(e.noPrefixName,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)})):Y.style("font-size",function(e){return i.A.Text.calcFontSize(e.data.name,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r/3)}),Y.style("display",function(e){return e.parent&&e.parent.data===N.data?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")}),c.doFade&&!c.keepPrevState&&Y.each(function(e){i.A.Transition.fadeIn(s.select(this),550)}),k=function(){function e(e){e&&w.each(function(t){+e===t.data.id&&D(t)})}const n=t.hash();l.onpopstate=function(t){t.state&&!t.state.skipOnPopState&&e(t.state.id)},e(n)};const B=I.selectAll("circle, text");function V(e,t){const n=800/e[2];g=e,B.attr("transform",function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"}),w.attr("r",function(e){return e.r*n}),t&&Y.each(function(e){e.data.fullName!==N.data.topLevelParentUri&&N.data.topLevelParentUri!==p||(e.textSel.style("display","none"),N.children&&N.children.length?_.each(N.children,function(e){e.textSel.style("display","inline")}):N.textSel.style("display","inline"),N.parent&&_.each(N.parent.children,function(e){e.data.name!==N.data.name&&e.textSel.style("display","inline")}))}),Y.style("font-size",function(e){return c.noPrefixes?i.A.Text.calcFontSize(e.noPrefixName,e.r*n):i.A.Text.calcFontSize(e.data.name,e.r*n)}).text(function(e){return c.noPrefixes?i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r*n/3)})}function M(e){let t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display=""):(e.textHidden=!0,this.style.display="none")}function Z(e,t){if(d(function(){y.showExternalElements=e.data.name===p}),N===e)return;if(e.data.id&&l.history.replaceState({id:e.data.id,skipOnPopState:!0},"classHierarchyPage"+e.data.id,"hierarchy#"+e.data.id),!e.children&&(e=e.parent,N===e))return;if(t&&(L(),s.selectAll(".selected").classed("selected",!1)),N.parent){let e=N;for(;e;)e.isInFocusTransitive=!1,e=e.parent}let n=e;for(;n;)n.isInFocusTransitive=!!n.children,n=n.parent;N=e,2*N.r/(2*N.r+20)<.3||y.currentSliderValue>y.currentBrowserLimit?(V([N.x,N.y,M(N.r)]),Y.each(function(e){W.call(this,e)})):s.transition().duration(f).tween("zoom",function(e){const t=s.interpolateZoom(g,[N.x,N.y,M(N.r)]);return function(e){V(t(e))}}).selectAll("text").each(W)}V([N.x,N.y,M(N.r)],h),b=y.$on("rootFocus",function(){l.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),D(S)}),F=y.$on("classSearch",function(e){D(e)})}function U(){const t=y.classHierarchyData.classCount;let n=g.get(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,g.set(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}let Y,B,V,M;window.addEventListener("resize",U),window.addEventListener("beforeunload",function e(){window.removeEventListener("resize",U),window.removeEventListener("beforeunload",e)}),y.$watch("classHierarchyData",function(){Y&&Y(),B&&B(),V&&V(),M&&M();let e=w();if(y.classHierarchyData.classCount){U();const t=structuredClone(y.classHierarchyData);const n=s.hierarchy(t).descendants().sort(function(e,t){return e.data.sortingRank>t.data.sortingRank?-1:e.data.sortingRank<t.data.sortingRank||e.data.depth>t.data.depth?1:e.data.depth<t.data.depth?-1:0});let a,r;function i(e,t){const n={keepPrevState:!0,noPrefixes:w()};r=n.noPrefixes,z(a||e,n,N,!0),d(()=>{g.set(x.CLASS_HIERARCHY_SWITCH_PREFIXES,t),k(),A=!1},70)}function c(e,n,s){if(!e)return;g.set(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),a={name:p,children:[]};const c=new Set;for(let t=1;t<=e;t++)c.add(n[t].data.id),n[t].parent===n[0]&&a.children.push(n[t].data);(function e(t){if(!t.children)return;const n=[];for(const e of t.children)c.has(e.id)&&n.push($.extend({},e));t.children=n;for(const n of t.children)e(n)})(a),s?(r=angular.isUndefined(r)?w():r,z(a,{noPrefixes:r})):i(t)}const o=g.get(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(o)c(o,n);else{const h={doFade:!0,keepPrevState:!0,noPrefixes:w()};z(t,h),k()}let l;Y=y.$watch("hidePrefixes",function(n){angular.isUndefined(n)||e?e=void 0:d(function(){A=!0,function(e){angular.isUndefined(e)||g.set(x.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),i(t,!0)},50)},!0),B=y.$watch("currentSliderValue",function(e){c(e,n,!0)},!0),M=y.$on("onEnterKeypressSearchAction",function(e){l&&D(l)}),V=y.$on("searchedClass",function(e,t){l=O[t.name],l&&D(l)})}},!0)}(y)}}}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","$translate"]},89687(e,t,n){n.d(t,{A:()=>r});var a=a||{};a.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var a=0;a<t.children.length;a++)e(t.children[a]);if(1===t.children.length){var r=1.2*t.size;n&&(r=.1*t.children[0].size),t.children.push({name:"placeholder",size:r})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var a=t[n];"placeholder"===a.data.name?t.splice(n,1):a.children&&e(a.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var a=n.x-n.children[0].x;n.children[0].x+=a,r(n.children[0],a)}}function r(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,r(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,a=0;a<e.length;a++){var r=e[a];r.x-=t,r.y-=n}}};const r=a},66886(e,t,n){n.d(t,{A:()=>i}),n(11014);const a={selectAll:n(44482).selectAll};var r=r||{};r.Export={getCSSRules:function(e){const t=$('link[href="'+e+'"]')[0].sheet.rules;let n="";return _.each(t,function(e){n+=e.cssText}),n},generateBase64ImageSource:function(e){e||(e="svg");const t=a.selectAll(e).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(t)))}};const i=r}};
|
|
2
|
+
//# sourceMappingURL=86099.09b02083be9893bf7ad2.bundle.js.map
|
package/dist/{86099.e6f4f8ccb0c8844c2ebb.bundle.js.map → 86099.09b02083be9893bf7ad2.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"86099.e6f4f8ccb0c8844c2ebb.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/graphexplore/directives/rdf-class-hierarchy.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/lib/common/circle-packing.js","webpack://root-config/./packages/legacy-workbench/src/js/lib/common/svg-export.js"],"sourcesContent":["/* eslint-disable no-invalid-this */\nimport d3tip from 'lib/d3-tip/d3-tip-patch';\nimport CirclePacking from 'lib/common/circle-packing';\nimport D3 from 'lib/common/d3-utils';\nimport * as d3 from 'd3';\nimport SVG from 'lib/common/svg-export';\nimport 'angular/utils/local-storage-adapter';\nimport {service, LicenseContextService} from '@ontotext/workbench-api';\n\nangular\n .module('graphdb.framework.graphexplore.directives.class', [\n 'graphdb.framework.graphexplore.controllers.class',\n 'graphdb.framework.utils.localstorageadapter',\n ])\n .constant(\"ZOOM_DURATION\", 500)\n .constant(\"ROOT_OBJ_NAME\", \"RDF Class Hierarchy\")\n .directive('rdfClassHierarchy', classHierarchyDirective);\n\nclassHierarchyDirective.$inject = ['$rootScope', '$location', 'GraphDataRestService', '$window', '$timeout', '$repositories', 'toastr', 'ZOOM_DURATION', 'ROOT_OBJ_NAME', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction classHierarchyDirective($rootScope, $location, GraphDataRestService, $window, $timeout, $repositories, toastr, ZOOM_DURATION, ROOT_OBJ_NAME, LocalStorageAdapter, LSKeys, $translate) {\n return {\n restrict: 'AE',\n template: '<div id=\"classChart\"></div>',\n scope: {\n classHierarchyData: '=',\n flattenedClassNames: '=',\n selectedClass: '=',\n currentSliderValue: '=',\n showClassInfoPanel: '=',\n showExternalElements: '=',\n hidePrefixes: '=',\n currentBrowserLimit: '=',\n },\n link: linkFunc,\n };\n\n function linkFunc(scope, element, attrs) {\n renderCirclePacking(scope, element);\n }\n\n function renderCirclePacking(scope, element) {\n /**\n * A boolean flag that determines whether the opening of the side info panel\n * should be suppressed when focusing on the chart while a class is selected.\n */\n let suppressPanelOpen = false;\n\n const width = 800;\n const height = 800;\n const diameter = height;\n const margin = 20;\n let tip;\n let rootHierarchy;\n\n const packLayout = d3.pack()\n .size([diameter - margin, diameter - margin]);\n\n const color = d3.scaleLinear()\n .domain([0, 4])\n .range([\"hsl(19, 70%, 90%)\", \"hsl(19, 70%, 50%)\"])\n .interpolate(d3.interpolateHcl);\n\n const svg = d3.select(\"#classChart\")\n .insert(\"svg:svg\", \"h2\")\n .attr(\"viewBox\", \"0 0 \" + width + \" \" + height)\n .attr(\"preserveAspectRatio\", \"xMidYMid meet\")\n .on(\"dblclick.zoom\", null);\n\n function appendMainGroup() {\n return svg.append(\"svg:g\")\n .attrs({\n id: \"main-group\",\n transform: \"translate(\" + width / 2 + \",\" + height / 2 + \")\",\n });\n }\n\n function savePrefixesState(hidePrefixes) {\n if (!angular.isUndefined(hidePrefixes)) {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES, hidePrefixes);\n }\n }\n\n function getPrefixesState() {\n return LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES) === \"true\";\n }\n\n /*\n * Prepares SVG document image export by adding xml namespaces and\n * additional style information\n */\n function prepareForSVGImageExport() {\n // get css rules for the diagram\n const cssRules = SVG.Export.getCSSRules(\"css/rdf-class-hierarchy-labels.css?v=3.5.0-TR6\");\n // inline css rules in a defs tag\n d3.selectAll(\"#main-group\")\n .append(\"defs\");\n $(\"defs\").append('<style type=\"text/css\"><![CDATA[' + cssRules + ']]></style>');\n\n // switch opacity to visible\n d3.selectAll(\"g\")\n .style(\"opacity\", 1);\n\n // convert selected html to base64\n const imgSrc = SVG.Export.generateBase64ImageSource(\"#classChart svg\");\n\n // set the binary image and a name for the downloadable file on the export button\n d3.select(this).attrs({\n href: imgSrc,\n download: \"class-hierarchy-\" + $repositories.getActiveRepository() + \".svg\",\n });\n }\n\n scope.hidePrefixes = getPrefixesState();\n\n let g = appendMainGroup();\n\n function fetchClassHierarchy() {\n $rootScope.loader = true;\n $rootScope.hierarchyError = false;\n const selGraphFromCache = LocalStorageAdapter.get(`classHierarchy-selectedGraph-${$repositories.getActiveRepository()}`);\n GraphDataRestService.getClassHierarchyData(selGraphFromCache !== null ? selGraphFromCache.contextID.uri : \"\")\n .success(function(response, status) {\n $rootScope.loader = false;\n if (status === 207) {\n toastr.warning(\n $translate.instant('graphexplore.update.diagram'),\n $translate.instant('graphexplore.repository.data.changed'),\n );\n }\n scope.classHierarchyData = response;\n d3.select(\"#download-svg\").on(\"mouseover\", prepareForSVGImageExport);\n })\n .error(function(response) {\n $rootScope.loader = false;\n $rootScope.hierarchyError = getError(response);\n toastr.error(\n $translate.instant('graphexplore.error.request.failed', {\n name: ROOT_OBJ_NAME,\n error: getError(response),\n }),\n );\n });\n }\n\n const hasData = !!scope.classHierarchyData?.classCount;\n const canUseRepo = $repositories.getActiveRepository() && !$repositories.isSystemRepository();\n\n service(LicenseContextService).onLicenseChanged((license) => {\n if (license?.valid && !hasData && canUseRepo) {\n fetchClassHierarchy();\n }\n });\n\n let autoZoomToPreviousState;\n let doFocus;\n\n let focus;\n let rootFocusEvent;\n let classSearchEvent;\n const flattenedClassData = {};\n\n function drawDiagram(root, config, newFocus, switchPrefixes) {\n if (rootFocusEvent) rootFocusEvent();\n if (classSearchEvent) classSearchEvent();\n // remove old group tag containing the diagram\n d3.selectAll(\"#main-group\").remove();\n\n // append new empty group tag in order to rerender new diagram\n g = appendMainGroup();\n\n // fix for single child classes\n CirclePacking.SingleChild.addPlaceholders(root, true);\n\n rootHierarchy = d3.hierarchy(root);\n rootHierarchy.sum(function(d) {\n return d.size;\n });\n focus = newFocus ? newFocus : rootHierarchy;\n\n packLayout(rootHierarchy);\n\n const nodes = rootHierarchy.descendants();\n let view;\n\n focus.isInFocusTransitive = true;\n\n // fixes for single child classes\n CirclePacking.SingleChild.removePlaceholders(nodes);\n CirclePacking.SingleChild.centerNodes(nodes);\n CirclePacking.SingleChild.makePositionsRelativeToZero(nodes);\n\n if (!tip) {\n tip = d3tip()\n .attr('class', 'd3-tip')\n .customPosition(function(d, event) {\n return {\n top: 'inherit',\n bottom: ($window.innerHeight - event.clientY) + 'px',\n right: ($window.innerWidth - event.clientX) + 'px',\n };\n })\n .html(function(d) {\n return d.data.name;\n });\n svg.call(tip);\n }\n\n const circleGroup = g.selectAll(\"circle\")\n .data(nodes)\n .enter().append(\"g\");\n\n if (config.doFade) {\n circleGroup.each(function(d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n let flattenedClassNames = [];\n\n const circle = circleGroup\n .append(\"circle\")\n .attr(\"class\", function(d) {\n return d.data.role;\n })\n .attr(\"data-test\", function(d) {\n return \"class-\" + d.data.name;\n })\n .attr(\"guide-selector\", function(d) {\n return \"class-\" + d.data.name;\n })\n .style(\"fill\", function(d) {\n //return colors[d.depth % 6];\n return d.children ? color(d.depth) : \"#E0D0D0\";\n })\n .each(function(d) {\n d.circle = d3.select(this);\n if (d.data.name !== ROOT_OBJ_NAME) {\n const key = d.data.name;\n flattenedClassNames.push({name: key});\n flattenedClassData[[key]] = d;\n\n d.circle.classed(\"rdf-class\", true);\n d.circle.on('mouseover', function(event) {\n if (config.noPrefixes) {\n tip.show(d, event);\n } else if (!d.textHidden) {\n tip.hide(d);\n } else {\n tip.show(d, event);\n }\n });\n d.circle.on('mouseout', tip.hide);\n }\n })\n // custom event used when user is following a guide\n .on(\"gdb-focus\", (event, d) => doFocus(d))\n .on(\"gdb-zoom\", (event, d) => zoom(d));\n\n\n if (flattenedClassNames) {\n flattenedClassNames = _.uniqBy(flattenedClassNames, 'name');\n scope.flattenedClassNames = flattenedClassNames;\n }\n\n let selectedClass;\n\n function getCurrentClassDataAndMarkSelected(obj) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n obj.circle.classed(\"selected\", obj.selected = true);\n selectedClass = obj;\n }\n\n function showClassInfoPanel() {\n scope.selectedClass = selectedClass;\n scope.showClassInfoPanel = true;\n }\n\n function closeClassInfoPanel() {\n scope.showClassInfoPanel = false;\n }\n\n function goToDomainRangeGraphView() {\n $rootScope.$broadcast('goToDomainRangeGraphView', selectedClass, focus);\n }\n\n const clickCancel = D3.Click.delayDblClick();\n d3.selectAll(\".parent, .topLevelParent, .child, .root\")\n .call(clickCancel);\n\n doFocus = function(obj) {\n zoom(obj);\n\n if (obj.data.name === ROOT_OBJ_NAME) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n } else {\n getCurrentClassDataAndMarkSelected(obj);\n if (!suppressPanelOpen) {\n showClassInfoPanel();\n }\n\n // FIXME: is it ok to bind this event handler every time and not just once?\n scope.$on('sidePanelClosed', function(event) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n });\n }\n\n\n //do not stop event propagation here\n };\n\n clickCancel.on(\"click\", function(event, obj) {\n // add clicked class to browser history\n if (obj.data.id) {\n $window.history.pushState({id: obj.data.id}, \"classHierarchyPage\" + obj.data.id, \"hierarchy#\" + obj.data.id);\n }\n\n //hide current d3-tip tooltip\n tip.hide();\n\n doFocus(obj);\n });\n\n clickCancel.on(\"dblclick\", function(event, obj) {\n if (obj === root) {\n return;\n }\n // hide current d3-tip tooltip in order not to appear in the next view\n tip.hide();\n getCurrentClassDataAndMarkSelected(obj);\n goToDomainRangeGraphView();\n\n event.stopPropagation();\n });\n\n let lastTimeWheel = 0;\n svg.on('wheel', function(event) {\n // hide current d3-tip tooltip\n tip.hide();\n\n event.preventDefault();\n event.stopPropagation();\n\n // at least 100ms must have passed since last time we updated\n const now = Date.now();\n if (now - lastTimeWheel > 100) {\n lastTimeWheel = now;\n } else {\n return;\n }\n\n let direction = '';\n if (event.deltaY <= -1) {\n direction = 'in';\n } else if (event.deltaY >= 1) {\n direction = 'out';\n }\n\n let obj = event.target.__data__;\n\n if (!obj) {\n // scroll outside the big circle\n obj = focus;\n }\n\n if (direction === 'in') {\n // determine object to zoom to\n\n if (obj !== focus) {\n // consider the object on which the scroll event occurred\n // and find the furthest parent that has no focused children\n while (obj.parent && !obj.parent.isInFocusTransitive) {\n obj = obj.parent;\n }\n if (obj.depth < focus.depth) {\n // however if that parent is of lower depth than the focus we ignore it\n obj = focus;\n }\n }\n\n if (obj === focus && obj.children) {\n // if object is in focus and it has children we zoom to its biggest child\n // TODO: sort children on backend\n let newobj = obj.children[0];\n for (let i = 1; i < obj.children.length; i++) {\n if (obj.children[i].sortingRank > newobj.sortingRank) {\n newobj = obj.children[i];\n }\n }\n if (newobj.children) {\n // Use the child only if it has children\n obj = newobj;\n }\n } else if (!obj.children) {\n // If node has no children use its parent instead\n obj = obj.parent;\n }\n\n zoom(obj, true);\n } else if (direction === 'out') {\n // zooming out simply goes one parent up\n obj = focus.parent;\n if (obj) {\n zoom(obj, true);\n }\n }\n\n if (focus.data.name === ROOT_OBJ_NAME) {\n $window.history.replaceState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n }\n\n // redraw slider on zoom out\n sendSliderData();\n });\n\n const text = g.selectAll(\"text\")\n .data(nodes)\n .enter().append(\"text\")\n .attr(\"class\", function(d) {\n return d.children && d.children.length ? \"label\" : \"label child-label\";\n })\n .each(function(d) {\n d.textSel = d3.select(this);\n });\n\n function trimPrefixes(d) {\n const idx = d.data.name.indexOf(\":\");\n const absUriIdx = d.data.name.indexOf(\"http://\");\n if (absUriIdx > -1) {\n // if we have no prefix available ignore\n d.noPrefixName = d.data.name;\n } else if (idx > -1) {\n d.noPrefixName = d.data.name.substring(idx + 1);\n }\n }\n\n if (config.noPrefixes) {\n text.each(trimPrefixes);\n text\n .style(\"font-size\", function(d) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r);\n })\n .text(function(d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r / 3);\n });\n } else {\n text\n .style(\"font-size\", function(d) {\n return D3.Text.calcFontSize(d.data.name, d.r);\n })\n .text(function(d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r / 3);\n });\n }\n\n // TODO: make this use the full version (same as zoom)\n text.style(\"display\", function(d) {\n if (d.parent && d.parent.data === focus.data) {\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n return null;\n } else {\n d.textHidden = true;\n return \"none\";\n }\n });\n\n if (config.doFade && !config.keepPrevState) {\n text.each(function(d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n autoZoomToPreviousState = function() {\n function focusOnCurrentClass(focusHistoryId) {\n if (focusHistoryId) {\n circle.each(function(d) {\n if (+focusHistoryId === d.data.id) {\n doFocus(d);\n }\n });\n }\n }\n\n const focusHistoryId = $location.hash();\n\n $window.onpopstate = function(event) {\n if (event.state && !event.state.skipOnPopState) {\n const focusHistoryId = event.state.id;\n focusOnCurrentClass(focusHistoryId);\n }\n };\n\n focusOnCurrentClass(focusHistoryId);\n };\n\n const node = g.selectAll(\"circle, text\");\n\n function zoomTo(v, switchPrefixes) {\n const k = diameter / v[2];\n view = v;\n\n node.attr(\"transform\", function(d) {\n return \"translate(\" + (d.x - v[0]) * k + \",\" + (d.y - v[1]) * k + \")\";\n });\n\n circle.attr(\"r\", function(d) {\n return d.r * k;\n });\n\n function switchPrefixesInPlace(d) {\n // if uris match with the topLevelParentUri of the focused element\n // or your focus is a top level parent hide its label and if it is not\n // a child element show all of its child labels. If it is a child element\n // only show its label.\n if (d.data.fullName === focus.data.topLevelParentUri || focus.data.topLevelParentUri === ROOT_OBJ_NAME) {\n d.textSel.style(\"display\", \"none\");\n if (focus.children && focus.children.length) {\n _.each(focus.children, function(c) {\n c.textSel.style(\"display\", \"inline\");\n });\n } else {\n focus.textSel.style(\"display\", \"inline\");\n }\n\n // in order to show prefixes of siblings check if the focused\n // element has a parent and show all of its children except\n // for the name of the focused element because you need to see\n // its children\n if (focus.parent) {\n _.each(focus.parent.children, function(c) {\n if (c.data.name !== focus.data.name) {\n c.textSel.style(\"display\", \"inline\");\n }\n });\n }\n }\n }\n\n if (switchPrefixes) {\n text.each(switchPrefixesInPlace);\n }\n\n text\n .style(\"font-size\", function(d) {\n if (config.noPrefixes) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r * k);\n }\n return D3.Text.calcFontSize(d.data.name, d.r * k);\n })\n .text(function(d) {\n if (config.noPrefixes) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r * k / 3);\n }\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r * k / 3);\n });\n }\n\n\n function adjustRadius(r) {\n let newr = r * 2 + margin;\n if (r * 2 / newr < 0.3) {\n // for very small circles we need to adjust\n newr = r * 2 + 2;\n }\n return newr;\n }\n\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)], switchPrefixes);\n\n function textUpdate(d) {\n if (d.isInFocusTransitive || !(d.parent && d.parent.isInFocusTransitive)) {\n // hide labels of classes that are in focus (including children) OR whose parents aren't in focus\n d.textHidden = true;\n this.style.display = \"none\";\n } else {\n // show all other labels\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n this.style.display = \"\";\n }\n }\n\n function zoom(d, shouldClosePanel) {\n // use empty timeout to force the following code to be executed on the next $digest cycle\n // in order to avoid '$digest in progress' error\n $timeout(function() {\n scope.showExternalElements = (d.data.name === ROOT_OBJ_NAME);\n });\n\n if (focus === d) {\n // Node is already zoomed to\n // Important to return before we modify the history, otherwise we choke the browser\n return;\n }\n\n if (d.data.id) {\n // Set the `skipOnPopState` flag so the popstate handler ignores this history update,\n // preventing a recursive history state change triggered by the zoom operation.\n $window.history.replaceState({id: d.data.id, skipOnPopState: true}, \"classHierarchyPage\" + d.data.id, \"hierarchy#\" + d.data.id);\n }\n\n if (!d.children) {\n // No children - zoom to parent instead\n d = d.parent;\n if (focus === d) {\n // Parent is already zoomed to\n return;\n }\n }\n\n if (shouldClosePanel) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n }\n\n if (focus.parent) {\n let p = focus;\n while (p) {\n p.isInFocusTransitive = false;\n p = p.parent;\n }\n }\n\n let p = d;\n while (p) {\n p.isInFocusTransitive = !!p.children;\n p = p.parent;\n }\n\n focus = d;\n\n const isVerySmallCircle = focus.r * 2 / (focus.r * 2 + margin) < 0.3;\n\n if (isVerySmallCircle || scope.currentSliderValue > scope.currentBrowserLimit) {\n // no fancy animation for slower browsers if above the limit or if zooming to a very small circle\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)]);\n\n text.each(function(d) {\n textUpdate.call(this, d);\n });\n } else {\n // the fancy version for faster browsers\n const transition = d3.transition()\n .duration(ZOOM_DURATION)\n .tween(\"zoom\", function(d) {\n const i = d3.interpolateZoom(view, [focus.x, focus.y, adjustRadius(focus.r)]);\n return function(t) {\n zoomTo(i(t));\n };\n });\n\n transition.selectAll(\"text\")\n // Experimental: hide texts to be hidden on \"start\", show texts to be shown on \"end\"\n .each(textUpdate);\n }\n }\n\n rootFocusEvent = scope.$on('rootFocus', function() {\n $window.history.pushState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n doFocus(rootHierarchy);\n });\n\n classSearchEvent = scope.$on('classSearch', function(selectedClass) {\n doFocus(selectedClass);\n });\n }\n\n function sendSliderData() {\n const currentClassCount = scope.classHierarchyData.classCount;\n let currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n\n if (!currentSliderValue || currentSliderValue > currentClassCount) {\n currentSliderValue = currentClassCount;\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n }\n\n $rootScope.$broadcast(\"classCount\", currentClassCount, currentSliderValue);\n }\n\n window.addEventListener('resize', sendSliderData);\n\n window.addEventListener('beforeunload', removeResizeListener);\n\n function removeResizeListener() {\n window.removeEventListener('resize', sendSliderData);\n window.removeEventListener('beforeunload', removeResizeListener);\n }\n\n let prefixesWatch;\n let currentClassCountWatch;\n let searchedClassBroadcast;\n let onEnterClassSearchBroadcast;\n\n scope.$watch('classHierarchyData', function() {\n // when data changes unregister watchers by calling them\n if (prefixesWatch) prefixesWatch();\n if (currentClassCountWatch) currentClassCountWatch();\n if (searchedClassBroadcast) searchedClassBroadcast();\n if (onEnterClassSearchBroadcast) onEnterClassSearchBroadcast();\n\n // get initial state of prefixes (hidden or not) when changing repositories\n // in order to avoid triggering an unwanted prefixes watch\n let initialPrefixesState = getPrefixesState();\n\n if (scope.classHierarchyData.classCount) {\n sendSliderData();\n\n const rootData = structuredClone(scope.classHierarchyData);\n\n const root = d3.hierarchy(rootData);\n\n function sortRoot(root) {\n // add all classes to a flat array, add parent information\n // and sort according to instancesCount DESC, depth ASC\n\n return root.descendants()\n .sort(function(a, b) {\n if (a.data.sortingRank > b.data.sortingRank) {\n return -1;\n } else if (a.data.sortingRank < b.data.sortingRank) {\n return 1;\n } else if (a.data.depth > b.data.depth) {\n return 1;\n } else if (a.data.depth < b.data.depth) {\n return -1;\n } else {\n return 0;\n }\n });\n }\n\n const sortedChildren = sortRoot(root);\n\n // we start with an empty new rootData\n let filteredRootData;\n let noPrefixesGlobal;\n\n\n function restoreDiagramState(currentRootData, switchPrefixes) {\n const prefixesConfig = {\n keepPrevState: true,\n noPrefixes: getPrefixesState(),\n };\n\n // get noPrefixes flag from drawDiagram configuration params\n noPrefixesGlobal = prefixesConfig.noPrefixes;\n\n if (filteredRootData) {\n drawDiagram(filteredRootData, prefixesConfig, focus, true);\n } else {\n drawDiagram(currentRootData, prefixesConfig, focus, true);\n }\n\n $timeout(() => {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_SWITCH_PREFIXES, switchPrefixes);\n autoZoomToPreviousState();\n // Need to set this to false to enable the info panel to work when selecting a class.\n // The panel opening will be suppressed only when the prefixes are toggled.\n suppressPanelOpen = false;\n }, 70);\n }\n\n function redrawFilteredDiagram(currentSliderValue, sortedChildrenArray, useSlider) {\n if (!currentSliderValue) {\n return;\n }\n\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n\n filteredRootData = {\n name: ROOT_OBJ_NAME,\n children: [],\n };\n\n // walk through the given count of (sortedChildrenArray) classes\n // - record the id of each class we've seen\n // - add the rootData level classes to the new rootData\n const addedIds = new Set();\n for (let k = 1; k <= currentSliderValue; k++) {\n addedIds.add(sortedChildrenArray[k].data.id);\n if (sortedChildrenArray[k].parent === sortedChildrenArray[0]) { // i.e. the parent is the \"class hierarchy\"\n filteredRootData.children.push(sortedChildrenArray[k].data);\n }\n }\n\n // walk through all the classes in the new rootData and only keep those that have an \"added id\"\n // we create separate copies of the arrays in order not to contaminate the original data\n // we also copy each class's object ($.extend ...) for the same reason\n function fixChildren(node) {\n if (!node.children) {\n return;\n }\n const newChildren = [];\n for (const child of node.children) {\n if (addedIds.has(child.id)) {\n newChildren.push($.extend({}, child));\n }\n }\n node.children = newChildren;\n for (const child of node.children) {\n fixChildren(child);\n }\n }\n\n fixChildren(filteredRootData);\n\n if (useSlider) {\n // redraw diagram when slider value changes and persist current state\n // in local storage\n noPrefixesGlobal = angular.isUndefined(noPrefixesGlobal) ? getPrefixesState() : noPrefixesGlobal;\n const redrawConfig = {\n noPrefixes: noPrefixesGlobal,\n };\n drawDiagram(filteredRootData, redrawConfig);\n } else {\n // if the user returns to the diagram with back browser button\n // read the saved state (show/hide prefixes, current slider value)\n // from local storage and render the diagram according to the saved metrics\n restoreDiagramState(rootData);\n }\n }\n\n const currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n if (currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren);\n } else {\n const basicConfig = {\n doFade: true,\n keepPrevState: true,\n noPrefixes: getPrefixesState(),\n };\n drawDiagram(rootData, basicConfig);\n autoZoomToPreviousState();\n }\n\n prefixesWatch = scope.$watch('hidePrefixes', function(hidePrefixes) {\n if (angular.isUndefined(hidePrefixes) || initialPrefixesState) {\n initialPrefixesState = undefined;\n return;\n }\n // if digest overflows a possible fix might be wrapping this in $timeout\n $timeout(function() {\n suppressPanelOpen = true;\n savePrefixesState(hidePrefixes);\n restoreDiagramState(rootData, true);\n }, 50);\n }, true);\n\n currentClassCountWatch = scope.$watch('currentSliderValue', function(currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren, true);\n }, true);\n\n // we handle this event for the cases where we already have searched for a given class and\n // hit enter again on the already selected class in order again react and zoom to it again\n // if we are not at the moment\n let currentSearchedClass;\n onEnterClassSearchBroadcast = scope.$on('onEnterKeypressSearchAction', function(event) {\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n\n searchedClassBroadcast = scope.$on('searchedClass', function(event, searchedClass) {\n currentSearchedClass = flattenedClassData[searchedClass.name];\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n }\n }, true);\n }\n}\n","var CirclePacking = CirclePacking || {};\n\nCirclePacking.SingleChild = function () {\n /*\n Functions that enable single child circles to display properly, see\n http://stackoverflow.com/questions/22307486/d3-js-packed-circle-layout-how-to-adjust-child-radius\n */\n function addPlaceholders(node, first) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n var child = node.children[i];\n addPlaceholders(child);\n }\n\n if (node.children.length === 1) {\n var placeholderSize = node.size * 1.2;\n if (first) {\n placeholderSize = node.children[0].size * 0.1;\n }\n node.children.push({\n name: 'placeholder', size: placeholderSize,\n // children: []\n });\n }\n }\n }\n\n function removePlaceholders(nodes) {\n for (var i = nodes.length - 1; i >= 0; i--) {\n var node = nodes[i];\n\n if (node.data.name === 'placeholder') {\n nodes.splice(i, 1);\n } else {\n if (node.children) {\n removePlaceholders(node.children);\n }\n }\n }\n }\n\n function centerNodes(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n\n if (node.children) {\n if (node.children.length === 1) {\n var offset = node.x - node.children[0].x;\n node.children[0].x += offset;\n reposition(node.children[0], offset);\n }\n }\n }\n\n function reposition(node, offset) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].x += offset;\n reposition(node.children[i], offset);\n }\n }\n }\n }\n\n function makePositionsRelativeToZero(nodes) {\n //use this to have vis centered at 0,0,0 (easier for positioning)\n var offsetX = nodes[0].x;\n var offsetY = nodes[0].y;\n\n for (var i = 0; i < nodes.length; i++) {\n\n var node = nodes[i];\n\n node.x -= offsetX;\n node.y -= offsetY;\n }\n }\n\n return {\n addPlaceholders: addPlaceholders,\n removePlaceholders: removePlaceholders,\n centerNodes: centerNodes,\n makePositionsRelativeToZero: makePositionsRelativeToZero\n }\n}();\n\nexport default CirclePacking;\n","import 'lib/d3.patch.js'\nimport {selectAll} from 'd3';\n\nconst d3 = {selectAll};\nvar SVG = SVG || {};\n\nSVG.Export = function () {\n function getCSSRules(cssSourceFilePath) {\n const cssRules = $('link[href=\"' + cssSourceFilePath + '\"]')[0].sheet.rules;\n let cssStr = \"\";\n _.each(cssRules, function (value) {\n cssStr += value.cssText;\n });\n return cssStr;\n }\n\n function generateBase64ImageSource(svgSelectorClass) {\n if (!svgSelectorClass) {\n svgSelectorClass = \"svg\";\n }\n // add needed xml namespace\n const exportSvg = d3.selectAll(svgSelectorClass)\n .attr(\"version\", \"1.1\")\n .attr(\"xmlns\", \"http://www.w3.org/2000/svg\")\n .node().parentNode.innerHTML;\n\n // convert selected html to base64\n return \"data:image/svg+xml;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(exportSvg)));\n }\n\n return {\n getCSSRules: getCSSRules,\n generateBase64ImageSource: generateBase64ImageSource\n };\n}();\n\nexport default SVG;\n"],"names":["classHierarchyDirective","$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate","restrict","template","scope","classHierarchyData","flattenedClassNames","selectedClass","currentSliderValue","showClassInfoPanel","showExternalElements","hidePrefixes","currentBrowserLimit","link","element","attrs","suppressPanelOpen","tip","rootHierarchy","packLayout","d3","size","diameter","color","domain","range","interpolate","svg","insert","attr","on","appendMainGroup","append","id","transform","getPrefixesState","get","CLASS_HIERARCHY_HIDE_PREFIXES","prepareForSVGImageExport","cssRules","SVG","Export","getCSSRules","$","style","imgSrc","generateBase64ImageSource","this","href","download","getActiveRepository","g","hasData","classCount","canUseRepo","isSystemRepository","autoZoomToPreviousState","doFocus","focus","rootFocusEvent","classSearchEvent","service","LicenseContextService","onLicenseChanged","license","valid","loader","hierarchyError","selGraphFromCache","getClassHierarchyData","contextID","uri","success","response","status","warning","instant","error","getError","name","fetchClassHierarchy","flattenedClassData","drawDiagram","root","config","newFocus","switchPrefixes","remove","CirclePacking","SingleChild","addPlaceholders","sum","d","nodes","descendants","view","isInFocusTransitive","removePlaceholders","centerNodes","makePositionsRelativeToZero","d3tip","customPosition","event","top","bottom","innerHeight","clientY","right","innerWidth","clientX","html","data","call","circleGroup","selectAll","enter","doFade","each","D3","Transition","fadeIn","circle","role","children","depth","key","push","classed","noPrefixes","textHidden","show","hide","zoom","getCurrentClassDataAndMarkSelected","obj","selected","closeClassInfoPanel","_","uniqBy","clickCancel","Click","delayDblClick","$on","history","pushState","$broadcast","stopPropagation","lastTimeWheel","preventDefault","now","Date","direction","deltaY","target","__data__","parent","newobj","i","length","sortingRank","replaceState","sendSliderData","text","textSel","idx","indexOf","noPrefixName","substring","Text","calcFontSize","r","getTextWithElipsisIfNeeded","textContent","keepPrevState","focusOnCurrentClass","focusHistoryId","hash","onpopstate","state","skipOnPopState","node","zoomTo","v","k","x","y","fullName","topLevelParentUri","c","adjustRadius","newr","textUpdate","display","shouldClosePanel","p","duration","tween","t","currentClassCount","CLASS_HIERARCHY_CURRENT_SLIDER_VALUE","set","prefixesWatch","currentClassCountWatch","searchedClassBroadcast","onEnterClassSearchBroadcast","window","addEventListener","removeResizeListener","removeEventListener","$watch","initialPrefixesState","rootData","structuredClone","sortedChildren","sort","a","b","filteredRootData","noPrefixesGlobal","restoreDiagramState","currentRootData","prefixesConfig","CLASS_HIERARCHY_SWITCH_PREFIXES","redrawFilteredDiagram","sortedChildrenArray","useSlider","addedIds","Set","add","fixChildren","newChildren","child","has","extend","angular","isUndefined","basicConfig","currentSearchedClass","undefined","savePrefixesState","searchedClass","renderCirclePacking","module","constant","directive","$inject","first","placeholderSize","splice","offset","reposition","offsetX","offsetY","cssSourceFilePath","sheet","rules","cssStr","value","cssText","svgSelectorClass","exportSvg","parentNode","innerHTML","btoa","unescape","encodeURIComponent"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"86099.09b02083be9893bf7ad2.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/graphexplore/directives/rdf-class-hierarchy.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/lib/common/circle-packing.js","webpack://root-config/./packages/legacy-workbench/src/js/lib/common/svg-export.js"],"sourcesContent":["/* eslint-disable no-invalid-this */\nimport d3tip from 'lib/d3-tip/d3-tip-patch';\nimport CirclePacking from 'lib/common/circle-packing';\nimport D3 from 'lib/common/d3-utils';\nimport * as d3 from 'd3';\nimport SVG from 'lib/common/svg-export';\nimport 'angular/utils/local-storage-adapter';\nimport {service, LicenseContextService} from '@ontotext/workbench-api';\n\nangular\n .module('graphdb.framework.graphexplore.directives.class', [\n 'graphdb.framework.graphexplore.controllers.class',\n 'graphdb.framework.utils.localstorageadapter',\n ])\n .constant(\"ZOOM_DURATION\", 500)\n .constant(\"ROOT_OBJ_NAME\", \"RDF Class Hierarchy\")\n .directive('rdfClassHierarchy', classHierarchyDirective);\n\nclassHierarchyDirective.$inject = ['$rootScope', '$location', 'GraphDataRestService', '$window', '$timeout', '$repositories', 'toastr', 'ZOOM_DURATION', 'ROOT_OBJ_NAME', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction classHierarchyDirective($rootScope, $location, GraphDataRestService, $window, $timeout, $repositories, toastr, ZOOM_DURATION, ROOT_OBJ_NAME, LocalStorageAdapter, LSKeys, $translate) {\n return {\n restrict: 'AE',\n template: '<div id=\"classChart\"></div>',\n scope: {\n classHierarchyData: '=',\n flattenedClassNames: '=',\n selectedClass: '=',\n currentSliderValue: '=',\n showClassInfoPanel: '=',\n showExternalElements: '=',\n hidePrefixes: '=',\n currentBrowserLimit: '=',\n },\n link: linkFunc,\n };\n\n function linkFunc(scope, element, attrs) {\n renderCirclePacking(scope, element);\n }\n\n function renderCirclePacking(scope, element) {\n /**\n * A boolean flag that determines whether the opening of the side info panel\n * should be suppressed when focusing on the chart while a class is selected.\n */\n let suppressPanelOpen = false;\n\n const width = 800;\n const height = 800;\n const diameter = height;\n const margin = 20;\n let tip;\n let rootHierarchy;\n\n const packLayout = d3.pack()\n .size([diameter - margin, diameter - margin]);\n\n const color = d3.scaleLinear()\n .domain([0, 4])\n .range([\"hsl(19, 70%, 90%)\", \"hsl(19, 70%, 50%)\"])\n .interpolate(d3.interpolateHcl);\n\n const svg = d3.select(\"#classChart\")\n .insert(\"svg:svg\", \"h2\")\n .attr(\"viewBox\", \"0 0 \" + width + \" \" + height)\n .attr(\"preserveAspectRatio\", \"xMidYMid meet\")\n .on(\"dblclick.zoom\", null);\n\n function appendMainGroup() {\n return svg.append(\"svg:g\")\n .attrs({\n id: \"main-group\",\n transform: \"translate(\" + width / 2 + \",\" + height / 2 + \")\",\n });\n }\n\n function savePrefixesState(hidePrefixes) {\n if (!angular.isUndefined(hidePrefixes)) {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES, hidePrefixes);\n }\n }\n\n function getPrefixesState() {\n return LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES) === \"true\";\n }\n\n /*\n * Prepares SVG document image export by adding xml namespaces and\n * additional style information\n */\n function prepareForSVGImageExport() {\n // get css rules for the diagram\n const cssRules = SVG.Export.getCSSRules(\"css/rdf-class-hierarchy-labels.css?v=3.5.0-TR7\");\n // inline css rules in a defs tag\n d3.selectAll(\"#main-group\")\n .append(\"defs\");\n $(\"defs\").append('<style type=\"text/css\"><![CDATA[' + cssRules + ']]></style>');\n\n // switch opacity to visible\n d3.selectAll(\"g\")\n .style(\"opacity\", 1);\n\n // convert selected html to base64\n const imgSrc = SVG.Export.generateBase64ImageSource(\"#classChart svg\");\n\n // set the binary image and a name for the downloadable file on the export button\n d3.select(this).attrs({\n href: imgSrc,\n download: \"class-hierarchy-\" + $repositories.getActiveRepository() + \".svg\",\n });\n }\n\n scope.hidePrefixes = getPrefixesState();\n\n let g = appendMainGroup();\n\n function fetchClassHierarchy() {\n $rootScope.loader = true;\n $rootScope.hierarchyError = false;\n const selGraphFromCache = LocalStorageAdapter.get(`classHierarchy-selectedGraph-${$repositories.getActiveRepository()}`);\n GraphDataRestService.getClassHierarchyData(selGraphFromCache !== null ? selGraphFromCache.contextID.uri : \"\")\n .success(function(response, status) {\n $rootScope.loader = false;\n if (status === 207) {\n toastr.warning(\n $translate.instant('graphexplore.update.diagram'),\n $translate.instant('graphexplore.repository.data.changed'),\n );\n }\n scope.classHierarchyData = response;\n d3.select(\"#download-svg\").on(\"mouseover\", prepareForSVGImageExport);\n })\n .error(function(response) {\n $rootScope.loader = false;\n $rootScope.hierarchyError = getError(response);\n toastr.error(\n $translate.instant('graphexplore.error.request.failed', {\n name: ROOT_OBJ_NAME,\n error: getError(response),\n }),\n );\n });\n }\n\n const hasData = !!scope.classHierarchyData?.classCount;\n const canUseRepo = $repositories.getActiveRepository() && !$repositories.isSystemRepository();\n\n service(LicenseContextService).onLicenseChanged((license) => {\n if (license?.valid && !hasData && canUseRepo) {\n fetchClassHierarchy();\n }\n });\n\n let autoZoomToPreviousState;\n let doFocus;\n\n let focus;\n let rootFocusEvent;\n let classSearchEvent;\n const flattenedClassData = {};\n\n function drawDiagram(root, config, newFocus, switchPrefixes) {\n if (rootFocusEvent) rootFocusEvent();\n if (classSearchEvent) classSearchEvent();\n // remove old group tag containing the diagram\n d3.selectAll(\"#main-group\").remove();\n\n // append new empty group tag in order to rerender new diagram\n g = appendMainGroup();\n\n // fix for single child classes\n CirclePacking.SingleChild.addPlaceholders(root, true);\n\n rootHierarchy = d3.hierarchy(root);\n rootHierarchy.sum(function(d) {\n return d.size;\n });\n focus = newFocus ? newFocus : rootHierarchy;\n\n packLayout(rootHierarchy);\n\n const nodes = rootHierarchy.descendants();\n let view;\n\n focus.isInFocusTransitive = true;\n\n // fixes for single child classes\n CirclePacking.SingleChild.removePlaceholders(nodes);\n CirclePacking.SingleChild.centerNodes(nodes);\n CirclePacking.SingleChild.makePositionsRelativeToZero(nodes);\n\n if (!tip) {\n tip = d3tip()\n .attr('class', 'd3-tip')\n .customPosition(function(d, event) {\n return {\n top: 'inherit',\n bottom: ($window.innerHeight - event.clientY) + 'px',\n right: ($window.innerWidth - event.clientX) + 'px',\n };\n })\n .html(function(d) {\n return d.data.name;\n });\n svg.call(tip);\n }\n\n const circleGroup = g.selectAll(\"circle\")\n .data(nodes)\n .enter().append(\"g\");\n\n if (config.doFade) {\n circleGroup.each(function(d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n let flattenedClassNames = [];\n\n const circle = circleGroup\n .append(\"circle\")\n .attr(\"class\", function(d) {\n return d.data.role;\n })\n .attr(\"data-test\", function(d) {\n return \"class-\" + d.data.name;\n })\n .attr(\"guide-selector\", function(d) {\n return \"class-\" + d.data.name;\n })\n .style(\"fill\", function(d) {\n //return colors[d.depth % 6];\n return d.children ? color(d.depth) : \"#E0D0D0\";\n })\n .each(function(d) {\n d.circle = d3.select(this);\n if (d.data.name !== ROOT_OBJ_NAME) {\n const key = d.data.name;\n flattenedClassNames.push({name: key});\n flattenedClassData[[key]] = d;\n\n d.circle.classed(\"rdf-class\", true);\n d.circle.on('mouseover', function(event) {\n if (config.noPrefixes) {\n tip.show(d, event);\n } else if (!d.textHidden) {\n tip.hide(d);\n } else {\n tip.show(d, event);\n }\n });\n d.circle.on('mouseout', tip.hide);\n }\n })\n // custom event used when user is following a guide\n .on(\"gdb-focus\", (event, d) => doFocus(d))\n .on(\"gdb-zoom\", (event, d) => zoom(d));\n\n\n if (flattenedClassNames) {\n flattenedClassNames = _.uniqBy(flattenedClassNames, 'name');\n scope.flattenedClassNames = flattenedClassNames;\n }\n\n let selectedClass;\n\n function getCurrentClassDataAndMarkSelected(obj) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n obj.circle.classed(\"selected\", obj.selected = true);\n selectedClass = obj;\n }\n\n function showClassInfoPanel() {\n scope.selectedClass = selectedClass;\n scope.showClassInfoPanel = true;\n }\n\n function closeClassInfoPanel() {\n scope.showClassInfoPanel = false;\n }\n\n function goToDomainRangeGraphView() {\n $rootScope.$broadcast('goToDomainRangeGraphView', selectedClass, focus);\n }\n\n const clickCancel = D3.Click.delayDblClick();\n d3.selectAll(\".parent, .topLevelParent, .child, .root\")\n .call(clickCancel);\n\n doFocus = function(obj) {\n zoom(obj);\n\n if (obj.data.name === ROOT_OBJ_NAME) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n } else {\n getCurrentClassDataAndMarkSelected(obj);\n if (!suppressPanelOpen) {\n showClassInfoPanel();\n }\n\n // FIXME: is it ok to bind this event handler every time and not just once?\n scope.$on('sidePanelClosed', function(event) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n });\n }\n\n\n //do not stop event propagation here\n };\n\n clickCancel.on(\"click\", function(event, obj) {\n // add clicked class to browser history\n if (obj.data.id) {\n $window.history.pushState({id: obj.data.id}, \"classHierarchyPage\" + obj.data.id, \"hierarchy#\" + obj.data.id);\n }\n\n //hide current d3-tip tooltip\n tip.hide();\n\n doFocus(obj);\n });\n\n clickCancel.on(\"dblclick\", function(event, obj) {\n if (obj === root) {\n return;\n }\n // hide current d3-tip tooltip in order not to appear in the next view\n tip.hide();\n getCurrentClassDataAndMarkSelected(obj);\n goToDomainRangeGraphView();\n\n event.stopPropagation();\n });\n\n let lastTimeWheel = 0;\n svg.on('wheel', function(event) {\n // hide current d3-tip tooltip\n tip.hide();\n\n event.preventDefault();\n event.stopPropagation();\n\n // at least 100ms must have passed since last time we updated\n const now = Date.now();\n if (now - lastTimeWheel > 100) {\n lastTimeWheel = now;\n } else {\n return;\n }\n\n let direction = '';\n if (event.deltaY <= -1) {\n direction = 'in';\n } else if (event.deltaY >= 1) {\n direction = 'out';\n }\n\n let obj = event.target.__data__;\n\n if (!obj) {\n // scroll outside the big circle\n obj = focus;\n }\n\n if (direction === 'in') {\n // determine object to zoom to\n\n if (obj !== focus) {\n // consider the object on which the scroll event occurred\n // and find the furthest parent that has no focused children\n while (obj.parent && !obj.parent.isInFocusTransitive) {\n obj = obj.parent;\n }\n if (obj.depth < focus.depth) {\n // however if that parent is of lower depth than the focus we ignore it\n obj = focus;\n }\n }\n\n if (obj === focus && obj.children) {\n // if object is in focus and it has children we zoom to its biggest child\n // TODO: sort children on backend\n let newobj = obj.children[0];\n for (let i = 1; i < obj.children.length; i++) {\n if (obj.children[i].sortingRank > newobj.sortingRank) {\n newobj = obj.children[i];\n }\n }\n if (newobj.children) {\n // Use the child only if it has children\n obj = newobj;\n }\n } else if (!obj.children) {\n // If node has no children use its parent instead\n obj = obj.parent;\n }\n\n zoom(obj, true);\n } else if (direction === 'out') {\n // zooming out simply goes one parent up\n obj = focus.parent;\n if (obj) {\n zoom(obj, true);\n }\n }\n\n if (focus.data.name === ROOT_OBJ_NAME) {\n $window.history.replaceState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n }\n\n // redraw slider on zoom out\n sendSliderData();\n });\n\n const text = g.selectAll(\"text\")\n .data(nodes)\n .enter().append(\"text\")\n .attr(\"class\", function(d) {\n return d.children && d.children.length ? \"label\" : \"label child-label\";\n })\n .each(function(d) {\n d.textSel = d3.select(this);\n });\n\n function trimPrefixes(d) {\n const idx = d.data.name.indexOf(\":\");\n const absUriIdx = d.data.name.indexOf(\"http://\");\n if (absUriIdx > -1) {\n // if we have no prefix available ignore\n d.noPrefixName = d.data.name;\n } else if (idx > -1) {\n d.noPrefixName = d.data.name.substring(idx + 1);\n }\n }\n\n if (config.noPrefixes) {\n text.each(trimPrefixes);\n text\n .style(\"font-size\", function(d) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r);\n })\n .text(function(d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r / 3);\n });\n } else {\n text\n .style(\"font-size\", function(d) {\n return D3.Text.calcFontSize(d.data.name, d.r);\n })\n .text(function(d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r / 3);\n });\n }\n\n // TODO: make this use the full version (same as zoom)\n text.style(\"display\", function(d) {\n if (d.parent && d.parent.data === focus.data) {\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n return null;\n } else {\n d.textHidden = true;\n return \"none\";\n }\n });\n\n if (config.doFade && !config.keepPrevState) {\n text.each(function(d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n autoZoomToPreviousState = function() {\n function focusOnCurrentClass(focusHistoryId) {\n if (focusHistoryId) {\n circle.each(function(d) {\n if (+focusHistoryId === d.data.id) {\n doFocus(d);\n }\n });\n }\n }\n\n const focusHistoryId = $location.hash();\n\n $window.onpopstate = function(event) {\n if (event.state && !event.state.skipOnPopState) {\n const focusHistoryId = event.state.id;\n focusOnCurrentClass(focusHistoryId);\n }\n };\n\n focusOnCurrentClass(focusHistoryId);\n };\n\n const node = g.selectAll(\"circle, text\");\n\n function zoomTo(v, switchPrefixes) {\n const k = diameter / v[2];\n view = v;\n\n node.attr(\"transform\", function(d) {\n return \"translate(\" + (d.x - v[0]) * k + \",\" + (d.y - v[1]) * k + \")\";\n });\n\n circle.attr(\"r\", function(d) {\n return d.r * k;\n });\n\n function switchPrefixesInPlace(d) {\n // if uris match with the topLevelParentUri of the focused element\n // or your focus is a top level parent hide its label and if it is not\n // a child element show all of its child labels. If it is a child element\n // only show its label.\n if (d.data.fullName === focus.data.topLevelParentUri || focus.data.topLevelParentUri === ROOT_OBJ_NAME) {\n d.textSel.style(\"display\", \"none\");\n if (focus.children && focus.children.length) {\n _.each(focus.children, function(c) {\n c.textSel.style(\"display\", \"inline\");\n });\n } else {\n focus.textSel.style(\"display\", \"inline\");\n }\n\n // in order to show prefixes of siblings check if the focused\n // element has a parent and show all of its children except\n // for the name of the focused element because you need to see\n // its children\n if (focus.parent) {\n _.each(focus.parent.children, function(c) {\n if (c.data.name !== focus.data.name) {\n c.textSel.style(\"display\", \"inline\");\n }\n });\n }\n }\n }\n\n if (switchPrefixes) {\n text.each(switchPrefixesInPlace);\n }\n\n text\n .style(\"font-size\", function(d) {\n if (config.noPrefixes) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r * k);\n }\n return D3.Text.calcFontSize(d.data.name, d.r * k);\n })\n .text(function(d) {\n if (config.noPrefixes) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r * k / 3);\n }\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r * k / 3);\n });\n }\n\n\n function adjustRadius(r) {\n let newr = r * 2 + margin;\n if (r * 2 / newr < 0.3) {\n // for very small circles we need to adjust\n newr = r * 2 + 2;\n }\n return newr;\n }\n\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)], switchPrefixes);\n\n function textUpdate(d) {\n if (d.isInFocusTransitive || !(d.parent && d.parent.isInFocusTransitive)) {\n // hide labels of classes that are in focus (including children) OR whose parents aren't in focus\n d.textHidden = true;\n this.style.display = \"none\";\n } else {\n // show all other labels\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n this.style.display = \"\";\n }\n }\n\n function zoom(d, shouldClosePanel) {\n // use empty timeout to force the following code to be executed on the next $digest cycle\n // in order to avoid '$digest in progress' error\n $timeout(function() {\n scope.showExternalElements = (d.data.name === ROOT_OBJ_NAME);\n });\n\n if (focus === d) {\n // Node is already zoomed to\n // Important to return before we modify the history, otherwise we choke the browser\n return;\n }\n\n if (d.data.id) {\n // Set the `skipOnPopState` flag so the popstate handler ignores this history update,\n // preventing a recursive history state change triggered by the zoom operation.\n $window.history.replaceState({id: d.data.id, skipOnPopState: true}, \"classHierarchyPage\" + d.data.id, \"hierarchy#\" + d.data.id);\n }\n\n if (!d.children) {\n // No children - zoom to parent instead\n d = d.parent;\n if (focus === d) {\n // Parent is already zoomed to\n return;\n }\n }\n\n if (shouldClosePanel) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n }\n\n if (focus.parent) {\n let p = focus;\n while (p) {\n p.isInFocusTransitive = false;\n p = p.parent;\n }\n }\n\n let p = d;\n while (p) {\n p.isInFocusTransitive = !!p.children;\n p = p.parent;\n }\n\n focus = d;\n\n const isVerySmallCircle = focus.r * 2 / (focus.r * 2 + margin) < 0.3;\n\n if (isVerySmallCircle || scope.currentSliderValue > scope.currentBrowserLimit) {\n // no fancy animation for slower browsers if above the limit or if zooming to a very small circle\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)]);\n\n text.each(function(d) {\n textUpdate.call(this, d);\n });\n } else {\n // the fancy version for faster browsers\n const transition = d3.transition()\n .duration(ZOOM_DURATION)\n .tween(\"zoom\", function(d) {\n const i = d3.interpolateZoom(view, [focus.x, focus.y, adjustRadius(focus.r)]);\n return function(t) {\n zoomTo(i(t));\n };\n });\n\n transition.selectAll(\"text\")\n // Experimental: hide texts to be hidden on \"start\", show texts to be shown on \"end\"\n .each(textUpdate);\n }\n }\n\n rootFocusEvent = scope.$on('rootFocus', function() {\n $window.history.pushState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n doFocus(rootHierarchy);\n });\n\n classSearchEvent = scope.$on('classSearch', function(selectedClass) {\n doFocus(selectedClass);\n });\n }\n\n function sendSliderData() {\n const currentClassCount = scope.classHierarchyData.classCount;\n let currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n\n if (!currentSliderValue || currentSliderValue > currentClassCount) {\n currentSliderValue = currentClassCount;\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n }\n\n $rootScope.$broadcast(\"classCount\", currentClassCount, currentSliderValue);\n }\n\n window.addEventListener('resize', sendSliderData);\n\n window.addEventListener('beforeunload', removeResizeListener);\n\n function removeResizeListener() {\n window.removeEventListener('resize', sendSliderData);\n window.removeEventListener('beforeunload', removeResizeListener);\n }\n\n let prefixesWatch;\n let currentClassCountWatch;\n let searchedClassBroadcast;\n let onEnterClassSearchBroadcast;\n\n scope.$watch('classHierarchyData', function() {\n // when data changes unregister watchers by calling them\n if (prefixesWatch) prefixesWatch();\n if (currentClassCountWatch) currentClassCountWatch();\n if (searchedClassBroadcast) searchedClassBroadcast();\n if (onEnterClassSearchBroadcast) onEnterClassSearchBroadcast();\n\n // get initial state of prefixes (hidden or not) when changing repositories\n // in order to avoid triggering an unwanted prefixes watch\n let initialPrefixesState = getPrefixesState();\n\n if (scope.classHierarchyData.classCount) {\n sendSliderData();\n\n const rootData = structuredClone(scope.classHierarchyData);\n\n const root = d3.hierarchy(rootData);\n\n function sortRoot(root) {\n // add all classes to a flat array, add parent information\n // and sort according to instancesCount DESC, depth ASC\n\n return root.descendants()\n .sort(function(a, b) {\n if (a.data.sortingRank > b.data.sortingRank) {\n return -1;\n } else if (a.data.sortingRank < b.data.sortingRank) {\n return 1;\n } else if (a.data.depth > b.data.depth) {\n return 1;\n } else if (a.data.depth < b.data.depth) {\n return -1;\n } else {\n return 0;\n }\n });\n }\n\n const sortedChildren = sortRoot(root);\n\n // we start with an empty new rootData\n let filteredRootData;\n let noPrefixesGlobal;\n\n\n function restoreDiagramState(currentRootData, switchPrefixes) {\n const prefixesConfig = {\n keepPrevState: true,\n noPrefixes: getPrefixesState(),\n };\n\n // get noPrefixes flag from drawDiagram configuration params\n noPrefixesGlobal = prefixesConfig.noPrefixes;\n\n if (filteredRootData) {\n drawDiagram(filteredRootData, prefixesConfig, focus, true);\n } else {\n drawDiagram(currentRootData, prefixesConfig, focus, true);\n }\n\n $timeout(() => {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_SWITCH_PREFIXES, switchPrefixes);\n autoZoomToPreviousState();\n // Need to set this to false to enable the info panel to work when selecting a class.\n // The panel opening will be suppressed only when the prefixes are toggled.\n suppressPanelOpen = false;\n }, 70);\n }\n\n function redrawFilteredDiagram(currentSliderValue, sortedChildrenArray, useSlider) {\n if (!currentSliderValue) {\n return;\n }\n\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n\n filteredRootData = {\n name: ROOT_OBJ_NAME,\n children: [],\n };\n\n // walk through the given count of (sortedChildrenArray) classes\n // - record the id of each class we've seen\n // - add the rootData level classes to the new rootData\n const addedIds = new Set();\n for (let k = 1; k <= currentSliderValue; k++) {\n addedIds.add(sortedChildrenArray[k].data.id);\n if (sortedChildrenArray[k].parent === sortedChildrenArray[0]) { // i.e. the parent is the \"class hierarchy\"\n filteredRootData.children.push(sortedChildrenArray[k].data);\n }\n }\n\n // walk through all the classes in the new rootData and only keep those that have an \"added id\"\n // we create separate copies of the arrays in order not to contaminate the original data\n // we also copy each class's object ($.extend ...) for the same reason\n function fixChildren(node) {\n if (!node.children) {\n return;\n }\n const newChildren = [];\n for (const child of node.children) {\n if (addedIds.has(child.id)) {\n newChildren.push($.extend({}, child));\n }\n }\n node.children = newChildren;\n for (const child of node.children) {\n fixChildren(child);\n }\n }\n\n fixChildren(filteredRootData);\n\n if (useSlider) {\n // redraw diagram when slider value changes and persist current state\n // in local storage\n noPrefixesGlobal = angular.isUndefined(noPrefixesGlobal) ? getPrefixesState() : noPrefixesGlobal;\n const redrawConfig = {\n noPrefixes: noPrefixesGlobal,\n };\n drawDiagram(filteredRootData, redrawConfig);\n } else {\n // if the user returns to the diagram with back browser button\n // read the saved state (show/hide prefixes, current slider value)\n // from local storage and render the diagram according to the saved metrics\n restoreDiagramState(rootData);\n }\n }\n\n const currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n if (currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren);\n } else {\n const basicConfig = {\n doFade: true,\n keepPrevState: true,\n noPrefixes: getPrefixesState(),\n };\n drawDiagram(rootData, basicConfig);\n autoZoomToPreviousState();\n }\n\n prefixesWatch = scope.$watch('hidePrefixes', function(hidePrefixes) {\n if (angular.isUndefined(hidePrefixes) || initialPrefixesState) {\n initialPrefixesState = undefined;\n return;\n }\n // if digest overflows a possible fix might be wrapping this in $timeout\n $timeout(function() {\n suppressPanelOpen = true;\n savePrefixesState(hidePrefixes);\n restoreDiagramState(rootData, true);\n }, 50);\n }, true);\n\n currentClassCountWatch = scope.$watch('currentSliderValue', function(currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren, true);\n }, true);\n\n // we handle this event for the cases where we already have searched for a given class and\n // hit enter again on the already selected class in order again react and zoom to it again\n // if we are not at the moment\n let currentSearchedClass;\n onEnterClassSearchBroadcast = scope.$on('onEnterKeypressSearchAction', function(event) {\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n\n searchedClassBroadcast = scope.$on('searchedClass', function(event, searchedClass) {\n currentSearchedClass = flattenedClassData[searchedClass.name];\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n }\n }, true);\n }\n}\n","var CirclePacking = CirclePacking || {};\n\nCirclePacking.SingleChild = function () {\n /*\n Functions that enable single child circles to display properly, see\n http://stackoverflow.com/questions/22307486/d3-js-packed-circle-layout-how-to-adjust-child-radius\n */\n function addPlaceholders(node, first) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n var child = node.children[i];\n addPlaceholders(child);\n }\n\n if (node.children.length === 1) {\n var placeholderSize = node.size * 1.2;\n if (first) {\n placeholderSize = node.children[0].size * 0.1;\n }\n node.children.push({\n name: 'placeholder', size: placeholderSize,\n // children: []\n });\n }\n }\n }\n\n function removePlaceholders(nodes) {\n for (var i = nodes.length - 1; i >= 0; i--) {\n var node = nodes[i];\n\n if (node.data.name === 'placeholder') {\n nodes.splice(i, 1);\n } else {\n if (node.children) {\n removePlaceholders(node.children);\n }\n }\n }\n }\n\n function centerNodes(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n\n if (node.children) {\n if (node.children.length === 1) {\n var offset = node.x - node.children[0].x;\n node.children[0].x += offset;\n reposition(node.children[0], offset);\n }\n }\n }\n\n function reposition(node, offset) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].x += offset;\n reposition(node.children[i], offset);\n }\n }\n }\n }\n\n function makePositionsRelativeToZero(nodes) {\n //use this to have vis centered at 0,0,0 (easier for positioning)\n var offsetX = nodes[0].x;\n var offsetY = nodes[0].y;\n\n for (var i = 0; i < nodes.length; i++) {\n\n var node = nodes[i];\n\n node.x -= offsetX;\n node.y -= offsetY;\n }\n }\n\n return {\n addPlaceholders: addPlaceholders,\n removePlaceholders: removePlaceholders,\n centerNodes: centerNodes,\n makePositionsRelativeToZero: makePositionsRelativeToZero\n }\n}();\n\nexport default CirclePacking;\n","import 'lib/d3.patch.js'\nimport {selectAll} from 'd3';\n\nconst d3 = {selectAll};\nvar SVG = SVG || {};\n\nSVG.Export = function () {\n function getCSSRules(cssSourceFilePath) {\n const cssRules = $('link[href=\"' + cssSourceFilePath + '\"]')[0].sheet.rules;\n let cssStr = \"\";\n _.each(cssRules, function (value) {\n cssStr += value.cssText;\n });\n return cssStr;\n }\n\n function generateBase64ImageSource(svgSelectorClass) {\n if (!svgSelectorClass) {\n svgSelectorClass = \"svg\";\n }\n // add needed xml namespace\n const exportSvg = d3.selectAll(svgSelectorClass)\n .attr(\"version\", \"1.1\")\n .attr(\"xmlns\", \"http://www.w3.org/2000/svg\")\n .node().parentNode.innerHTML;\n\n // convert selected html to base64\n return \"data:image/svg+xml;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(exportSvg)));\n }\n\n return {\n getCSSRules: getCSSRules,\n generateBase64ImageSource: generateBase64ImageSource\n };\n}();\n\nexport default SVG;\n"],"names":["classHierarchyDirective","$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate","restrict","template","scope","classHierarchyData","flattenedClassNames","selectedClass","currentSliderValue","showClassInfoPanel","showExternalElements","hidePrefixes","currentBrowserLimit","link","element","attrs","suppressPanelOpen","tip","rootHierarchy","packLayout","d3","size","diameter","color","domain","range","interpolate","svg","insert","attr","on","appendMainGroup","append","id","transform","getPrefixesState","get","CLASS_HIERARCHY_HIDE_PREFIXES","prepareForSVGImageExport","cssRules","SVG","Export","getCSSRules","$","style","imgSrc","generateBase64ImageSource","this","href","download","getActiveRepository","g","hasData","classCount","canUseRepo","isSystemRepository","autoZoomToPreviousState","doFocus","focus","rootFocusEvent","classSearchEvent","service","LicenseContextService","onLicenseChanged","license","valid","loader","hierarchyError","selGraphFromCache","getClassHierarchyData","contextID","uri","success","response","status","warning","instant","error","getError","name","fetchClassHierarchy","flattenedClassData","drawDiagram","root","config","newFocus","switchPrefixes","remove","CirclePacking","SingleChild","addPlaceholders","sum","d","nodes","descendants","view","isInFocusTransitive","removePlaceholders","centerNodes","makePositionsRelativeToZero","d3tip","customPosition","event","top","bottom","innerHeight","clientY","right","innerWidth","clientX","html","data","call","circleGroup","selectAll","enter","doFade","each","D3","Transition","fadeIn","circle","role","children","depth","key","push","classed","noPrefixes","textHidden","show","hide","zoom","getCurrentClassDataAndMarkSelected","obj","selected","closeClassInfoPanel","_","uniqBy","clickCancel","Click","delayDblClick","$on","history","pushState","$broadcast","stopPropagation","lastTimeWheel","preventDefault","now","Date","direction","deltaY","target","__data__","parent","newobj","i","length","sortingRank","replaceState","sendSliderData","text","textSel","idx","indexOf","noPrefixName","substring","Text","calcFontSize","r","getTextWithElipsisIfNeeded","textContent","keepPrevState","focusOnCurrentClass","focusHistoryId","hash","onpopstate","state","skipOnPopState","node","zoomTo","v","k","x","y","fullName","topLevelParentUri","c","adjustRadius","newr","textUpdate","display","shouldClosePanel","p","duration","tween","t","currentClassCount","CLASS_HIERARCHY_CURRENT_SLIDER_VALUE","set","prefixesWatch","currentClassCountWatch","searchedClassBroadcast","onEnterClassSearchBroadcast","window","addEventListener","removeResizeListener","removeEventListener","$watch","initialPrefixesState","rootData","structuredClone","sortedChildren","sort","a","b","filteredRootData","noPrefixesGlobal","restoreDiagramState","currentRootData","prefixesConfig","CLASS_HIERARCHY_SWITCH_PREFIXES","redrawFilteredDiagram","sortedChildrenArray","useSlider","addedIds","Set","add","fixChildren","newChildren","child","has","extend","angular","isUndefined","basicConfig","currentSearchedClass","undefined","savePrefixesState","searchedClass","renderCirclePacking","module","constant","directive","$inject","first","placeholderSize","splice","offset","reposition","offsetX","offsetY","cssSourceFilePath","sheet","rules","cssStr","value","cssText","svgSelectorClass","exportSvg","parentNode","innerHTML","btoa","unescape","encodeURIComponent"],"sourceRoot":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{font-variant-ligatures:none;-webkit-font-variant-ligatures:none}yasgui-component :not(h3,h4,sup,.no-force-default-font){font-size:1rem!important}yasgui-component .yasgui-btn{background-color:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important}yasgui-component .yasgui-btn:hover{background-color:var(--gw-button-secondary-hover-background)!important;border-color:var(--gw-button-secondary-hover-border-color)!important;color:var(--gw-button-secondary-hover-color)!important}yasgui-component .yasgui-btn.btn-selected{background-color:var(--gw-button-primary-background)!important;border-color:var(--gw-button-primary-border-color)!important;color:var(--gw-button-primary-color)!important}yasgui-component .yasgui-btn.btn-selected:hover{background-color:var(--gw-button-primary-hover-background)!important;border-color:var(--gw-button-primary-hover-border-color)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .yasgui-toolbar .yasgui-btn{font-size:14px!important;padding-left:8px;padding-right:8px}yasgui-component .yasgui-toolbar .btn-orientation{background-color:transparent!important;color:var(--gw-button-secondary-color)!important;font-size:28px!important;margin-left:1rem}.yasgui-host-element .yasgui .CodeMirror[class*=cm-s-]:not(.cm-s-default){background-color:#1c1c1c;border-color:var(--gw-tabs-tab-active-border-color);.CodeMirror-linenumber{color:#777}.cm-matchhighlight{background-color:#dbdeed}.yasqe_buttons .custom-button{background-color:#1c1c1c!important}.notification{background-color:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important}}.CodeMirror-hints{border:1px solid var(--gw-autocomplete-border-color);box-shadow:var(--gw-autocomplete-shadow-offset-x) var(--gw-autocomplete-shadow-offset-y) var(--gw-autocomplete-shadow-blur) var(--gw-autocomplete-shadow-spread) var(--gw-autocomplete-shadow-color)}.CodeMirror-hints,.CodeMirror-hints .CodeMirror-hint{background-color:var(--gw-autocomplete-background);color:var(--gw-autocomplete-color);font-family:inherit;b{color:var(--gw-autocomplete-dropdown-match-color);font-weight:bolder}}.CodeMirror-hints .CodeMirror-hint-active{background-color:var(--gw-autocomplete-option-selected-background);color:var(--gw-autocomplete-option-selected-color)}.CodeMirror-hints .CodeMirror-hint:not(.CodeMirror-hint-active):hover{background-color:var(--gw-autocomplete-option-focus-background);color:var(--gw-autocomplete-option-focus-color)}.yasqe-autocomplete-hint{background-color:var(--gw-autocomplete-background);color:var(--gw-autocomplete-color)}.yasqe .resizeChip{background-color:var(--gw-button-secondary-background)!important;color:var(--gw-button-secondary-color)!important}yasgui-component .yasqe .CodeMirror{font-family:var(--mono-font)!important}yasgui-component .yasqe .yasqe_buttons{background-color:var(--gw-editor-content-background);right:21px}yasgui-component .tabPanel .yasqe .yasqe-footer-buttons{padding-top:15px}yasgui-component .tabPanel .yasqe .yasqe-footer-buttons .abort-button{font-family:var(--main-font);font-weight:400;height:38px}yasgui-component .custom-button{background-color:var(--gw-editor-content-background)!important;color:var(--gw-primary-base)!important;font-size:1.5em!important}yasgui-component .custom-button:disabled:focus,yasgui-component .custom-button:disabled:hover{color:#818a91!important}yasgui-component .yasqe_queryButton{font-family:var(--main-font);font-weight:400;height:38px!important}yasgui-component .yasqe_queryButton,yasgui-component .yasqe_querySplitWrapper .yasqe_querySplitToggle{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)!important}yasgui-component .yasqe_queryButton:hover,yasgui-component .yasqe_querySplitWrapper .yasqe_querySplitToggle:hover{background-color:var(--gw-button-primary-hover-background)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .ontotext-run-dropdown-menu{border:1px solid var(--gw-tieredmenu-border-color);border-radius:0;box-shadow:var(--gw-tieredmenu-shadow-1-offset-x) var(--gw-tieredmenu-shadow-1-offset-y) var(--gw-tieredmenu-shadow-1-blur) var(--gw-tieredmenu-shadow-1-spread) var(--gw-tieredmenu-shadow-1-color)}yasgui-component .ontotext-run-dropdown-menu-item{background-color:var(--gw-tieredmenu-background)!important;color:var(--gw-tieredmenu-color)!important}yasgui-component .ontotext-run-dropdown-menu-item:hover{background-color:var(--gw-tieredmenu-item-focus-background)!important;color:var(--gw-tieredmenu-item-focus-color)!important}yasgui-component .yasgui .tabsList .tab{background-color:var(--gw-tabs-tab-background)!important;border-color:var(--gw-tabs-tab-border-color) var(--gw-tabs-tab-border-color) transparent!important;color:var(--gw-tabs-tab-color)!important;padding:.46em!important}yasgui-component .yasgui .tabsList .tab:hover{background-color:var(--gw-tabs-tab-hover-background)!important;border-color:var(--gw-tabs-tab-hover-border-color) var(--gw-tabs-tab-hover-border-color) transparent!important;color:var(--gw-tabs-tab-hover-color)!important}yasgui-component .yasgui .tabsList .tab.active,yasgui-component .yasgui .tabsList .tab.active:hover{background-color:var(--gw-tabs-tab-active-background)!important;border-color:var(--gw-tabs-tab-active-border-color) var(--gw-tabs-tab-active-border-color) transparent!important;color:var(--gw-tabs-tab-active-color)!important}yasgui-component .editable-text-field-wrapper,yasgui-component .yasgui .tabsList .tab{color:inherit;font-weight:400}yasgui-component .yasgui .tabsList .tab .closeTab{color:inherit!important}yasgui-component .yasgui .tabsList .addTab .ri-add-circle-line,yasgui-component .yasgui .tabsList .tab .closeTab .ri-close-line{font-size:1.225em!important;font-weight:100}yasgui-component .yasgui .tabsList .addTab{background-color:var(--gw-tabs-tab-background);border-color:var(--gw-tabs-tab-border-color) var(--gw-tabs-tab-border-color) transparent;color:var(--gw-button-secondary-color)!important}yasgui-component .yasgui .tabsList .addTab:hover,yasgui-component .yasgui .tabsList .tab .closeTab:hover{color:var(--gw-button-primary-link-hover-color)!important}.yasgui-host-element .yasgui .tabsList .create-tab-tab{background-color:var(--gw-tabs-tab-active-background)!important;border-color:var(--gw-tabs-tab-active-border-color) var(--gw-tabs-tab-active-border-color) transparent!important;color:var(--gw-tabs-tab-active-color)!important}yasgui-component .yasgui .tabsList .tab .editable-text-field{background-color:var(--gw-form-field-background)!important;border-color:var(--gw-form-field-border-color)!important;color:var(--gw-form-field-color)!important}yasgui-component .editable-text-field-wrapper .save-btn{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)!important}yasgui-component .editable-text-field-wrapper .save-btn:hover{background-color:var(--gw-button-primary-hover-background)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .editable-text-field-wrapper .cancel-btn{background-color:var(--gw-button-secondary-background);border-color:var(--gw-button-secondary-border-color);color:var(--gw-button-secondary-color)}yasgui-component .editable-text-field-wrapper .cancel-btn:hover{background-color:var(--gw-button-secondary-hover-background);border-color:var(--gw-button-secondary-hover-border-color);color:var(--gw-button-secondary-hover-color)}yasgui-component .editable-text-field-wrapper .save-btn,yasgui-component .editable-text-field-wrapper .save-btn:hover{background-color:var(--gw-primary-base)}yasgui-component .editable-text-field-wrapper .close-btn span,yasgui-component .editable-text-field-wrapper .save-btn span{font-weight:900}yasgui-component .ontotext-dropdown-menu .ontotext-dropdown-menu-item{font-size:1rem;padding:.5em 1.2em}yasgui-component .ontotext-dropdown-button{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)!important;height:40px}yasgui-component .ontotext-dropdown-menu.open{border:1px solid var(--gw-tieredmenu-border-color)!important;box-shadow:var(--gw-tieredmenu-shadow-1-offset-x) var(--gw-tieredmenu-shadow-1-offset-y) var(--gw-tieredmenu-shadow-1-blur) var(--gw-tieredmenu-shadow-1-spread) var(--gw-tieredmenu-shadow-1-color)}yasgui-component .ontotext-dropdown-menu.open .ontotext-dropdown-menu-item{background-color:var(--gw-tieredmenu-background)!important;color:var(--gw-tieredmenu-item-color)!important}yasgui-component .ontotext-download-as .ontotext-dropdown-button .button-name{font-family:var(--main-font);font-weight:400}yasgui-component .ontotext-download-as .ontotext-dropdown-button{height:38px}yasgui-component .ontotext-dropdown-button.ri-arrow-down-s-line:hover:after,yasgui-component .ontotext-dropdown-button.ri-arrow-up-s-line:hover:after,yasgui-component .ontotext-dropdown-button:hover{background-color:var(--gw-button-primary-hover-background)!important;color:var(--gw-button-primary-hover-color)}yasgui-component .ontotext-dropdown-button.ri-arrow-down-s-line:after,yasgui-component .ontotext-dropdown-button.ri-arrow-up-s-line:after{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)}yasgui-component .ontotext-dropdown-menu .ontotext-dropdown-menu-item:hover{background-color:var(--gw-tieredmenu-item-focus-background)!important;color:var(--gw-tieredmenu-item-focus-color)!important}yasgui-component .yasr-toolbar{align-items:stretch!important;font-size:16px;line-height:1.25;padding-left:10px}yasgui-component .yasr-toolbar .yasr-toolbar-element{height:38px}yasgui-component .yasr-toolbar .chart-download-as-button,yasgui-component .yasr-toolbar .pivot-table-download-as-button{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)!important}yasgui-component .yasr-toolbar .chart-download-as-button:hover,yasgui-component .yasr-toolbar .pivot-table-download-as-button:hover{background-color:var(--gw-button-primary-hover-background)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .saved-queries-container{background-color:var(--gw-dialog-background)!important;border-color:var(--gw-dialog-border-color);-webkit-box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);color:var(--gw-dialog-color)!important}yasgui-component .saved-queries-container .arrow:before{border-left-color:var(--gw-dialog-border-color)}yasgui-component .saved-queries-container .arrow:after{border-left-color:var(--gw-dialog-background)}yasgui-component .saved-queries-container .saved-query-actions .saved-query-action{background-color:var(--gw-dialog-background)!important;color:var(--gw-button-primary-link-color)!important}.dialog{background-color:var(--gw-dialog-background)!important;border:1px solid var(--gw-panel-border-color);-webkit-box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);color:var(--gw-dialog-color)!important}.dialog .dialog-header{border-bottom-color:var(--gw-dialog-border-color)!important}.dialog .dialog-header .close-button{background-color:var(--gw-dialog-background)!important;color:var(--gw-dialog-color)!important}.dialog .dialog-footer .cancel-button{background-color:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important}.dialog .dialog-footer .cancel-button:hover{background-color:var(--gw-button-secondary-hover-background)!important;border-color:var(--gw-button-secondary-hover-border-color)!important;color:var(--gw-button-secondary-hover-color)!important}.dialog .dialog-footer{border-top-color:var(--gw-dialog-border-color)!important}.keyboard-shortcuts-dialog-wrapper .dialog .dialog-header .close-button{background-color:var(--gw-button-secondary-background);border-color:var(--gw-button-secondary-border-color);color:var(--gw-button-secondary-color)}.keyboard-shortcuts-dialog-wrapper .dialog .dialog-header .close-button:hover{color:var(--gw-button-primary-link-hover-color)!important}.keyboard-shortcuts-content .keyboard-shortcut-description-item-description{color:var(--gw-message-info-color)!important}.dialog .form-field :is(input:not([type=checkbox]),select,textarea){background-color:var(--gw-form-field-background)!important;border-color:var(--gw-form-field-border-color)!important;color:var(--gw-form-field-color)!important}.dialog .form-field input[type=checkbox]:checked{background-color:var(--gw-primary-base);border-color:var(--gw-primary-base)}.dialog .form-field input[type=text]:focus,.dialog .form-field textarea:focus{border-color:var(--gw-form-field-focus-border-color)!important}.confirmation-dialog .dialog-body,yasgui-component .dialog-body{font-size:1.25rem!important}.confirmation-dialog .dialog-footer .cancel-button,yasgui-component .dialog .dialog-footer .cancel-button{background-color:#ebebeb;border-color:#ebebeb;margin-right:3px}.confirmation-dialog .dialog-footer .confirm-button,yasgui-component .confirm-button,yasgui-component .ok-button,yasgui-component .primary-button{background-color:var(--gw-button-primary-background)!important;border-color:var(--gw-button-primary-border-color)!important;color:var(--gw-button-primary-color)!important}.confirmation-dialog .dialog-footer .confirm-button:focus,.confirmation-dialog .dialog-footer .confirm-button:hover,yasgui-component .confirm-button:focus,yasgui-component .confirm-button:hover,yasgui-component .ok-button:focus,yasgui-component .ok-button:hover,yasgui-component .primary-button:focus,yasgui-component .primary-button:hover{background-color:var(--gw-button-primary-hover-background)!important;border-color:var(--gw-button-primary-hover-border-color)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .cancel-button:focus,yasgui-component .cancel-button:hover{background-color:#d4d4d4!important;border-color:#d4d4d4!important}yasgui-component .yasr .alert-box{padding-right:35px}yasgui-component .yasr .alert-box .close-button{font-size:21px!important}yasgui-component .yasr a{color:var(--gw-secondary-light)!important;color:var(--gw-secondary-base)!important}yasgui-component .yasr .yasr_header .yasr_response_chip{background-color:unset!important}yasgui-component .yasr .yasr_header{background-color:var(--gw-info-lighter)!important}yasgui-component .ontotext-yasgui .yasr .yasr_header .tableControls .tableFilter{background-color:var(--gw-form-field-background);color:var(--gw-form-field-color)}yasgui-component .yasr .yasr_results .CodeMirror{background-color:var(--gw-editor-content-background)!important;color:var(--gw-editor-content-color)!important}yasgui-component .yasr .yasr_results .CodeMirror.overflow:before{background:unset}yasgui-component .yasr .yasr_results .CodeMirror-gutters{background-color:var(--gw-editor-content-background)!important;color:var(--gw-editor-content-color)!important}yasgui-component .yasr .yasr_results .overlay_content{background:unset}yasgui-component .yasr .yasr_header .chart-config-control #openChartConfigBtn,yasgui-component .yasr .yasr_results .yasr_btn.overlay_btn{background:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important}yasgui-component .yasr .dataTable .triple-cell .triple-link{color:#708!important}yasgui-component .yasr .yasr_btnGroup{background-color:var(--gw-panel-background)!important;overflow:unset}yasgui-component .yasr .yasr_btnGroup .yasr_btn{background-color:var(--gw-tabs-tab-background)!important;border:1px solid;border-color:var(--gw-tabs-tab-border-color)!important;border-bottom:1px solid transparent!important;color:var(--gw-tabs-tab-color)!important;fill:var(--gw-tabs-tab-color)!important;font-size:16px;font-weight:400;margin-left:0;margin-right:.2rem;padding:.52em}yasgui-component .yasr .yasr_btnGroup .yasr_btn.selected{background-color:var(--gw-tabs-tab-active-background)!important;border-color:var(--gw-tabs-tab-active-border-color) var(--gw-tabs-tab-active-border-color) transparent!important;color:var(--gw-tabs-tab-active-color)!important}yasgui-component .yasr .yasr_btnGroup .yasr_btn:not(.disabled):hover{background-color:var(--gw-tabs-tab-hover-background)!important;border-bottom-width:1px!important;border-color:var(--gw-tabs-tab-hover-border-color) var(--gw-tabs-tab-hover-border-color) transparent!important;color:var(--gw-tabs-tab-hover-color)!important;fill:var(--gw-tabs-tab-hover-color)!important}yasgui-component .yasr .yasr_btnGroup .yasr_btn.selected{background-color:#fff;border:1px solid #ddd;border-bottom:none}yasgui-component .yasr .yasr_btnGroup .yasr-fullscreen-button{background-color:var(--gw-button-tertiary-background);color:var(--gw-button-tertiary-color);padding-left:.73em;padding-right:.73em}yasgui-component .yasr .yasr_btnGroup .yasr-fullscreen-button:hover{background-color:var(--gw-button-tertiary-hover-background);color:var(--gw-button-tertiary-hover-color)}yasgui-component .yasr .error-response-plugin{background-color:var(--gw-error-lighter)!important}yasgui-component .yasr .extended-boolean-plugin>*{font-size:3rem!important}yasgui-component .yasr .extended-boolean-plugin .response-error{background-color:var(--gw-error-lighter)!important}yasgui-component .yasr .extended-boolean-plugin .response-success{background-color:var(--gw-success-lighter)!important}yasgui-component .yasr .google-visualization-table-table{background:var(--gw-datatable-row-background)!important;border-color:var(--gw-datatable-border-color)!important;color:var(--gw-datatable-row-color)!important;height:auto!important;max-height:600px!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-tr-head{background-color:var(--gw-datatable-header-background)!important;border-color:var(--gw-datatable-header-cell-border-color)!important;color:var(--gw-datatable-header-color)!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-tr-even{background-color:var(--gw-datatable-row-background)!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-tr-odd{background-color:var(--gw-datatable-row-striped-background)!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-td{border-color:var(--gw-datatable-border-color)!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-th{border-color:var(--gw-datatable-header-cell-border-color)!important}yasgui-component .yasr .dataTables_wrapper .dataTable{border-collapse:collapse}yasgui-component .yasr .dataTables_wrapper .dataTable th{background-color:var(--gw-datatable-header-background)!important;border-color:var(--gw-datatable-header-cell-border-color)!important;color:var(--gw-datatable-header-color)!important;font-weight:500}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting,yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_asc,yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_desc{background-image:none!important;position:relative}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting:after,yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_asc:after,yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_desc:after{background-color:var(--gw-datatable-sort-icon-color);content:"";height:.9em;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-size:contain;-webkit-mask-size:contain;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:.9em}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting:after{mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='m18 9-6-6-6 6zm0 6-6 6-6-6z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='m18 9-6-6-6 6zm0 6-6 6-6-6z'/%3E%3C/svg%3E")}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_asc:after{mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M4.869 11H2.667L6 3h2l3.333 8H9.131l-.41-1H5.28zm1.23-3h1.803L7 5.8zm12.9 8V3h-2v13h-3l4 5 4-5zm-8-3H3v2h4.855L3 19v2h8v-2H6.146L11 15z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M4.869 11H2.667L6 3h2l3.333 8H9.131l-.41-1H5.28zm1.23-3h1.803L7 5.8zm12.9 8V3h-2v13h-3l4 5 4-5zm-8-3H3v2h4.855L3 19v2h8v-2H6.146L11 15z'/%3E%3C/svg%3E")}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_desc:after{mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M4.869 11H2.667L6 3h2l3.333 8H9.131l-.41-1H5.28zm1.23-3h1.803L7 5.8zm15.9 0-4-5-4 5h3v13h2V8zm-11 5H3v2h4.855L3 19v2h8v-2H6.146L11 15z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M4.869 11H2.667L6 3h2l3.333 8H9.131l-.41-1H5.28zm1.23-3h1.803L7 5.8zm15.9 0-4-5-4 5h3v13h2V8zm-11 5H3v2h4.855L3 19v2h8v-2H6.146L11 15z'/%3E%3C/svg%3E")}yasgui-component .yasr .dataTables_wrapper .dataTable tbody tr{background-color:var(--gw-datatable-row-background)!important;color:var(--gw-datatable-row-color)!important;vertical-align:top}yasgui-component .yasr .dataTables_wrapper .dataTable tbody tr td{border-color:var(--gw-datatable-border-color)!important}yasgui-component .yasr .dataTables_wrapper .dataTable tbody tr:hover{background-color:var(--gw-datatable-row-hover-background)!important}yasgui-component .yasr .dataTables_wrapper .dataTable tbody tr.odd,yasgui-component .yasr .dataTables_wrapper .dataTable.withRowNumber tr.odd>td:first-child{background-color:var(--gw-datatable-row-striped-background)!important}yasgui-component .yasr .dataTables_wrapper .dataTable.withRowNumber tr.even>td:first-child{background-color:var(--gw-datatable-row-background)!important}yasgui-component .yasr .dataTables_wrapper .dataTable .rowNumber{color:var(--gw-datatable-row-color)!important}yasgui-component .yasr .dataTable a{font-size:16px}yasgui-component .yasr .dataTable .nonUri,yasgui-component .yasr .dataTable .nonUri sup{color:inherit!important}yasgui-component .yasr #explainPlanQuery{background-color:var(--gw-panel-background);font-family:var(--mono-font)}yasgui-component .yasr .explain-plan-container{background-color:var(--gw-panel-background);border:1px solid var(--gw-dialog-border-color)}yasgui-component .yasr .yasr-header-replacement{color:inherit;font-size:20px}yasgui-component .yasr .loader-component{svg circle{fill:var(--gw-loader-color)}}yasgui-component .yasr_response_chip{color:var(--gw-secondary-base)!important;font-size:16px}yasgui-component .yasr_response_chip .response-info-message{padding-left:10px}yasgui-component .yasr_plugin_control label{color:var(--gw-secondary-base)!important;margin-bottom:0}.run_query_confirmation{margin-bottom:20px}yasgui-component .yasr_plugin_control label .label{margin-right:5px}yasgui-component .saved-queries-container .saved-queries-popup{overflow-y:auto}yasgui-component .saved-queries-container .saved-queries-popup .saved-query{padding:0}yasgui-component .saved-queries-container .saved-queries-popup .saved-query a{color:var(--gw-secondary-base);font-size:14px;font-weight:bolder}yasgui-component .saved-queries-container .saved-queries-popup .saved-query-actions .saved-query-action{color:var(--gw-primary-base);font-size:1.25em}yasgui-component .abort-button{background-color:var(--gw-primary-base)!important}yasgui-component .abort-button:hover{background-color:var(--gw-primary-dark)!important}yasgui-component .yasr .ontotext-pagination .page-button.selected-page{background-color:var(--gw-paginator-nav-button-selected-background);color:var(--gw-paginator-nav-button-selected-color)}yasgui-component .yasr .ontotext-pagination .page-selector{background-color:var(--gw-paginator-nav-button-background);color:var(--gw-paginator-nav-button-color)}yasgui-component .yasr .ontotext-pagination .page-button.selected-page:hover,yasgui-component .yasr .ontotext-pagination .page-selector:hover{background-color:var(--gw-paginator-nav-button-hover-background);color:var(--gw-paginator-nav-button-hover-color)}yasgui-component .yasr .pivot-table-plugin select{background-color:var(--gw-body-background);color:var(--gw-body-color)}yasgui-component .yasr .pivot-table-plugin .pvtUi .pvtTable .pvtAxisLabel,yasgui-component .yasr .pivot-table-plugin .pvtUi .pvtTable .pvtTotalLabel{background-color:var(--gw-datatable-header-background);border-color:var(--gw-datatable-header-cell-border-color);color:var(--gw-datatable-header-color)}yasgui-component .yasr .pivot-table-plugin .pvtUi .pvtTable .pvtRowLabel,yasgui-component .yasr table.pvtTable tbody tr td{background-color:var(--gw-datatable-row-background);color:var(--gw-datatable-row-color)}yasgui-component .yasr .pivot-table-plugin .pvtFilterBox{background-color:var(--gw-dialog-background);border-color:var(--gw-dialog-border-color);color:var(--gw-dialog-color)}yasgui-component .yasr .pivot-table-plugin .pvtFilterBox button{background-color:var(--gw-dialog-background);border-color:var(--gw-button-secondary-border-color);color:var(--gw-button-secondary-color)}yasgui-component .yasr .pivot-table-plugin .pvtFilterBox button:hover{background-color:var(--gw-button-secondary-hover-background);cursor:pointer}yasgui-component .yasr .pivot-table-plugin .pvtFilterBox .pvtSearch{background-color:var(--gw-form-field-background);border-color:var(--gw-form-field-border-color);color:var(--gw-form-field-color)}yasgui-component .yasr .yasr_fallback_info:not(:empty){background-color:var(--gw-message-info-background);border:1px solid var(--gw-message-info-border-color);color:var(--gw-message-info-color)}.keyboard-shortcuts-dialog-wrapper{font-size:90%;height:20px;line-height:18px}.keyboard-shortcuts-dialog-wrapper .key{border:none}.keyboard-shortcuts-dialog-wrapper.resizeable-on{margin-top:-31px}.keyboard-shortcut-description-item{justify-content:flex-start!important}.keyboard-shortcut-keys{flex:0 0!important;min-width:auto!important}.keyboard-shortcuts-dialog-wrapper .keyboard-shortcut-section-title{color:var(--gw-shortcuts-panel-heading-color)}.keyboard-shortcuts-content kbd{background-color:var(--gw-shortcuts-panel-key-background)!important;border-color:var(--gw-shortcuts-panel-key-border-color)!important;color:var(--gw-shortcuts-panel-key-color)!important}.keyboard-shortcuts-dialog-button{background-color:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important;font-weight:400}yasgui-component .yasr .explain-plan-copy-btn{background-color:var(--gw-shortcuts-secondary-button-background);border-color:var(--gw-button-secondary-border-color);color:var(--gw-button-secondary-color);font-weight:400;margin-right:1px;margin-top:1px}.hidden{display:none}@media (max-width:1439px){yasgui-component :not(h3,h4,.dialog-body,.custom-button,.btn-orientation,sup){font-size:14px!important}yasgui-component .yasgui-toolbar .yasgui-btn{font-size:12px!important;height:24px!important}yasgui-component .yasgui-toolbar .btn-orientation{font-size:24px!important}yasgui-component .ontotext-dropdown-button,yasgui-component .tabPanel .yasqe .yasqe-footer-buttons .abort-button,yasgui-component .yasqe_queryButton{height:33px!important}}@media (max-width:1200px){yasgui-component .yasr .yasr_btnGroup .yasr_btn{padding:.73em}.yasr_btn span{display:none}}@media (max-width:768px){.ontotext-dropdown .button-name{display:inline}.ontotext-dropdown .ontotext-dropdown-button:after{padding-left:10px!important}}.ontotext-yasgui-tooltip .tooltip-box,.yasgui-floating-tooltip,.yasgui-floating-tooltip-arrow{background-color:var(--gw-tooltip-background);color:var(--gw-tooltip-color)}.ontotext-yasgui-tooltip .tooltip-arrow{color:var(--gw-tooltip-background)}.ontotext-yasgui-tooltip[data-placement^=top] .tooltip-arrow:before{border-top-color:var(--gw-tooltip-background)}.ontotext-yasgui-tooltip[data-placement^=left] .tooltip-arrow:before{border-left-color:var(--gw-tooltip-background)}.ontotext-yasgui-tooltip[data-placement^=right] .tooltip-arrow:before{border-right-color:var(--gw-tooltip-background)}.ontotext-yasgui-tooltip[data-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--gw-tooltip-background)}
|
|
1
|
+
.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{font-variant-ligatures:none;-webkit-font-variant-ligatures:none}yasgui-component :not(h3,h4,sup,.no-force-default-font){font-size:1rem!important}yasgui-component .yasgui-btn{background-color:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important}yasgui-component .yasgui-btn:hover{background-color:var(--gw-button-secondary-hover-background)!important;border-color:var(--gw-button-secondary-hover-border-color)!important;color:var(--gw-button-secondary-hover-color)!important}yasgui-component .yasgui-btn.btn-selected{background-color:var(--gw-button-primary-background)!important;border-color:var(--gw-button-primary-border-color)!important;color:var(--gw-button-primary-color)!important}yasgui-component .yasgui-btn.btn-selected:hover{background-color:var(--gw-button-primary-hover-background)!important;border-color:var(--gw-button-primary-hover-border-color)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .yasgui-toolbar .yasgui-btn{font-size:14px!important;padding-left:8px;padding-right:8px}yasgui-component .yasgui-toolbar .btn-orientation{background-color:transparent!important;color:var(--gw-button-secondary-color)!important;font-size:28px!important;margin-left:1rem}.yasgui-host-element .yasgui .CodeMirror[class*=cm-s-]:not(.cm-s-default){background-color:#1c1c1c;border-color:var(--gw-tabs-tab-active-border-color);.CodeMirror-linenumber{color:#777}.cm-matchhighlight{background-color:#dbdeed}.yasqe_buttons .custom-button{background-color:#1c1c1c!important}.notification{background-color:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important}.cm-comment{color:var(--gw-neutral-300)}}.CodeMirror-hints{border:1px solid var(--gw-autocomplete-border-color);box-shadow:var(--gw-autocomplete-shadow-offset-x) var(--gw-autocomplete-shadow-offset-y) var(--gw-autocomplete-shadow-blur) var(--gw-autocomplete-shadow-spread) var(--gw-autocomplete-shadow-color)}.CodeMirror-hints,.CodeMirror-hints .CodeMirror-hint{background-color:var(--gw-autocomplete-background);color:var(--gw-autocomplete-color);font-family:inherit;b{color:var(--gw-autocomplete-dropdown-match-color);font-weight:bolder}}.CodeMirror-hints .CodeMirror-hint-active{background-color:var(--gw-autocomplete-option-selected-background);color:var(--gw-autocomplete-option-selected-color)}.CodeMirror-hints .CodeMirror-hint:not(.CodeMirror-hint-active):hover{background-color:var(--gw-autocomplete-option-focus-background);color:var(--gw-autocomplete-option-focus-color)}.yasqe-autocomplete-hint{background-color:var(--gw-autocomplete-background);color:var(--gw-autocomplete-color)}.yasqe .resizeChip{background-color:var(--gw-button-secondary-background)!important;color:var(--gw-button-secondary-color)!important}yasgui-component .yasqe .CodeMirror{font-family:var(--mono-font)!important}yasgui-component .yasqe .yasqe_buttons{background-color:var(--gw-editor-content-background);right:21px}yasgui-component .tabPanel .yasqe .yasqe-footer-buttons{padding-top:15px}yasgui-component .tabPanel .yasqe .yasqe-footer-buttons .abort-button{font-family:var(--main-font);font-weight:400;height:38px}yasgui-component .custom-button{background-color:var(--gw-editor-content-background)!important;color:var(--gw-primary-base)!important;font-size:1.5em!important}yasgui-component .custom-button:disabled:focus,yasgui-component .custom-button:disabled:hover{color:#818a91!important}yasgui-component .yasqe_queryButton{font-family:var(--main-font);font-weight:400;height:38px!important}yasgui-component .yasqe_queryButton,yasgui-component .yasqe_querySplitWrapper .yasqe_querySplitToggle{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)!important}yasgui-component .yasqe_queryButton:hover,yasgui-component .yasqe_querySplitWrapper .yasqe_querySplitToggle:hover{background-color:var(--gw-button-primary-hover-background)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .ontotext-run-dropdown-menu{border:1px solid var(--gw-tieredmenu-border-color);border-radius:0;box-shadow:var(--gw-tieredmenu-shadow-1-offset-x) var(--gw-tieredmenu-shadow-1-offset-y) var(--gw-tieredmenu-shadow-1-blur) var(--gw-tieredmenu-shadow-1-spread) var(--gw-tieredmenu-shadow-1-color)}yasgui-component .ontotext-run-dropdown-menu-item{background-color:var(--gw-tieredmenu-background)!important;color:var(--gw-tieredmenu-color)!important}yasgui-component .ontotext-run-dropdown-menu-item:hover{background-color:var(--gw-tieredmenu-item-focus-background)!important;color:var(--gw-tieredmenu-item-focus-color)!important}yasgui-component .yasgui .tabsList .tab{background-color:var(--gw-tabs-tab-background)!important;border-color:var(--gw-tabs-tab-border-color) var(--gw-tabs-tab-border-color) transparent!important;color:var(--gw-tabs-tab-color)!important;padding:.46em!important}yasgui-component .yasgui .tabsList .tab:hover{background-color:var(--gw-tabs-tab-hover-background)!important;border-color:var(--gw-tabs-tab-hover-border-color) var(--gw-tabs-tab-hover-border-color) transparent!important;color:var(--gw-tabs-tab-hover-color)!important}yasgui-component .yasgui .tabsList .tab.active,yasgui-component .yasgui .tabsList .tab.active:hover{background-color:var(--gw-tabs-tab-active-background)!important;border-color:var(--gw-tabs-tab-active-border-color) var(--gw-tabs-tab-active-border-color) transparent!important;color:var(--gw-tabs-tab-active-color)!important}yasgui-component .editable-text-field-wrapper,yasgui-component .yasgui .tabsList .tab{color:inherit;font-weight:400}yasgui-component .yasgui .tabsList .tab .closeTab{color:inherit!important}yasgui-component .yasgui .tabsList .addTab .ri-add-circle-line,yasgui-component .yasgui .tabsList .tab .closeTab .ri-close-line{font-size:1.225em!important;font-weight:100}yasgui-component .yasgui .tabsList .addTab{background-color:var(--gw-tabs-tab-background);border-color:var(--gw-tabs-tab-border-color) var(--gw-tabs-tab-border-color) transparent;color:var(--gw-button-secondary-color)!important}yasgui-component .yasgui .tabsList .addTab:hover,yasgui-component .yasgui .tabsList .tab .closeTab:hover{color:var(--gw-button-primary-link-hover-color)!important}.yasgui-host-element .yasgui .tabsList .create-tab-tab{background-color:var(--gw-tabs-tab-active-background)!important;border-color:var(--gw-tabs-tab-active-border-color) var(--gw-tabs-tab-active-border-color) transparent!important;color:var(--gw-tabs-tab-active-color)!important}yasgui-component .yasgui .tabsList .tab .editable-text-field{background-color:var(--gw-form-field-background)!important;border-color:var(--gw-form-field-border-color)!important;color:var(--gw-form-field-color)!important}yasgui-component .editable-text-field-wrapper .save-btn{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)!important}yasgui-component .editable-text-field-wrapper .save-btn:hover{background-color:var(--gw-button-primary-hover-background)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .editable-text-field-wrapper .cancel-btn{background-color:var(--gw-button-secondary-background);border-color:var(--gw-button-secondary-border-color);color:var(--gw-button-secondary-color)}yasgui-component .editable-text-field-wrapper .cancel-btn:hover{background-color:var(--gw-button-secondary-hover-background);border-color:var(--gw-button-secondary-hover-border-color);color:var(--gw-button-secondary-hover-color)}yasgui-component .editable-text-field-wrapper .save-btn,yasgui-component .editable-text-field-wrapper .save-btn:hover{background-color:var(--gw-primary-base)}yasgui-component .editable-text-field-wrapper .close-btn span,yasgui-component .editable-text-field-wrapper .save-btn span{font-weight:900}yasgui-component .ontotext-dropdown-menu .ontotext-dropdown-menu-item{font-size:1rem;padding:.5em 1.2em}yasgui-component .ontotext-dropdown-button{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)!important;height:40px}yasgui-component .ontotext-dropdown-menu.open{border:1px solid var(--gw-tieredmenu-border-color)!important;box-shadow:var(--gw-tieredmenu-shadow-1-offset-x) var(--gw-tieredmenu-shadow-1-offset-y) var(--gw-tieredmenu-shadow-1-blur) var(--gw-tieredmenu-shadow-1-spread) var(--gw-tieredmenu-shadow-1-color)}yasgui-component .ontotext-dropdown-menu.open .ontotext-dropdown-menu-item{background-color:var(--gw-tieredmenu-background)!important;color:var(--gw-tieredmenu-item-color)!important}yasgui-component .ontotext-download-as .ontotext-dropdown-button .button-name{font-family:var(--main-font);font-weight:400}yasgui-component .ontotext-download-as .ontotext-dropdown-button{height:38px}yasgui-component .ontotext-dropdown-button.ri-arrow-down-s-line:hover:after,yasgui-component .ontotext-dropdown-button.ri-arrow-up-s-line:hover:after,yasgui-component .ontotext-dropdown-button:hover{background-color:var(--gw-button-primary-hover-background)!important;color:var(--gw-button-primary-hover-color)}yasgui-component .ontotext-dropdown-button.ri-arrow-down-s-line:after,yasgui-component .ontotext-dropdown-button.ri-arrow-up-s-line:after{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)}yasgui-component .ontotext-dropdown-menu .ontotext-dropdown-menu-item:hover{background-color:var(--gw-tieredmenu-item-focus-background)!important;color:var(--gw-tieredmenu-item-focus-color)!important}yasgui-component .yasr-toolbar{align-items:stretch!important;font-size:16px;line-height:1.25;padding-left:10px}yasgui-component .yasr-toolbar .yasr-toolbar-element{height:38px}yasgui-component .yasr-toolbar .chart-download-as-button,yasgui-component .yasr-toolbar .pivot-table-download-as-button{background-color:var(--gw-button-primary-background)!important;color:var(--gw-button-primary-color)!important}yasgui-component .yasr-toolbar .chart-download-as-button:hover,yasgui-component .yasr-toolbar .pivot-table-download-as-button:hover{background-color:var(--gw-button-primary-hover-background)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .saved-queries-container{background-color:var(--gw-dialog-background)!important;border-color:var(--gw-dialog-border-color);-webkit-box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);color:var(--gw-dialog-color)!important}yasgui-component .saved-queries-container .arrow:before{border-left-color:var(--gw-dialog-border-color)}yasgui-component .saved-queries-container .arrow:after{border-left-color:var(--gw-dialog-background)}yasgui-component .saved-queries-container .saved-query-actions .saved-query-action{background-color:var(--gw-dialog-background)!important;color:var(--gw-button-primary-link-color)!important}.dialog{background-color:var(--gw-dialog-background)!important;border:1px solid var(--gw-panel-border-color);-webkit-box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);color:var(--gw-dialog-color)!important}.dialog .dialog-header{border-bottom-color:var(--gw-dialog-border-color)!important}.dialog .dialog-header .close-button{background-color:var(--gw-dialog-background)!important;color:var(--gw-dialog-color)!important}.dialog .dialog-footer .cancel-button{background-color:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important}.dialog .dialog-footer .cancel-button:hover{background-color:var(--gw-button-secondary-hover-background)!important;border-color:var(--gw-button-secondary-hover-border-color)!important;color:var(--gw-button-secondary-hover-color)!important}.dialog .dialog-footer{border-top-color:var(--gw-dialog-border-color)!important}.keyboard-shortcuts-dialog-wrapper .dialog .dialog-header .close-button{background-color:var(--gw-button-secondary-background);border-color:var(--gw-button-secondary-border-color);color:var(--gw-button-secondary-color)}.keyboard-shortcuts-dialog-wrapper .dialog .dialog-header .close-button:hover{color:var(--gw-button-primary-link-hover-color)!important}.keyboard-shortcuts-content .keyboard-shortcut-description-item-description{color:var(--gw-message-info-color)!important}.dialog .form-field :is(input:not([type=checkbox]),select,textarea){background-color:var(--gw-form-field-background)!important;border-color:var(--gw-form-field-border-color)!important;color:var(--gw-form-field-color)!important}.dialog .form-field input[type=checkbox]:checked{background-color:var(--gw-primary-base);border-color:var(--gw-primary-base)}.dialog .form-field input[type=text]:focus,.dialog .form-field textarea:focus{border-color:var(--gw-form-field-focus-border-color)!important}.confirmation-dialog .dialog-body,yasgui-component .dialog-body{font-size:1.25rem!important}.confirmation-dialog .dialog-footer .cancel-button,yasgui-component .dialog .dialog-footer .cancel-button{background-color:#ebebeb;border-color:#ebebeb;margin-right:3px}.confirmation-dialog .dialog-footer .confirm-button,yasgui-component .confirm-button,yasgui-component .ok-button,yasgui-component .primary-button{background-color:var(--gw-button-primary-background)!important;border-color:var(--gw-button-primary-border-color)!important;color:var(--gw-button-primary-color)!important}.confirmation-dialog .dialog-footer .confirm-button:focus,.confirmation-dialog .dialog-footer .confirm-button:hover,yasgui-component .confirm-button:focus,yasgui-component .confirm-button:hover,yasgui-component .ok-button:focus,yasgui-component .ok-button:hover,yasgui-component .primary-button:focus,yasgui-component .primary-button:hover{background-color:var(--gw-button-primary-hover-background)!important;border-color:var(--gw-button-primary-hover-border-color)!important;color:var(--gw-button-primary-hover-color)!important}yasgui-component .cancel-button:focus,yasgui-component .cancel-button:hover{background-color:#d4d4d4!important;border-color:#d4d4d4!important}yasgui-component .yasr .alert-box{padding-right:35px}yasgui-component .yasr .alert-box .close-button{font-size:21px!important}yasgui-component .yasr a{color:var(--gw-secondary-light)!important;color:var(--gw-secondary-base)!important}yasgui-component .yasr .yasr_header .yasr_response_chip{background-color:unset!important}yasgui-component .yasr .yasr_header{background-color:var(--gw-info-lighter)!important}yasgui-component .ontotext-yasgui .yasr .yasr_header .tableControls .tableFilter{background-color:var(--gw-form-field-background);color:var(--gw-form-field-color)}yasgui-component .yasr .yasr_results .CodeMirror{background-color:var(--gw-editor-content-background)!important;color:var(--gw-editor-content-color)!important}yasgui-component .yasr .yasr_results .CodeMirror.overflow:before{background:unset}yasgui-component .yasr .yasr_results .CodeMirror-gutters{background-color:var(--gw-editor-content-background)!important;color:var(--gw-editor-content-color)!important}yasgui-component .yasr .yasr_results .overlay_content{background:unset}yasgui-component .yasr .yasr_header .chart-config-control #openChartConfigBtn,yasgui-component .yasr .yasr_results .yasr_btn.overlay_btn{background:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important}yasgui-component .yasr .dataTable .triple-cell .triple-link{color:#708!important}yasgui-component .yasr .yasr_btnGroup{background-color:var(--gw-panel-background)!important;overflow:unset}yasgui-component .yasr .yasr_btnGroup .yasr_btn{background-color:var(--gw-tabs-tab-background)!important;border:1px solid;border-color:var(--gw-tabs-tab-border-color)!important;border-bottom:1px solid transparent!important;color:var(--gw-tabs-tab-color)!important;fill:var(--gw-tabs-tab-color)!important;font-size:16px;font-weight:400;margin-left:0;margin-right:.2rem;padding:.52em}yasgui-component .yasr .yasr_btnGroup .yasr_btn.selected{background-color:var(--gw-tabs-tab-active-background)!important;border-color:var(--gw-tabs-tab-active-border-color) var(--gw-tabs-tab-active-border-color) transparent!important;color:var(--gw-tabs-tab-active-color)!important}yasgui-component .yasr .yasr_btnGroup .yasr_btn:not(.disabled):hover{background-color:var(--gw-tabs-tab-hover-background)!important;border-bottom-width:1px!important;border-color:var(--gw-tabs-tab-hover-border-color) var(--gw-tabs-tab-hover-border-color) transparent!important;color:var(--gw-tabs-tab-hover-color)!important;fill:var(--gw-tabs-tab-hover-color)!important}yasgui-component .yasr .yasr_btnGroup .yasr_btn.selected{background-color:#fff;border:1px solid #ddd;border-bottom:none}yasgui-component .yasr .yasr_btnGroup .yasr-fullscreen-button{background-color:var(--gw-button-tertiary-background);color:var(--gw-button-tertiary-color);padding-left:.73em;padding-right:.73em}yasgui-component .yasr .yasr_btnGroup .yasr-fullscreen-button:hover{background-color:var(--gw-button-tertiary-hover-background);color:var(--gw-button-tertiary-hover-color)}yasgui-component .yasr .error-response-plugin{background-color:var(--gw-error-lighter)!important}yasgui-component .yasr .extended-boolean-plugin>*{font-size:3rem!important}yasgui-component .yasr .extended-boolean-plugin .response-error{background-color:var(--gw-error-lighter)!important}yasgui-component .yasr .extended-boolean-plugin .response-success{background-color:var(--gw-success-lighter)!important}yasgui-component .yasr .google-visualization-table-table{background:var(--gw-datatable-row-background)!important;border-color:var(--gw-datatable-border-color)!important;color:var(--gw-datatable-row-color)!important;height:auto!important;max-height:600px!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-tr-head{background-color:var(--gw-datatable-header-background)!important;border-color:var(--gw-datatable-header-cell-border-color)!important;color:var(--gw-datatable-header-color)!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-tr-even{background-color:var(--gw-datatable-row-background)!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-tr-odd{background-color:var(--gw-datatable-row-striped-background)!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-td{border-color:var(--gw-datatable-border-color)!important}yasgui-component .yasr .google-visualization-table-table .google-visualization-table-th{border-color:var(--gw-datatable-header-cell-border-color)!important}yasgui-component .yasr .dataTables_wrapper .dataTable{border-collapse:collapse}yasgui-component .yasr .dataTables_wrapper .dataTable th{background-color:var(--gw-datatable-header-background)!important;border-color:var(--gw-datatable-header-cell-border-color)!important;color:var(--gw-datatable-header-color)!important;font-weight:500}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting,yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_asc,yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_desc{background-image:none!important;position:relative}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting:after,yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_asc:after,yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_desc:after{background-color:var(--gw-datatable-sort-icon-color);content:"";height:.9em;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-size:contain;-webkit-mask-size:contain;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:.9em}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting:after{mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='m18 9-6-6-6 6zm0 6-6 6-6-6z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='m18 9-6-6-6 6zm0 6-6 6-6-6z'/%3E%3C/svg%3E")}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_asc:after{mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M4.869 11H2.667L6 3h2l3.333 8H9.131l-.41-1H5.28zm1.23-3h1.803L7 5.8zm12.9 8V3h-2v13h-3l4 5 4-5zm-8-3H3v2h4.855L3 19v2h8v-2H6.146L11 15z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M4.869 11H2.667L6 3h2l3.333 8H9.131l-.41-1H5.28zm1.23-3h1.803L7 5.8zm12.9 8V3h-2v13h-3l4 5 4-5zm-8-3H3v2h4.855L3 19v2h8v-2H6.146L11 15z'/%3E%3C/svg%3E")}yasgui-component .yasr .dataTables_wrapper .dataTable thead .sorting_desc:after{mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M4.869 11H2.667L6 3h2l3.333 8H9.131l-.41-1H5.28zm1.23-3h1.803L7 5.8zm15.9 0-4-5-4 5h3v13h2V8zm-11 5H3v2h4.855L3 19v2h8v-2H6.146L11 15z'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M4.869 11H2.667L6 3h2l3.333 8H9.131l-.41-1H5.28zm1.23-3h1.803L7 5.8zm15.9 0-4-5-4 5h3v13h2V8zm-11 5H3v2h4.855L3 19v2h8v-2H6.146L11 15z'/%3E%3C/svg%3E")}yasgui-component .yasr .dataTables_wrapper .dataTable tbody tr{background-color:var(--gw-datatable-row-background)!important;color:var(--gw-datatable-row-color)!important;vertical-align:top}yasgui-component .yasr .dataTables_wrapper .dataTable tbody tr td{border-color:var(--gw-datatable-border-color)!important}yasgui-component .yasr .dataTables_wrapper .dataTable tbody tr:hover{background-color:var(--gw-datatable-row-hover-background)!important}yasgui-component .yasr .dataTables_wrapper .dataTable tbody tr.odd,yasgui-component .yasr .dataTables_wrapper .dataTable.withRowNumber tr.odd>td:first-child{background-color:var(--gw-datatable-row-striped-background)!important}yasgui-component .yasr .dataTables_wrapper .dataTable.withRowNumber tr.even>td:first-child{background-color:var(--gw-datatable-row-background)!important}yasgui-component .yasr .dataTables_wrapper .dataTable .rowNumber{color:var(--gw-datatable-row-color)!important}yasgui-component .yasr .dataTable a{font-size:16px}yasgui-component .yasr .dataTable .nonUri,yasgui-component .yasr .dataTable .nonUri sup{color:inherit!important}yasgui-component .yasr #explainPlanQuery{background-color:var(--gw-panel-background);font-family:var(--mono-font)}yasgui-component .yasr .explain-plan-container{background-color:var(--gw-panel-background);border:1px solid var(--gw-dialog-border-color);.cm-comment{color:var(--gw-neutral-300)}}yasgui-component .yasr .yasr-header-replacement{color:inherit;font-size:20px}yasgui-component .yasr .loader-component{svg circle{fill:var(--gw-loader-color)}}yasgui-component .yasr_response_chip{color:var(--gw-secondary-base)!important;font-size:16px}yasgui-component .yasr_response_chip .response-info-message{padding-left:10px}yasgui-component .yasr_plugin_control label{color:var(--gw-secondary-base)!important;margin-bottom:0}.run_query_confirmation{margin-bottom:20px}yasgui-component .yasr_plugin_control label .label{margin-right:5px}yasgui-component .saved-queries-container .saved-queries-popup{overflow-y:auto}yasgui-component .saved-queries-container .saved-queries-popup .saved-query{padding:0}yasgui-component .saved-queries-container .saved-queries-popup .saved-query a{color:var(--gw-secondary-base);font-size:14px;font-weight:bolder}yasgui-component .saved-queries-container .saved-queries-popup .saved-query-actions .saved-query-action{color:var(--gw-primary-base);font-size:1.25em}yasgui-component .abort-button{background-color:var(--gw-primary-base)!important}yasgui-component .abort-button:hover{background-color:var(--gw-primary-dark)!important}yasgui-component .yasr .ontotext-pagination .page-button.selected-page{background-color:var(--gw-paginator-nav-button-selected-background);color:var(--gw-paginator-nav-button-selected-color)}yasgui-component .yasr .ontotext-pagination .page-selector{background-color:var(--gw-paginator-nav-button-background);color:var(--gw-paginator-nav-button-color)}yasgui-component .yasr .ontotext-pagination .page-button.selected-page:hover,yasgui-component .yasr .ontotext-pagination .page-selector:hover{background-color:var(--gw-paginator-nav-button-hover-background);color:var(--gw-paginator-nav-button-hover-color)}yasgui-component .yasr .pivot-table-plugin select{background-color:var(--gw-body-background);color:var(--gw-body-color)}yasgui-component .yasr .pivot-table-plugin .pvtUi .pvtTable .pvtAxisLabel,yasgui-component .yasr .pivot-table-plugin .pvtUi .pvtTable .pvtTotalLabel{background-color:var(--gw-datatable-header-background);border-color:var(--gw-datatable-header-cell-border-color);color:var(--gw-datatable-header-color)}yasgui-component .yasr .pivot-table-plugin .pvtUi .pvtTable .pvtRowLabel,yasgui-component .yasr table.pvtTable tbody tr td{background-color:var(--gw-datatable-row-background);color:var(--gw-datatable-row-color)}yasgui-component .yasr .pivot-table-plugin .pvtFilterBox{background-color:var(--gw-dialog-background);border-color:var(--gw-dialog-border-color);color:var(--gw-dialog-color)}yasgui-component .yasr .pivot-table-plugin .pvtFilterBox button{background-color:var(--gw-dialog-background);border-color:var(--gw-button-secondary-border-color);color:var(--gw-button-secondary-color)}yasgui-component .yasr .pivot-table-plugin .pvtFilterBox button:hover{background-color:var(--gw-button-secondary-hover-background);cursor:pointer}yasgui-component .yasr .pivot-table-plugin .pvtFilterBox .pvtSearch{background-color:var(--gw-form-field-background);border-color:var(--gw-form-field-border-color);color:var(--gw-form-field-color)}yasgui-component .yasr .yasr_fallback_info:not(:empty){background-color:var(--gw-message-info-background);border:1px solid var(--gw-message-info-border-color);color:var(--gw-message-info-color)}.keyboard-shortcuts-dialog-wrapper{font-size:90%;height:20px;line-height:18px}.keyboard-shortcuts-dialog-wrapper .key{border:none}.keyboard-shortcuts-dialog-wrapper.resizeable-on{margin-top:-31px}.keyboard-shortcut-description-item{justify-content:flex-start!important}.keyboard-shortcut-keys{flex:0 0!important;min-width:auto!important}.keyboard-shortcuts-dialog-wrapper .keyboard-shortcut-section-title{color:var(--gw-shortcuts-panel-heading-color)}.keyboard-shortcuts-content kbd{background-color:var(--gw-shortcuts-panel-key-background)!important;border-color:var(--gw-shortcuts-panel-key-border-color)!important;color:var(--gw-shortcuts-panel-key-color)!important}.keyboard-shortcuts-dialog-button{background-color:var(--gw-button-secondary-background)!important;border-color:var(--gw-button-secondary-border-color)!important;color:var(--gw-button-secondary-color)!important;font-weight:400}yasgui-component .yasr .explain-plan-copy-btn{background-color:var(--gw-shortcuts-secondary-button-background);border-color:var(--gw-button-secondary-border-color);color:var(--gw-button-secondary-color);font-weight:400;margin-right:1px;margin-top:1px}.hidden{display:none}@media (max-width:1439px){yasgui-component :not(h3,h4,.dialog-body,.custom-button,.btn-orientation,sup){font-size:14px!important}yasgui-component .yasgui-toolbar .yasgui-btn{font-size:12px!important;height:24px!important}yasgui-component .yasgui-toolbar .btn-orientation{font-size:24px!important}yasgui-component .ontotext-dropdown-button,yasgui-component .tabPanel .yasqe .yasqe-footer-buttons .abort-button,yasgui-component .yasqe_queryButton{height:33px!important}}@media (max-width:1200px){yasgui-component .yasr .yasr_btnGroup .yasr_btn{padding:.73em}.yasr_btn span{display:none}}@media (max-width:768px){.ontotext-dropdown .button-name{display:inline}.ontotext-dropdown .ontotext-dropdown-button:after{padding-left:10px!important}}.ontotext-yasgui-tooltip .tooltip-box,.yasgui-floating-tooltip,.yasgui-floating-tooltip-arrow{background-color:var(--gw-tooltip-background);color:var(--gw-tooltip-color)}.ontotext-yasgui-tooltip .tooltip-arrow{color:var(--gw-tooltip-background)}.ontotext-yasgui-tooltip[data-placement^=top] .tooltip-arrow:before{border-top-color:var(--gw-tooltip-background)}.ontotext-yasgui-tooltip[data-placement^=left] .tooltip-arrow:before{border-left-color:var(--gw-tooltip-background)}.ontotext-yasgui-tooltip[data-placement^=right] .tooltip-arrow:before{border-right-color:var(--gw-tooltip-background)}.ontotext-yasgui-tooltip[data-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--gw-tooltip-background)}
|
package/dist/index.html
CHANGED
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
const clean = pathname.slice(0, -1) + search + hash;
|
|
6
6
|
window.history.replaceState({}, '', clean);
|
|
7
7
|
}
|
|
8
|
-
})();</script><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="X-UA-Compatible" content="ie=edge"><link rel="stylesheet" href="css/splash-screen.css?v=3.5.0-
|
|
8
|
+
})();</script><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="X-UA-Compatible" content="ie=edge"><link rel="stylesheet" href="css/splash-screen.css?v=3.5.0-TR7"><title>GraphDB Workbench</title><script src="resources/runtime.js?v=3.5.0-TR7"></script><meta name="importmap-type" use-injector/><script>window.wbDevMode = false;</script><script type="injector-importmap">{
|
|
9
9
|
"imports": {
|
|
10
|
-
"single-spa": "./resources/single-spa.min.js?v=3.5.0-
|
|
11
|
-
"@ontotext/workbench-api": "./api/ontotext-workbench-api.js?v=3.5.0-
|
|
10
|
+
"single-spa": "./resources/single-spa.min.js?v=3.5.0-TR7",
|
|
11
|
+
"@ontotext/workbench-api": "./api/ontotext-workbench-api.js?v=3.5.0-TR7",
|
|
12
12
|
"@ontotext/root-config": "./main.f7ee292bd47afd05f886.js",
|
|
13
|
-
"@ontotext/legacy-workbench": "./legacyWorkbench.
|
|
14
|
-
"@ontotext/workbench": "./workbench/workbench/workbenchApp.js?v=3.5.0-
|
|
13
|
+
"@ontotext/legacy-workbench": "./legacyWorkbench.b0aa09ab19cc19ff8269.js",
|
|
14
|
+
"@ontotext/workbench": "./workbench/workbench/workbenchApp.js?v=3.5.0-TR7"
|
|
15
15
|
}
|
|
16
|
-
}</script><meta name="import-map-overrides-domains" content="denylist:prod.example.com"/><script src="resources/import-map-overrides.js?v=3.5.0-
|
|
16
|
+
}</script><meta name="import-map-overrides-domains" content="denylist:prod.example.com"/><script src="resources/import-map-overrides.js?v=3.5.0-TR7"></script><script src="resources/import-map-injector.js?v=3.5.0-TR7"></script><style>/* Default light/dark background is hardcodded here because our variables are not present yet. */
|
|
17
17
|
body {
|
|
18
18
|
background-color: hsla(220, 40%, 7%);
|
|
19
19
|
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
import('@ontotext/root-config')
|
|
26
26
|
.then(() => {
|
|
27
27
|
const pluginScript = document.createElement('script');
|
|
28
|
-
pluginScript.src = 'plugins.js?v=3.5.0-
|
|
28
|
+
pluginScript.src = 'plugins.js?v=3.5.0-TR7';
|
|
29
29
|
document.body.appendChild(pluginScript);
|
|
30
30
|
});
|
|
31
|
-
});</script><import-map-overrides-full show-when-local-storage="devtools" dev-libs></import-map-overrides-full><figure id="splash-screen"><img decoding="sync" src="assets/graphdb-splash.svg?v=3.5.0-
|
|
31
|
+
});</script><import-map-overrides-full show-when-local-storage="devtools" dev-libs></import-map-overrides-full><figure id="splash-screen"><img decoding="sync" src="assets/graphdb-splash.svg?v=3.5.0-TR7" alt="GraphDB Workbench is loading..."></figure><onto-toastr></onto-toastr><onto-tooltip></onto-tooltip><onto-confirm-cancel-dialog></onto-confirm-cancel-dialog></body></html>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<link href="css/cluster-nodes-configuration.css?v=3.5.0-
|
|
1
|
+
<link href="css/cluster-nodes-configuration.css?v=3.5.0-TR7" rel="stylesheet"/>
|
|
2
2
|
|
|
3
3
|
<div onto-loader ng-if="loader" class="create-cluster-loader" message="getLoaderMessage" size="100"></div>
|
|
4
4
|
<div class="add-node-wrapper pull-right mb-1">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<link href="css/operations-statuses-monitor.css?v=3.5.0-
|
|
1
|
+
<link href="css/operations-statuses-monitor.css?v=3.5.0-TR7" rel="stylesheet"/>
|
|
2
2
|
|
|
3
3
|
<div ng-if="activeOperations && activeOperations.operations && activeOperations.operations.length > 0"
|
|
4
4
|
class="operations-statuses btn-group">
|