graphdb-workbench 2.4.1-TR4 → 2.4.2-RC1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/{0.7daec4382561aa8681d5.bundle.js → 0.c6e0a1afafc7ffdfaccc.bundle.js} +1 -1
  2. package/dist/{10.25c3009270232c3ad844.bundle.js → 10.2fd5d150b0f308c19b16.bundle.js} +1 -1
  3. package/dist/108.99fadee1ed0c7110af9a.bundle.js +1 -0
  4. package/dist/{11.08c502782a3bd04cb48b.bundle.js → 11.d13b4e6a939fc0b5a125.bundle.js} +1 -1
  5. package/dist/{114.3a6135cc10951d23cb56.bundle.js → 114.2f1bbfe1abb21122d2e1.bundle.js} +1 -1
  6. package/dist/{117.45f91d2cf367836dadae.bundle.js → 117.23e75248d8a499cef320.bundle.js} +1 -1
  7. package/dist/{12.0ca290ed18d2524f66e7.bundle.js → 12.dd3a24172cf3cdec30f0.bundle.js} +2 -2
  8. package/dist/{124.7ce2385e2ce2ac41a255.bundle.js → 124.8e3d5ba12c298ea9a439.bundle.js} +1 -1
  9. package/dist/{128.4eb95500c74ddcbc0ec1.bundle.js → 128.280921c83837d6b5ed1e.bundle.js} +1 -1
  10. package/dist/13.ac00d726d1145cb0e057.bundle.js +1 -0
  11. package/dist/{130.8d0c570a8363e55b4892.bundle.js → 130.9aea5c200bad449041e5.bundle.js} +1 -1
  12. package/dist/{133.c9432441d39dbdf45a46.bundle.js → 133.7ff3260122aed5f9da82.bundle.js} +1 -1
  13. package/dist/{134.64ab677e16aa2b0c78b1.bundle.js → 134.937aed94c3cba12e70de.bundle.js} +1 -1
  14. package/dist/{136.22f6c4a19299925123a0.bundle.js → 136.50ad256ff91ae8bd138c.bundle.js} +1 -1
  15. package/dist/{137.802084605202b8b7aef1.bundle.js → 137.19836eabf5f16be529c0.bundle.js} +1 -1
  16. package/dist/{138.1eae7a838df0b1e52ff4.bundle.js → 138.3d79db7fc7908d986c2d.bundle.js} +1 -1
  17. package/dist/14.82b9ba9a0a77131aa582.bundle.js +1 -0
  18. package/dist/{144.d2120bcd066b96e7ee58.bundle.js → 144.24d2001adcd0546ce679.bundle.js} +1 -1
  19. package/dist/{146.a2f5b077f3eec4961a4b.bundle.js → 146.0bf605fa5b7cc102937f.bundle.js} +1 -1
  20. package/dist/{15.54781c280e23072b66c5.bundle.js → 15.b27c1c98f320b78e704c.bundle.js} +1 -1
  21. package/dist/{150.f3a633da2c7c2b9cd7c4.bundle.js → 150.7224dc087612aa0ff0c1.bundle.js} +1 -1
  22. package/dist/{153.f710bf5c73f7d736a4b1.bundle.js → 153.8fbeed8e7e94213c6df1.bundle.js} +1 -1
  23. package/dist/{155.46f2a94df187ed492591.bundle.js → 155.68e389692623c7b68878.bundle.js} +1 -1
  24. package/dist/{16.24206eca9306f6f153d6.bundle.js → 16.9f43f2a2cb3de6b50964.bundle.js} +1 -1
  25. package/dist/168.34a1790ea589d9926a97.bundle.js +1 -1
  26. package/dist/{17.f3d91ad6fab1a190a416.bundle.js → 17.7a20974aaea2122ed42f.bundle.js} +1 -1
  27. package/dist/170.e24cfa80d3f51df2b1b5.bundle.js +1 -0
  28. package/dist/171.49aabfdb3574cef3d14b.bundle.js +1 -0
  29. package/dist/173.5e3fea538a2a2d5b5c0c.bundle.js +1 -1
  30. package/dist/{18.119e4e696a9b2da67a3f.bundle.js → 18.db18b987a6ea55fddc4a.bundle.js} +2 -2
  31. package/dist/{19.f461a770949b2e409d05.bundle.js → 19.9a73670b7772d8bf1969.bundle.js} +1 -1
  32. package/dist/{2.308618aec7201e8045bd.bundle.js → 2.888ee146d785447620e1.bundle.js} +2 -2
  33. package/dist/{20.635488a03f910fa4518b.bundle.js → 20.918905a6efc81c27dcf6.bundle.js} +1 -1
  34. package/dist/200.76fd30afe28687f92b15.bundle.js +1 -1
  35. package/dist/{21.9bbe46c05fe4a34a9cf8.bundle.js → 21.fa61daf65c6bc29e06a2.bundle.js} +1 -1
  36. package/dist/{22.0ae31e473d0af170b177.bundle.js → 22.197477933275583c65cb.bundle.js} +2 -2
  37. package/dist/23.dc3e430b47f766cc2366.bundle.js +1 -1
  38. package/dist/{24.8d3f4b05a5101a6a685b.bundle.js → 24.4c9b73b3909403e82055.bundle.js} +1 -1
  39. package/dist/{31.9a07cc30c05a1a698b98.bundle.js → 25.71b2ceec450a85158ba8.bundle.js} +2 -2
  40. package/dist/{25.2a489b131bab984243fa.bundle.js → 26.60c61d8ca245bad6597d.bundle.js} +1 -1
  41. package/dist/{26.377d1bc26079a8159e3c.bundle.js → 27.56996601ec3795c65c3d.bundle.js} +1 -1
  42. package/dist/{27.60396d05fddda4894ce3.bundle.js → 28.79f65106f49c5036504b.bundle.js} +1 -1
  43. package/dist/{28.aebd82e778f3fcd55219.bundle.js → 29.3f41e0d8e9f58188a02b.bundle.js} +1 -1
  44. package/dist/{29.9a6f92841eb0a4870045.bundle.js → 30.4712f3e92b6469d3d8dd.bundle.js} +1 -1
  45. package/dist/{30.acdf84b0bcd3f178c2fd.bundle.js → 31.a05a0072057c061cd0dc.bundle.js} +1 -1
  46. package/dist/{32.f88a50038df0d43ccfc4.bundle.js → 32.27c9ee63125cca89f908.bundle.js} +1 -1
  47. package/dist/33.0433fbc733c2359c389c.bundle.js +1 -0
  48. package/dist/{33.d4463e934ae20163667d.bundle.js → 34.e5150a1b66426d5f5af7.bundle.js} +1 -1
  49. package/dist/{34.3046d2d28129a67d4483.bundle.js → 35.0766d50ada31ef79b4b0.bundle.js} +1 -1
  50. package/dist/{35.69758da395b815346a2f.bundle.js → 36.25471fd55c32f7f02568.bundle.js} +1 -1
  51. package/dist/{36.8f7908db8f70bbd3318c.bundle.js → 37.356f6302c079cea446b6.bundle.js} +1 -1
  52. package/dist/{37.ac5b9eaa607c43ec69df.bundle.js → 38.94b303a3b944480a495a.bundle.js} +1 -1
  53. package/dist/{38.b776c45fe26516ca8160.bundle.js → 39.a5409bc3fec719768f37.bundle.js} +1 -1
  54. package/dist/{4.870de73e2e763f35280a.bundle.js → 4.83e133ed3a567a27c699.bundle.js} +1 -1
  55. package/dist/{39.c74b936329bf2477fbdb.bundle.js → 40.61f5dedc12beb42c1f44.bundle.js} +1 -1
  56. package/dist/{40.2c1f1cc8c521b8209885.bundle.js → 41.62789a75dd9dddbc1297.bundle.js} +1 -1
  57. package/dist/42.2226eabae24538761847.bundle.js +1 -0
  58. package/dist/{42.b6c558e4b660bdb0be4d.bundle.js → 43.3876fb2ec9b5b6b646df.bundle.js} +1 -1
  59. package/dist/{43.42c27c3277a302252fc5.bundle.js → 44.e63112a4f3ee65c29a0a.bundle.js} +1 -1
  60. package/dist/{44.96d4cf9f701897a90fce.bundle.js → 45.2b1cf89f777bb5fda383.bundle.js} +1 -1
  61. package/dist/{45.2c4bc26cf5fbe9b84cb6.bundle.js → 46.f07b159fc6cc07492e2b.bundle.js} +1 -1
  62. package/dist/{46.d63a366dbcb649ed1fbb.bundle.js → 47.1bacc6e38fde37677380.bundle.js} +1 -1
  63. package/dist/{47.0ecc5620f91346c3e7d4.bundle.js → 48.345db2f50dae9ec7d11a.bundle.js} +1 -1
  64. package/dist/49.b0d0df9a0bd2458a38f7.bundle.js +1 -0
  65. package/dist/{5.adea5d522be945b9d8d3.bundle.js → 5.93d75276b7a283deddc8.bundle.js} +1 -1
  66. package/dist/50.3e3c5da47d3b02a13948.bundle.js +1 -0
  67. package/dist/{50.6695e410303c03ad694c.bundle.js → 51.9a911ea64d2bbe27a6b8.bundle.js} +1 -1
  68. package/dist/{51.95f30e28e67312c9df42.bundle.js → 52.0673b651acdd40122168.bundle.js} +1 -1
  69. package/dist/{52.b0f496f823a213178075.bundle.js → 53.9b5d43c58aa368765457.bundle.js} +1 -1
  70. package/dist/{53.716d3c94c3d0959a26a8.bundle.js → 54.028884d762d361c54c23.bundle.js} +1 -1
  71. package/dist/{54.44b8cf059fe5ba4bf144.bundle.js → 55.4966f01604a6c84d301e.bundle.js} +1 -1
  72. package/dist/{55.891486b3fa68d44f3a52.bundle.js → 56.da176c234be30906ed18.bundle.js} +1 -1
  73. package/dist/{56.3548e08f4add9390e771.bundle.js → 57.413a1beccae08b5eb787.bundle.js} +1 -1
  74. package/dist/{57.9f0dbb2e3b44c19c8dcd.bundle.js → 58.8ba78ec049c5c97e4391.bundle.js} +1 -1
  75. package/dist/{58.a76e6e35994e2cb1a7f6.bundle.js → 59.25436d0038d7be337d24.bundle.js} +1 -1
  76. package/dist/{59.6dfdee0f9651ff9aa2f6.bundle.js → 60.571f2c6fcdec505acb5a.bundle.js} +1 -1
  77. package/dist/{60.2b410d552e467b555529.bundle.js → 61.8dca89c50677ace894ee.bundle.js} +1 -1
  78. package/dist/{61.03a75a3d8faf4c165a0c.bundle.js → 62.3a5f8d2165a2f6058360.bundle.js} +1 -1
  79. package/dist/{62.86ba4d7804758d2e3f48.bundle.js → 63.2ea3fe6eb8be5ab57564.bundle.js} +1 -1
  80. package/dist/{63.5e2ca7ce2ea95b397fe7.bundle.js → 64.4e84a027a9f1d66a69db.bundle.js} +1 -1
  81. package/dist/{64.6a8854031771d4d4ef74.bundle.js → 65.da0571f9102cc340a6b9.bundle.js} +1 -1
  82. package/dist/{65.9e598abd11534c42a0c1.bundle.js → 66.104f9f5e48af12f94fbe.bundle.js} +1 -1
  83. package/dist/{7.0af6bb74bf88aa8f14ca.bundle.js → 7.39ff1f0ec65d7d7b73f5.bundle.js} +2 -2
  84. package/dist/{72.c82f209992278009e1a3.bundle.js → 72.25f264649b4e7f9dd670.bundle.js} +1 -1
  85. package/dist/{75.13e0f311c6c98067c4f8.bundle.js → 75.89f4b3371fc1c8679763.bundle.js} +1 -1
  86. package/dist/76.7d3ef13875f7533cc029.bundle.js +1 -0
  87. package/dist/{77.0373cd7f1c2851df3908.bundle.js → 77.122517ab9f81c08963fd.bundle.js} +1 -1
  88. package/dist/81.824c9bdd22dd196eb3d9.bundle.js +1 -0
  89. package/dist/{83.a6c2ad332de0ee224136.bundle.js → 83.0837870d0e1682a6487c.bundle.js} +1 -1
  90. package/dist/9.0e4d38f2390c619f5b26.bundle.js +1 -0
  91. package/dist/{bundle.c7f3e729665657fc72ff.bundle.js → bundle.5124691819d99ff5da1d.bundle.js} +12 -12
  92. package/dist/css/bootstrap-graphdb-theme.css +0 -4
  93. package/dist/css/new-sparql.css +31 -1
  94. package/dist/index.html +4 -4
  95. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  96. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +14 -13
  97. package/dist/js/angular/core/directives/queryeditor/templates/query-editor.html +4 -23
  98. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  99. package/dist/js/angular/security/templates/user.html +1 -1
  100. package/dist/license-checker.json +2 -2
  101. package/dist/{main.a81aea585f94a768d336.css → main.3ac2b4b19f56209c6467.css} +1 -1
  102. package/dist/pages/aclmanagement.html +1 -1
  103. package/dist/pages/autocomplete.html +1 -1
  104. package/dist/pages/choose-repository-type.html +1 -1
  105. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  106. package/dist/pages/create-index.html +4 -4
  107. package/dist/pages/dependencies.html +1 -1
  108. package/dist/pages/domainRangeInfo.html +2 -2
  109. package/dist/pages/edit.html +1 -1
  110. package/dist/pages/explore.html +1 -1
  111. package/dist/pages/export.html +1 -1
  112. package/dist/pages/find.html +1 -1
  113. package/dist/pages/graph-config/saveGraphConfig.html +11 -11
  114. package/dist/pages/graphs-visualizations.html +7 -7
  115. package/dist/pages/guides.html +1 -1
  116. package/dist/pages/import.html +1 -1
  117. package/dist/pages/jdbc-create.html +5 -5
  118. package/dist/pages/monitor/backup-and-restore.html +1 -1
  119. package/dist/pages/monitor/queries.html +1 -1
  120. package/dist/pages/monitor/resources.html +2 -2
  121. package/dist/pages/namespaces.html +2 -2
  122. package/dist/pages/plugins.html +1 -1
  123. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  124. package/dist/pages/rdfrank.html +2 -2
  125. package/dist/pages/repositories.html +2 -2
  126. package/dist/pages/repository.html +2 -2
  127. package/dist/pages/similarity-indexes.html +1 -1
  128. package/dist/pages/sparql-template-create.html +5 -5
  129. package/dist/pages/sparql.html +3 -3
  130. package/dist/pages/webapi.html +2 -2
  131. package/dist/res/swagger/index.html +27 -27
  132. package/package.json +1 -1
  133. package/dist/108.83bb7ce803f462882200.bundle.js +0 -1
  134. package/dist/13.6a3e4e38a9efa1adf29e.bundle.js +0 -1
  135. package/dist/14.8343a1e9afdb39f1c2dc.bundle.js +0 -1
  136. package/dist/170.d5527024ac9107b542c3.bundle.js +0 -1
  137. package/dist/171.c0e7ce3fd59ef1bfc4f5.bundle.js +0 -1
  138. package/dist/41.ca5e37c70938b397f260.bundle.js +0 -1
  139. package/dist/48.f8b0ea5f9306e24ac2d0.bundle.js +0 -1
  140. package/dist/49.3da99bdb2271cf2adc7b.bundle.js +0 -1
  141. package/dist/66.7b18071c05eb5efb213b.bundle.js +0 -1
  142. package/dist/76.44bdcc2130c6a744bc55.bundle.js +0 -1
  143. package/dist/81.c14757a485d616ca95ba.bundle.js +0 -1
  144. package/dist/9.1e2a1467755135bb1717.bundle.js +0 -1
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[20,21,32,40,64,138],{136:function(e,t,s){"use strict";s.r(t);s(6),s(23),s(29),s(85),s(90),s(22);angular.module("graphdb.framework.aclmanagement",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.aclmanagement.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers"])},63:function(e,t,s){"use strict";s.r(t),s.d(t,"mapAclRulesResponse",(function(){return r}));var l=s(64);const r=e=>{const t=new l.ACListModel;return e&&e.data&&e.data.forEach(e=>{t.appendNewRule(e.subject,e.predicate,e.object,e.context,e.role,e.policy)}),t}},64:function(e,t,s){"use strict";s.r(t),s.d(t,"ACListModel",(function(){return l})),s.d(t,"ACRuleModel",(function(){return r})),s.d(t,"ACL_POLICY",(function(){return o}));class l{constructor(e=[]){this._aclRules=e}size(){return this.aclRules.length}appendNewRule(e,t,s,l,o,n){this.aclRules.push(new r(e,t,s,l,o,n))}addRule(e){this.aclRules.splice(e,0,new r)}removeRule(e){this.aclRules.splice(e,1)}replaceRule(e,t){this.aclRules.splice(e,1,t)}getRule(e){return this.aclRules[e]}isRuleDuplicated(e){const t=this.aclRules[e];return this.aclRules.some((s,l)=>e!==l&&angular.equals(t,s))}getRuleCopy(e){const t=this.aclRules[e];return{subject:t.subject,predicate:t.predicate,object:t.object,context:t.context,role:t.role,policy:t.policy}}moveUp(e){const t=this.aclRules[e-1];this.aclRules[e-1]=this.aclRules[e],this.aclRules[e]=t}moveDown(e){const t=this.aclRules[e+1];this.aclRules[e+1]=this.aclRules[e],this.aclRules[e]=t}toJSON(){return this.aclRules.map(e=>({subject:e.subject,predicate:e.predicate,object:e.object,context:e.context,role:e.role,policy:e.policy}))}get aclRules(){return this._aclRules}set aclRules(e){this._aclRules=e}}class r{constructor(e="*",t="*",s="*",l="*",r="CUSTOM_",n=o.ALLOW){this._subject=e,this._predicate=t,this._object=s,this._context=l,this._role=r,this._policy=n}get subject(){return this._subject}set subject(e){this._subject=e}get predicate(){return this._predicate}set predicate(e){this._predicate=e}get object(){return this._object}set object(e){this._object=e}get context(){return this._context}set context(e){this._context=e}get role(){return this._role}set role(e){this._role=e}get policy(){return this._policy}set policy(e){this._policy=e}}const o={ALLOW:"allow",DENY:"deny"}},86:function(e,t,s){"use strict";s.r(t);s(63);angular.module("graphdb.framework.rest.aclmanagement.service",[]).factory("AclManagementRestService",l),l.$inject=["$http"];function l(e){return{getAcl:function(t){return e.get(`rest/repositories/${t}/acl`)},updateAcl:function(t,s){return e.put(`rest/repositories/${t}/acl`,s)}}}},87:function(e,t,s){"use strict";s.r(t),s.d(t,"mapNamespacesResponse",(function(){return l}));const l=e=>e&&e.data?e.data.results.bindings.map(e=>({prefix:e.prefix.value,uri:e.namespace.value})):[]},90:function(e,t,s){"use strict";s.r(t);s(30),s(86);var l=s(63),r=s(84),o=s(87);function n(e,t,s,n,a,c,i,u,d){e.contextValue=void 0;const p=[];e.ruleData={},e.loading=!1,e.namespaces=[],e.rulesModel=void 0,e.rulesModelCopy=void 0,e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleCopy=void 0,e.isNewRule=!1,e.modelIsDirty=!1,e.addRule=t=>{e.rulesModel.addRule(t),e.editedRuleIndex=t,e.isNewRule=!0,v()},e.editRule=t=>{e.editedRuleIndex=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t),v()},e.deleteRule=t=>{i.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:t}),()=>{e.rulesModel.removeRule(t),v()})},e.saveRule=()=>{e.rulesModel.isRuleDuplicated(e.editedRuleIndex)?f():(e.editedRuleIndex=void 0,e.isNewRule=!1,v())},e.cancelEditing=t=>{e.isNewRule?(e.rulesModel.removeRule(t),e.isNewRule=!1):(e.rulesModel.replaceRule(t,e.editedRuleCopy),e.editedRuleCopy=void 0),e.editedRuleIndex=void 0,v()},e.moveUp=t=>{e.rulesModel.moveUp(t),e.selectedRule=t-1,v()},e.moveDown=t=>{e.rulesModel.moveDown(t),e.selectedRule=t+1,v()},e.saveAcl=()=>{e.loading=!0,R().then(m).catch(e=>{const t=getError(e);s.error(t,c.instant("acl_management.errors.updating_rules"))}).finally(()=>{e.loading=!1})},e.cancelAclSave=()=>{i.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.revert_acl_list"),()=>{g(),s.success(c.instant("acl_management.rulestable.messages.rules_reverted"))})};const m=()=>{const t=b();return n.getAcl(t).then(t=>{e.rulesModel=Object(l.mapAclRulesResponse)(t),e.rulesModelCopy=Object(l.mapAclRulesResponse)(t),v()}).catch(e=>{const t=getError(e);s.error(t,c.instant("acl_management.errors.loading_rules"))})},R=()=>{const t=b();return n.updateAcl(t,e.rulesModel.toJSON()).then(()=>{s.success(c.instant("acl_management.rulestable.messages.rules_updated"))})},g=()=>{b()&&(e.loading=!0,m().finally(()=>{e.loading=!1}))},h=()=>{g(),e.editedRuleIndex=void 0,e.modelIsDirty=!1,e.editedRuleCopy=void 0},v=()=>{e.modelIsDirty=!Object(r.isEqual)(e.rulesModel,e.rulesModelCopy)},b=()=>a.getActiveRepository(),f=()=>{s.error(c.instant("acl_management.errors.duplicated_rules"))},_=t=>{e.modelIsDirty&&(t.returnValue=!0)},w=()=>{window.removeEventListener("beforeunload",_),p.forEach(e=>e())},y=(s,l)=>{e.modelIsDirty&&(s.preventDefault(),i.openSimpleModal({title:c.instant("common.confirm"),message:c.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then((function(){w();const e=t.absUrl().length-t.url().length,s=l.substring(e);t.path(s)}),(function(){})))},j=()=>{e.getAutocompletePromise=d.checkAutocompleteStatus()};u.getNamespaces(a.getActiveRepository()).then(o.mapNamespacesResponse).then(t=>{e.namespaces=t}).catch(e=>{const t=getError(e);s.error(t,c.instant("error.getting.namespaces.for.repo"))}),p.push(e.$on("autocompleteStatus",j)),p.push(e.$watch(b,h)),p.push(e.$on("$locationChangeStart",y)),p.push(e.$on("$destroy",w)),window.addEventListener("beforeunload",_)}angular.module("graphdb.framework.aclmanagement.controllers",["graphdb.framework.rest.plugins.service","graphdb.framework.rest.aclmanagement.service"]).controller("AclManagementCtrl",n),n.$inject=["$scope","$location","toastr","AclManagementRestService","$repositories","$translate","ModalService","RDF4JRepositoriesRestService","AutocompleteRestService"]}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[20,21,32,41,65,138],{136:function(e,t,s){"use strict";s.r(t);s(7),s(23),s(29),s(86),s(90),s(22);angular.module("graphdb.framework.aclmanagement",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.aclmanagement.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers"])},60:function(e,t,s){"use strict";s.r(t),s.d(t,"mapNamespacesResponse",(function(){return l}));const l=e=>e&&e.data?e.data.results.bindings.map(e=>({prefix:e.prefix.value,uri:e.namespace.value})):[]},64:function(e,t,s){"use strict";s.r(t),s.d(t,"mapAclRulesResponse",(function(){return r}));var l=s(65);const r=e=>{const t=new l.ACListModel;return e&&e.data&&e.data.forEach(e=>{t.appendNewRule(e.subject,e.predicate,e.object,e.context,e.role,e.policy)}),t}},65:function(e,t,s){"use strict";s.r(t),s.d(t,"ACListModel",(function(){return l})),s.d(t,"ACRuleModel",(function(){return r})),s.d(t,"ACL_POLICY",(function(){return o}));class l{constructor(e=[]){this._aclRules=e}size(){return this.aclRules.length}appendNewRule(e,t,s,l,o,n){this.aclRules.push(new r(e,t,s,l,o,n))}addRule(e){this.aclRules.splice(e,0,new r)}removeRule(e){this.aclRules.splice(e,1)}replaceRule(e,t){this.aclRules.splice(e,1,t)}getRule(e){return this.aclRules[e]}isRuleDuplicated(e){const t=this.aclRules[e];return this.aclRules.some((s,l)=>e!==l&&angular.equals(t,s))}getRuleCopy(e){const t=this.aclRules[e];return{subject:t.subject,predicate:t.predicate,object:t.object,context:t.context,role:t.role,policy:t.policy}}moveUp(e){const t=this.aclRules[e-1];this.aclRules[e-1]=this.aclRules[e],this.aclRules[e]=t}moveDown(e){const t=this.aclRules[e+1];this.aclRules[e+1]=this.aclRules[e],this.aclRules[e]=t}toJSON(){return this.aclRules.map(e=>({subject:e.subject,predicate:e.predicate,object:e.object,context:e.context,role:e.role,policy:e.policy}))}get aclRules(){return this._aclRules}set aclRules(e){this._aclRules=e}}class r{constructor(e="*",t="*",s="*",l="*",r="CUSTOM_",n=o.ALLOW){this._subject=e,this._predicate=t,this._object=s,this._context=l,this._role=r,this._policy=n}get subject(){return this._subject}set subject(e){this._subject=e}get predicate(){return this._predicate}set predicate(e){this._predicate=e}get object(){return this._object}set object(e){this._object=e}get context(){return this._context}set context(e){this._context=e}get role(){return this._role}set role(e){this._role=e}get policy(){return this._policy}set policy(e){this._policy=e}}const o={ALLOW:"allow",DENY:"deny"}},87:function(e,t,s){"use strict";s.r(t);s(64);angular.module("graphdb.framework.rest.aclmanagement.service",[]).factory("AclManagementRestService",l),l.$inject=["$http"];function l(e){return{getAcl:function(t){return e.get(`rest/repositories/${t}/acl`)},updateAcl:function(t,s){return e.put(`rest/repositories/${t}/acl`,s)}}}},90:function(e,t,s){"use strict";s.r(t);s(30),s(87);var l=s(64),r=s(85),o=s(60);function n(e,t,s,n,a,c,i,u,d){e.contextValue=void 0;const p=[];e.ruleData={},e.loading=!1,e.namespaces=[],e.rulesModel=void 0,e.rulesModelCopy=void 0,e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleCopy=void 0,e.isNewRule=!1,e.modelIsDirty=!1,e.addRule=t=>{e.rulesModel.addRule(t),e.editedRuleIndex=t,e.isNewRule=!0,v()},e.editRule=t=>{e.editedRuleIndex=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t),v()},e.deleteRule=t=>{i.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:t}),()=>{e.rulesModel.removeRule(t),v()})},e.saveRule=()=>{e.rulesModel.isRuleDuplicated(e.editedRuleIndex)?f():(e.editedRuleIndex=void 0,e.isNewRule=!1,v())},e.cancelEditing=t=>{e.isNewRule?(e.rulesModel.removeRule(t),e.isNewRule=!1):(e.rulesModel.replaceRule(t,e.editedRuleCopy),e.editedRuleCopy=void 0),e.editedRuleIndex=void 0,v()},e.moveUp=t=>{e.rulesModel.moveUp(t),e.selectedRule=t-1,v()},e.moveDown=t=>{e.rulesModel.moveDown(t),e.selectedRule=t+1,v()},e.saveAcl=()=>{e.loading=!0,R().then(m).catch(e=>{const t=getError(e);s.error(t,c.instant("acl_management.errors.updating_rules"))}).finally(()=>{e.loading=!1})},e.cancelAclSave=()=>{i.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.revert_acl_list"),()=>{g(),s.success(c.instant("acl_management.rulestable.messages.rules_reverted"))})};const m=()=>{const t=b();return n.getAcl(t).then(t=>{e.rulesModel=Object(l.mapAclRulesResponse)(t),e.rulesModelCopy=Object(l.mapAclRulesResponse)(t),v()}).catch(e=>{const t=getError(e);s.error(t,c.instant("acl_management.errors.loading_rules"))})},R=()=>{const t=b();return n.updateAcl(t,e.rulesModel.toJSON()).then(()=>{s.success(c.instant("acl_management.rulestable.messages.rules_updated"))})},g=()=>{b()&&(e.loading=!0,m().finally(()=>{e.loading=!1}))},h=()=>{g(),e.editedRuleIndex=void 0,e.modelIsDirty=!1,e.editedRuleCopy=void 0},v=()=>{e.modelIsDirty=!Object(r.isEqual)(e.rulesModel,e.rulesModelCopy)},b=()=>a.getActiveRepository(),f=()=>{s.error(c.instant("acl_management.errors.duplicated_rules"))},_=t=>{e.modelIsDirty&&(t.returnValue=!0)},w=()=>{window.removeEventListener("beforeunload",_),p.forEach(e=>e())},y=(s,l)=>{e.modelIsDirty&&(s.preventDefault(),i.openSimpleModal({title:c.instant("common.confirm"),message:c.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then((function(){w();const e=t.absUrl().length-t.url().length,s=l.substring(e);t.path(s)}),(function(){})))},j=()=>{e.getAutocompletePromise=d.checkAutocompleteStatus()};u.getNamespaces(a.getActiveRepository()).then(o.mapNamespacesResponse).then(t=>{e.namespaces=t}).catch(e=>{const t=getError(e);s.error(t,c.instant("error.getting.namespaces.for.repo"))}),p.push(e.$on("autocompleteStatus",j)),p.push(e.$watch(b,h)),p.push(e.$on("$locationChangeStart",y)),p.push(e.$on("$destroy",w)),window.addEventListener("beforeunload",_)}angular.module("graphdb.framework.aclmanagement.controllers",["graphdb.framework.rest.plugins.service","graphdb.framework.rest.aclmanagement.service"]).controller("AclManagementCtrl",n),n.$inject=["$scope","$location","toastr","AclManagementRestService","$repositories","$translate","ModalService","RDF4JRepositoriesRestService","AutocompleteRestService"]}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[200],{284:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=2.4.1-TR4" rel="stylesheet"/>\n\n<h1>{{pageTitle}}</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input class="wb-tags-input" ng-model="customRoles" min-length="2"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n on-tag-added="addCustomRole($tag)"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"></tags-input>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> &middot; {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[200],{284:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=2.4.2-RC1" rel="stylesheet"/>\n\n<h1>{{pageTitle}}</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input class="wb-tags-input" ng-model="customRoles" min-length="2"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n on-tag-added="addCustomRole($tag)"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"></tags-input>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> &middot; {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[21,32,40,64,138],{63:function(e,t,s){"use strict";s.r(t),s.d(t,"mapAclRulesResponse",(function(){return o}));var l=s(64);const o=e=>{const t=new l.ACListModel;return e&&e.data&&e.data.forEach(e=>{t.appendNewRule(e.subject,e.predicate,e.object,e.context,e.role,e.policy)}),t}},64:function(e,t,s){"use strict";s.r(t),s.d(t,"ACListModel",(function(){return l})),s.d(t,"ACRuleModel",(function(){return o})),s.d(t,"ACL_POLICY",(function(){return n}));class l{constructor(e=[]){this._aclRules=e}size(){return this.aclRules.length}appendNewRule(e,t,s,l,n,r){this.aclRules.push(new o(e,t,s,l,n,r))}addRule(e){this.aclRules.splice(e,0,new o)}removeRule(e){this.aclRules.splice(e,1)}replaceRule(e,t){this.aclRules.splice(e,1,t)}getRule(e){return this.aclRules[e]}isRuleDuplicated(e){const t=this.aclRules[e];return this.aclRules.some((s,l)=>e!==l&&angular.equals(t,s))}getRuleCopy(e){const t=this.aclRules[e];return{subject:t.subject,predicate:t.predicate,object:t.object,context:t.context,role:t.role,policy:t.policy}}moveUp(e){const t=this.aclRules[e-1];this.aclRules[e-1]=this.aclRules[e],this.aclRules[e]=t}moveDown(e){const t=this.aclRules[e+1];this.aclRules[e+1]=this.aclRules[e],this.aclRules[e]=t}toJSON(){return this.aclRules.map(e=>({subject:e.subject,predicate:e.predicate,object:e.object,context:e.context,role:e.role,policy:e.policy}))}get aclRules(){return this._aclRules}set aclRules(e){this._aclRules=e}}class o{constructor(e="*",t="*",s="*",l="*",o="CUSTOM_",r=n.ALLOW){this._subject=e,this._predicate=t,this._object=s,this._context=l,this._role=o,this._policy=r}get subject(){return this._subject}set subject(e){this._subject=e}get predicate(){return this._predicate}set predicate(e){this._predicate=e}get object(){return this._object}set object(e){this._object=e}get context(){return this._context}set context(e){this._context=e}get role(){return this._role}set role(e){this._role=e}get policy(){return this._policy}set policy(e){this._policy=e}}const n={ALLOW:"allow",DENY:"deny"}},86:function(e,t,s){"use strict";s.r(t);s(63);angular.module("graphdb.framework.rest.aclmanagement.service",[]).factory("AclManagementRestService",l),l.$inject=["$http"];function l(e){return{getAcl:function(t){return e.get(`rest/repositories/${t}/acl`)},updateAcl:function(t,s){return e.put(`rest/repositories/${t}/acl`,s)}}}},87:function(e,t,s){"use strict";s.r(t),s.d(t,"mapNamespacesResponse",(function(){return l}));const l=e=>e&&e.data?e.data.results.bindings.map(e=>({prefix:e.prefix.value,uri:e.namespace.value})):[]},90:function(e,t,s){"use strict";s.r(t);s(30),s(86);var l=s(63),o=s(84),n=s(87);function r(e,t,s,r,c,a,i,u,d){e.contextValue=void 0;const p=[];e.ruleData={},e.loading=!1,e.namespaces=[],e.rulesModel=void 0,e.rulesModelCopy=void 0,e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleCopy=void 0,e.isNewRule=!1,e.modelIsDirty=!1,e.addRule=t=>{e.rulesModel.addRule(t),e.editedRuleIndex=t,e.isNewRule=!0,v()},e.editRule=t=>{e.editedRuleIndex=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t),v()},e.deleteRule=t=>{i.openConfirmation(a.instant("common.confirm"),a.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:t}),()=>{e.rulesModel.removeRule(t),v()})},e.saveRule=()=>{e.rulesModel.isRuleDuplicated(e.editedRuleIndex)?b():(e.editedRuleIndex=void 0,e.isNewRule=!1,v())},e.cancelEditing=t=>{e.isNewRule?(e.rulesModel.removeRule(t),e.isNewRule=!1):(e.rulesModel.replaceRule(t,e.editedRuleCopy),e.editedRuleCopy=void 0),e.editedRuleIndex=void 0,v()},e.moveUp=t=>{e.rulesModel.moveUp(t),e.selectedRule=t-1,v()},e.moveDown=t=>{e.rulesModel.moveDown(t),e.selectedRule=t+1,v()},e.saveAcl=()=>{e.loading=!0,R().then(m).catch(e=>{const t=getError(e);s.error(t,a.instant("acl_management.errors.updating_rules"))}).finally(()=>{e.loading=!1})},e.cancelAclSave=()=>{i.openConfirmation(a.instant("common.confirm"),a.instant("acl_management.rulestable.messages.revert_acl_list"),()=>{h(),s.success(a.instant("acl_management.rulestable.messages.rules_reverted"))})};const m=()=>{const t=_();return r.getAcl(t).then(t=>{e.rulesModel=Object(l.mapAclRulesResponse)(t),e.rulesModelCopy=Object(l.mapAclRulesResponse)(t),v()}).catch(e=>{const t=getError(e);s.error(t,a.instant("acl_management.errors.loading_rules"))})},R=()=>{const t=_();return r.updateAcl(t,e.rulesModel.toJSON()).then(()=>{s.success(a.instant("acl_management.rulestable.messages.rules_updated"))})},h=()=>{_()&&(e.loading=!0,m().finally(()=>{e.loading=!1}))},g=()=>{h(),e.editedRuleIndex=void 0,e.modelIsDirty=!1,e.editedRuleCopy=void 0},v=()=>{e.modelIsDirty=!Object(o.isEqual)(e.rulesModel,e.rulesModelCopy)},_=()=>c.getActiveRepository(),b=()=>{s.error(a.instant("acl_management.errors.duplicated_rules"))},f=t=>{e.modelIsDirty&&(t.returnValue=!0)},y=()=>{window.removeEventListener("beforeunload",f),p.forEach(e=>e())},w=(s,l)=>{e.modelIsDirty&&(s.preventDefault(),i.openSimpleModal({title:a.instant("common.confirm"),message:a.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then((function(){y();const e=t.absUrl().length-t.url().length,s=l.substring(e);t.path(s)}),(function(){})))},j=()=>{e.getAutocompletePromise=d.checkAutocompleteStatus()};u.getNamespaces(c.getActiveRepository()).then(n.mapNamespacesResponse).then(t=>{e.namespaces=t}).catch(e=>{const t=getError(e);s.error(t,a.instant("error.getting.namespaces.for.repo"))}),p.push(e.$on("autocompleteStatus",j)),p.push(e.$watch(_,g)),p.push(e.$on("$locationChangeStart",w)),p.push(e.$on("$destroy",y)),window.addEventListener("beforeunload",f)}angular.module("graphdb.framework.aclmanagement.controllers",["graphdb.framework.rest.plugins.service","graphdb.framework.rest.aclmanagement.service"]).controller("AclManagementCtrl",r),r.$inject=["$scope","$location","toastr","AclManagementRestService","$repositories","$translate","ModalService","RDF4JRepositoriesRestService","AutocompleteRestService"]}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[21,32,41,65,138],{60:function(e,t,s){"use strict";s.r(t),s.d(t,"mapNamespacesResponse",(function(){return l}));const l=e=>e&&e.data?e.data.results.bindings.map(e=>({prefix:e.prefix.value,uri:e.namespace.value})):[]},64:function(e,t,s){"use strict";s.r(t),s.d(t,"mapAclRulesResponse",(function(){return o}));var l=s(65);const o=e=>{const t=new l.ACListModel;return e&&e.data&&e.data.forEach(e=>{t.appendNewRule(e.subject,e.predicate,e.object,e.context,e.role,e.policy)}),t}},65:function(e,t,s){"use strict";s.r(t),s.d(t,"ACListModel",(function(){return l})),s.d(t,"ACRuleModel",(function(){return o})),s.d(t,"ACL_POLICY",(function(){return n}));class l{constructor(e=[]){this._aclRules=e}size(){return this.aclRules.length}appendNewRule(e,t,s,l,n,r){this.aclRules.push(new o(e,t,s,l,n,r))}addRule(e){this.aclRules.splice(e,0,new o)}removeRule(e){this.aclRules.splice(e,1)}replaceRule(e,t){this.aclRules.splice(e,1,t)}getRule(e){return this.aclRules[e]}isRuleDuplicated(e){const t=this.aclRules[e];return this.aclRules.some((s,l)=>e!==l&&angular.equals(t,s))}getRuleCopy(e){const t=this.aclRules[e];return{subject:t.subject,predicate:t.predicate,object:t.object,context:t.context,role:t.role,policy:t.policy}}moveUp(e){const t=this.aclRules[e-1];this.aclRules[e-1]=this.aclRules[e],this.aclRules[e]=t}moveDown(e){const t=this.aclRules[e+1];this.aclRules[e+1]=this.aclRules[e],this.aclRules[e]=t}toJSON(){return this.aclRules.map(e=>({subject:e.subject,predicate:e.predicate,object:e.object,context:e.context,role:e.role,policy:e.policy}))}get aclRules(){return this._aclRules}set aclRules(e){this._aclRules=e}}class o{constructor(e="*",t="*",s="*",l="*",o="CUSTOM_",r=n.ALLOW){this._subject=e,this._predicate=t,this._object=s,this._context=l,this._role=o,this._policy=r}get subject(){return this._subject}set subject(e){this._subject=e}get predicate(){return this._predicate}set predicate(e){this._predicate=e}get object(){return this._object}set object(e){this._object=e}get context(){return this._context}set context(e){this._context=e}get role(){return this._role}set role(e){this._role=e}get policy(){return this._policy}set policy(e){this._policy=e}}const n={ALLOW:"allow",DENY:"deny"}},87:function(e,t,s){"use strict";s.r(t);s(64);angular.module("graphdb.framework.rest.aclmanagement.service",[]).factory("AclManagementRestService",l),l.$inject=["$http"];function l(e){return{getAcl:function(t){return e.get(`rest/repositories/${t}/acl`)},updateAcl:function(t,s){return e.put(`rest/repositories/${t}/acl`,s)}}}},90:function(e,t,s){"use strict";s.r(t);s(30),s(87);var l=s(64),o=s(85),n=s(60);function r(e,t,s,r,c,a,i,u,d){e.contextValue=void 0;const p=[];e.ruleData={},e.loading=!1,e.namespaces=[],e.rulesModel=void 0,e.rulesModelCopy=void 0,e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleCopy=void 0,e.isNewRule=!1,e.modelIsDirty=!1,e.addRule=t=>{e.rulesModel.addRule(t),e.editedRuleIndex=t,e.isNewRule=!0,v()},e.editRule=t=>{e.editedRuleIndex=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t),v()},e.deleteRule=t=>{i.openConfirmation(a.instant("common.confirm"),a.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:t}),()=>{e.rulesModel.removeRule(t),v()})},e.saveRule=()=>{e.rulesModel.isRuleDuplicated(e.editedRuleIndex)?b():(e.editedRuleIndex=void 0,e.isNewRule=!1,v())},e.cancelEditing=t=>{e.isNewRule?(e.rulesModel.removeRule(t),e.isNewRule=!1):(e.rulesModel.replaceRule(t,e.editedRuleCopy),e.editedRuleCopy=void 0),e.editedRuleIndex=void 0,v()},e.moveUp=t=>{e.rulesModel.moveUp(t),e.selectedRule=t-1,v()},e.moveDown=t=>{e.rulesModel.moveDown(t),e.selectedRule=t+1,v()},e.saveAcl=()=>{e.loading=!0,R().then(m).catch(e=>{const t=getError(e);s.error(t,a.instant("acl_management.errors.updating_rules"))}).finally(()=>{e.loading=!1})},e.cancelAclSave=()=>{i.openConfirmation(a.instant("common.confirm"),a.instant("acl_management.rulestable.messages.revert_acl_list"),()=>{h(),s.success(a.instant("acl_management.rulestable.messages.rules_reverted"))})};const m=()=>{const t=_();return r.getAcl(t).then(t=>{e.rulesModel=Object(l.mapAclRulesResponse)(t),e.rulesModelCopy=Object(l.mapAclRulesResponse)(t),v()}).catch(e=>{const t=getError(e);s.error(t,a.instant("acl_management.errors.loading_rules"))})},R=()=>{const t=_();return r.updateAcl(t,e.rulesModel.toJSON()).then(()=>{s.success(a.instant("acl_management.rulestable.messages.rules_updated"))})},h=()=>{_()&&(e.loading=!0,m().finally(()=>{e.loading=!1}))},g=()=>{h(),e.editedRuleIndex=void 0,e.modelIsDirty=!1,e.editedRuleCopy=void 0},v=()=>{e.modelIsDirty=!Object(o.isEqual)(e.rulesModel,e.rulesModelCopy)},_=()=>c.getActiveRepository(),b=()=>{s.error(a.instant("acl_management.errors.duplicated_rules"))},f=t=>{e.modelIsDirty&&(t.returnValue=!0)},y=()=>{window.removeEventListener("beforeunload",f),p.forEach(e=>e())},w=(s,l)=>{e.modelIsDirty&&(s.preventDefault(),i.openSimpleModal({title:a.instant("common.confirm"),message:a.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then((function(){y();const e=t.absUrl().length-t.url().length,s=l.substring(e);t.path(s)}),(function(){})))},j=()=>{e.getAutocompletePromise=d.checkAutocompleteStatus()};u.getNamespaces(c.getActiveRepository()).then(n.mapNamespacesResponse).then(t=>{e.namespaces=t}).catch(e=>{const t=getError(e);s.error(t,a.instant("error.getting.namespaces.for.repo"))}),p.push(e.$on("autocompleteStatus",j)),p.push(e.$watch(_,g)),p.push(e.$on("$locationChangeStart",w)),p.push(e.$on("$destroy",y)),window.addEventListener("beforeunload",f)}angular.module("graphdb.framework.aclmanagement.controllers",["graphdb.framework.rest.plugins.service","graphdb.framework.rest.aclmanagement.service"]).controller("AclManagementCtrl",r),r.$inject=["$scope","$location","toastr","AclManagementRestService","$repositories","$translate","ModalService","RDF4JRepositoriesRestService","AutocompleteRestService"]}}]);
@@ -1,3 +1,3 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[22,74,79,81],{146:function(e,t,n){"use strict";n.r(t);n(6),n(23),n(96),n(133),n(97),n(310),n(314),n(95);angular.module("graphdb.framework.explore",["ngRoute","toastr","xeditable","angucomplete-alt-onto","graphdb.framework.explore.services","graphdb.framework.explore.controllers","graphdb.framework.explore.directives","graphdb.framework.core.directives.fittext"])},314:function(e,t){
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[22,74,79,81],{146:function(e,t,n){"use strict";n.r(t);n(7),n(23),n(96),n(133),n(97),n(310),n(314),n(95);angular.module("graphdb.framework.explore",["ngRoute","toastr","xeditable","angucomplete-alt-onto","graphdb.framework.explore.services","graphdb.framework.explore.controllers","graphdb.framework.explore.directives","graphdb.framework.core.directives.fittext"])},314:function(e,t){
2
2
  /*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */
3
- !function(e,t){"use strict";!function(e){e.module("angucomplete-alt-onto",[]).directive("angucompleteAltOnto",["$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope",function(e,t,n,r,l,i,o,a){function u(t,i,o,a){var u,s,c,d,g,p,h=i.find("input"),f=3,m=null,w="autocomplete-required",v=null,b=null,x=i[0].querySelector(".angucomplete-dropdown"),y=!1,S=null;function C(e,n){e&&("object"==typeof e?(t.uri=R(e),M({originalObject:e})):"string"==typeof e&&e.length>0?t.uri=e:console&&console.error&&console.error("Tried to set "+(n?"initial":"")+" value of angucomplete to",e,"which is an invalid value"),F(!0))}function I(e){S=null,t.hideResults(e),document.body.removeEventListener("click",I)}function $(e){return e.which?e.which:e.keyCode}function M(e){"function"==typeof t.selectedObject?t.selectedObject(e):t.selectedObject=e,F(!!e)}function R(e){return t.titleField.split(",").map((function(t){return L(e,t)})).join(" ")}function L(e,t){var n,r;if(t){n=t.split("."),r=e;for(var l=0;l<n.length;l++)r=r[n[l]]}else r=e;return r}function D(e,n){var l,i,o;if(o=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),e)return e.match&&e.replace||(e=e.toString()),l=(i=e.match(o))?e.replace(o,'<span class="'+t.matchClass+'">'+i[0]+"</span>"):e,r.trustAsHtml(l)}function F(e){t.notEmpty=e,v=t.uri,t.fieldRequired&&a&&t.inputName&&a[t.inputName].$setValidity(w,e)}function j(e){!t.overrideSuggestions||t.selectedObject&&t.selectedObject.originalObject===t.uri||(e&&e.preventDefault(),l.cancel(m),H(),M({originalObject:t.uri}),t.clearSelected&&(t.uri=null),z())}function X(){return i[0].querySelectorAll(".angucomplete-row")[t.currentIndex]}function k(e){x.scrollTop=x.scrollTop+e}function U(){var e=t.results[t.currentIndex];if(t.matchClass){var n=R(e.originalObject);n=n.replace(/<b>|<\/b>/g,""),h.val(n)}else h.val(e.title)}function O(e){return function(n,r,l,i){r||l||i||!n.data||(n=n.data),t.searching=!1,B(L(s(n),t.remoteUrlDataField),e)}}function q(e,n,r,l){0!==n&&-1!==n&&(n||r||l||(n=e.status),t.remoteUrlErrorCallback?t.remoteUrlErrorCallback(e,n,r,l):console&&console.error&&console.error("http error"))}function H(){b&&b.resolve()}function T(r){var l={},i=t.remoteUrl+encodeuriComponent(r);t.remoteUrlRequestFormatter&&(l={params:t.remoteUrlRequestFormatter(r)},i=t.remoteUrl),t.remoteUrlRequestWithCredentials&&(l.withCredentials=!0),H(),b=e.defer(),l.timeout=b.promise,n.get(i,l).success(O(r)).error(q)}function N(n){H(),b=e.defer(),t.remoteApiHandler(n,b.promise).then(O(n)).catch(q)}function z(){t.showDropdown=!1,t.results=[],x&&(x.scrollTop=0)}function E(){t.showDropdown=d,t.currentIndex=t.focusFirst?0:-1,t.results=[]}function A(e){!e||e.length<f||(t.localData?t.$apply((function(){var n;n=void 0!==t.localSearch()?t.localSearch()(e):function(e){var n,r,l,i,o=t.searchFields.split(","),a=[];for(void 0!==t.parseInput()&&(e=t.parseInput()(e)),n=0;n<t.localData.length;n++){for(r=!1,l=0;l<o.length;l++)i=L(t.localData[n],o[l])||"",r=r||i.toString().toLowerCase().indexOf(e.toString().toLowerCase())>=0;r&&(a[a.length]=t.localData[n])}return a}(e),t.searching=!1,B(n,e)})):t.remoteApiHandler?N(e):T(e))}function B(e,n){var r,l,i,o,a,u;if(e&&e.length>0)for(t.results=[],r=0;r<e.length;r++)t.titleField&&""!==t.titleField&&(o=a=R(e[r])),l="",t.descriptionField&&(l=u=L(e[r],t.descriptionField)),i="",t.imageField&&(i=L(e[r],t.imageField)),t.matchClass&&(a=D(o,n),u=D(l,n)),t.results[t.results.length]={title:a,description:u,image:i,originalObject:e[r]};else t.results=[];t.autoMatch&&1===t.results.length&&function(e,n,r){if(!r)return!1;for(var l in n)if(n[l].toLowerCase()===r.toLowerCase())return t.selectResult(e),!0;return!1}(t.results[0],{title:o,desc:l||""},t.uri)?t.showDropdown=!1:0!==t.results.length||g?t.showDropdown=!0:t.showDropdown=!1}function V(){t.localData?B(t.localData,""):t.remoteApiHandler?N(""):T("")}i.on("mousedown",(function(e){e.target.id?(S=e.target.id)===t.id+"_dropdown"&&document.body.addEventListener("click",I):S=e.target.className})),t.currentIndex=t.focusFirst?0:null,t.searching=!1,c=t.$watch("initialValue",(function(e){e&&(c(),C(e,!0))})),t.$watch("fieldRequired",(function(e,n){e!==n&&(e?v&&-1!==t.currentIndex?F(!0):F(!1):a[t.inputName].$setValidity(w,!0))})),t.$on("angucomplete-alt:clearInput",(function(e,n){n&&n!==t.id||(t.uri=null,M(),F(!1),z())})),t.$on("angucomplete-alt:changeInput",(function(e,n,r){n&&n===t.id&&C(r)})),t.onFocusHandler=function(){t.focusIn&&t.focusIn(),0!==f||t.uri&&0!==t.uri.length||(t.currentIndex=t.focusFirst?0:t.currentIndex,t.showDropdown=!0,V())},t.hideResults=function(){S&&(S===t.id+"_dropdown"||S.indexOf("angucomplete")>=0)?S=null:(u=l((function(){z(),t.$apply((function(){t.uri&&t.uri.length>0&&h.val(t.uri)}))}),200),H(),t.focusOut&&t.focusOut(),t.overrideSuggestions&&t.uri&&t.uri.length>0&&-1===t.currentIndex&&j())},t.resetHideResults=function(){u&&l.cancel(u)},t.hoverRow=function(e){t.currentIndex=e},t.selectResult=function(e){t.matchClass&&(e.title=R(e.originalObject),"string"==typeof e.title&&(e.title=e.title.replace(/<b>|<\/b>/g,"")),e.description=L(e.originalObject,t.descriptionField)),t.clearSelected?t.uri=null:t.uri=e.title,M(e),z()},t.inputChangeHandler=function(e){return e.length<f?(H(),z()):0===e.length&&0===f&&(t.searching=!1,V()),t.inputChanged&&(e=t.inputChanged(e)),e},t.fieldRequiredClass&&""!==t.fieldRequiredClass&&(w=t.fieldRequiredClass),t.minlength&&""!==t.minlength&&(f=parseInt(t.minlength,10)),t.pause||(t.pause=500),t.clearSelected||(t.clearSelected=!1),t.overrideSuggestions||(t.overrideSuggestions=!1),t.fieldRequired&&a&&(t.initialValue?F(!0):F(!1)),t.inputType=o.type?o.type:"text",t.textSearching=o.textSearching?o.textSearching:"Searching...",t.textNoResults=o.textNoResults?o.textNoResults:"No results found",d="false"!==t.textSearching,g="false"!==t.textNoResults,t.maxlength=o.maxlength?o.maxlength:524288,h.on("keydown",(function(e){var n=$(e),r=null,l=null;13===n&&t.results?(t.currentIndex>=0&&t.currentIndex<t.results.length?(e.preventDefault(),t.selectResult(t.results[t.currentIndex])):(j(e),z()),t.$apply()):40===n&&t.results?(e.preventDefault(),t.currentIndex+1<t.results.length&&t.showDropdown&&(t.$apply((function(){t.currentIndex++,U()})),y&&(r=X(),x.getBoundingClientRect().top+parseInt(getComputedStyle(x).maxHeight,10)<r.getBoundingClientRect().bottom&&k(function(e){var t=getComputedStyle(e);return e.offsetHeight+parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}(r))))):38===n&&t.results?(e.preventDefault(),t.currentIndex>=1?(t.$apply((function(){t.currentIndex--,U()})),y&&(l=X().getBoundingClientRect().top-(x.getBoundingClientRect().top+parseInt(getComputedStyle(x).paddingTop,10)))<0&&k(l-1)):0===t.currentIndex&&t.$apply((function(){t.currentIndex=-1,h.val(t.uri)}))):9===n?t.results&&t.results.length>0&&t.showDropdown?-1===t.currentIndex&&t.overrideSuggestions?j():(-1===t.currentIndex&&(t.currentIndex=0),t.selectResult(t.results[t.currentIndex]),t.$digest()):t.uri&&t.uri.length>0&&j():27===n&&e.preventDefault()})),h.on("keyup",(function(e){var n=$(e);if(37!==n&&39!==n)if(38===n||13===n)e.preventDefault();else if(40===n)e.preventDefault(),!t.showDropdown&&t.uri&&t.uri.length>=f&&(E(),t.searching=!0,A(t.uri));else if(27===n)z(),t.$apply((function(){h.val(t.uri)}));else{if(0===f&&!t.uri)return;t.uri&&""!==t.uri?t.uri.length>=f&&(E(),m&&l.cancel(m),t.searching=!0,m=l((function(){A(t.uri)}),t.pause)):t.showDropdown=!1,v&&v!==t.uri&&!t.clearSelected&&t.$apply((function(){M()}))}})),p="remoteUrlResponseFormatter",s=function(e){return t[p]?t[p](e):e},l((function(){var e=getComputedStyle(x);y=e.maxHeight&&"auto"===e.overflowY}))}return i.put("/angucomplete-alt/index.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}"> <input id="{{id}}_value" name="{{inputName}}" tabindex="{{fieldTabindex}}" ng-class="{\'angucomplete-input-not-empty\': notEmpty}" ng-model="uri" ng-disabled="disableInput" type="{{inputType}}" placeholder="{{placeholder}}" maxlength="{{maxlength}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(uri)" style="overflow: hidden; padding-right: .5em;"/> <div id="{{id}}_dropdown" class="angucomplete-dropdown" ng-show="disableSuggestions && showDropdown"> <div class="angucomplete-searching" ng-show="searching" ng-bind="textSearching"></div> <div class="angucomplete-searching" ng-show="!searching && (!results || results.length == 0)" ng-bind="textNoResults"></div> <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}"> <div ng-if="imageField" class="angucomplete-image-holder"> <img ng-if="result.image && result.image != \'\'" ng-src="{{result.image}}" class="angucomplete-image"/> <div ng-if="!result.image && result.image != \'\'" class="angucomplete-image-default"></div> </div> <div class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></div> <div class="angucomplete-title" ng-if="!matchClass">{{ result.title }}</div> <div ng-if="matchClass && result.description && result.description != \'\'" class="angucomplete-description" ng-bind-html="result.description"></div> <div ng-if="!matchClass && result.description && result.description != \'\'" class="angucomplete-description">{{result.description}}</div> </div> </div></div>'),{restrict:"EA",require:"^?form",scope:{selectedObject:"=",disableInput:"=",disableSuggestions:"=",initialValue:"=",localData:"=",localSearch:"&",remoteUrlRequestFormatter:"=",remoteUrlRequestWithCredentials:"@",remoteUrlResponseFormatter:"=",remoteUrlErrorCallback:"=",remoteApiHandler:"=",id:"@",type:"@",placeholder:"@",remoteUrl:"@",remoteUrlDataField:"@",titleField:"@",descriptionField:"@",imageField:"@",inputClass:"@",pause:"@",searchFields:"@",minlength:"@",matchClass:"@",clearSelected:"@",overrideSuggestions:"@",fieldRequired:"=",fieldRequiredClass:"@",inputChanged:"=",autoMatch:"@",focusOut:"&",focusIn:"&",fieldTabindex:"@",inputName:"@",focusFirst:"@",parseInput:"&"},templateUrl:function(e,t){return t.templateUrl||"/angucomplete-alt/index.html"},compile:function(e){var t=o.startSymbol(),n=o.endSymbol();if("{{"!==t||"}}"!==n){var r=e.html().replace(/\{\{/g,t).replace(/\}\}/g,n);e.html(r)}return u}}}])}(window.angular)}()},95:function(e,t){function n(e){return{restrict:"A",scope:{min:"=",max:"="},link:function(t,n,r){const l={debounce:_.debounce,delay:100,loadDelay:10,compressor:1,min:r.fitTextMin||"inherit",max:r.fitTextMax||"inherit",calcSize:10,lines:1},i=n.parent(),o=n[0],a=o.style,u=window.getComputedStyle(n[0],null),s=n.children().length||l.lines,c="inherit"===l.min?u["font-size"]:l.min,d="inherit"===l.max?u["font-size"]:l.max,g=u["line-height"],p=u.display;let h;function f(){const e=l.calcSize*s/o.offsetWidth/s;return Math.max(Math.min(function(e){const t=parseFloat(getComputedStyle(i[0]).paddingLeft),n=parseFloat(getComputedStyle(i[0]).paddingRight);return(i[0].offsetWidth-(t+n))*e*l.compressor}(e),parseFloat(d)),parseFloat(c))}function m(){h&&e.cancel(h),h=e((function(){o.offsetHeight*o.offsetWidth!=0&&(a.fontSize=l.calcSize+"px",a.lineHeight="1",a.display="inline-block",a.fontSize=f()+"px",a.lineHeight=g,a.display=p)}),l.loadDelay)}t.$watch((function(){return[i[0].offsetWidth,n[0].offsetWidth].join("_")}),(function(){m()})),$(window).on("resize",l.debounce((function(){t.$apply(m)}),l.delay)),t.$on("$destroy",(function(){h&&e.cancel(h),$(window).off("resize")}))}}}angular.module("graphdb.framework.core.directives.fittext",[]).directive("fitText",n),n.$inject=["$timeout"]},96:function(e,t){function n(){return{transformToTrig:function(e){let t="";const n={};for(let t=0;t<e.length;t++){const r=e[t];if(void 0===r.context?r.context="":r.context=_.trim(r.context),angular.isUndefined(n[r.context])){const e=[];e.push(r),n[r.context]=e}else n[r.context].push(r)}const r=Object.keys(n);for(let e=0;e<r.length;e++){const l=r[e];t+=""===l?"\n{":"\n<"+l+"> {";const i=n[l];for(let e=0;e<i.length;e++){const n=i[e];t+="\n\t<"+n.subject+"> <"+n.predicate+"> ","uri"===n.object.type?t+="<"+n.object.value+"> .":t+='"""'+n.object.value+'"""'+(n.object.datatype?"^^<"+n.object.datatype+">":n.object.lang?"@"+n.object.lang:"")+" ."}t+="\n}"}return t},buildStatements:function(e,t){const n=[];if(!_.isEmpty(e.data)){const r=e.data[t],l=Object.keys(r);for(let e=0;e<l.length;e++){const i=l[e],o=r[i];for(let e=0;e<o.length;e++){const r=o[e];for(let e=0;e<r.graphs.length;e++){let l=r.graphs[e];"http://www.ontotext.com/explicit"===l&&(l=""),r.lang&&(r.datatype=""),r.datatype||(r.datatype=""),n.push({subject:t,predicate:i,object:{value:r.value,type:r.type,datatype:r.datatype,lang:r.lang},context:l})}}}}return n},getDatatypeOptions:function(){return[{value:"",label:"string"},{value:"http://www.w3.org/2001/XMLSchema#boolean",label:"boolean"},{value:"http://www.w3.org/2001/XMLSchema#decimal",label:"decimal"},{value:"http://www.w3.org/2001/XMLSchema#integer",label:"integer"},{value:"http://www.w3.org/2001/XMLSchema#double",label:"double"},{value:"http://www.w3.org/2001/XMLSchema#float",label:"float"},{value:"http://www.w3.org/2001/XMLSchema#date",label:"date"},{value:"http://www.w3.org/2001/XMLSchema#time",label:"time"},{value:"http://www.w3.org/2001/XMLSchema#dateTime",label:"date time"},{value:"http://www.w3.org/2001/XMLSchema#byte",label:"byte"},{value:"http://www.w3.org/2001/XMLSchema#short",label:"short"},{value:"http://www.w3.org/2001/XMLSchema#int",label:"int"},{value:"http://www.w3.org/2001/XMLSchema#long",label:"long"},{value:"http://www.w3.org/2001/XMLSchema#unsignedByte",label:"unsigned byte"},{value:"http://www.w3.org/2001/XMLSchema#unsignedShort",label:"unsigned short"},{value:"http://www.w3.org/2001/XMLSchema#unsignedInt",label:"unsigned int"},{value:"http://www.w3.org/2001/XMLSchema#unsignedLong",label:"unsigned long"},{value:"http://www.w3.org/2001/XMLSchema#positoveInteger",label:"positive integer"},{value:"http://www.w3.org/2001/XMLSchema#nonNegativeInteger",label:"non-negative integer"},{value:"http://www.w3.org/2001/XMLSchema#negativeInteger",label:"negative integer"},{value:"http://www.w3.org/2001/XMLSchema#nonPositiveInteger",label:"non-positive integer"},{value:"http://www.w3.org/2001/XMLSchema#gYear",label:"gYear"},{value:"http://www.w3.org/2001/XMLSchema#gMonth",label:"gMonth"},{value:"http://www.w3.org/2001/XMLSchema#gDay",label:"gDay"},{value:"http://www.w3.org/2001/XMLSchema#gYearMonth",label:"gYearMonth"},{value:"http://www.w3.org/2001/XMLSchema#gMonthDay",label:"gMonthDay"},{value:"http://www.w3.org/2001/XMLSchema#duration",label:"duration"},{value:"http://www.w3.org/2001/XMLSchema#hexBinary",label:"hex binary"},{value:"http://www.w3.org/2001/XMLSchema#base64Binary",label:"base64 binary"}]}}}angular.module("graphdb.framework.explore.services",[]).factory("StatementsService",n),n.$inject=[]},97:function(e,t,n){"use strict";n.r(t);n(26);angular.module("graphdb.framework.explore.directives",["graphdb.framework.utils.uriutils"]).directive("uri",["UriUtils",function(e){return{require:"ngModel",link:function(t,n,r,l){l.$parsers.unshift((function(t){if(!angular.isUndefined(t)&&t.length>0){const n=e.validateRdfUri(t);return l.$setValidity("searchStr",n),n?t:void 0}return l.$setValidity("searchStr",!0),t})),l.$formatters.unshift((function(t){return angular.isUndefined(t)||l.$setValidity("searchStr",e.validateRdfUri),t}))}}}])}}]);
3
+ !function(e,t){"use strict";!function(e){e.module("angucomplete-alt-onto",[]).directive("angucompleteAltOnto",["$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope",function(e,t,n,r,l,i,o,a){function u(t,i,o,a){var u,c,s,d,g,p,h=i.find("input"),f=3,m=null,w="autocomplete-required",v=null,b=null,x=i[0].querySelector(".angucomplete-dropdown"),y=!1,S=null;function C(e,n){e&&("object"==typeof e?(t.uri=R(e),M({originalObject:e})):"string"==typeof e&&e.length>0?t.uri=e:console&&console.error&&console.error("Tried to set "+(n?"initial":"")+" value of angucomplete to",e,"which is an invalid value"),j(!0))}function I(e){S=null,t.hideResults(e),document.body.removeEventListener("click",I)}function $(e){return e.which?e.which:e.keyCode}function M(e){"function"==typeof t.selectedObject?t.selectedObject(e):t.selectedObject=e,j(!!e)}function R(e){return t.titleField.split(",").map((function(t){return L(e,t)})).join(" ")}function L(e,t){var n,r;if(t){n=t.split("."),r=e;for(var l=0;l<n.length;l++)r=r[n[l]]}else r=e;return r}function D(e,n){var l,i,o;if(o=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),e)return e.match&&e.replace||(e=e.toString()),l=(i=e.match(o))?e.replace(o,'<span class="'+t.matchClass+'">'+i[0]+"</span>"):e,r.trustAsHtml(l)}function j(e){t.notEmpty=e,v=t.uri,t.fieldRequired&&a&&t.inputName&&a[t.inputName].$setValidity(w,e)}function F(e){!t.overrideSuggestions||t.selectedObject&&t.selectedObject.originalObject===t.uri||(e&&e.preventDefault(),l.cancel(m),H(),M({originalObject:t.uri}),t.clearSelected&&(t.uri=null),z())}function X(){return i[0].querySelectorAll(".angucomplete-row")[t.currentIndex]}function k(e){x.scrollTop=x.scrollTop+e}function U(){var e=t.results[t.currentIndex];if(t.matchClass){var n=R(e.originalObject);n=n.replace(/<b>|<\/b>/g,""),h.val(n)}else h.val(e.title)}function O(e){return function(n,r,l,i){r||l||i||!n.data||(n=n.data),t.searching=!1,B(L(c(n),t.remoteUrlDataField),e)}}function q(e,n,r,l){0!==n&&-1!==n&&(n||r||l||(n=e.status),t.remoteUrlErrorCallback?t.remoteUrlErrorCallback(e,n,r,l):console&&console.error&&console.error("http error"))}function H(){b&&b.resolve()}function T(r){var l={},i=t.remoteUrl+encodeuriComponent(r);t.remoteUrlRequestFormatter&&(l={params:t.remoteUrlRequestFormatter(r)},i=t.remoteUrl),t.remoteUrlRequestWithCredentials&&(l.withCredentials=!0),H(),b=e.defer(),l.timeout=b.promise,n.get(i,l).success(O(r)).error(q)}function N(n){H(),b=e.defer(),t.remoteApiHandler(n,b.promise).then(O(n)).catch(q)}function z(){t.showDropdown=!1,t.results=[],x&&(x.scrollTop=0)}function E(){t.showDropdown=d,t.currentIndex=t.focusFirst?0:-1,t.results=[]}function A(e){!e||e.length<f||(t.localData?t.$apply((function(){var n;n=void 0!==t.localSearch()?t.localSearch()(e):function(e){var n,r,l,i,o=t.searchFields.split(","),a=[];for(void 0!==t.parseInput()&&(e=t.parseInput()(e)),n=0;n<t.localData.length;n++){for(r=!1,l=0;l<o.length;l++)i=L(t.localData[n],o[l])||"",r=r||i.toString().toLowerCase().indexOf(e.toString().toLowerCase())>=0;r&&(a[a.length]=t.localData[n])}return a}(e),t.searching=!1,B(n,e)})):t.remoteApiHandler?N(e):T(e))}function B(e,n){var r,l,i,o,a,u;if(e&&e.length>0)for(t.results=[],r=0;r<e.length;r++)t.titleField&&""!==t.titleField&&(o=a=R(e[r])),l="",t.descriptionField&&(l=u=L(e[r],t.descriptionField)),i="",t.imageField&&(i=L(e[r],t.imageField)),t.matchClass&&(a=D(o,n),u=D(l,n)),t.results[t.results.length]={title:a,description:u,image:i,originalObject:e[r]};else t.results=[];t.autoMatch&&1===t.results.length&&function(e,n,r){if(!r)return!1;for(var l in n)if(n[l].toLowerCase()===r.toLowerCase())return t.selectResult(e),!0;return!1}(t.results[0],{title:o,desc:l||""},t.uri)?t.showDropdown=!1:0!==t.results.length||g?t.showDropdown=!0:t.showDropdown=!1}function V(){t.localData?B(t.localData,""):t.remoteApiHandler?N(""):T("")}i.on("mousedown",(function(e){e.target.id?(S=e.target.id)===t.id+"_dropdown"&&document.body.addEventListener("click",I):S=e.target.className})),t.currentIndex=t.focusFirst?0:null,t.searching=!1,s=t.$watch("initialValue",(function(e){e&&(s(),C(e,!0))})),t.$watch("fieldRequired",(function(e,n){e!==n&&(e?v&&-1!==t.currentIndex?j(!0):j(!1):a[t.inputName].$setValidity(w,!0))})),t.$on("angucomplete-alt:clearInput",(function(e,n){n&&n!==t.id||(t.uri=null,M(),j(!1),z())})),t.$on("angucomplete-alt:changeInput",(function(e,n,r){n&&n===t.id&&C(r)})),t.onFocusHandler=function(){t.focusIn&&t.focusIn(),0!==f||t.uri&&0!==t.uri.length||(t.currentIndex=t.focusFirst?0:t.currentIndex,t.showDropdown=!0,V())},t.hideResults=function(){S&&(S===t.id+"_dropdown"||S.indexOf("angucomplete")>=0)?S=null:(u=l((function(){z(),t.$apply((function(){t.uri&&t.uri.length>0&&h.val(t.uri)}))}),200),H(),t.focusOut&&t.focusOut(),t.overrideSuggestions&&t.uri&&t.uri.length>0&&-1===t.currentIndex&&F())},t.resetHideResults=function(){u&&l.cancel(u)},t.hoverRow=function(e){t.currentIndex=e},t.selectResult=function(e){t.matchClass&&(e.title=R(e.originalObject),"string"==typeof e.title&&(e.title=e.title.replace(/<b>|<\/b>/g,"")),e.description=L(e.originalObject,t.descriptionField)),t.clearSelected?t.uri=null:t.uri=e.title,M(e),z()},t.inputChangeHandler=function(e){return e.length<f?(H(),z()):0===e.length&&0===f&&(t.searching=!1,V()),t.inputChanged&&(e=t.inputChanged(e)),e},t.fieldRequiredClass&&""!==t.fieldRequiredClass&&(w=t.fieldRequiredClass),t.minlength&&""!==t.minlength&&(f=parseInt(t.minlength,10)),t.pause||(t.pause=500),t.clearSelected||(t.clearSelected=!1),t.overrideSuggestions||(t.overrideSuggestions=!1),t.fieldRequired&&a&&(t.initialValue?j(!0):j(!1)),t.inputType=o.type?o.type:"text",t.textSearching=o.textSearching?o.textSearching:"Searching...",t.textNoResults=o.textNoResults?o.textNoResults:"No results found",d="false"!==t.textSearching,g="false"!==t.textNoResults,t.maxlength=o.maxlength?o.maxlength:524288,h.on("keydown",(function(e){var n=$(e),r=null,l=null;13===n&&t.results?(t.currentIndex>=0&&t.currentIndex<t.results.length?(e.preventDefault(),t.selectResult(t.results[t.currentIndex])):(F(e),z()),t.$apply()):40===n&&t.results?(e.preventDefault(),t.currentIndex+1<t.results.length&&t.showDropdown&&(t.$apply((function(){t.currentIndex++,U()})),y&&(r=X(),x.getBoundingClientRect().top+parseInt(getComputedStyle(x).maxHeight,10)<r.getBoundingClientRect().bottom&&k(function(e){var t=getComputedStyle(e);return e.offsetHeight+parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}(r))))):38===n&&t.results?(e.preventDefault(),t.currentIndex>=1?(t.$apply((function(){t.currentIndex--,U()})),y&&(l=X().getBoundingClientRect().top-(x.getBoundingClientRect().top+parseInt(getComputedStyle(x).paddingTop,10)))<0&&k(l-1)):0===t.currentIndex&&t.$apply((function(){t.currentIndex=-1,h.val(t.uri)}))):9===n?t.results&&t.results.length>0&&t.showDropdown?-1===t.currentIndex&&t.overrideSuggestions?F():(-1===t.currentIndex&&(t.currentIndex=0),t.selectResult(t.results[t.currentIndex]),t.$digest()):t.uri&&t.uri.length>0&&F():27===n&&e.preventDefault()})),h.on("keyup",(function(e){var n=$(e);if(37!==n&&39!==n)if(38===n||13===n)e.preventDefault();else if(40===n)e.preventDefault(),!t.showDropdown&&t.uri&&t.uri.length>=f&&(E(),t.searching=!0,A(t.uri));else if(27===n)z(),t.$apply((function(){h.val(t.uri)}));else{if(0===f&&!t.uri)return;t.uri&&""!==t.uri?t.uri.length>=f&&(E(),m&&l.cancel(m),t.searching=!0,m=l((function(){A(t.uri)}),t.pause)):t.showDropdown=!1,v&&v!==t.uri&&!t.clearSelected&&t.$apply((function(){M()}))}})),p="remoteUrlResponseFormatter",c=function(e){return t[p]?t[p](e):e},l((function(){var e=getComputedStyle(x);y=e.maxHeight&&"auto"===e.overflowY}))}return i.put("/angucomplete-alt/index.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}"> <input id="{{id}}_value" name="{{inputName}}" tabindex="{{fieldTabindex}}" ng-class="{\'angucomplete-input-not-empty\': notEmpty}" ng-model="uri" ng-disabled="disableInput" type="{{inputType}}" placeholder="{{placeholder}}" maxlength="{{maxlength}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(uri)" style="overflow: hidden; padding-right: .5em;"/> <div id="{{id}}_dropdown" class="angucomplete-dropdown" ng-show="disableSuggestions && showDropdown"> <div class="angucomplete-searching" ng-show="searching" ng-bind="textSearching"></div> <div class="angucomplete-searching" ng-show="!searching && (!results || results.length == 0)" ng-bind="textNoResults"></div> <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}"> <div ng-if="imageField" class="angucomplete-image-holder"> <img ng-if="result.image && result.image != \'\'" ng-src="{{result.image}}" class="angucomplete-image"/> <div ng-if="!result.image && result.image != \'\'" class="angucomplete-image-default"></div> </div> <div class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></div> <div class="angucomplete-title" ng-if="!matchClass">{{ result.title }}</div> <div ng-if="matchClass && result.description && result.description != \'\'" class="angucomplete-description" ng-bind-html="result.description"></div> <div ng-if="!matchClass && result.description && result.description != \'\'" class="angucomplete-description">{{result.description}}</div> </div> </div></div>'),{restrict:"EA",require:"^?form",scope:{selectedObject:"=",disableInput:"=",disableSuggestions:"=",initialValue:"=",localData:"=",localSearch:"&",remoteUrlRequestFormatter:"=",remoteUrlRequestWithCredentials:"@",remoteUrlResponseFormatter:"=",remoteUrlErrorCallback:"=",remoteApiHandler:"=",id:"@",type:"@",placeholder:"@",remoteUrl:"@",remoteUrlDataField:"@",titleField:"@",descriptionField:"@",imageField:"@",inputClass:"@",pause:"@",searchFields:"@",minlength:"@",matchClass:"@",clearSelected:"@",overrideSuggestions:"@",fieldRequired:"=",fieldRequiredClass:"@",inputChanged:"=",autoMatch:"@",focusOut:"&",focusIn:"&",fieldTabindex:"@",inputName:"@",focusFirst:"@",parseInput:"&"},templateUrl:function(e,t){return t.templateUrl||"/angucomplete-alt/index.html"},compile:function(e){var t=o.startSymbol(),n=o.endSymbol();if("{{"!==t||"}}"!==n){var r=e.html().replace(/\{\{/g,t).replace(/\}\}/g,n);e.html(r)}return u}}}])}(window.angular)}()},95:function(e,t){function n(e){return{restrict:"A",scope:{min:"=",max:"="},link:function(t,n,r){const l={debounce:_.debounce,delay:100,loadDelay:10,compressor:1,min:r.fitTextMin||"inherit",max:r.fitTextMax||"inherit",calcSize:10,lines:1},i=n.parent(),o=n[0],a=o.style,u=window.getComputedStyle(n[0],null),c=n.children().length||l.lines,s="inherit"===l.min?u["font-size"]:l.min,d="inherit"===l.max?u["font-size"]:l.max,g=u["line-height"],p=u.display;let h;function f(){const e=l.calcSize*c/o.offsetWidth/c;return Math.max(Math.min(function(e){const t=parseFloat(getComputedStyle(i[0]).paddingLeft),n=parseFloat(getComputedStyle(i[0]).paddingRight);return(i[0].offsetWidth-(t+n))*e*l.compressor}(e),parseFloat(d)),parseFloat(s))}function m(){h&&e.cancel(h),h=e((function(){o.offsetHeight*o.offsetWidth!=0&&(a.fontSize=l.calcSize+"px",a.lineHeight="1",a.display="inline-block",a.fontSize=f()+"px",a.lineHeight=g,a.display=p)}),l.loadDelay)}t.$watch((function(){return[i[0].offsetWidth,n[0].offsetWidth].join("_")}),(function(){m()})),$(window).on("resize",l.debounce((function(){t.$apply(m)}),l.delay)),t.$on("$destroy",(function(){h&&e.cancel(h),$(window).off("resize")}))}}}angular.module("graphdb.framework.core.directives.fittext",[]).directive("fitText",n),n.$inject=["$timeout"]},96:function(e,t){function n(){return{transformToTrig:function(e){let t="";const n={};for(let t=0;t<e.length;t++){const r=e[t];if(void 0===r.context?r.context="":r.context=_.trim(r.context),angular.isUndefined(n[r.context])){const e=[];e.push(r),n[r.context]=e}else n[r.context].push(r)}const r=Object.keys(n);for(let e=0;e<r.length;e++){const l=r[e];t+=""===l?"\n{":"\n<"+l+"> {";const i=n[l];for(let e=0;e<i.length;e++){const n=i[e];t+="\n\t<"+n.subject+"> <"+n.predicate+"> ";let r=n.object.value;"uri"===n.object.type?t+="<"+r+"> .":r.toString().includes('"')?("'"===r[0]&&(r='"'+r.slice(1,r.length)),r[r.length-1]&&(r=r.slice(0,-1)+'"'),t+="'''"+r+"'''"+(n.object.datatype?"^^<"+n.object.datatype+">":n.object.lang?"@"+n.object.lang:"")+" ."):t+='"""'+r+'"""'+(n.object.datatype?"^^<"+n.object.datatype+">":n.object.lang?"@"+n.object.lang:"")+" ."}t+="\n}"}return t},buildStatements:function(e,t){const n=[];if(!_.isEmpty(e.data)){const r=e.data[t],l=Object.keys(r);for(let e=0;e<l.length;e++){const i=l[e],o=r[i];for(let e=0;e<o.length;e++){const r=o[e];for(let e=0;e<r.graphs.length;e++){let l=r.graphs[e];"http://www.ontotext.com/explicit"===l&&(l=""),r.lang&&(r.datatype=""),r.datatype||(r.datatype=""),n.push({subject:t,predicate:i,object:{value:r.value,type:r.type,datatype:r.datatype,lang:r.lang},context:l})}}}}return n},getDatatypeOptions:function(){return[{value:"",label:"string"},{value:"http://www.w3.org/2001/XMLSchema#boolean",label:"boolean"},{value:"http://www.w3.org/2001/XMLSchema#decimal",label:"decimal"},{value:"http://www.w3.org/2001/XMLSchema#integer",label:"integer"},{value:"http://www.w3.org/2001/XMLSchema#double",label:"double"},{value:"http://www.w3.org/2001/XMLSchema#float",label:"float"},{value:"http://www.w3.org/2001/XMLSchema#date",label:"date"},{value:"http://www.w3.org/2001/XMLSchema#time",label:"time"},{value:"http://www.w3.org/2001/XMLSchema#dateTime",label:"date time"},{value:"http://www.w3.org/2001/XMLSchema#byte",label:"byte"},{value:"http://www.w3.org/2001/XMLSchema#short",label:"short"},{value:"http://www.w3.org/2001/XMLSchema#int",label:"int"},{value:"http://www.w3.org/2001/XMLSchema#long",label:"long"},{value:"http://www.w3.org/2001/XMLSchema#unsignedByte",label:"unsigned byte"},{value:"http://www.w3.org/2001/XMLSchema#unsignedShort",label:"unsigned short"},{value:"http://www.w3.org/2001/XMLSchema#unsignedInt",label:"unsigned int"},{value:"http://www.w3.org/2001/XMLSchema#unsignedLong",label:"unsigned long"},{value:"http://www.w3.org/2001/XMLSchema#positoveInteger",label:"positive integer"},{value:"http://www.w3.org/2001/XMLSchema#nonNegativeInteger",label:"non-negative integer"},{value:"http://www.w3.org/2001/XMLSchema#negativeInteger",label:"negative integer"},{value:"http://www.w3.org/2001/XMLSchema#nonPositiveInteger",label:"non-positive integer"},{value:"http://www.w3.org/2001/XMLSchema#gYear",label:"gYear"},{value:"http://www.w3.org/2001/XMLSchema#gMonth",label:"gMonth"},{value:"http://www.w3.org/2001/XMLSchema#gDay",label:"gDay"},{value:"http://www.w3.org/2001/XMLSchema#gYearMonth",label:"gYearMonth"},{value:"http://www.w3.org/2001/XMLSchema#gMonthDay",label:"gMonthDay"},{value:"http://www.w3.org/2001/XMLSchema#duration",label:"duration"},{value:"http://www.w3.org/2001/XMLSchema#hexBinary",label:"hex binary"},{value:"http://www.w3.org/2001/XMLSchema#base64Binary",label:"base64 binary"}]}}}angular.module("graphdb.framework.explore.services",[]).factory("StatementsService",n),n.$inject=[]},97:function(e,t,n){"use strict";n.r(t);n(26);angular.module("graphdb.framework.explore.directives",["graphdb.framework.utils.uriutils"]).directive("uri",["UriUtils",function(e){return{require:"ngModel",link:function(t,n,r,l){l.$parsers.unshift((function(t){if(!angular.isUndefined(t)&&t.length>0){const n=e.validateRdfUri(t);return l.$setValidity("searchStr",n),n?t:void 0}return l.$setValidity("searchStr",!0),t})),l.$formatters.unshift((function(t){return angular.isUndefined(t)||l.$setValidity("searchStr",e.validateRdfUri),t}))}}}])}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[23],{109:function(e,t,n){"use strict";n.r(t);var r=n(298),i=n.n(r),a=n(308),o=n(301),s=n(302);n(10);function l(e,t,n,r,l,c,d,u,f,h,p,v,y){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(d,g,m){!function(d,g){var m=d3.layout.pack().size([780,780]).value((function(e){return e.size})),x=d3.scale.linear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(d3.interpolateHcl),w=d3.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function S(){return w.append("svg:g").attr({id:"main-group",transform:"translate(400,400)"})}function C(){return"true"===p.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function E(){var e=s.a.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=2.4.1-TR4");d3.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),d3.selectAll("g").style("opacity",1);var t=s.a.Export.generateBase64ImageSource("#classChart svg");d3.select(this).attr({href:t,download:"class-hierarchy-"+c.getActiveRepository()+".svg"})}d.hidePrefixes=C();var T,R,A=S();if(!d.classHierarchyData.classCount&&c.getActiveRepository()&&!c.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=p.get("classHierarchy-selectedGraph-"+c.getActiveRepository());n.getClassHierarchyData(null!==t?t.contextID.uri:"").success((function(t,n,r){e.loader=!1,207===n&&u.warning(y.instant("graphexplore.update.diagram"),y.instant("graphexplore.repository.data.changed")),d.classHierarchyData=t,d3.select("#download-svg").on("mouseover",E)})).error((function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(y.instant("graphexplore.error.request.failed",{name:h,error:getError(t)}))}))}var H,P,I,b,k,F,L,D,N={};function z(n,s,c,u){I&&I(),b&&b(),d3.selectAll("#main-group").remove(),A=S(),a.a.SingleChild.addPlaceholders(n,!0),P=c||n;var p,v=m.nodes(n);P.isInFocusTransitive=!0,a.a.SingleChild.removePlaceholders(v),a.a.SingleChild.centerNodes(v),a.a.SingleChild.makePositionsRelativeToZero(v);var y=i()().attr("class","d3-tip").customPosition((function(e){return{top:"inherit",bottom:r.innerHeight-d3.event.clientY+"px",right:r.innerWidth-d3.event.clientX+"px"}})).html((function(e){return e.name}));w.call(y);var g=A.selectAll("circle").data(v).enter().append("g");s.doFade&&g.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)}));var C,E=[],k=g.append("circle").attr("class",(function(e){return e.role})).attr("guide-selector",(function(e){return"class-"+e.name})).style("fill",(function(e){return e.children?x(e.depth):"#E0D0D0"})).each((function(e){if(e.circle=d3.select(this),e.name!==h){var t=e.name;E.push({name:t}),N[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",(function(){s.noPrefixes||e.textHidden?y.show(e):y.hide(e)})),e.circle.on("mouseout",y.hide)}})).on("gdb-focus",R).on("gdb-zoom",B);function F(e){d3.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),C=e}function L(){d.showClassInfoPanel=!1}E&&(E=_.uniqBy(E,"name"),d.flattenedClassNames=E);var D=o.a.Click.delayDblClick();d3.selectAll(".parent, .topLevelParent, .child, .root").call(D);R=function(e){B(e),e.name===h?(L(),d3.selectAll(".selected").classed("selected",!1)):(F(e),d.selectedClass=C,d.showClassInfoPanel=!0,d.$on("sidePanelClosed",(function(t){d3.selectAll(".selected").classed("selected",e.selected=!1)})))},D.on("click",(function(e){e.id&&r.history.pushState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),y.hide(),R(e)})),D.on("dblclick",(function(t){t!==n&&(y.hide(),F(t),e.$broadcast("goToDomainRangeGraphView",C,P),d3.event.stopPropagation())}));var $=0;w.on("wheel",(function(){y.hide();var e=d3.event;e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-$>100){$=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var i=e.target.__data__;if(i||(i=P),"in"===n){if(i!==P){for(;i.parent&&!i.parent.isInFocusTransitive;)i=i.parent;i.depth<P.depth&&(i=P)}if(i===P&&i.children){for(var a=i.children[0],o=1;o<i.children.length;o++)i.children[o].sortingRank>a.sortingRank&&(a=i.children[o]);a.children&&(i=a)}else i.children||(i=i.parent);B(i,!0)}else"out"===n&&(i=P.parent)&&B(i,!0);P.name===h&&r.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),O()}}));var z=A.selectAll("text").data(v).enter().append("text").attr("class",(function(e){return e.children&&e.children.length?"label":"label child-label"})).each((function(e){e.textSel=d3.select(this)}));s.noPrefixes?(H!==n&&(z.each((function(e){var t=e.name.indexOf(":");e.name.indexOf("http://")>-1?e.noPrefixName=e.name:t>-1&&(e.noPrefixName=e.name.substring(t+1))})),H=n),z.style("font-size",(function(e){return o.a.Text.calcFontSize(e.noPrefixName,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)}))):z.style("font-size",(function(e){return o.a.Text.calcFontSize(e.name,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r/3)})),z.style("display",(function(e){return e.parent===n?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")})),s.doFade&&!s.keepPrevState&&z.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)})),T=function(){function e(e){e&&k.each((function(t){e==t.id&&R(t)}))}var n=t.hash();r.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var U=A.selectAll("circle, text");function M(e,t){var n=800/e[2];p=e,U.attr("transform",(function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"})),k.attr("r",(function(e){return e.r*n})),t&&z.each((function(e){e.fullName!==P.topLevelParentUri&&P.topLevelParentUri!==h||(e.textSel.style("display","none"),P.children&&P.children.length?_.each(P.children,(function(e){e.textSel.style("display","inline")})):P.textSel.style("display","inline"),P.parent&&_.each(P.parent.children,(function(e){e.name!==P.name&&e.textSel.style("display","inline")})))})),z.style("font-size",(function(e){return s.noPrefixes?o.a.Text.calcFontSize(e.noPrefixName,e.r*n):o.a.Text.calcFontSize(e.name,e.r*n)})).text((function(e){return s.noPrefixes?o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r*n/3)}))}function V(e){var 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=!0,this.style.display="none")}function Y(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive&&(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display="")}function B(e,t){if(l((function(){d.showExternalElements=e.name===h})),P!==e&&(e.id&&r.history.replaceState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),e.children||(e=e.parent,P!==e))){if(t&&(L(),d3.selectAll(".selected").classed("selected",!1)),P.parent)for(var n=P;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=n.children,n=n.parent;if(2*(P=e).r/(2*P.r+20)<.3||d.currentSliderValue>d.currentBrowserLimit)M([P.x,P.y,V(P.r)]),z.each((function(e){W.call(this,e),Y.call(this,e)}));else d3.transition().duration(f).tween("zoom",(function(e){var t=d3.interpolateZoom(p,[P.x,P.y,V(P.r)]);return function(e){M(t(e))}})).selectAll("text").each("start",W).each("end",Y)}}M([P.x,P.y,V(P.r)],u),I=d.$on("rootFocus",(function(){r.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),R(n)})),b=d.$on("classSearch",(function(e){R(e)}))}function O(){var t=d.classHierarchyData.classCount;let n=p.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,p.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",O),window.addEventListener("beforeunload",(function e(){window.removeEventListener("resize",O),window.removeEventListener("beforeunload",e)})),d.$watch("classHierarchyData",(function(){k&&k(),F&&F(),L&&L(),D&&D();var e=C();if(d.classHierarchyData.classCount){O();var t=angular.copy(d.classHierarchyData);var n,r,i=function(e){return m.nodes(e).sort((function(e,t){return e.sortingRank>t.sortingRank?-1:e.sortingRank<t.sortingRank||e.depth>t.depth?1:e.depth<t.depth?-1:0}))}(t);function a(e,t){var i={keepPrevState:!0,noPrefixes:C()};r=i.noPrefixes,z(n||e,i,P,!0),l((function(){p.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),T()}),70)}function o(e,i,o){if(e){p.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:h,children:[]};for(var s=new Set,l=1;l<=e;l++)s.add(i[l].id),i[l].parent===i[0]&&n.children.push(i[l]);if(function e(t){if(t.children){for(var n=[],r=0;r<t.children.length;r++)s.has(t.children[r].id)&&n.push($.extend({},t.children[r]));t.children=n;for(r=0;r<t.children.length;r++)e(t.children[r])}}(n),o)r=angular.isUndefined(r)?C():r,z(n,{noPrefixes:r});else a(t)}}var s,c=p.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)o(c,i);else{var u={doFade:!0,keepPrevState:!0,noPrefixes:C()};z(t,u),T()}k=d.$watch("hidePrefixes",(function(n){angular.isUndefined(n)||e?e=void 0:l((function(){!function(e){angular.isUndefined(e)||p.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),a(t,!0)}),50)}),!0),F=d.$watch("currentSliderValue",(function(e){o(e,i,!0)}),!0),D=d.$on("onEnterKeypressSearchAction",(function(e){s&&R(s)})),L=d.$on("searchedClass",(function(e,t){(s=N[t.name])&&R(s)}))}}),!0)}(d)}}}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","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]},298:function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),i=null,a=null,o=null,s=null;function l(e){var t;i="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=i.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(o=r.pop());var i,a=n.apply(this,r),u=t.apply(this,r),h=e.apply(this,r),p=f(),v=d.length,y=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft,m=s.apply(this,r);for(p.html(a).style({opacity:1,"pointer-events":"all"});v--;)p.classed(d[v],!1);return i=c.get(h).apply(this),m?p.style(m):p.classed(h,!0).style({top:i.top+u[0]+y+"px",left:i.left+u[1]+g+"px"}),l},l.hide=function(){return f().style({opacity:0,"pointer-events":"none"}),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:d3.functor(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:d3.functor(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:d3.functor(e),l):n},l.customPosition=function(e){return arguments.length?(s=null==e?e:d3.functor(e),l):s},l.destroy=function(){return r&&(f().remove(),r=null),l};var c=d3.map({n:function(){var e=h();return{top:e.n.y-r.offsetHeight,left:e.n.x-r.offsetWidth/2}},s:function(){var e=h();return{top:e.s.y,left:e.s.x-r.offsetWidth/2}},e:function(){var e=h();return{top:e.e.y-r.offsetHeight/2,left:e.e.x}},w:function(){var e=h();return{top:e.w.y-r.offsetHeight/2,left:e.w.x-r.offsetWidth}},nw:function(){var e=h();return{top:e.nw.y-r.offsetHeight,left:e.nw.x-r.offsetWidth}},ne:function(){var e=h();return{top:e.ne.y-r.offsetHeight,left:e.ne.x}},sw:function(){var e=h();return{top:e.sw.y,left:e.sw.x-r.offsetWidth}},se:function(){var e=h();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){var e=d3.select(document.createElement("div"));return e.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box"}),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),d3.select(r)}function h(){for(var e=o||d3.event.target;void 0===e.getScreenCTM&&"undefined"===e.parentNode;)e=e.parentNode;var t={},n=e.getScreenCTM(),r=e.getBBox(),i=r.width,s=r.height,l=r.x,c=r.y;return a.x=l,a.y=c,t.nw=a.matrixTransform(n),a.x+=i,t.ne=a.matrixTransform(n),a.y+=s,t.se=a.matrixTransform(n),a.x-=i,t.sw=a.matrixTransform(n),a.y-=s/2,t.w=a.matrixTransform(n),a.x+=i,t.e=a.matrixTransform(n),a.x-=i/2,a.y-=s/2,t.n=a.matrixTransform(n),a.y+=s,t.s=a.matrixTransform(n),t}return l}})?r.apply(t,i):r)||(e.exports=a)},301:function(e,t,n){"use strict";var r=r||{};r.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),r.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},r.Click={delayDblClick:function(){var e=d3.dispatch("click","dblclick");return d3.rebind((function(t){var n,r=null;t.on("mousedown",(function(){n=d3.mouse(document.body),new Date})),t.on("mouseup",(function(t){var i,a;i=n,a=d3.mouse(document.body),Math.sqrt(Math.pow(i[0]-a[0],2),Math.pow(i[1]-a[1],2))>5||(r?(window.clearTimeout(r),r=null,e.dblclick(t)):r=window.setTimeout((d3.event,function(){e.click(t),r=null}),250))}))}),e,"on")}},t.a=r},302:function(e,t,n){"use strict";var r=n(297),i=i||{};i.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=r.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)))}},t.a=i},308:function(e,t,n){"use strict";var r=r||{};r.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var r=0;r<t.children.length;r++)e(t.children[r]);if(1===t.children.length){var i=1.2*t.size;n&&(i=.1*t.children[0].size),t.children.push({name:"placeholder",size:i})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var r=t[n];"placeholder"===r.name?t.splice(n,1):r.children&&e(r.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var r=n.x-n.children[0].x;n.children[0].x+=r,i(n.children[0],r)}}function i(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,i(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,r=0;r<e.length;r++){var i=e[r];i.x-=t,i.y-=n}}},t.a=r}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[23],{109:function(e,t,n){"use strict";n.r(t);var r=n(298),i=n.n(r),a=n(308),o=n(301),s=n(302);n(10);function l(e,t,n,r,l,c,d,u,f,h,p,v,y){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(d,g,m){!function(d,g){var m=d3.layout.pack().size([780,780]).value((function(e){return e.size})),x=d3.scale.linear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(d3.interpolateHcl),w=d3.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function S(){return w.append("svg:g").attr({id:"main-group",transform:"translate(400,400)"})}function C(){return"true"===p.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function E(){var e=s.a.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=2.4.2-RC1");d3.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),d3.selectAll("g").style("opacity",1);var t=s.a.Export.generateBase64ImageSource("#classChart svg");d3.select(this).attr({href:t,download:"class-hierarchy-"+c.getActiveRepository()+".svg"})}d.hidePrefixes=C();var T,R,A=S();if(!d.classHierarchyData.classCount&&c.getActiveRepository()&&!c.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=p.get("classHierarchy-selectedGraph-"+c.getActiveRepository());n.getClassHierarchyData(null!==t?t.contextID.uri:"").success((function(t,n,r){e.loader=!1,207===n&&u.warning(y.instant("graphexplore.update.diagram"),y.instant("graphexplore.repository.data.changed")),d.classHierarchyData=t,d3.select("#download-svg").on("mouseover",E)})).error((function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(y.instant("graphexplore.error.request.failed",{name:h,error:getError(t)}))}))}var H,P,I,b,k,F,L,D,N={};function z(n,s,c,u){I&&I(),b&&b(),d3.selectAll("#main-group").remove(),A=S(),a.a.SingleChild.addPlaceholders(n,!0),P=c||n;var p,v=m.nodes(n);P.isInFocusTransitive=!0,a.a.SingleChild.removePlaceholders(v),a.a.SingleChild.centerNodes(v),a.a.SingleChild.makePositionsRelativeToZero(v);var y=i()().attr("class","d3-tip").customPosition((function(e){return{top:"inherit",bottom:r.innerHeight-d3.event.clientY+"px",right:r.innerWidth-d3.event.clientX+"px"}})).html((function(e){return e.name}));w.call(y);var g=A.selectAll("circle").data(v).enter().append("g");s.doFade&&g.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)}));var C,E=[],k=g.append("circle").attr("class",(function(e){return e.role})).attr("guide-selector",(function(e){return"class-"+e.name})).style("fill",(function(e){return e.children?x(e.depth):"#E0D0D0"})).each((function(e){if(e.circle=d3.select(this),e.name!==h){var t=e.name;E.push({name:t}),N[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",(function(){s.noPrefixes||e.textHidden?y.show(e):y.hide(e)})),e.circle.on("mouseout",y.hide)}})).on("gdb-focus",R).on("gdb-zoom",B);function F(e){d3.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),C=e}function L(){d.showClassInfoPanel=!1}E&&(E=_.uniqBy(E,"name"),d.flattenedClassNames=E);var D=o.a.Click.delayDblClick();d3.selectAll(".parent, .topLevelParent, .child, .root").call(D);R=function(e){B(e),e.name===h?(L(),d3.selectAll(".selected").classed("selected",!1)):(F(e),d.selectedClass=C,d.showClassInfoPanel=!0,d.$on("sidePanelClosed",(function(t){d3.selectAll(".selected").classed("selected",e.selected=!1)})))},D.on("click",(function(e){e.id&&r.history.pushState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),y.hide(),R(e)})),D.on("dblclick",(function(t){t!==n&&(y.hide(),F(t),e.$broadcast("goToDomainRangeGraphView",C,P),d3.event.stopPropagation())}));var $=0;w.on("wheel",(function(){y.hide();var e=d3.event;e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-$>100){$=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var i=e.target.__data__;if(i||(i=P),"in"===n){if(i!==P){for(;i.parent&&!i.parent.isInFocusTransitive;)i=i.parent;i.depth<P.depth&&(i=P)}if(i===P&&i.children){for(var a=i.children[0],o=1;o<i.children.length;o++)i.children[o].sortingRank>a.sortingRank&&(a=i.children[o]);a.children&&(i=a)}else i.children||(i=i.parent);B(i,!0)}else"out"===n&&(i=P.parent)&&B(i,!0);P.name===h&&r.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),O()}}));var z=A.selectAll("text").data(v).enter().append("text").attr("class",(function(e){return e.children&&e.children.length?"label":"label child-label"})).each((function(e){e.textSel=d3.select(this)}));s.noPrefixes?(H!==n&&(z.each((function(e){var t=e.name.indexOf(":");e.name.indexOf("http://")>-1?e.noPrefixName=e.name:t>-1&&(e.noPrefixName=e.name.substring(t+1))})),H=n),z.style("font-size",(function(e){return o.a.Text.calcFontSize(e.noPrefixName,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)}))):z.style("font-size",(function(e){return o.a.Text.calcFontSize(e.name,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r/3)})),z.style("display",(function(e){return e.parent===n?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")})),s.doFade&&!s.keepPrevState&&z.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)})),T=function(){function e(e){e&&k.each((function(t){e==t.id&&R(t)}))}var n=t.hash();r.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var U=A.selectAll("circle, text");function M(e,t){var n=800/e[2];p=e,U.attr("transform",(function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"})),k.attr("r",(function(e){return e.r*n})),t&&z.each((function(e){e.fullName!==P.topLevelParentUri&&P.topLevelParentUri!==h||(e.textSel.style("display","none"),P.children&&P.children.length?_.each(P.children,(function(e){e.textSel.style("display","inline")})):P.textSel.style("display","inline"),P.parent&&_.each(P.parent.children,(function(e){e.name!==P.name&&e.textSel.style("display","inline")})))})),z.style("font-size",(function(e){return s.noPrefixes?o.a.Text.calcFontSize(e.noPrefixName,e.r*n):o.a.Text.calcFontSize(e.name,e.r*n)})).text((function(e){return s.noPrefixes?o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r*n/3)}))}function V(e){var 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=!0,this.style.display="none")}function Y(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive&&(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display="")}function B(e,t){if(l((function(){d.showExternalElements=e.name===h})),P!==e&&(e.id&&r.history.replaceState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),e.children||(e=e.parent,P!==e))){if(t&&(L(),d3.selectAll(".selected").classed("selected",!1)),P.parent)for(var n=P;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=n.children,n=n.parent;if(2*(P=e).r/(2*P.r+20)<.3||d.currentSliderValue>d.currentBrowserLimit)M([P.x,P.y,V(P.r)]),z.each((function(e){W.call(this,e),Y.call(this,e)}));else d3.transition().duration(f).tween("zoom",(function(e){var t=d3.interpolateZoom(p,[P.x,P.y,V(P.r)]);return function(e){M(t(e))}})).selectAll("text").each("start",W).each("end",Y)}}M([P.x,P.y,V(P.r)],u),I=d.$on("rootFocus",(function(){r.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),R(n)})),b=d.$on("classSearch",(function(e){R(e)}))}function O(){var t=d.classHierarchyData.classCount;let n=p.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,p.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",O),window.addEventListener("beforeunload",(function e(){window.removeEventListener("resize",O),window.removeEventListener("beforeunload",e)})),d.$watch("classHierarchyData",(function(){k&&k(),F&&F(),L&&L(),D&&D();var e=C();if(d.classHierarchyData.classCount){O();var t=angular.copy(d.classHierarchyData);var n,r,i=function(e){return m.nodes(e).sort((function(e,t){return e.sortingRank>t.sortingRank?-1:e.sortingRank<t.sortingRank||e.depth>t.depth?1:e.depth<t.depth?-1:0}))}(t);function a(e,t){var i={keepPrevState:!0,noPrefixes:C()};r=i.noPrefixes,z(n||e,i,P,!0),l((function(){p.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),T()}),70)}function o(e,i,o){if(e){p.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:h,children:[]};for(var s=new Set,l=1;l<=e;l++)s.add(i[l].id),i[l].parent===i[0]&&n.children.push(i[l]);if(function e(t){if(t.children){for(var n=[],r=0;r<t.children.length;r++)s.has(t.children[r].id)&&n.push($.extend({},t.children[r]));t.children=n;for(r=0;r<t.children.length;r++)e(t.children[r])}}(n),o)r=angular.isUndefined(r)?C():r,z(n,{noPrefixes:r});else a(t)}}var s,c=p.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)o(c,i);else{var u={doFade:!0,keepPrevState:!0,noPrefixes:C()};z(t,u),T()}k=d.$watch("hidePrefixes",(function(n){angular.isUndefined(n)||e?e=void 0:l((function(){!function(e){angular.isUndefined(e)||p.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),a(t,!0)}),50)}),!0),F=d.$watch("currentSliderValue",(function(e){o(e,i,!0)}),!0),D=d.$on("onEnterKeypressSearchAction",(function(e){s&&R(s)})),L=d.$on("searchedClass",(function(e,t){(s=N[t.name])&&R(s)}))}}),!0)}(d)}}}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","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]},298:function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),i=null,a=null,o=null,s=null;function l(e){var t;i="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=i.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(o=r.pop());var i,a=n.apply(this,r),u=t.apply(this,r),h=e.apply(this,r),p=f(),v=d.length,y=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft,m=s.apply(this,r);for(p.html(a).style({opacity:1,"pointer-events":"all"});v--;)p.classed(d[v],!1);return i=c.get(h).apply(this),m?p.style(m):p.classed(h,!0).style({top:i.top+u[0]+y+"px",left:i.left+u[1]+g+"px"}),l},l.hide=function(){return f().style({opacity:0,"pointer-events":"none"}),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:d3.functor(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:d3.functor(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:d3.functor(e),l):n},l.customPosition=function(e){return arguments.length?(s=null==e?e:d3.functor(e),l):s},l.destroy=function(){return r&&(f().remove(),r=null),l};var c=d3.map({n:function(){var e=h();return{top:e.n.y-r.offsetHeight,left:e.n.x-r.offsetWidth/2}},s:function(){var e=h();return{top:e.s.y,left:e.s.x-r.offsetWidth/2}},e:function(){var e=h();return{top:e.e.y-r.offsetHeight/2,left:e.e.x}},w:function(){var e=h();return{top:e.w.y-r.offsetHeight/2,left:e.w.x-r.offsetWidth}},nw:function(){var e=h();return{top:e.nw.y-r.offsetHeight,left:e.nw.x-r.offsetWidth}},ne:function(){var e=h();return{top:e.ne.y-r.offsetHeight,left:e.ne.x}},sw:function(){var e=h();return{top:e.sw.y,left:e.sw.x-r.offsetWidth}},se:function(){var e=h();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){var e=d3.select(document.createElement("div"));return e.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box"}),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),d3.select(r)}function h(){for(var e=o||d3.event.target;void 0===e.getScreenCTM&&"undefined"===e.parentNode;)e=e.parentNode;var t={},n=e.getScreenCTM(),r=e.getBBox(),i=r.width,s=r.height,l=r.x,c=r.y;return a.x=l,a.y=c,t.nw=a.matrixTransform(n),a.x+=i,t.ne=a.matrixTransform(n),a.y+=s,t.se=a.matrixTransform(n),a.x-=i,t.sw=a.matrixTransform(n),a.y-=s/2,t.w=a.matrixTransform(n),a.x+=i,t.e=a.matrixTransform(n),a.x-=i/2,a.y-=s/2,t.n=a.matrixTransform(n),a.y+=s,t.s=a.matrixTransform(n),t}return l}})?r.apply(t,i):r)||(e.exports=a)},301:function(e,t,n){"use strict";var r=r||{};r.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),r.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},r.Click={delayDblClick:function(){var e=d3.dispatch("click","dblclick");return d3.rebind((function(t){var n,r=null;t.on("mousedown",(function(){n=d3.mouse(document.body),new Date})),t.on("mouseup",(function(t){var i,a;i=n,a=d3.mouse(document.body),Math.sqrt(Math.pow(i[0]-a[0],2),Math.pow(i[1]-a[1],2))>5||(r?(window.clearTimeout(r),r=null,e.dblclick(t)):r=window.setTimeout((d3.event,function(){e.click(t),r=null}),250))}))}),e,"on")}},t.a=r},302:function(e,t,n){"use strict";var r=n(297),i=i||{};i.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=r.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)))}},t.a=i},308:function(e,t,n){"use strict";var r=r||{};r.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var r=0;r<t.children.length;r++)e(t.children[r]);if(1===t.children.length){var i=1.2*t.size;n&&(i=.1*t.children[0].size),t.children.push({name:"placeholder",size:i})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var r=t[n];"placeholder"===r.name?t.splice(n,1):r.children&&e(r.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var r=n.x-n.children[0].x;n.children[0].x+=r,i(n.children[0],r)}}function i(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,i(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,r=0;r<e.length;r++){var i=e[r];i.x-=t,i.y-=n}}},t.a=r}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[24,61,127,128,144],{125:function(e,r){function t(e,r,t,o){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(n){const s="ResolvableRepository";n.fedxMembers=[],n.knownRepos=[],n.allAttachedRepos=[],n.editRepoPage&&(n.fedxMembers=n.repositoryInfo.params.member.value.slice());function i(){for(const e of n.fedxMembers)n.knownRepos=n.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){r.getRepositories(n.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),n.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);t.error(r,o.instant("common.error"))})).then((function(){n.knownRepos=n.allAttachedRepos.slice(),i()}))}n.setWritableRepo=function(e){let r=n.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==s||e.store===s&&r.repositoryName===e.repositoryName)&&("RemoteRepository"!==r.store||"RemoteRepository"===e.store&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},n.getActiveClass=function(e){return"true"===e.writable?" active":""},n.checkIfRepoExist=function(e){return!n.allAttachedRepos.length||(e.store===s?n.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||n.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},n.getRepositoryServer=function(e){return e.local?"Local":e.location};const c=setInterval((function(){a()}),5e3);function l(e){n.fedxMembers.push(e),n.repositoryInfo.params.member.value=n.fedxMembers}function p(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function d(){return n.editRepoPage&&!n.editRepoPage||!n.model.editMode}n.$on("$destroy",(function(){clearInterval(c)})),n.addMember=function(e){let r;r="Local"===n.getRepositoryServer(e)?{store:s,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},n.knownRepos=n.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},n.removeMember=function(e){e.store&&e.store===s?(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),n.repositoryInfo.params.member.value=n.fedxMembers},n.addRemoteMember=function(){n.mode="remote",n.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},n.editFedXRepository=function(r){r.store===s?(n.mode="local",n.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(n.mode="remote",n.model={editMode:!0,store:r.store,repositoryName:r.repositoryName,repositoryServer:r.repositoryServer,sparqlEndpoint:"SPARQLEndpoint"===r.store?r.endpoint:r.repositoryLocation,username:r.username,password:r.password,supportsASKQueries:r.supportsASKQueries,writable:r.writable}),n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.resolveName=function(e){switch(e.store){case s:return e.repositoryName;case"RemoteRepository":return e.repositoryName+"@"+e.repositoryServer;case"SPARQLEndpoint":return e.endpoint;case"NativeStore":return e.repositoryLocation;default:return""}},n.cancel=function(){n.$uibModalInstance.dismiss("cancel")},n.ok=function(){let e;if(n.model.repositoryName&&n.model.store===s)e={store:s,repositoryName:n.model.repositoryName,repoType:n.model.repoType,respectRights:n.model.respectRights,writable:n.model.writable},n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(n.model.repositoryName&&"RemoteRepository"===n.model.store){if(e={store:"RemoteRepository",repositoryName:n.model.repositoryName,repositoryServer:p(n.model.repositoryServer),username:n.model.username,password:n.model.password,writable:n.model.writable},d()&&n.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=n.resolveName(e);return t.error(o.instant("fedx.repo.already.added.member.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:p(n.model.sparqlEndpoint),username:n.model.username,password:n.model.password,supportsASKQueries:n.model.supportsASKQueries,writable:n.model.writable},d()&&n.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=n.resolveName(e);return t.error(o.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),i(),n.$uibModalInstance.close()},n.$on("changedLocation",(function(){n.fedxMembers=[],a()})),a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",t),t.$inject=["$uibModal","RepositoriesRestService","toastr","$translate"]},126:function(e,r,t){"use strict";t.r(r);t(6),t(23),t(13),t(89),t(33),t(34),t(24),t(53),t(54);function o(e){e.interceptors.push("$unauthorizedInterceptor"),e.interceptors.push("$authenticationInterceptor")}function n(e,r,t){e.$on("$locationChangeStart",(function(){t.isLicenseHardcoded&&"/license/register"===r.url()&&r.path("license")}))}angular.module("graphdb.framework.settings",["toastr","ui.bootstrap","graphdb.framework.rest.license.service","graphdb.framework.settings.controllers","graphdb.framework.core.interceptors.unauthorized","graphdb.framework.core.interceptors.authentication","graphdb.framework.core.services.jwtauth"]).config(o).run(n),o.$inject=["$httpProvider","$routeProvider"],n.$inject=["$rootScope","$location","$licenseService"]},132:function(e,r,t){"use strict";t.r(r);var o=t(85);const n={OBDA:"obdaFile",OWL:"owlFile",CONSTRAINT:"constraintFile",LENSES:"lensesFile",DB_METADATA:"dbMetadataFile"};class s{constructor(e="generic"){this.driverType=e,this.hostName="",this.port=void 0,this.databaseName="",this.username="",this.password="",this.driverClass="",this.url="",this.urlUserInput=""}}class i{constructor(e,r=!1){this.type=e,this.fileName="",this.loading=!1,this.required=r}}class a extends Error{}const c="generic",l="dremio",p="databricks",d="snowflake";class m{constructor(){this.classAvailable=!1,this.downloadDriverUrl="",this.driverClass="",this.driverName="",this.driverType="",this.portRequired=!1,this.urlTemplate=""}static isGenericDriver(e){return e===c}static isSnowflakeDriver(e){return e===d}}function f(e,r,t,f,u){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(v){v.isGenericDriver=!0,v.defaultUrlTemplate="jdbc:database://localhost:port/database_name",v.ontopProperiesLink="https://ontop-vkg.org/guide/advanced/configuration.html",v.ontopFileType=n,v.selectedDriver=new m,v.supportedDriversData=[],v.formData={connectionInformation:new s,settings:{additionalProperties:"",ontopFiles:[]}},v.selectDriver=e=>{v.selectedDriver=v.supportedDriversData.find(r=>r.driverType===e),v.isGenericDriver=m.isGenericDriver(v.selectedDriver.driverType),v.editRepoPage&&v.currentOntopRepoInfo&&v.currentOntopRepoInfo.connectionInformation.driverType===e?v.formData=angular.copy(v.currentOntopRepoInfo):(L(),v.formData.connectionInformation.driverType=v.selectedDriver.driverType),v.formData.connectionInformation.driverClass=v.selectedDriver.driverClass,v.updateUrl()},v.getOntopFileInfo=e=>v.formData.settings.ontopFiles.find(r=>e===r.type),v.getHostNameLabel=()=>{const e=m.isSnowflakeDriver(v.selectedDriver.driverType)?"ontop.repo.database.snowflake.host_name":"ontop.repo.database.host_name";return u.instant(e)+"*"},v.getDatabaseNameLabel=()=>{let e="";switch(v.selectedDriver.driverType){case d:e="ontop.repo.database.warehouse.database_name";break;case p:e="ontop.repo.database.http_path.database_name";break;case l:e="ontop.repo.database.schema.database_name";break;default:e="ontop.repo.database.database_name"}return u.instant(e)},v.updateUrl=()=>{const e=y()||"";v.formData.connectionInformation.url=e+v.formData.connectionInformation.urlUserInput},v.isTestConnectionDisabled=()=>{const e=v.formData.connectionInformation,r=v.selectedDriver;return!(e.driverClass&&e.url&&(!r.portRequired||e.port))||!(m.isGenericDriver(r.driverType)||e.hostName&&e.databaseName)},v.testConnection=()=>{I().then(T).then(R).then(S).then(k).then(D).then(()=>r.validateOntopPropertiesConnection(v.repositoryInfo)).then(()=>t.success(u.instant("ontop.repo.successful.connection.msg"))).catch(e=>{e instanceof a?t.error(e.message):N(u.instant("ontop.repo.failed.to.connect"),e)})},v.editFile=t=>{const n=v.repositoryInfo.params[t.type].label,s=u.instant("update.file.edit.content.header",{fileName:n});e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",windowClass:"update-ontop-repo-dialog",resolve:{file:()=>{const e=v.repositoryInfo.params[t.type];return e?e.value:""},dialogTitle:()=>s}}).result.then(e=>{r.updateRepositoryFileContent(e.fileLocation,e.content,v.repositoryInfo.location).success(e=>{t.fileName=Object(o.getFileName)(e.fileLocation),v.repositoryInfo.params[t.type].value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)})})},v.uploadOntopFile=(e,r)=>{if(e&&e.length){const o=e[0];r.loading=!0;const n={url:"rest/repositories/file/upload",data:{file:o,location:v.repositoryInfo.location}};f.upload(n).success(e=>{e.success?(r.fileName=o.name,v.repositoryInfo.params[r.type].value=e.fileLocation):t.error(e.errorMessage)}).error(e=>{N(u.instant("common.error"),e),v.uploadFile=""}).finally(()=>{r.loading=!1})}},v.updateOntopRepo=()=>{const e=v.editRepoPage?v.editRepository:v.createRepo;$().then(I).then(T).then(R).then(S).then(k).then(M).then(D).then(e).catch(e=>{e instanceof a?t.error(e.message):console.log(e)})},v.onKeyDownInUrlInput=e=>{const r=e.keyCode;if(37===r||39===r||36===r||35===r)return;const t=y();if(!t)return;const o=e.ctrlKey||e.metaKey;if(o&&65===r||o&&67===r)return;const n=e.target.selectionStart;8===r&&n-1<t.length&&(e.preventDefault(),e.stopPropagation()),n<t.length&&(e.preventDefault(),e.stopPropagation())},v.onKeyUpInUrlInput=()=>{g()};const g=()=>{const e=y();e&&v.formData.connectionInformation.url.startsWith(e)?v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url.substring(e.length):v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url},y=()=>m.isSnowflakeDriver(v.selectedDriver.driverType)?h():b(),h=()=>{let e=v.selectedDriver.urlTemplate;const r=v.formData.connectionInformation;return r.hostName&&(e=e.replace("{identifier}",r.hostName)),r.port&&(e=e.replace(".snowflakecomputing.com/?",`.snowflakecomputing.com:${r.port}/?`)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},b=()=>{let e=v.selectedDriver.urlTemplate;const r=v.formData.connectionInformation;return r.hostName&&(e=r.port?e.replace("{hostport}",`${r.hostName}:${r.port}`):e.replace("{hostport}",""+r.hostName)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},w=e=>{v.formData.settings.ontopFiles.forEach(r=>{r.loading=e})},D=()=>{w(!0);const e=v.formData.connectionInformation,t={hostName:e.hostName,port:e.port,databaseName:e.databaseName,userName:e.username,password:e.password,driverClass:e.driverClass,url:e.url,additionalProperties:v.formData.settings.additionalProperties};return r.updatePropertiesFile(v.repositoryInfo.params.propertiesFile.value,t,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{v.repositoryInfo.params.propertiesFile.value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>w(!1))},N=(e,r)=>{const o=getError(r);t.error(o,e)},I=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.hostName?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.host_name")}))),R=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.databaseName?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.database_name")}))),S=()=>v.formData.connectionInformation.driverClass?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.driver_class")}))),k=()=>v.formData.connectionInformation.url?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.url")}))),$=()=>v.repositoryInfo.id?Promise.resolve():Promise.reject(new a(u.instant("empty.repoid.warning"))),M=()=>v.getOntopFileInfo(n.OBDA).fileName?Promise.resolve():Promise.reject(new a(u.instant("ontop.repo.missing.required.file",{fileName:v.repositoryInfo.params[n.OBDA].label}))),T=()=>v.selectedDriver.portRequired&&!v.formData.connectionInformation.port?Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.port")}))):Promise.resolve(),L=()=>{v.formData={connectionInformation:new s,settings:{additionalProperties:"",ontopFiles:[]}},Object.values(n).forEach(e=>{const r=new i(e);v.formData.settings.ontopFiles.push(r)}),v.getOntopFileInfo(n.OBDA).required=!0};r.getSupportedDriversData(v.repositoryInfo).success(e=>{v.supportedDriversData=e}).error(e=>{N(u.instant("common.error"),e)}).then(()=>{v.editRepoPage?(w(!0),r.loadPropertiesFile(v.repositoryInfo.params.propertiesFile.value,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{let r=v.supportedDriversData.find(r=>r.driverClass===e.driverClass);r&&e.hostName||(r=v.supportedDriversData.find(e=>m.isGenericDriver(e.driverType))),v.selectDriver(r.driverType),v.formData.connectionInformation.driverType=r.driverType,v.formData.connectionInformation.driverClass=e.driverClass,v.formData.connectionInformation.password=e.password,v.formData.connectionInformation.username=e.userName,v.formData.connectionInformation.url=e.url,v.formData.settings.additionalProperties=e.additionalProperties,m.isGenericDriver(r.driverType)||(v.formData.connectionInformation.hostName=e.hostName,v.formData.connectionInformation.databaseName=e.databaseName,v.formData.connectionInformation.port=e.port?parseInt(e.port,10):void 0),g(),v.updateUrl(),Object.values(n).forEach(e=>{const r=v.repositoryInfo.params[e],t=v.getOntopFileInfo(e);r&&(t.fileName=Object(o.getFileName)(r.value))}),v.currentOntopRepoInfo=angular.copy(v.formData)}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>{w(!1)})):v.selectDriver(c)})}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",f),f.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]},188:function(e,r,t){"use strict";t.r(r);t(6),t(23),t(29),t(85),t(132),t(125),t(22),t(126),t(53),t(54);angular.module("graphdb.framework.repositories",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.repositories.controllers","graphdb.framework.repositories.ontop-repo.directive","graphdb.framework.repositories.fedx-repo.directive","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers","graphdb.framework.settings"])},89:function(e,r,t){"use strict";t.r(r);t(6),t(24);function o(e,r,t,o,n){e.supportsStatistics=!0,e.settings={statistics:!1},e.getSettings=function(){e.loader=!0,o.getStatistics().then((function(r){e.settings.statistics="true"===r.data,e.supportsStatistics=!0}),(function(t){if(404===t.status)e.supportsStatistics=!1;else{const e=getError(t.data);r.error(e,n.instant("error.getting.settings"))}}))},e.getSettings(),e.setSettings=function(){e.loader=!0,o.toggleStatistics(e.settings.statistics).then((function(){t.close(),r.success(n.instant("saving.settings.success"))}),(function(e){const t=getError(e.data);r.error(t,n.instant("saving.settings.error"))}))},e.submitForm=function(){e.setSettings()},e.cancel=function(){t.dismiss("cancel")}}function n(e,r,t,o,n,s,i){e.loadingLicense=function(){return t.loadingLicense},t.checkLicenseStatus(),e.revertToFree=function(){s.openSimpleModal({title:i.instant("confirm.operation"),message:i.instant("revert.to.free.warning.msg"),warning:!0}).result.then((function(){r.unregisterLicense().success((function(){t.checkLicenseStatus()}))}))}}function s(e,r,t,o,n,s,i,a){e.$on("securityInit",(function(){i.isAdmin()||t.path("/license")})),e.sendLicenseToValidateAndActivate=l;const c=$(".license-textarea");function l(e){r.sendLicenseToValidate(e).success((function(t){"Invalid"!==t.licensee?(c.val(e),function(e,t){o.open({templateUrl:"js/angular/settings/modal/validate-license.html",controller:"ValidateLicenseModalCtrl",size:"lg",resolve:{license:function(){return e}}}).result.then((function(){!function(e){e||(e=c.val());if(e){const t=atob(e.replace(/\s/g,""));r.registerLicense(t).success((function(){s.history.back()})).error((function(){n.error(a.instant("license.register.error"))}))}else n.error(a.instant("no.license.code.error"))}(t)}))}(t,e)):(c.val(""),n.error(t.message))})).error((function(){n.error(a.instant("invalid.license"))}))}e.$watch("currentFile",(function(){if(e.currentFile){const t=e.currentFile;r.extractFromLicenseFile(t).success((function(e){l(e)})).error((function(){n.error(a.instant("could.not.upload.file.error"))}))}})),e.getBackToPreviousPage=function(){s.history.back()}}function i(e,r,t){e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")},e.license=t}function a(e){e.loader=!0,e.setLoader=function(r){e.loader=r}}angular.module("graphdb.framework.settings.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","toastr"]).controller("ActiveLocationSettingsCtrl",o).controller("ValidateLicenseModalCtrl",i).controller("LicenseCtrl",n).controller("RegisterLicenseCtrl",s).controller("LoaderSamplesCtrl",a),o.$inject=["$scope","toastr","$uibModalInstance","LicenseRestService","$translate"],n.$inject=["$scope","LicenseRestService","$licenseService","toastr","$rootScope","ModalService","$translate"],s.$inject=["$scope","LicenseRestService","$location","$uibModal","toastr","$window","$jwtAuth","$translate"],i.$inject=["$scope","$uibModalInstance","license"],a.$inject=["$scope"]}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[24,62,127,128,144],{125:function(e,r){function t(e,r,t,o){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(n){const s="ResolvableRepository";n.fedxMembers=[],n.knownRepos=[],n.allAttachedRepos=[],n.editRepoPage&&(n.fedxMembers=n.repositoryInfo.params.member.value.slice());function i(){for(const e of n.fedxMembers)n.knownRepos=n.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){r.getRepositories(n.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),n.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);t.error(r,o.instant("common.error"))})).then((function(){n.knownRepos=n.allAttachedRepos.slice(),i()}))}n.setWritableRepo=function(e){let r=n.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==s||e.store===s&&r.repositoryName===e.repositoryName)&&("RemoteRepository"!==r.store||"RemoteRepository"===e.store&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},n.getActiveClass=function(e){return"true"===e.writable?" active":""},n.checkIfRepoExist=function(e){return!n.allAttachedRepos.length||(e.store===s?n.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||n.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},n.getRepositoryServer=function(e){return e.local?"Local":e.location};const c=setInterval((function(){a()}),5e3);function l(e){n.fedxMembers.push(e),n.repositoryInfo.params.member.value=n.fedxMembers}function p(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function d(){return n.editRepoPage&&!n.editRepoPage||!n.model.editMode}n.$on("$destroy",(function(){clearInterval(c)})),n.addMember=function(e){let r;r="Local"===n.getRepositoryServer(e)?{store:s,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},n.knownRepos=n.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},n.removeMember=function(e){e.store&&e.store===s?(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),n.repositoryInfo.params.member.value=n.fedxMembers},n.addRemoteMember=function(){n.mode="remote",n.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},n.editFedXRepository=function(r){r.store===s?(n.mode="local",n.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(n.mode="remote",n.model={editMode:!0,store:r.store,repositoryName:r.repositoryName,repositoryServer:r.repositoryServer,sparqlEndpoint:"SPARQLEndpoint"===r.store?r.endpoint:r.repositoryLocation,username:r.username,password:r.password,supportsASKQueries:r.supportsASKQueries,writable:r.writable}),n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.resolveName=function(e){switch(e.store){case s:return e.repositoryName;case"RemoteRepository":return e.repositoryName+"@"+e.repositoryServer;case"SPARQLEndpoint":return e.endpoint;case"NativeStore":return e.repositoryLocation;default:return""}},n.cancel=function(){n.$uibModalInstance.dismiss("cancel")},n.ok=function(){let e;if(n.model.repositoryName&&n.model.store===s)e={store:s,repositoryName:n.model.repositoryName,repoType:n.model.repoType,respectRights:n.model.respectRights,writable:n.model.writable},n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(n.model.repositoryName&&"RemoteRepository"===n.model.store){if(e={store:"RemoteRepository",repositoryName:n.model.repositoryName,repositoryServer:p(n.model.repositoryServer),username:n.model.username,password:n.model.password,writable:n.model.writable},d()&&n.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=n.resolveName(e);return t.error(o.instant("fedx.repo.already.added.member.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:p(n.model.sparqlEndpoint),username:n.model.username,password:n.model.password,supportsASKQueries:n.model.supportsASKQueries,writable:n.model.writable},d()&&n.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=n.resolveName(e);return t.error(o.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),i(),n.$uibModalInstance.close()},n.$on("changedLocation",(function(){n.fedxMembers=[],a()})),a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",t),t.$inject=["$uibModal","RepositoriesRestService","toastr","$translate"]},126:function(e,r,t){"use strict";t.r(r);t(7),t(23),t(13),t(89),t(33),t(34),t(24),t(53),t(54);function o(e){e.interceptors.push("$unauthorizedInterceptor"),e.interceptors.push("$authenticationInterceptor")}function n(e,r,t){e.$on("$locationChangeStart",(function(){t.isLicenseHardcoded&&"/license/register"===r.url()&&r.path("license")}))}angular.module("graphdb.framework.settings",["toastr","ui.bootstrap","graphdb.framework.rest.license.service","graphdb.framework.settings.controllers","graphdb.framework.core.interceptors.unauthorized","graphdb.framework.core.interceptors.authentication","graphdb.framework.core.services.jwtauth"]).config(o).run(n),o.$inject=["$httpProvider","$routeProvider"],n.$inject=["$rootScope","$location","$licenseService"]},132:function(e,r,t){"use strict";t.r(r);var o=t(86);const n={OBDA:"obdaFile",OWL:"owlFile",CONSTRAINT:"constraintFile",LENSES:"lensesFile",DB_METADATA:"dbMetadataFile"};class s{constructor(e="generic"){this.driverType=e,this.hostName="",this.port=void 0,this.databaseName="",this.username="",this.password="",this.driverClass="",this.url="",this.urlUserInput=""}}class i{constructor(e,r=!1){this.type=e,this.fileName="",this.loading=!1,this.required=r}}class a extends Error{}const c="generic",l="dremio",p="databricks",d="snowflake";class m{constructor(){this.classAvailable=!1,this.downloadDriverUrl="",this.driverClass="",this.driverName="",this.driverType="",this.portRequired=!1,this.urlTemplate=""}static isGenericDriver(e){return e===c}static isSnowflakeDriver(e){return e===d}}function f(e,r,t,f,u){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(v){v.isGenericDriver=!0,v.defaultUrlTemplate="jdbc:database://localhost:port/database_name",v.ontopProperiesLink="https://ontop-vkg.org/guide/advanced/configuration.html",v.ontopFileType=n,v.selectedDriver=new m,v.supportedDriversData=[],v.formData={connectionInformation:new s,settings:{additionalProperties:"",ontopFiles:[]}},v.selectDriver=e=>{v.selectedDriver=v.supportedDriversData.find(r=>r.driverType===e),v.isGenericDriver=m.isGenericDriver(v.selectedDriver.driverType),v.editRepoPage&&v.currentOntopRepoInfo&&v.currentOntopRepoInfo.connectionInformation.driverType===e?v.formData=angular.copy(v.currentOntopRepoInfo):(L(),v.formData.connectionInformation.driverType=v.selectedDriver.driverType),v.formData.connectionInformation.driverClass=v.selectedDriver.driverClass,v.updateUrl()},v.getOntopFileInfo=e=>v.formData.settings.ontopFiles.find(r=>e===r.type),v.getHostNameLabel=()=>{const e=m.isSnowflakeDriver(v.selectedDriver.driverType)?"ontop.repo.database.snowflake.host_name":"ontop.repo.database.host_name";return u.instant(e)+"*"},v.getDatabaseNameLabel=()=>{let e="";switch(v.selectedDriver.driverType){case d:e="ontop.repo.database.warehouse.database_name";break;case p:e="ontop.repo.database.http_path.database_name";break;case l:e="ontop.repo.database.schema.database_name";break;default:e="ontop.repo.database.database_name"}return u.instant(e)},v.updateUrl=()=>{const e=y()||"";v.formData.connectionInformation.url=e+v.formData.connectionInformation.urlUserInput},v.isTestConnectionDisabled=()=>{const e=v.formData.connectionInformation,r=v.selectedDriver;return!(e.driverClass&&e.url&&(!r.portRequired||e.port))||!(m.isGenericDriver(r.driverType)||e.hostName&&e.databaseName)},v.testConnection=()=>{I().then(T).then(R).then(S).then(k).then(D).then(()=>r.validateOntopPropertiesConnection(v.repositoryInfo)).then(()=>t.success(u.instant("ontop.repo.successful.connection.msg"))).catch(e=>{e instanceof a?t.error(e.message):N(u.instant("ontop.repo.failed.to.connect"),e)})},v.editFile=t=>{const n=v.repositoryInfo.params[t.type].label,s=u.instant("update.file.edit.content.header",{fileName:n});e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",windowClass:"update-ontop-repo-dialog",resolve:{file:()=>{const e=v.repositoryInfo.params[t.type];return e?e.value:""},dialogTitle:()=>s}}).result.then(e=>{r.updateRepositoryFileContent(e.fileLocation,e.content,v.repositoryInfo.location).success(e=>{t.fileName=Object(o.getFileName)(e.fileLocation),v.repositoryInfo.params[t.type].value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)})})},v.uploadOntopFile=(e,r)=>{if(e&&e.length){const o=e[0];r.loading=!0;const n={url:"rest/repositories/file/upload",data:{file:o,location:v.repositoryInfo.location}};f.upload(n).success(e=>{e.success?(r.fileName=o.name,v.repositoryInfo.params[r.type].value=e.fileLocation):t.error(e.errorMessage)}).error(e=>{N(u.instant("common.error"),e),v.uploadFile=""}).finally(()=>{r.loading=!1})}},v.updateOntopRepo=()=>{const e=v.editRepoPage?v.editRepository:v.createRepo;$().then(I).then(T).then(R).then(S).then(k).then(M).then(D).then(e).catch(e=>{e instanceof a?t.error(e.message):console.log(e)})},v.onKeyDownInUrlInput=e=>{const r=e.keyCode;if(37===r||39===r||36===r||35===r)return;const t=y();if(!t)return;const o=e.ctrlKey||e.metaKey;if(o&&65===r||o&&67===r)return;const n=e.target.selectionStart;8===r&&n-1<t.length&&(e.preventDefault(),e.stopPropagation()),n<t.length&&(e.preventDefault(),e.stopPropagation())},v.onKeyUpInUrlInput=()=>{g()};const g=()=>{const e=y();e&&v.formData.connectionInformation.url.startsWith(e)?v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url.substring(e.length):v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url},y=()=>m.isSnowflakeDriver(v.selectedDriver.driverType)?h():b(),h=()=>{let e=v.selectedDriver.urlTemplate;const r=v.formData.connectionInformation;return r.hostName&&(e=e.replace("{identifier}",r.hostName)),r.port&&(e=e.replace(".snowflakecomputing.com/?",`.snowflakecomputing.com:${r.port}/?`)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},b=()=>{let e=v.selectedDriver.urlTemplate;const r=v.formData.connectionInformation;return r.hostName&&(e=r.port?e.replace("{hostport}",`${r.hostName}:${r.port}`):e.replace("{hostport}",""+r.hostName)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},w=e=>{v.formData.settings.ontopFiles.forEach(r=>{r.loading=e})},D=()=>{w(!0);const e=v.formData.connectionInformation,t={hostName:e.hostName,port:e.port,databaseName:e.databaseName,userName:e.username,password:e.password,driverClass:e.driverClass,url:e.url,additionalProperties:v.formData.settings.additionalProperties};return r.updatePropertiesFile(v.repositoryInfo.params.propertiesFile.value,t,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{v.repositoryInfo.params.propertiesFile.value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>w(!1))},N=(e,r)=>{const o=getError(r);t.error(o,e)},I=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.hostName?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.host_name")}))),R=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.databaseName?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.database_name")}))),S=()=>v.formData.connectionInformation.driverClass?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.driver_class")}))),k=()=>v.formData.connectionInformation.url?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.url")}))),$=()=>v.repositoryInfo.id?Promise.resolve():Promise.reject(new a(u.instant("empty.repoid.warning"))),M=()=>v.getOntopFileInfo(n.OBDA).fileName?Promise.resolve():Promise.reject(new a(u.instant("ontop.repo.missing.required.file",{fileName:v.repositoryInfo.params[n.OBDA].label}))),T=()=>v.selectedDriver.portRequired&&!v.formData.connectionInformation.port?Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.port")}))):Promise.resolve(),L=()=>{v.formData={connectionInformation:new s,settings:{additionalProperties:"",ontopFiles:[]}},Object.values(n).forEach(e=>{const r=new i(e);v.formData.settings.ontopFiles.push(r)}),v.getOntopFileInfo(n.OBDA).required=!0};r.getSupportedDriversData(v.repositoryInfo).success(e=>{v.supportedDriversData=e}).error(e=>{N(u.instant("common.error"),e)}).then(()=>{v.editRepoPage?(w(!0),r.loadPropertiesFile(v.repositoryInfo.params.propertiesFile.value,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{let r=v.supportedDriversData.find(r=>r.driverClass===e.driverClass);r&&e.hostName||(r=v.supportedDriversData.find(e=>m.isGenericDriver(e.driverType))),v.selectDriver(r.driverType),v.formData.connectionInformation.driverType=r.driverType,v.formData.connectionInformation.driverClass=e.driverClass,v.formData.connectionInformation.password=e.password,v.formData.connectionInformation.username=e.userName,v.formData.connectionInformation.url=e.url,v.formData.settings.additionalProperties=e.additionalProperties,m.isGenericDriver(r.driverType)||(v.formData.connectionInformation.hostName=e.hostName,v.formData.connectionInformation.databaseName=e.databaseName,v.formData.connectionInformation.port=e.port?parseInt(e.port,10):void 0),g(),v.updateUrl(),Object.values(n).forEach(e=>{const r=v.repositoryInfo.params[e],t=v.getOntopFileInfo(e);r&&(t.fileName=Object(o.getFileName)(r.value))}),v.currentOntopRepoInfo=angular.copy(v.formData)}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>{w(!1)})):v.selectDriver(c)})}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",f),f.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]},188:function(e,r,t){"use strict";t.r(r);t(7),t(23),t(29),t(86),t(132),t(125),t(22),t(126),t(53),t(54);angular.module("graphdb.framework.repositories",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.repositories.controllers","graphdb.framework.repositories.ontop-repo.directive","graphdb.framework.repositories.fedx-repo.directive","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers","graphdb.framework.settings"])},89:function(e,r,t){"use strict";t.r(r);t(7),t(24);function o(e,r,t,o,n){e.supportsStatistics=!0,e.settings={statistics:!1},e.getSettings=function(){e.loader=!0,o.getStatistics().then((function(r){e.settings.statistics="true"===r.data,e.supportsStatistics=!0}),(function(t){if(404===t.status)e.supportsStatistics=!1;else{const e=getError(t.data);r.error(e,n.instant("error.getting.settings"))}}))},e.getSettings(),e.setSettings=function(){e.loader=!0,o.toggleStatistics(e.settings.statistics).then((function(){t.close(),r.success(n.instant("saving.settings.success"))}),(function(e){const t=getError(e.data);r.error(t,n.instant("saving.settings.error"))}))},e.submitForm=function(){e.setSettings()},e.cancel=function(){t.dismiss("cancel")}}function n(e,r,t,o,n,s,i){e.loadingLicense=function(){return t.loadingLicense},t.checkLicenseStatus(),e.revertToFree=function(){s.openSimpleModal({title:i.instant("confirm.operation"),message:i.instant("revert.to.free.warning.msg"),warning:!0}).result.then((function(){r.unregisterLicense().success((function(){t.checkLicenseStatus()}))}))}}function s(e,r,t,o,n,s,i,a){e.$on("securityInit",(function(){i.isAdmin()||t.path("/license")})),e.sendLicenseToValidateAndActivate=l;const c=$(".license-textarea");function l(e){r.sendLicenseToValidate(e).success((function(t){"Invalid"!==t.licensee?(c.val(e),function(e,t){o.open({templateUrl:"js/angular/settings/modal/validate-license.html",controller:"ValidateLicenseModalCtrl",size:"lg",resolve:{license:function(){return e}}}).result.then((function(){!function(e){e||(e=c.val());if(e){const t=atob(e.replace(/\s/g,""));r.registerLicense(t).success((function(){s.history.back()})).error((function(){n.error(a.instant("license.register.error"))}))}else n.error(a.instant("no.license.code.error"))}(t)}))}(t,e)):(c.val(""),n.error(t.message))})).error((function(){n.error(a.instant("invalid.license"))}))}e.$watch("currentFile",(function(){if(e.currentFile){const t=e.currentFile;r.extractFromLicenseFile(t).success((function(e){l(e)})).error((function(){n.error(a.instant("could.not.upload.file.error"))}))}})),e.getBackToPreviousPage=function(){s.history.back()}}function i(e,r,t){e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")},e.license=t}function a(e){e.loader=!0,e.setLoader=function(r){e.loader=r}}angular.module("graphdb.framework.settings.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","toastr"]).controller("ActiveLocationSettingsCtrl",o).controller("ValidateLicenseModalCtrl",i).controller("LicenseCtrl",n).controller("RegisterLicenseCtrl",s).controller("LoaderSamplesCtrl",a),o.$inject=["$scope","toastr","$uibModalInstance","LicenseRestService","$translate"],n.$inject=["$scope","LicenseRestService","$licenseService","toastr","$rootScope","ModalService","$translate"],s.$inject=["$scope","LicenseRestService","$location","$uibModal","toastr","$window","$jwtAuth","$translate"],i.$inject=["$scope","$uibModalInstance","license"],a.$inject=["$scope"]}}]);