graphdb-workbench 2.2.4-TR1 → 2.2.4-TR2

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 (156) hide show
  1. package/dist/{102.7141102a059ef5eba1ea.bundle.js → 102.d52dc777ce7b5de1a30a.bundle.js} +2 -2
  2. package/dist/{102.7141102a059ef5eba1ea.bundle.js.map → 102.d52dc777ce7b5de1a30a.bundle.js.map} +1 -1
  3. package/dist/{104.ecd04b9cba294e159ca5.bundle.js → 104.09c8b5802e53cd9dced9.bundle.js} +2 -2
  4. package/dist/{104.ecd04b9cba294e159ca5.bundle.js.map → 104.09c8b5802e53cd9dced9.bundle.js.map} +1 -1
  5. package/dist/{107.5972b71755d2f24f6f44.bundle.js → 107.481f84627ac231f49e56.bundle.js} +2 -2
  6. package/dist/{107.5972b71755d2f24f6f44.bundle.js.map → 107.481f84627ac231f49e56.bundle.js.map} +1 -1
  7. package/dist/108.d61b0e4a54e1d0e6550d.bundle.js +2 -0
  8. package/dist/{108.162ea156d1fc4ad2525f.bundle.js.map → 108.d61b0e4a54e1d0e6550d.bundle.js.map} +1 -1
  9. package/dist/{11.f7cb87be309f6bd00aa5.bundle.js → 11.89d3de4f2e80e373ecf2.bundle.js} +3 -3
  10. package/dist/{11.f7cb87be309f6bd00aa5.bundle.js.map → 11.89d3de4f2e80e373ecf2.bundle.js.map} +1 -1
  11. package/dist/{115.abb22e52d5886ed645c1.bundle.js → 115.36a12f5a0804f33cb569.bundle.js} +2 -2
  12. package/dist/{115.abb22e52d5886ed645c1.bundle.js.map → 115.36a12f5a0804f33cb569.bundle.js.map} +1 -1
  13. package/dist/{117.ed07ffe3ff3bead9b43b.bundle.js → 117.9c58e6155d7467c45284.bundle.js} +2 -2
  14. package/dist/{117.ed07ffe3ff3bead9b43b.bundle.js.map → 117.9c58e6155d7467c45284.bundle.js.map} +1 -1
  15. package/dist/{118.57c922b04fbcf0d65d1c.bundle.js → 118.7cdbf2a7be83e4cdc7e2.bundle.js} +2 -2
  16. package/dist/{118.57c922b04fbcf0d65d1c.bundle.js.map → 118.7cdbf2a7be83e4cdc7e2.bundle.js.map} +1 -1
  17. package/dist/{119.7b75484ef37c16039937.bundle.js → 119.f7c106efa2582220baa7.bundle.js} +2 -2
  18. package/dist/{119.7b75484ef37c16039937.bundle.js.map → 119.f7c106efa2582220baa7.bundle.js.map} +1 -1
  19. package/dist/{12.eb41e4af80fee51d893c.bundle.js → 12.b4ac6d1ff3d669d3e63f.bundle.js} +2 -2
  20. package/dist/{12.eb41e4af80fee51d893c.bundle.js.map → 12.b4ac6d1ff3d669d3e63f.bundle.js.map} +1 -1
  21. package/dist/{120.0f42d5a0967c1f4636ca.bundle.js → 120.d20d9e20e2d3c5476f8d.bundle.js} +2 -2
  22. package/dist/{120.0f42d5a0967c1f4636ca.bundle.js.map → 120.d20d9e20e2d3c5476f8d.bundle.js.map} +1 -1
  23. package/dist/{121.f85253eb7e057efdb05d.bundle.js → 121.dc96efcaf4dc5e63f58d.bundle.js} +2 -2
  24. package/dist/{121.f85253eb7e057efdb05d.bundle.js.map → 121.dc96efcaf4dc5e63f58d.bundle.js.map} +1 -1
  25. package/dist/{126.349ebcea493c77fecf7e.bundle.js → 126.4c2fb40676d2508bbc65.bundle.js} +2 -2
  26. package/dist/{126.349ebcea493c77fecf7e.bundle.js.map → 126.4c2fb40676d2508bbc65.bundle.js.map} +1 -1
  27. package/dist/{13.bc3607638ad1e2068125.bundle.js → 13.f6b8f9a2288e2485ee20.bundle.js} +2 -2
  28. package/dist/{13.bc3607638ad1e2068125.bundle.js.map → 13.f6b8f9a2288e2485ee20.bundle.js.map} +1 -1
  29. package/dist/148.45985ae23de642595544.bundle.js +1 -1
  30. package/dist/148.45985ae23de642595544.bundle.js.map +1 -1
  31. package/dist/16.2ca98f5bec0fae221cef.bundle.js +3 -0
  32. package/dist/{16.cd06772f9e031d37db03.bundle.js.map → 16.2ca98f5bec0fae221cef.bundle.js.map} +1 -1
  33. package/dist/{17.45b5c34f6c73bde1113d.bundle.js → 17.b19a2d3870590d21e8e9.bundle.js} +2 -2
  34. package/dist/{17.45b5c34f6c73bde1113d.bundle.js.map → 17.b19a2d3870590d21e8e9.bundle.js.map} +1 -1
  35. package/dist/{19.92f27dd146df127e8d6e.bundle.js → 19.34c180252e48207f01b4.bundle.js} +3 -3
  36. package/dist/{19.92f27dd146df127e8d6e.bundle.js.map → 19.34c180252e48207f01b4.bundle.js.map} +1 -1
  37. package/dist/{20.4eb25ede434dc329ecf1.bundle.js → 20.9e9e388a98851c65f8f7.bundle.js} +2 -2
  38. package/dist/{20.4eb25ede434dc329ecf1.bundle.js.map → 20.9e9e388a98851c65f8f7.bundle.js.map} +1 -1
  39. package/dist/21.8434e1ecb6fcfa06e1f1.bundle.js +2 -0
  40. package/dist/21.8434e1ecb6fcfa06e1f1.bundle.js.map +1 -0
  41. package/dist/{23.16fc17b0a8983ce3d809.bundle.js → 23.22e3720d741ee87c8108.bundle.js} +2 -2
  42. package/dist/{23.16fc17b0a8983ce3d809.bundle.js.map → 23.22e3720d741ee87c8108.bundle.js.map} +1 -1
  43. package/dist/{24.04d84edbd8f93d036633.bundle.js → 24.63acd0fc451fc797ff79.bundle.js} +2 -2
  44. package/dist/{24.04d84edbd8f93d036633.bundle.js.map → 24.63acd0fc451fc797ff79.bundle.js.map} +1 -1
  45. package/dist/{26.3a642e64c7803f3b32f1.bundle.js → 26.194b2d09daa679b7e09c.bundle.js} +2 -2
  46. package/dist/{26.3a642e64c7803f3b32f1.bundle.js.map → 26.194b2d09daa679b7e09c.bundle.js.map} +1 -1
  47. package/dist/{27.fef157d9275358c9f1a0.bundle.js → 27.35fe33bb9622c2e29c43.bundle.js} +2 -2
  48. package/dist/{27.fef157d9275358c9f1a0.bundle.js.map → 27.35fe33bb9622c2e29c43.bundle.js.map} +1 -1
  49. package/dist/{29.a1b30610d7960a86b1cb.bundle.js → 29.e4eadb676659c5d6e44b.bundle.js} +3 -3
  50. package/dist/{29.a1b30610d7960a86b1cb.bundle.js.map → 29.e4eadb676659c5d6e44b.bundle.js.map} +1 -1
  51. package/dist/{30.3a05504ff287ca6df711.bundle.js → 30.0fb90b3cdf78fcde6251.bundle.js} +2 -2
  52. package/dist/{30.3a05504ff287ca6df711.bundle.js.map → 30.0fb90b3cdf78fcde6251.bundle.js.map} +1 -1
  53. package/dist/{31.13d5a8e9834cd5db589c.bundle.js → 31.8dd9fe71d36bd04a0433.bundle.js} +2 -2
  54. package/dist/{31.13d5a8e9834cd5db589c.bundle.js.map → 31.8dd9fe71d36bd04a0433.bundle.js.map} +1 -1
  55. package/dist/{32.59a7369287d15e8b9ab6.bundle.js → 32.8e1c25a47debdf5145d8.bundle.js} +2 -2
  56. package/dist/{32.59a7369287d15e8b9ab6.bundle.js.map → 32.8e1c25a47debdf5145d8.bundle.js.map} +1 -1
  57. package/dist/{33.fde8076c81c87c25c367.bundle.js → 33.89b51420b48880728b96.bundle.js} +2 -2
  58. package/dist/{33.fde8076c81c87c25c367.bundle.js.map → 33.89b51420b48880728b96.bundle.js.map} +1 -1
  59. package/dist/{35.fe688fc32270724c391d.bundle.js → 35.a9846fba95e98a294957.bundle.js} +2 -2
  60. package/dist/{35.fe688fc32270724c391d.bundle.js.map → 35.a9846fba95e98a294957.bundle.js.map} +1 -1
  61. package/dist/{36.7da22f08c8e850885cc5.bundle.js → 36.4dbd0f9007404b0adbe2.bundle.js} +2 -2
  62. package/dist/{36.7da22f08c8e850885cc5.bundle.js.map → 36.4dbd0f9007404b0adbe2.bundle.js.map} +1 -1
  63. package/dist/37.ac99eb00fe71266c5bff.bundle.js +2 -0
  64. package/dist/{37.8a9855206d5ae5eba9be.bundle.js.map → 37.ac99eb00fe71266c5bff.bundle.js.map} +1 -1
  65. package/dist/{39.0eebc4b972cff879c1c9.bundle.js → 39.8f8ae5c232bd2f023e7c.bundle.js} +2 -2
  66. package/dist/{39.0eebc4b972cff879c1c9.bundle.js.map → 39.8f8ae5c232bd2f023e7c.bundle.js.map} +1 -1
  67. package/dist/4.5391679fa01c55e842cc.bundle.js +2 -0
  68. package/dist/4.5391679fa01c55e842cc.bundle.js.map +1 -0
  69. package/dist/{40.10f42e3f6d8d87bd3221.bundle.js → 40.50f010a0a0ce99da5092.bundle.js} +2 -2
  70. package/dist/{40.10f42e3f6d8d87bd3221.bundle.js.map → 40.50f010a0a0ce99da5092.bundle.js.map} +1 -1
  71. package/dist/{41.368780c518c3f6cab4b7.bundle.js → 41.d09e0f01eac3492e3376.bundle.js} +2 -2
  72. package/dist/{41.368780c518c3f6cab4b7.bundle.js.map → 41.d09e0f01eac3492e3376.bundle.js.map} +1 -1
  73. package/dist/{42.1a48ae582180fa6374f9.bundle.js → 42.9561ff9cd77df0f86a91.bundle.js} +2 -2
  74. package/dist/{42.1a48ae582180fa6374f9.bundle.js.map → 42.9561ff9cd77df0f86a91.bundle.js.map} +1 -1
  75. package/dist/{43.64268be8880acd392fee.bundle.js → 43.0400aae23dac518b78ec.bundle.js} +2 -2
  76. package/dist/{43.64268be8880acd392fee.bundle.js.map → 43.0400aae23dac518b78ec.bundle.js.map} +1 -1
  77. package/dist/{53.58a23efc22865c67d57d.bundle.js → 53.54b20545d5504efa8958.bundle.js} +2 -2
  78. package/dist/{53.58a23efc22865c67d57d.bundle.js.map → 53.54b20545d5504efa8958.bundle.js.map} +1 -1
  79. package/dist/{54.1e2e99cd8cdf20b99a4f.bundle.js → 54.81f97307e31f5eabb5f0.bundle.js} +2 -2
  80. package/dist/{54.1e2e99cd8cdf20b99a4f.bundle.js.map → 54.81f97307e31f5eabb5f0.bundle.js.map} +1 -1
  81. package/dist/{55.693c1a0dd775181e1e29.bundle.js → 55.e8df33b84ca578a9a633.bundle.js} +2 -2
  82. package/dist/{55.693c1a0dd775181e1e29.bundle.js.map → 55.e8df33b84ca578a9a633.bundle.js.map} +1 -1
  83. package/dist/{56.62459de7af529d956b75.bundle.js → 56.d765faad673f618d41b0.bundle.js} +2 -2
  84. package/dist/{56.62459de7af529d956b75.bundle.js.map → 56.d765faad673f618d41b0.bundle.js.map} +1 -1
  85. package/dist/{60.2cb24e628b92cb3e0210.bundle.js → 60.f13766507ec5f29fde78.bundle.js} +2 -2
  86. package/dist/{60.2cb24e628b92cb3e0210.bundle.js.map → 60.f13766507ec5f29fde78.bundle.js.map} +1 -1
  87. package/dist/{65.6c12c48ac0d6f57a5079.bundle.js → 65.aa9736b7aad2582ca7ea.bundle.js} +2 -2
  88. package/dist/{65.6c12c48ac0d6f57a5079.bundle.js.map → 65.aa9736b7aad2582ca7ea.bundle.js.map} +1 -1
  89. package/dist/{67.5ae0610f77a1455ce92b.bundle.js → 67.e7bd652fadf93be1fbae.bundle.js} +2 -2
  90. package/dist/{67.5ae0610f77a1455ce92b.bundle.js.map → 67.e7bd652fadf93be1fbae.bundle.js.map} +1 -1
  91. package/dist/{69.90776e70cb361d1ac6d5.bundle.js → 69.6b915e6a7a9c36a78e2b.bundle.js} +2 -2
  92. package/dist/{69.90776e70cb361d1ac6d5.bundle.js.map → 69.6b915e6a7a9c36a78e2b.bundle.js.map} +1 -1
  93. package/dist/{71.3e927496e6e4175a3127.bundle.js → 71.624ca936339bf337e46a.bundle.js} +2 -2
  94. package/dist/{71.3e927496e6e4175a3127.bundle.js.map → 71.624ca936339bf337e46a.bundle.js.map} +1 -1
  95. package/dist/{72.bc99fbec188b4e49aa53.bundle.js → 72.3a5620a182219e9ea05d.bundle.js} +2 -2
  96. package/dist/{72.bc99fbec188b4e49aa53.bundle.js.map → 72.3a5620a182219e9ea05d.bundle.js.map} +1 -1
  97. package/dist/{73.40b5cbae08c7f3a58438.bundle.js → 73.f162e544378754078826.bundle.js} +2 -2
  98. package/dist/{73.40b5cbae08c7f3a58438.bundle.js.map → 73.f162e544378754078826.bundle.js.map} +1 -1
  99. package/dist/{74.cc42a1dcef7e9b830354.bundle.js → 74.7595755907badb1a99b8.bundle.js} +2 -2
  100. package/dist/{74.cc42a1dcef7e9b830354.bundle.js.map → 74.7595755907badb1a99b8.bundle.js.map} +1 -1
  101. package/dist/{75.31d1a4766c80c90b2afc.bundle.js → 75.4cc7ff534d56a05c578a.bundle.js} +2 -2
  102. package/dist/{75.31d1a4766c80c90b2afc.bundle.js.map → 75.4cc7ff534d56a05c578a.bundle.js.map} +1 -1
  103. package/dist/{76.89d209ce08efa7429e87.bundle.js → 76.cd0cfea4c96e88230dbe.bundle.js} +2 -2
  104. package/dist/{76.89d209ce08efa7429e87.bundle.js.map → 76.cd0cfea4c96e88230dbe.bundle.js.map} +1 -1
  105. package/dist/{77.64c49e9e99b0ae3fbbca.bundle.js → 77.df7767b1a0a3a0efa202.bundle.js} +2 -2
  106. package/dist/{77.64c49e9e99b0ae3fbbca.bundle.js.map → 77.df7767b1a0a3a0efa202.bundle.js.map} +1 -1
  107. package/dist/{79.0fbaedffc1f583a6064f.bundle.js → 79.4d64b377b0308809136f.bundle.js} +2 -2
  108. package/dist/{79.0fbaedffc1f583a6064f.bundle.js.map → 79.4d64b377b0308809136f.bundle.js.map} +1 -1
  109. package/dist/{80.6d489af9482e358c8dd8.bundle.js → 80.36e424031127d1743f20.bundle.js} +2 -2
  110. package/dist/{80.6d489af9482e358c8dd8.bundle.js.map → 80.36e424031127d1743f20.bundle.js.map} +1 -1
  111. package/dist/{94.94158487a9024ff3a623.bundle.js → 94.b1ccdd207229ae57569f.bundle.js} +2 -2
  112. package/dist/{94.94158487a9024ff3a623.bundle.js.map → 94.b1ccdd207229ae57569f.bundle.js.map} +1 -1
  113. package/dist/{97.48e14b67906b4d61a1b1.bundle.js → 97.951e03ffd2d5a10f868d.bundle.js} +2 -2
  114. package/dist/{97.48e14b67906b4d61a1b1.bundle.js.map → 97.951e03ffd2d5a10f868d.bundle.js.map} +1 -1
  115. package/dist/{98.cc7086155b76601af017.bundle.js → 98.745b4c457214d4189d7a.bundle.js} +2 -2
  116. package/dist/{98.cc7086155b76601af017.bundle.js.map → 98.745b4c457214d4189d7a.bundle.js.map} +1 -1
  117. package/dist/{bundle.afb7b0e2052d21766bfe.bundle.js → bundle.651116fe2383a66f32c9.bundle.js} +21 -21
  118. package/dist/{bundle.afb7b0e2052d21766bfe.bundle.js.map → bundle.651116fe2383a66f32c9.bundle.js.map} +1 -1
  119. package/dist/index.html +3 -3
  120. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  121. package/dist/pages/autocomplete.html +1 -1
  122. package/dist/pages/choose-repository-type.html +1 -1
  123. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  124. package/dist/pages/create-index.html +4 -4
  125. package/dist/pages/dependencies.html +1 -1
  126. package/dist/pages/domainRangeInfo.html +2 -2
  127. package/dist/pages/edit.html +1 -1
  128. package/dist/pages/explore.html +1 -1
  129. package/dist/pages/export.html +1 -1
  130. package/dist/pages/find.html +1 -1
  131. package/dist/pages/graph-config/saveGraphConfig.html +11 -11
  132. package/dist/pages/graphs-visualizations.html +7 -7
  133. package/dist/pages/guides.html +1 -1
  134. package/dist/pages/import.html +1 -1
  135. package/dist/pages/jdbc-create.html +5 -5
  136. package/dist/pages/monitor/queries.html +1 -1
  137. package/dist/pages/monitor/resources.html +2 -2
  138. package/dist/pages/namespaces.html +2 -2
  139. package/dist/pages/plugins.html +1 -1
  140. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  141. package/dist/pages/rdfrank.html +2 -2
  142. package/dist/pages/repositories.html +2 -2
  143. package/dist/pages/repository.html +2 -2
  144. package/dist/pages/similarity-indexes.html +1 -1
  145. package/dist/pages/sparql-template-create.html +5 -5
  146. package/dist/pages/sparql.html +3 -3
  147. package/dist/pages/webapi.html +2 -2
  148. package/dist/res/swagger/index.html +27 -27
  149. package/package.json +1 -1
  150. package/dist/108.162ea156d1fc4ad2525f.bundle.js +0 -2
  151. package/dist/16.cd06772f9e031d37db03.bundle.js +0 -3
  152. package/dist/21.5586732af2e5cec0d05a.bundle.js +0 -2
  153. package/dist/21.5586732af2e5cec0d05a.bundle.js.map +0 -1
  154. package/dist/37.8a9855206d5ae5eba9be.bundle.js +0 -2
  155. package/dist/4.112f94be76eae8c6eea6.bundle.js +0 -2
  156. package/dist/4.112f94be76eae8c6eea6.bundle.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/utils/file-types.js","webpack:///./src/js/angular/export/controllers.js"],"names":["angular","module","value","name","type","extension","controller","$scope","$http","$location","$timeout","ModalService","filterFilter","$repositories","toastr","RDF4JRepositoriesRestService","FileTypes","$translate","getActiveRepository","exportFormats","deleting","showExportDDTooltip","page","pageSize","pageSizeOptions","displayGraphs","exportFilter","export","exportMultipleGraphs","repoExportFormat","selectedGraphs","exportGraphs","$watch","getGraphs","selectedAll","changePageSize","isShacl","iri","loader","success","data","results","bindings","unshift","contextID","graphsByValue","Object","keys","forEach","key","binding","uri","encodeURIComponent","clearUri","exportUri","longName","graphs","filteredGraphs","slice","matchedElements","error","status","msg","getError","setRepository","instant","onGraphSearch","deselectAll","filterResults","item","indexOf","push","downloadExport","downloadUrl","format","url","auth","localStorage","getItem","win","window","open","document","location","href","close","openExportDDTooltip","$","trigger","exportRepo","openSimpleModal","title","message","warning","result","then","startDownload","repo","getActiveRepositoryObject","id","hasMultipleSelected","_","isEmpty","index","exportSelectedGraphs","contextStr","substring","length","element","find","valueOfFilteredGraphsButton","innerHTML","trim","valueOfFilteredGraphs","changePagination","isDefined","size","removeClass","checkAll","dropRepository","canWriteActiveRepo","addStatements","err","errMsg","dropContext","ctx","updateResults","dropGraph","selectedGraphsForDelete","counterOfClearedGraphs","dropSelectedGraphs"],"mappings":"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","file":"37.8a9855206d5ae5eba9be.bundle.js","sourcesContent":["angular.module('graphdb.workbench.utils.filetypes', [])\n .value('FileTypes', [\n {name: 'JSON', type: 'application/rdf+json', extension: '.json'},\n {name: 'JSON-LD', type: 'application/ld+json', extension: '.jsonld'},\n {name: 'RDF-XML', type: 'application/rdf+xml', extension: '.rdf'},\n {name: 'N3', type: 'text/rdf+n3', extension: '.n3'},\n {name: 'N-Triples', type: 'text/plain', extension: '.nt'},\n {name: 'N-Quads', type: 'text/x-nquads', extension: '.nq'},\n {name: 'Turtle', type: 'text/turtle', extension: '.ttl'},\n {name: 'Turtle*', type: 'application/x-turtlestar', extension: '.ttls'},\n {name: 'TriX', type: 'application/trix', extension: '.trix'},\n {name: 'TriG', type: 'application/x-trig', extension: '.trig'},\n {name: 'TriG*', type: 'application/x-trigstar', extension: '.trigs'},\n {name: 'Binary RDF', type: 'application/x-binary-rdf', extension: '.brf'}\n ]);\n","import 'angular/core/services';\nimport 'angular/core/services/repositories.service';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/utils/file-types';\nimport {decodeHTML} from \"../../../app\";\nimport {cloneDeep} from \"lodash\";\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.workbench.utils.filetypes'\n];\n\nconst exportCtrl = angular.module('graphdb.framework.impex.export.controllers', modules);\n\nexportCtrl.controller('ExportCtrl',\n ['$scope', '$http', '$location', '$timeout', 'ModalService', 'filterFilter', '$repositories', 'toastr', 'RDF4JRepositoriesRestService', 'FileTypes', '$translate',\n function ($scope, $http, $location, $timeout, ModalService, filterFilter, $repositories, toastr, RDF4JRepositoriesRestService, FileTypes, $translate) {\n\n $scope.getActiveRepository = function () {\n return $repositories.getActiveRepository();\n };\n\n $scope.exportFormats = FileTypes;\n $scope.deleting = {};\n $scope.showExportDDTooltip = true;\n $scope.page = 1;\n $scope.pageSize = 10;\n $scope.pageSizeOptions = [10, 20, 50, 100];\n $scope.displayGraphs = [];\n $scope.exportFilter = '';\n $scope.export = true;\n $scope.exportMultipleGraphs = false;\n $scope.repoExportFormat = {\n name: 'TriG',\n type: 'application/x-trig',\n extension: '.trig'\n };\n $scope.selectedGraphs = {\n exportGraphs: {}\n };\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n $scope.exportFilter = '';\n $scope.getGraphs();\n $scope.selectedAll = false;\n $timeout(function () {\n $scope.changePageSize(10);\n }, 100);\n });\n\n $scope.isShacl = function (iri) {\n return iri === \"http%3A%2F%2Frdf4j.org%2Fschema%2Frdf4j%23SHACLShapeGraph\";\n };\n\n /// <summary>Get Graphs that are part of the Active Repository.</summary>\n $scope.getGraphs = function () {\n if ($scope.getActiveRepository()) {\n $scope.loader = true;\n RDF4JRepositoriesRestService.getGraphs($scope.getActiveRepository()).success(function (data) {\n data.results.bindings.unshift({\n contextID: {\n type: 'default',\n value: 'import.default.graph'\n }\n });\n $scope.graphsByValue = {};\n Object.keys(data.results.bindings).forEach(function (key) {\n const binding = data.results.bindings[key];\n if (binding.contextID.type === 'bnode') {\n binding.contextID.value = '_:' + binding.contextID.value;\n } else if (binding.contextID.type === 'default') {\n binding.contextID.uri = encodeURIComponent('http://www.openrdf.org/schema/sesame#nil');\n binding.contextID.clearUri = 'DEFAULT';\n binding.contextID.exportUri = 'null';\n binding.contextID.longName = 'default graph';\n } else {\n binding.contextID.uri = encodeURIComponent(binding.contextID.value);\n binding.contextID.clearUri = 'GRAPH <' + binding.contextID.value + '>';\n binding.contextID.exportUri = encodeURIComponent('<' + binding.contextID.value + '>');\n binding.contextID.longName = 'named graph ' + binding.contextID.value;\n }\n $scope.graphsByValue[binding.contextID.value] = binding.contextID;\n });\n $scope.graphs = data.results.bindings;\n $scope.filteredGraphs = cloneDeep($scope.graphs);\n $scope.displayGraphs = $scope.filteredGraphs.slice($scope.pageSize * ($scope.page - 1), $scope.pageSize * $scope.page);\n $scope.loader = false;\n $scope.selectedGraphs.exportGraphs = {};\n $scope.matchedElements = $scope.graphs;\n }).error(function (data, status) {\n const msg = getError(data, status);\n if (msg === 'There is no active location!') {\n $repositories.setRepository('');\n toastr.error(msg, $translate.instant('common.error'));\n }\n $scope.loader = false;\n });\n } else {\n $scope.loader = false;\n }\n };\n\n $scope.onGraphSearch = function () {\n $scope.matchedElements = [];\n $scope.deselectAll();\n $scope.filterResults();\n };\n\n $scope.filterResults = function () {\n angular.forEach($scope.graphs, function (item) {\n if (item.contextID.value.indexOf($scope.exportFilter) !== -1) {\n $scope.matchedElements.push(item);\n }\n });\n };\n\n $scope.downloadExport = function (downloadUrl, format) {\n let url = downloadUrl + '&Accept=' + encodeURIComponent(format.type);\n const auth = localStorage.getItem('com.ontotext.graphdb.auth');\n if (auth) {\n url = url + '&authToken=' + encodeURIComponent(auth);\n }\n let win = window.open(url);\n $timeout(function () {\n if (win.document.location.href !== 'about:blank') {\n win.close();\n toastr.error('Could not export graph. Check GraphDB logs for detailed reason.');\n }\n }, 100);\n\n };\n\n /// <summary>Trigger the custom event for DD tooltip.</summary>\n $scope.openExportDDTooltip = function () {\n if ($scope.showExportDDTooltip) {\n $timeout(function () {\n $('#tooltipTarget').trigger('showExportDDTooltip');\n }, 0);\n $timeout(function () {\n $('#tooltipTarget').trigger('showExportDDTooltip');\n }, 3000);\n\n //Set to false so the tooltip shows only once\n $scope.showExportDDTooltip = false;\n\n }\n };\n\n /// <summary>Fill the hidden form and submit it to start download document.</summary>\n $scope.exportRepo = function (format, contextID) {\n if (format.type === 'application/rdf+xml' || format.type === 'text/plain' || format.type === 'text/turtle' || format.type === 'application/x-turtlestar' || format.type === 'text/rdf+n3') {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: decodeHTML($translate.instant('export.format.warning.msg')),\n warning: true\n }).result\n .then(function () {\n $scope.startDownload(format, contextID);\n });\n } else {\n $scope.startDownload(format, contextID);\n }\n };\n\n $scope.startDownload = function (format, contextID) {\n //If it's graph set the url for ?context=\n let downloadUrl;\n const repo = $repositories.getActiveRepositoryObject();\n if (contextID) {\n downloadUrl = `repositories/${repo.id}/statements?infer=false&context=${$scope.graphsByValue[contextID.value].exportUri}&location=${encodeURIComponent(repo.location)}`;\n } else {\n downloadUrl = `repositories/${repo.id}/statements?infer=false&location=${encodeURIComponent(repo.location)}`;\n }\n $scope.downloadExport(downloadUrl, format);\n };\n\n $scope.hasMultipleSelected = function () {\n if (_.isEmpty($scope.selectedGraphs.exportGraphs)) {\n return !_.isEmpty($scope.selectedGraphs.exportGraphs);\n } else {\n for (const index in $scope.selectedGraphs.exportGraphs) {\n if ($scope.selectedGraphs.exportGraphs[index] === true) {\n return true;\n }\n }\n return false;\n }\n };\n\n $scope.exportSelectedGraphs = function (format) {\n let contextStr = '';\n for (const index in $scope.selectedGraphs.exportGraphs) {\n if ($scope.selectedGraphs.exportGraphs[index]) {\n contextStr += 'context=' + $scope.graphsByValue[index].exportUri + '&';\n }\n }\n\n if (contextStr) {\n const startDownload = function () {\n contextStr = contextStr.substring(0, contextStr.length - 1);\n const downloadUrl = 'repositories/' + $scope.getActiveRepository() + '/statements?infer=false&' + contextStr;\n $scope.downloadExport(downloadUrl, format);\n };\n\n if (format.type === 'application/rdf+xml' || format.type === 'text/plain' || format.type === 'text/turtle' || format.type === 'application/x-turtlestar' || format.type === 'text/rdf+n3') {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: decodeHTML($translate.instant('export.format.warning.msg')),\n warning: true\n }).result\n .then(function () {\n startDownload();\n });\n } else {\n startDownload();\n }\n } else {\n ModalService.openSimpleModal({\n title: $translate.instant('export.multiple.graph'),\n message: $translate.instant('export.check.graphs.msg'),\n warning: true\n });\n }\n };\n\n $scope.$watch('exportFilter', function () {\n $scope.filteredGraphs = filterFilter($scope.graphs, $scope.exportFilter);\n if ($scope.getActiveRepository() && angular.element(document).find('.btn.btn-secondary.btn-sm.dropdown-toggle span').length) {\n const valueOfFilteredGraphsButton = angular.element(document).find('.btn.btn-secondary.btn-sm.dropdown-toggle span')[0].innerHTML.trim();\n let valueOfFilteredGraphs;\n if (valueOfFilteredGraphsButton === 'All') {\n valueOfFilteredGraphs = $scope.filteredGraphs.length;\n }\n if ($scope.filteredGraphs && $scope.filteredGraphs.length > $scope.pageSize && valueOfFilteredGraphsButton !== 'All') {\n valueOfFilteredGraphs = $scope.pageSize;\n }\n $scope.changePageSize(valueOfFilteredGraphs);\n $scope.changePagination();\n }\n });\n\n $scope.changePagination = function () {\n $scope.selectedAll = false;\n if (angular.isDefined($scope.filteredGraphs)) {\n $scope.displayGraphs = $scope.filteredGraphs.slice($scope.pageSize * ($scope.page - 1), $scope.pageSize * $scope.page);\n }\n };\n\n $scope.changePageSize = function (size) {\n $('.ot-graph-page-size').removeClass('active');\n $scope.page = 1;\n if (size) {\n $scope.pageSize = size;\n $scope.changePagination();\n }\n if ($scope.filteredGraphs && $scope.exportFilter !== '') {\n $scope.displayGraphs = $scope.filteredGraphs;\n }\n };\n\n $scope.checkAll = function () {\n $scope.selectedAll = $scope.selectedAll || false;\n\n angular.forEach($scope.displayGraphs, function (item) {\n if (item.contextID.uri) {\n $scope.selectedGraphs.exportGraphs[item.contextID.value] = $scope.selectedAll;\n }\n });\n };\n\n $scope.deselectAll = function () {\n $scope.selectedAll = false;\n angular.forEach($scope.displayGraphs, function (item) {\n if (item.contextID.uri) {\n $scope.selectedGraphs.exportGraphs[item.contextID.value] = false;\n }\n });\n };\n\n $scope.dropRepository = function () {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n $scope.deleting['*'] = true;\n\n ModalService.openSimpleModal({\n title: $translate.instant('export.confirm.clear.msg'),\n message: $translate.instant('export.warning.clear.repo.msg', {repo: $repositories.getActiveRepository()}),\n warning: true\n }).result\n .then(function () {\n $timeout(function () {\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), 'update=CLEAR ALL')\n .then(function () {\n $scope.deleting['*'] = false;\n toastr.success($translate.instant('export.cleared.repo', {repo: $repositories.getActiveRepository()}));\n $scope.getGraphs();\n }, function (err) {\n $scope.deleting['*'] = false;\n const errMsg = err.data;\n if (typeof errMsg == \"string\" && errMsg.indexOf(\"Clearing all statements in the \" +\n \"repository is incompatible with collecting history\") > -1) {\n toastr.error($translate.instant('export.clearing.statements.warning'));\n } else {\n toastr.error($translate.instant('export.cleared.repo.failed.msg', {repo: $repositories.getActiveRepository()}), err);\n }\n });\n }, 100);\n });\n };\n\n function dropGraph(ctx) {\n const longName = ctx.contextID.longName;\n $scope.deleting[ctx] = true;\n ModalService.openSimpleModal({\n title: $translate.instant('export.confirm.clear.graph'),\n message: $translate.instant('export.clear.graph.warning', {longName: longName}),\n warning: true\n }).result\n .then(function () {\n $timeout(function () {\n const data = `update=CLEAR ${ctx.contextID.clearUri}`;\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), data)\n .then(function () {\n $scope.deleting[ctx] = false;\n toastr.success($translate.instant('export.cleared.graph', {longName: longName}));\n $scope.getGraphs();\n $scope.exportFilter = '';\n $scope.filteredGraphs.length = 0;\n $scope.updateResults();\n $scope.changePageSize($scope.pageSize);\n }, function (err) {\n $scope.deleting[ctx] = false;\n toastr.error($translate.instant('export.clear.graph.msg', {longName: longName}), getError(err, err.status));\n });\n }, 100);\n }, function () {\n $scope.deleting[ctx] = false;\n });\n }\n\n function dropSelectedGraphs(ctx) {\n const selectedGraphsForDelete = [];\n angular.forEach($scope.selectedGraphs.exportGraphs, function (value, key) {\n if (value) {\n selectedGraphsForDelete.push(key);\n }\n });\n\n if (selectedGraphsForDelete.length > 0) {\n $scope.deleting[ctx] = true;\n ModalService.openSimpleModal({\n title: $translate.instant('export.confirm.clear.graph'),\n message: $translate.instant('export.warning.clear.graph.msg'),\n warning: true\n }).result.then(function () {\n $timeout(function () {\n let counterOfClearedGraphs = 0;\n angular.forEach(selectedGraphsForDelete, function (contextID) {\n const data = `update=CLEAR ${$scope.graphsByValue[contextID].clearUri}`;\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), data)\n .then(function () {\n $scope.loader = true;\n $scope.selectedGraphs.exportGraphs[contextID] = false;\n delete $scope.selectedGraphs.exportGraphs[contextID];\n counterOfClearedGraphs++;\n if (selectedGraphsForDelete.length === counterOfClearedGraphs) {\n $scope.selectedAll = false;\n $scope.exportFilter = '';\n $scope.filteredGraphs.length = 0;\n $scope.getGraphs();\n $scope.updateResults();\n $scope.changePageSize($scope.pageSize);\n toastr.success($translate.instant('export.cleared.graph.msg'));\n $scope.loader = false;\n }\n }, function (err) {\n const longName = $scope.graphsByValue[contextID].longName;\n toastr.error($translate.instant('export.clear.graph.msg', {longName: longName}), getError(err, err.status));\n $scope.selectedAll = false;\n });\n });\n }, 100);\n }, function () {\n $scope.deleting[ctx] = false;\n });\n }\n }\n\n $scope.dropContext = function (ctx) {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n if (angular.isDefined(ctx)) {\n dropGraph(ctx);\n } else {\n dropSelectedGraphs(ctx);\n }\n };\n }]);\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/utils/file-types.js","webpack:///./src/js/angular/export/controllers.js"],"names":["angular","module","value","name","type","extension","controller","$scope","$http","$location","$timeout","ModalService","filterFilter","$repositories","toastr","RDF4JRepositoriesRestService","FileTypes","$translate","getActiveRepository","exportFormats","deleting","showExportDDTooltip","page","pageSize","pageSizeOptions","displayGraphs","exportFilter","export","exportMultipleGraphs","repoExportFormat","selectedGraphs","exportGraphs","$watch","getGraphs","selectedAll","changePageSize","isShacl","iri","loader","success","data","results","bindings","unshift","contextID","graphsByValue","Object","keys","forEach","key","binding","uri","encodeURIComponent","clearUri","exportUri","longName","graphs","filteredGraphs","slice","matchedElements","error","status","msg","getError","setRepository","instant","onGraphSearch","deselectAll","filterResults","item","indexOf","push","downloadExport","downloadUrl","format","url","auth","localStorage","getItem","win","window","open","document","location","href","close","openExportDDTooltip","$","trigger","exportRepo","openSimpleModal","title","message","warning","result","then","startDownload","repo","getActiveRepositoryObject","id","hasMultipleSelected","_","isEmpty","index","exportSelectedGraphs","contextStr","substring","length","element","find","valueOfFilteredGraphsButton","innerHTML","trim","valueOfFilteredGraphs","changePagination","isDefined","size","removeClass","checkAll","dropRepository","canWriteActiveRepo","addStatements","err","errMsg","dropContext","ctx","updateResults","dropGraph","selectedGraphsForDelete","counterOfClearedGraphs","dropSelectedGraphs"],"mappings":"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","file":"37.ac99eb00fe71266c5bff.bundle.js","sourcesContent":["angular.module('graphdb.workbench.utils.filetypes', [])\n .value('FileTypes', [\n {name: 'JSON', type: 'application/rdf+json', extension: '.json'},\n {name: 'JSON-LD', type: 'application/ld+json', extension: '.jsonld'},\n {name: 'RDF-XML', type: 'application/rdf+xml', extension: '.rdf'},\n {name: 'N3', type: 'text/rdf+n3', extension: '.n3'},\n {name: 'N-Triples', type: 'text/plain', extension: '.nt'},\n {name: 'N-Quads', type: 'text/x-nquads', extension: '.nq'},\n {name: 'Turtle', type: 'text/turtle', extension: '.ttl'},\n {name: 'Turtle*', type: 'application/x-turtlestar', extension: '.ttls'},\n {name: 'TriX', type: 'application/trix', extension: '.trix'},\n {name: 'TriG', type: 'application/x-trig', extension: '.trig'},\n {name: 'TriG*', type: 'application/x-trigstar', extension: '.trigs'},\n {name: 'Binary RDF', type: 'application/x-binary-rdf', extension: '.brf'}\n ]);\n","import 'angular/core/services';\nimport 'angular/core/services/repositories.service';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/utils/file-types';\nimport {decodeHTML} from \"../../../app\";\nimport {cloneDeep} from \"lodash\";\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.workbench.utils.filetypes'\n];\n\nconst exportCtrl = angular.module('graphdb.framework.impex.export.controllers', modules);\n\nexportCtrl.controller('ExportCtrl',\n ['$scope', '$http', '$location', '$timeout', 'ModalService', 'filterFilter', '$repositories', 'toastr', 'RDF4JRepositoriesRestService', 'FileTypes', '$translate',\n function ($scope, $http, $location, $timeout, ModalService, filterFilter, $repositories, toastr, RDF4JRepositoriesRestService, FileTypes, $translate) {\n\n $scope.getActiveRepository = function () {\n return $repositories.getActiveRepository();\n };\n\n $scope.exportFormats = FileTypes;\n $scope.deleting = {};\n $scope.showExportDDTooltip = true;\n $scope.page = 1;\n $scope.pageSize = 10;\n $scope.pageSizeOptions = [10, 20, 50, 100];\n $scope.displayGraphs = [];\n $scope.exportFilter = '';\n $scope.export = true;\n $scope.exportMultipleGraphs = false;\n $scope.repoExportFormat = {\n name: 'TriG',\n type: 'application/x-trig',\n extension: '.trig'\n };\n $scope.selectedGraphs = {\n exportGraphs: {}\n };\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n $scope.exportFilter = '';\n $scope.getGraphs();\n $scope.selectedAll = false;\n $timeout(function () {\n $scope.changePageSize(10);\n }, 100);\n });\n\n $scope.isShacl = function (iri) {\n return iri === \"http%3A%2F%2Frdf4j.org%2Fschema%2Frdf4j%23SHACLShapeGraph\";\n };\n\n /// <summary>Get Graphs that are part of the Active Repository.</summary>\n $scope.getGraphs = function () {\n if ($scope.getActiveRepository()) {\n $scope.loader = true;\n RDF4JRepositoriesRestService.getGraphs($scope.getActiveRepository()).success(function (data) {\n data.results.bindings.unshift({\n contextID: {\n type: 'default',\n value: 'import.default.graph'\n }\n });\n $scope.graphsByValue = {};\n Object.keys(data.results.bindings).forEach(function (key) {\n const binding = data.results.bindings[key];\n if (binding.contextID.type === 'bnode') {\n binding.contextID.value = '_:' + binding.contextID.value;\n } else if (binding.contextID.type === 'default') {\n binding.contextID.uri = encodeURIComponent('http://www.openrdf.org/schema/sesame#nil');\n binding.contextID.clearUri = 'DEFAULT';\n binding.contextID.exportUri = 'null';\n binding.contextID.longName = 'default graph';\n } else {\n binding.contextID.uri = encodeURIComponent(binding.contextID.value);\n binding.contextID.clearUri = 'GRAPH <' + binding.contextID.value + '>';\n binding.contextID.exportUri = encodeURIComponent('<' + binding.contextID.value + '>');\n binding.contextID.longName = 'named graph ' + binding.contextID.value;\n }\n $scope.graphsByValue[binding.contextID.value] = binding.contextID;\n });\n $scope.graphs = data.results.bindings;\n $scope.filteredGraphs = cloneDeep($scope.graphs);\n $scope.displayGraphs = $scope.filteredGraphs.slice($scope.pageSize * ($scope.page - 1), $scope.pageSize * $scope.page);\n $scope.loader = false;\n $scope.selectedGraphs.exportGraphs = {};\n $scope.matchedElements = $scope.graphs;\n }).error(function (data, status) {\n const msg = getError(data, status);\n if (msg === 'There is no active location!') {\n $repositories.setRepository('');\n toastr.error(msg, $translate.instant('common.error'));\n }\n $scope.loader = false;\n });\n } else {\n $scope.loader = false;\n }\n };\n\n $scope.onGraphSearch = function () {\n $scope.matchedElements = [];\n $scope.deselectAll();\n $scope.filterResults();\n };\n\n $scope.filterResults = function () {\n angular.forEach($scope.graphs, function (item) {\n if (item.contextID.value.indexOf($scope.exportFilter) !== -1) {\n $scope.matchedElements.push(item);\n }\n });\n };\n\n $scope.downloadExport = function (downloadUrl, format) {\n let url = downloadUrl + '&Accept=' + encodeURIComponent(format.type);\n const auth = localStorage.getItem('com.ontotext.graphdb.auth');\n if (auth) {\n url = url + '&authToken=' + encodeURIComponent(auth);\n }\n let win = window.open(url);\n $timeout(function () {\n if (win.document.location.href !== 'about:blank') {\n win.close();\n toastr.error('Could not export graph. Check GraphDB logs for detailed reason.');\n }\n }, 100);\n\n };\n\n /// <summary>Trigger the custom event for DD tooltip.</summary>\n $scope.openExportDDTooltip = function () {\n if ($scope.showExportDDTooltip) {\n $timeout(function () {\n $('#tooltipTarget').trigger('showExportDDTooltip');\n }, 0);\n $timeout(function () {\n $('#tooltipTarget').trigger('showExportDDTooltip');\n }, 3000);\n\n //Set to false so the tooltip shows only once\n $scope.showExportDDTooltip = false;\n\n }\n };\n\n /// <summary>Fill the hidden form and submit it to start download document.</summary>\n $scope.exportRepo = function (format, contextID) {\n if (format.type === 'application/rdf+xml' || format.type === 'text/plain' || format.type === 'text/turtle' || format.type === 'application/x-turtlestar' || format.type === 'text/rdf+n3') {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: decodeHTML($translate.instant('export.format.warning.msg')),\n warning: true\n }).result\n .then(function () {\n $scope.startDownload(format, contextID);\n });\n } else {\n $scope.startDownload(format, contextID);\n }\n };\n\n $scope.startDownload = function (format, contextID) {\n //If it's graph set the url for ?context=\n let downloadUrl;\n const repo = $repositories.getActiveRepositoryObject();\n if (contextID) {\n downloadUrl = `repositories/${repo.id}/statements?infer=false&context=${$scope.graphsByValue[contextID.value].exportUri}&location=${encodeURIComponent(repo.location)}`;\n } else {\n downloadUrl = `repositories/${repo.id}/statements?infer=false&location=${encodeURIComponent(repo.location)}`;\n }\n $scope.downloadExport(downloadUrl, format);\n };\n\n $scope.hasMultipleSelected = function () {\n if (_.isEmpty($scope.selectedGraphs.exportGraphs)) {\n return !_.isEmpty($scope.selectedGraphs.exportGraphs);\n } else {\n for (const index in $scope.selectedGraphs.exportGraphs) {\n if ($scope.selectedGraphs.exportGraphs[index] === true) {\n return true;\n }\n }\n return false;\n }\n };\n\n $scope.exportSelectedGraphs = function (format) {\n let contextStr = '';\n for (const index in $scope.selectedGraphs.exportGraphs) {\n if ($scope.selectedGraphs.exportGraphs[index]) {\n contextStr += 'context=' + $scope.graphsByValue[index].exportUri + '&';\n }\n }\n\n if (contextStr) {\n const startDownload = function () {\n contextStr = contextStr.substring(0, contextStr.length - 1);\n const downloadUrl = 'repositories/' + $scope.getActiveRepository() + '/statements?infer=false&' + contextStr;\n $scope.downloadExport(downloadUrl, format);\n };\n\n if (format.type === 'application/rdf+xml' || format.type === 'text/plain' || format.type === 'text/turtle' || format.type === 'application/x-turtlestar' || format.type === 'text/rdf+n3') {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: decodeHTML($translate.instant('export.format.warning.msg')),\n warning: true\n }).result\n .then(function () {\n startDownload();\n });\n } else {\n startDownload();\n }\n } else {\n ModalService.openSimpleModal({\n title: $translate.instant('export.multiple.graph'),\n message: $translate.instant('export.check.graphs.msg'),\n warning: true\n });\n }\n };\n\n $scope.$watch('exportFilter', function () {\n $scope.filteredGraphs = filterFilter($scope.graphs, $scope.exportFilter);\n if ($scope.getActiveRepository() && angular.element(document).find('.btn.btn-secondary.btn-sm.dropdown-toggle span').length) {\n const valueOfFilteredGraphsButton = angular.element(document).find('.btn.btn-secondary.btn-sm.dropdown-toggle span')[0].innerHTML.trim();\n let valueOfFilteredGraphs;\n if (valueOfFilteredGraphsButton === 'All') {\n valueOfFilteredGraphs = $scope.filteredGraphs.length;\n }\n if ($scope.filteredGraphs && $scope.filteredGraphs.length > $scope.pageSize && valueOfFilteredGraphsButton !== 'All') {\n valueOfFilteredGraphs = $scope.pageSize;\n }\n $scope.changePageSize(valueOfFilteredGraphs);\n $scope.changePagination();\n }\n });\n\n $scope.changePagination = function () {\n $scope.selectedAll = false;\n if (angular.isDefined($scope.filteredGraphs)) {\n $scope.displayGraphs = $scope.filteredGraphs.slice($scope.pageSize * ($scope.page - 1), $scope.pageSize * $scope.page);\n }\n };\n\n $scope.changePageSize = function (size) {\n $('.ot-graph-page-size').removeClass('active');\n $scope.page = 1;\n if (size) {\n $scope.pageSize = size;\n $scope.changePagination();\n }\n if ($scope.filteredGraphs && $scope.exportFilter !== '') {\n $scope.displayGraphs = $scope.filteredGraphs;\n }\n };\n\n $scope.checkAll = function () {\n $scope.selectedAll = $scope.selectedAll || false;\n\n angular.forEach($scope.displayGraphs, function (item) {\n if (item.contextID.uri) {\n $scope.selectedGraphs.exportGraphs[item.contextID.value] = $scope.selectedAll;\n }\n });\n };\n\n $scope.deselectAll = function () {\n $scope.selectedAll = false;\n angular.forEach($scope.displayGraphs, function (item) {\n if (item.contextID.uri) {\n $scope.selectedGraphs.exportGraphs[item.contextID.value] = false;\n }\n });\n };\n\n $scope.dropRepository = function () {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n $scope.deleting['*'] = true;\n\n ModalService.openSimpleModal({\n title: $translate.instant('export.confirm.clear.msg'),\n message: $translate.instant('export.warning.clear.repo.msg', {repo: $repositories.getActiveRepository()}),\n warning: true\n }).result\n .then(function () {\n $timeout(function () {\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), 'update=CLEAR ALL')\n .then(function () {\n $scope.deleting['*'] = false;\n toastr.success($translate.instant('export.cleared.repo', {repo: $repositories.getActiveRepository()}));\n $scope.getGraphs();\n }, function (err) {\n $scope.deleting['*'] = false;\n const errMsg = err.data;\n if (typeof errMsg == \"string\" && errMsg.indexOf(\"Clearing all statements in the \" +\n \"repository is incompatible with collecting history\") > -1) {\n toastr.error($translate.instant('export.clearing.statements.warning'));\n } else {\n toastr.error($translate.instant('export.cleared.repo.failed.msg', {repo: $repositories.getActiveRepository()}), err);\n }\n });\n }, 100);\n });\n };\n\n function dropGraph(ctx) {\n const longName = ctx.contextID.longName;\n $scope.deleting[ctx] = true;\n ModalService.openSimpleModal({\n title: $translate.instant('export.confirm.clear.graph'),\n message: $translate.instant('export.clear.graph.warning', {longName: longName}),\n warning: true\n }).result\n .then(function () {\n $timeout(function () {\n const data = `update=CLEAR ${ctx.contextID.clearUri}`;\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), data)\n .then(function () {\n $scope.deleting[ctx] = false;\n toastr.success($translate.instant('export.cleared.graph', {longName: longName}));\n $scope.getGraphs();\n $scope.exportFilter = '';\n $scope.filteredGraphs.length = 0;\n $scope.updateResults();\n $scope.changePageSize($scope.pageSize);\n }, function (err) {\n $scope.deleting[ctx] = false;\n toastr.error($translate.instant('export.clear.graph.msg', {longName: longName}), getError(err, err.status));\n });\n }, 100);\n }, function () {\n $scope.deleting[ctx] = false;\n });\n }\n\n function dropSelectedGraphs(ctx) {\n const selectedGraphsForDelete = [];\n angular.forEach($scope.selectedGraphs.exportGraphs, function (value, key) {\n if (value) {\n selectedGraphsForDelete.push(key);\n }\n });\n\n if (selectedGraphsForDelete.length > 0) {\n $scope.deleting[ctx] = true;\n ModalService.openSimpleModal({\n title: $translate.instant('export.confirm.clear.graph'),\n message: $translate.instant('export.warning.clear.graph.msg'),\n warning: true\n }).result.then(function () {\n $timeout(function () {\n let counterOfClearedGraphs = 0;\n angular.forEach(selectedGraphsForDelete, function (contextID) {\n const data = `update=CLEAR ${$scope.graphsByValue[contextID].clearUri}`;\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), data)\n .then(function () {\n $scope.loader = true;\n $scope.selectedGraphs.exportGraphs[contextID] = false;\n delete $scope.selectedGraphs.exportGraphs[contextID];\n counterOfClearedGraphs++;\n if (selectedGraphsForDelete.length === counterOfClearedGraphs) {\n $scope.selectedAll = false;\n $scope.exportFilter = '';\n $scope.filteredGraphs.length = 0;\n $scope.getGraphs();\n $scope.updateResults();\n $scope.changePageSize($scope.pageSize);\n toastr.success($translate.instant('export.cleared.graph.msg'));\n $scope.loader = false;\n }\n }, function (err) {\n const longName = $scope.graphsByValue[contextID].longName;\n toastr.error($translate.instant('export.clear.graph.msg', {longName: longName}), getError(err, err.status));\n $scope.selectedAll = false;\n });\n });\n }, 100);\n }, function () {\n $scope.deleting[ctx] = false;\n });\n }\n }\n\n $scope.dropContext = function (ctx) {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n if (angular.isDefined(ctx)) {\n dropGraph(ctx);\n } else {\n dropSelectedGraphs(ctx);\n }\n };\n }]);\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[39,134],{40:function(e,n){function t(e,n){return{showToastMessageWithDelay:function(t){return new Promise(r=>{e.success(n.instant(t)),setTimeout(r,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",t),t.$inject=["toastr","$translate"]},82:function(e,n,t){"use strict";t.r(n);t(40),t(5);function r(e,n,t,r,o,i,a,u,s,c,d,g,f,l,p){var w;e.page=1,e.totalPages=5,e.helpHidden=1===f.get(l.HIDE_GRAPH_CONFIG_HELP),e.toggleHelp=function(n){void 0===n&&(n=f.get(l.HIDE_GRAPH_CONFIG_HELP)),1!==n?(f.set(l.HIDE_GRAPH_CONFIG_HELP,1),e.helpHidden=!0):(f.set(l.HIDE_GRAPH_CONFIG_HELP,0),e.helpHidden=!1)},e.fixedVisualCallback=function(n,t){e.newConfig.startIRI=n,e.newConfig.startIRILabel=t,w=!0},e.isDefaultGraph=function(e){return"Minimal"===e.name||"Advanced"===e.name},e.isUserGraph=function(n){return!e.isDefaultGraph(n)},e.getSampleName=function(e,n){const t=e[n+"Description"];return t||(e.id?"Copy of "+e.name:e.name)};const y=c.configName;function m(e){r.warning(e)}function C(n){let t;return"query"===n.startMode&&1===e.page?t=n.startGraphQuery:2===e.page?t=n.expandQuery:3===e.page?t=n.resourceQuery:4===e.page?t=n.predicateLabelQuery:5===e.page&&(t=n.resourcePropertiesQuery),angular.isDefined(t)?t:""}function h(){function i(){e.getAutocompletePromise=s.checkAutocompleteStatus()}u.getGraphConfigSamples().success((function(n){e.samples=_.filter(n,(function(n){return!n.id||e.newConfig.id!==n.id||(e.revertConfig=n,!1)}))})).error((function(e){r.error(getError(e),p.instant("graphexplore.error.graph.configs"))})),e.createGraphConfig=function(){u.createGraphConfig(e.newConfig).success((async function(){await d.showToastMessageWithDelay("graphexplore.saved.new.config"),t.url("graphs-visualizations")})).error((function(e){r.error(getError(e),p.instant("graphexplore.error.could.not.create"))}))},e.updateGraphConfig=function(){u.updateGraphConfig(e.newConfig).success((async function(){await d.showToastMessageWithDelay("graphexplore.saved.config"),t.url("graphs-visualizations")})).error((function(e){r.error(getError(e),p.instant("graphexplore.error.could.not.save"))}))},e.$on("autocompleteStatus",(function(){i()})),i(),e.getNamespacesPromise=g.getNamespaces(e.getActiveRepository());const a=function(e,n,t,r,o,i){n?u.validateQuery(n,t,r,o,i).success((function(){e()})).error((function(e){m(getError(e))})):e()};function c(){f()&&e.$broadcast("addStartFixedNodeAutomatically",{startIRI:e.newConfig.startIRI})}function f(){return 1===e.page&&"node"===e.newConfig.startMode}e.validateCurrentPage=function(n){e.updateModel(),1===e.page?"node"!==e.newConfig.startMode||e.newConfig.startIRI?"query"!==e.newConfig.startMode||e.newConfig.startGraphQuery?"query"===e.newConfig.startMode?a(n,e.newConfig.startGraphQuery,"graph"):n():m(p.instant("graphexplore.provide.query")):m(p.instant("graphexplore.select.start.node")):2===e.page?a(n,e.newConfig.expandQuery,"construct",["node"]):3===e.page?a(n,e.newConfig.resourceQuery,"tuple",["node"],[],["type","label","comment","rank"]):4===e.page?a(n,e.newConfig.predicateLabelQuery,"tuple",["edge"],["label"]):5===e.page&&a(n,e.newConfig.resourcePropertiesQuery,"tuple",["node"],["property","value"])},e.goToPage=function(n){e.page!==n&&e.validateCurrentPage((function(){e.showEditor(),e.page=n,e.notoolbar=1!==e.page}))},e.goToPreviousPage=function(){e.page>1&&e.goToPage(e.page-1),f()&&(w=!1)},e.goToNextPage=function(){c(),("node"!==e.newConfig.startMode||w)&&e.goToPage(e.page+1)},e.saveGraphConfig=function(){c(),f()&&!w||(e.newConfig.startQueryIncludeInferred=e.currentQuery.inference,e.newConfig.startQuerySameAs=e.currentQuery.sameAs,e.validateCurrentPage((function(){e.newConfig.name?e.isUpdate?e.updateGraphConfig(e.newConfig):e.createGraphConfig(e.newConfig):m(p.instant("graphexplore.provide.config.name"))})))},e.updateModel=function(){const n=window.editor.getValue().trim();"query"===e.newConfig.startMode&&1===e.page?e.newConfig.startGraphQuery=n:2===e.page?e.newConfig.expandQuery=n:3===e.page?e.newConfig.resourceQuery=n:4===e.page?e.newConfig.predicateLabelQuery=n:5===e.page&&(e.newConfig.resourcePropertiesQuery=n)},e.setQuery=function(e){window.editor.setValue(e||" ")},e.updateDirty=function(){if(e.revertConfig){const n=C(e.revertConfig),t=window.editor.getValue().trim();e.queryEditorIsDirty=n!==t}},e.updateEditor=function(){n((function(){e.currentQuery.query=C(e.newConfig),o.isActiveRepoOntopType()&&(e.nocount=!0),e.currentQuery.inference=e.newConfig.startQueryIncludeInferred,e.currentQuery.sameAs=e.newConfig.startQuerySameAs,R(),S(e.currentQuery.id)}),100)},e.showEditor=function(){window.editor&&window.editor.xhr&&window.editor.xhr.abort(),e.viewMode="yasr"},e.showPreview=function(){e.currentQuery.outputType="table",e.runQuery()},e.revertEditor=function(){e.setQuery(C(e.revertConfig))},e.$watch("newConfig.startMode",(function(t){"query"===t&&n((function(){e.updateEditor()}),0)})),e.$watch("page",(function(t){("query"===e.newConfig.startMode||t>1)&&n((function(){e.showEditor(),e.updateEditor()}),0)}))}e.newConfig={startQueryIncludeInferred:!0,startQuerySameAs:!0},e.newConfig.startMode="search",e.isUpdate=!1,e.shared=!1,e.encodeQuery=function(e){return encodeURIComponent(e)},y?(e.isUpdate=!0,u.getConfig(y).success((function(n){e.newConfig=n,h()})).error((function(e){r.error(getError(e),p.instant("created.connector",{name:y}))}))):(e.isUpdate=!1,h());const b={id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:e.newConfig.startQueryIncludeInferred,sameAs:e.newConfig.startQuerySameAs};function Q(e){}function T(n,t,r){const o=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=n,n?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=t,e.extraMessage=r,o.addClass("hide")):(e.progressMessage="",e.extraMessage="",o.removeClass("hide")),null===e.$$phase&&e.$apply()}function M(t){function r(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0}const o=t;if(e.orientationViewMode){if("yasr"===e.viewMode){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px"}else e.noPadding={},document.querySelector(".CodeMirror-wrap").style.height="";document.getElementById("yasr").style.minHeight=""}else if(e.noPadding={paddingRight:15,paddingLeft:0},window.editor&&document.querySelector(".CodeMirror-wrap")){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px",document.getElementById("yasr").style.minHeight=e+"px"}else{let t;t=n(o?function(){e.fixSizesOnHorizontalViewModeSwitch(o)}:e.fixSizesOnHorizontalViewModeSwitch,100),e.$on("$destroy",(function(){n.cancel(t)}))}window.yasr&&window.yasr.container&&n((function(){window.yasr.container.resize()}),100)}function v(){M(!0)}function S(e){n((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function x(n,t){e.executedQueryTab=e.currentQuery,t&&"SELECT"!==window.editor.getQueryType()&&"CONSTRUCT"!==window.editor.getQueryType()?r.warning(p.instant("query.editor.warning.msg")):"update"!==window.editor.getQueryMode()?(e.explainRequested=t,e.queryIsRunning||(n?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.viewMode="editor",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch(),T(!0,p.instant("evaluating.query.msg")),window.editor.query())):r.warning(p.instant("cannot.execute.update.error"))}function E(){T(!0,p.instant("common.refreshing.namespaces"),p.instant("common.extra.message")),g.getRepositoryNamespaces().success((function(n){const t={};n.results.bindings.forEach((function(e){t[e.prefix.value]=e.namespace.value})),e.namespaces=t})).error((function(n){e.repositoryError=getError(n)})).finally((function(){T(!1)}))}function q(){i.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){let n=getError(e);return r.error(n,p.instant("common.add.known.prefixes.error")),!0}))}function I(n){let t=void 0;return angular.forEach(e.tabsData,(function(e){if(e.name===n.name&&e.query===n.body)return t=e.id,e})),t}function R(){e.tabsData=[e.currentQuery];let t=e.currentQuery;null==e.currentQuery.query||""===e.currentQuery.query?window.editor.setValue(" "):window.editor.setValue(e.currentQuery.query),n((function(){e.currentTabConfig={},e.currentTabConfig.queryType=t.queryType,e.currentTabConfig.resultsCount=t.resultsCount,e.currentTabConfig.offset=t.offset,e.currentTabConfig.allResultsCount=t.allResultsCount,e.currentTabConfig.page=t.page,e.currentTabConfig.pageSize=t.pageSize,e.currentTabConfig.timeFinished=t.timeFinished,e.currentTabConfig.timeTook=t.timeTook,e.currentTabConfig.sizeDelta=t.sizeDelta,e.$apply()}),0),$("#yasr").css("padding","0")}function P(e){return $(e).attr("data-id")}e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:100,page:1,allResultsCount:0,resultsCount:0}},e.queryExists=!1,e.resetCurrentTabConfig(),e.tabsData=e.tabs=[b],e.saveTab=function(n){const t=function(n){for(let t=0;t<e.tabsData.length;t++){if(e.tabsData[t].id===n)return t}}(n);if(void 0===t)return{};const r=e.tabsData[t];return e.saveQueryToLocal(r),r},e.loadTab=R,e.addNewTab=function(e,n,t){},e.runQuery=x,e.getNamespaces=E,e.changePagination=function(){x(!0,e.explainRequested)},e.toggleSampleQueries=function(){},e.addKnownPrefixes=q,e.getExistingTabId=I,e.querySelected=function(n){const t=I(n);e.toggleSampleQueries(),angular.isDefined(t)?S(t):e.addNewTab(null,n.name,n.body)},e.saveQueryToLocal=Q,e.setLoader=T,e.getLoaderMessage=function(){const n=(Date.now()-e.queryStartTime)/1e3,t=e.getHumanReadableSeconds(n);let r;r=e.progressMessage?e.progressMessage+"... "+t:p.instant("common.running.operation",{timeHuman:t});e.extraMessage&&n>10&&(r+="\n"+e.extraMessage);return r},e.fixSizesOnHorizontalViewModeSwitch=M,e.changeViewMode=function(t){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,M(),$(".dataTables_filter").remove(),$(".resultsTable").remove(),n((function(){R(),S(t)}),100)},e.showHideEditor=v,e.focusQueryEditor=function(){angular.element(document).find(".editable-input").is(":focus")||angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.orientationViewMode=!0,e.orientationViewMode||v(),e.getActiveRepository()&&E(),e.$on("$destroy",(function(){window.editor=null,window.yasr=null})),$("textarea").on("paste",(function(){n((function(){q()}),0)})),e.$watchCollection("[currentQuery.inference, currentQuery.sameAs]",(function(){e.currentQuery})),e.$on("tabAction",(function(n,t){t.relatedTarget&&e.saveTab(P(t.relatedTarget)),e.loadTab(P(t.target))})),e.$on("deleteAllexeptSelected",(function(n,t){e.tabsData=t,e.tabs=t})),e.currentQuery=angular.copy(b),e.showSampleQueries=!1,e.savedQuery={},e.sampleQueries={},e.getResultsDescription=function(){},e.getUpdateDescription=function(){},e.getStaleWarningMessage=function(){}}angular.module("graphdb.framework.graphexplore.controllers.graphviz.config",["graphdb.framework.utils.notifications","graphdb.framework.utils.localstorageadapter"]).controller("GraphConfigCtrl",r),r.$inject=["$scope","$timeout","$location","toastr","$repositories","SparqlRestService","$filter","GraphConfigRestService","AutocompleteRestService","$routeParams","Notifications","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys","$translate"]}}]);
2
- //# sourceMappingURL=39.0eebc4b972cff879c1c9.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[39,134],{40:function(e,n){function t(e,n){return{showToastMessageWithDelay:function(t){return new Promise(r=>{e.success(n.instant(t)),setTimeout(r,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",t),t.$inject=["toastr","$translate"]},83:function(e,n,t){"use strict";t.r(n);t(40),t(5);function r(e,n,t,r,o,i,a,u,s,c,d,g,f,l,p){var w;e.page=1,e.totalPages=5,e.helpHidden=1===f.get(l.HIDE_GRAPH_CONFIG_HELP),e.toggleHelp=function(n){void 0===n&&(n=f.get(l.HIDE_GRAPH_CONFIG_HELP)),1!==n?(f.set(l.HIDE_GRAPH_CONFIG_HELP,1),e.helpHidden=!0):(f.set(l.HIDE_GRAPH_CONFIG_HELP,0),e.helpHidden=!1)},e.fixedVisualCallback=function(n,t){e.newConfig.startIRI=n,e.newConfig.startIRILabel=t,w=!0},e.isDefaultGraph=function(e){return"Minimal"===e.name||"Advanced"===e.name},e.isUserGraph=function(n){return!e.isDefaultGraph(n)},e.getSampleName=function(e,n){const t=e[n+"Description"];return t||(e.id?"Copy of "+e.name:e.name)};const y=c.configName;function m(e){r.warning(e)}function C(n){let t;return"query"===n.startMode&&1===e.page?t=n.startGraphQuery:2===e.page?t=n.expandQuery:3===e.page?t=n.resourceQuery:4===e.page?t=n.predicateLabelQuery:5===e.page&&(t=n.resourcePropertiesQuery),angular.isDefined(t)?t:""}function h(){function i(){e.getAutocompletePromise=s.checkAutocompleteStatus()}u.getGraphConfigSamples().success((function(n){e.samples=_.filter(n,(function(n){return!n.id||e.newConfig.id!==n.id||(e.revertConfig=n,!1)}))})).error((function(e){r.error(getError(e),p.instant("graphexplore.error.graph.configs"))})),e.createGraphConfig=function(){u.createGraphConfig(e.newConfig).success((async function(){await d.showToastMessageWithDelay("graphexplore.saved.new.config"),t.url("graphs-visualizations")})).error((function(e){r.error(getError(e),p.instant("graphexplore.error.could.not.create"))}))},e.updateGraphConfig=function(){u.updateGraphConfig(e.newConfig).success((async function(){await d.showToastMessageWithDelay("graphexplore.saved.config"),t.url("graphs-visualizations")})).error((function(e){r.error(getError(e),p.instant("graphexplore.error.could.not.save"))}))},e.$on("autocompleteStatus",(function(){i()})),i(),e.getNamespacesPromise=g.getNamespaces(e.getActiveRepository());const a=function(e,n,t,r,o,i){n?u.validateQuery(n,t,r,o,i).success((function(){e()})).error((function(e){m(getError(e))})):e()};function c(){f()&&e.$broadcast("addStartFixedNodeAutomatically",{startIRI:e.newConfig.startIRI})}function f(){return 1===e.page&&"node"===e.newConfig.startMode}e.validateCurrentPage=function(n){e.updateModel(),1===e.page?"node"!==e.newConfig.startMode||e.newConfig.startIRI?"query"!==e.newConfig.startMode||e.newConfig.startGraphQuery?"query"===e.newConfig.startMode?a(n,e.newConfig.startGraphQuery,"graph"):n():m(p.instant("graphexplore.provide.query")):m(p.instant("graphexplore.select.start.node")):2===e.page?a(n,e.newConfig.expandQuery,"construct",["node"]):3===e.page?a(n,e.newConfig.resourceQuery,"tuple",["node"],[],["type","label","comment","rank"]):4===e.page?a(n,e.newConfig.predicateLabelQuery,"tuple",["edge"],["label"]):5===e.page&&a(n,e.newConfig.resourcePropertiesQuery,"tuple",["node"],["property","value"])},e.goToPage=function(n){e.page!==n&&e.validateCurrentPage((function(){e.showEditor(),e.page=n,e.notoolbar=1!==e.page}))},e.goToPreviousPage=function(){e.page>1&&e.goToPage(e.page-1),f()&&(w=!1)},e.goToNextPage=function(){c(),("node"!==e.newConfig.startMode||w)&&e.goToPage(e.page+1)},e.saveGraphConfig=function(){c(),f()&&!w||(e.newConfig.startQueryIncludeInferred=e.currentQuery.inference,e.newConfig.startQuerySameAs=e.currentQuery.sameAs,e.validateCurrentPage((function(){e.newConfig.name?e.isUpdate?e.updateGraphConfig(e.newConfig):e.createGraphConfig(e.newConfig):m(p.instant("graphexplore.provide.config.name"))})))},e.updateModel=function(){const n=window.editor.getValue().trim();"query"===e.newConfig.startMode&&1===e.page?e.newConfig.startGraphQuery=n:2===e.page?e.newConfig.expandQuery=n:3===e.page?e.newConfig.resourceQuery=n:4===e.page?e.newConfig.predicateLabelQuery=n:5===e.page&&(e.newConfig.resourcePropertiesQuery=n)},e.setQuery=function(e){window.editor.setValue(e||" ")},e.updateDirty=function(){if(e.revertConfig){const n=C(e.revertConfig),t=window.editor.getValue().trim();e.queryEditorIsDirty=n!==t}},e.updateEditor=function(){n((function(){e.currentQuery.query=C(e.newConfig),o.isActiveRepoOntopType()&&(e.nocount=!0),e.currentQuery.inference=e.newConfig.startQueryIncludeInferred,e.currentQuery.sameAs=e.newConfig.startQuerySameAs,R(),S(e.currentQuery.id)}),100)},e.showEditor=function(){window.editor&&window.editor.xhr&&window.editor.xhr.abort(),e.viewMode="yasr"},e.showPreview=function(){e.currentQuery.outputType="table",e.runQuery()},e.revertEditor=function(){e.setQuery(C(e.revertConfig))},e.$watch("newConfig.startMode",(function(t){"query"===t&&n((function(){e.updateEditor()}),0)})),e.$watch("page",(function(t){("query"===e.newConfig.startMode||t>1)&&n((function(){e.showEditor(),e.updateEditor()}),0)}))}e.newConfig={startQueryIncludeInferred:!0,startQuerySameAs:!0},e.newConfig.startMode="search",e.isUpdate=!1,e.shared=!1,e.encodeQuery=function(e){return encodeURIComponent(e)},y?(e.isUpdate=!0,u.getConfig(y).success((function(n){e.newConfig=n,h()})).error((function(e){r.error(getError(e),p.instant("created.connector",{name:y}))}))):(e.isUpdate=!1,h());const b={id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:e.newConfig.startQueryIncludeInferred,sameAs:e.newConfig.startQuerySameAs};function Q(e){}function T(n,t,r){const o=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=n,n?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=t,e.extraMessage=r,o.addClass("hide")):(e.progressMessage="",e.extraMessage="",o.removeClass("hide")),null===e.$$phase&&e.$apply()}function M(t){function r(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0}const o=t;if(e.orientationViewMode){if("yasr"===e.viewMode){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px"}else e.noPadding={},document.querySelector(".CodeMirror-wrap").style.height="";document.getElementById("yasr").style.minHeight=""}else if(e.noPadding={paddingRight:15,paddingLeft:0},window.editor&&document.querySelector(".CodeMirror-wrap")){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px",document.getElementById("yasr").style.minHeight=e+"px"}else{let t;t=n(o?function(){e.fixSizesOnHorizontalViewModeSwitch(o)}:e.fixSizesOnHorizontalViewModeSwitch,100),e.$on("$destroy",(function(){n.cancel(t)}))}window.yasr&&window.yasr.container&&n((function(){window.yasr.container.resize()}),100)}function v(){M(!0)}function S(e){n((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function x(n,t){e.executedQueryTab=e.currentQuery,t&&"SELECT"!==window.editor.getQueryType()&&"CONSTRUCT"!==window.editor.getQueryType()?r.warning(p.instant("query.editor.warning.msg")):"update"!==window.editor.getQueryMode()?(e.explainRequested=t,e.queryIsRunning||(n?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.viewMode="editor",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch(),T(!0,p.instant("evaluating.query.msg")),window.editor.query())):r.warning(p.instant("cannot.execute.update.error"))}function E(){T(!0,p.instant("common.refreshing.namespaces"),p.instant("common.extra.message")),g.getRepositoryNamespaces().success((function(n){const t={};n.results.bindings.forEach((function(e){t[e.prefix.value]=e.namespace.value})),e.namespaces=t})).error((function(n){e.repositoryError=getError(n)})).finally((function(){T(!1)}))}function q(){i.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){let n=getError(e);return r.error(n,p.instant("common.add.known.prefixes.error")),!0}))}function I(n){let t=void 0;return angular.forEach(e.tabsData,(function(e){if(e.name===n.name&&e.query===n.body)return t=e.id,e})),t}function R(){e.tabsData=[e.currentQuery];let t=e.currentQuery;null==e.currentQuery.query||""===e.currentQuery.query?window.editor.setValue(" "):window.editor.setValue(e.currentQuery.query),n((function(){e.currentTabConfig={},e.currentTabConfig.queryType=t.queryType,e.currentTabConfig.resultsCount=t.resultsCount,e.currentTabConfig.offset=t.offset,e.currentTabConfig.allResultsCount=t.allResultsCount,e.currentTabConfig.page=t.page,e.currentTabConfig.pageSize=t.pageSize,e.currentTabConfig.timeFinished=t.timeFinished,e.currentTabConfig.timeTook=t.timeTook,e.currentTabConfig.sizeDelta=t.sizeDelta,e.$apply()}),0),$("#yasr").css("padding","0")}function P(e){return $(e).attr("data-id")}e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:100,page:1,allResultsCount:0,resultsCount:0}},e.queryExists=!1,e.resetCurrentTabConfig(),e.tabsData=e.tabs=[b],e.saveTab=function(n){const t=function(n){for(let t=0;t<e.tabsData.length;t++){if(e.tabsData[t].id===n)return t}}(n);if(void 0===t)return{};const r=e.tabsData[t];return e.saveQueryToLocal(r),r},e.loadTab=R,e.addNewTab=function(e,n,t){},e.runQuery=x,e.getNamespaces=E,e.changePagination=function(){x(!0,e.explainRequested)},e.toggleSampleQueries=function(){},e.addKnownPrefixes=q,e.getExistingTabId=I,e.querySelected=function(n){const t=I(n);e.toggleSampleQueries(),angular.isDefined(t)?S(t):e.addNewTab(null,n.name,n.body)},e.saveQueryToLocal=Q,e.setLoader=T,e.getLoaderMessage=function(){const n=(Date.now()-e.queryStartTime)/1e3,t=e.getHumanReadableSeconds(n);let r;r=e.progressMessage?e.progressMessage+"... "+t:p.instant("common.running.operation",{timeHuman:t});e.extraMessage&&n>10&&(r+="\n"+e.extraMessage);return r},e.fixSizesOnHorizontalViewModeSwitch=M,e.changeViewMode=function(t){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,M(),$(".dataTables_filter").remove(),$(".resultsTable").remove(),n((function(){R(),S(t)}),100)},e.showHideEditor=v,e.focusQueryEditor=function(){angular.element(document).find(".editable-input").is(":focus")||angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.orientationViewMode=!0,e.orientationViewMode||v(),e.getActiveRepository()&&E(),e.$on("$destroy",(function(){window.editor=null,window.yasr=null})),$("textarea").on("paste",(function(){n((function(){q()}),0)})),e.$watchCollection("[currentQuery.inference, currentQuery.sameAs]",(function(){e.currentQuery})),e.$on("tabAction",(function(n,t){t.relatedTarget&&e.saveTab(P(t.relatedTarget)),e.loadTab(P(t.target))})),e.$on("deleteAllexeptSelected",(function(n,t){e.tabsData=t,e.tabs=t})),e.currentQuery=angular.copy(b),e.showSampleQueries=!1,e.savedQuery={},e.sampleQueries={},e.getResultsDescription=function(){},e.getUpdateDescription=function(){},e.getStaleWarningMessage=function(){}}angular.module("graphdb.framework.graphexplore.controllers.graphviz.config",["graphdb.framework.utils.notifications","graphdb.framework.utils.localstorageadapter"]).controller("GraphConfigCtrl",r),r.$inject=["$scope","$timeout","$location","toastr","$repositories","SparqlRestService","$filter","GraphConfigRestService","AutocompleteRestService","$routeParams","Notifications","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys","$translate"]}}]);
2
+ //# sourceMappingURL=39.8f8ae5c232bd2f023e7c.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/utils/notifications.js","webpack:///./src/js/angular/graphexplore/controllers/graphs-config.controller.js"],"names":["Notifications","toastr","$translate","showToastMessageWithDelay","message","Promise","r","success","instant","setTimeout","angular","module","factory","$inject","GraphConfigCtrl","$scope","$timeout","$location","$repositories","SparqlRestService","$filter","GraphConfigRestService","AutocompleteRestService","$routeParams","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys","selectedFixedNodeChanged","page","totalPages","helpHidden","get","HIDE_GRAPH_CONFIG_HELP","toggleHelp","value","undefined","set","fixedVisualCallback","uri","label","newConfig","startIRI","startIRILabel","isDefaultGraph","sample","name","isUserGraph","getSampleName","property","extra","id","configName","showInvalidMsg","warning","getQueryForCurrentPage","config","query","startMode","startGraphQuery","expandQuery","resourceQuery","predicateLabelQuery","resourcePropertiesQuery","isDefined","initForConfig","checkAutocompleteStatus","getAutocompletePromise","getGraphConfigSamples","data","samples","_","filter","s","revertConfig","error","getError","createGraphConfig","async","url","updateGraphConfig","$on","getNamespacesPromise","getNamespaces","getActiveRepository","validateQueryWithCallback","successCallback","queryType","params","all","oneOf","validateQuery","broadcastAddStartFixedNodeEvent","checkPageAndMode","$broadcast","validateCurrentPage","updateModel","goToPage","nextPage","showEditor","notoolbar","goToPreviousPage","goToNextPage","saveGraphConfig","startQueryIncludeInferred","currentQuery","inference","startQuerySameAs","sameAs","isUpdate","window","editor","getValue","trim","setQuery","setValue","updateDirty","q1","q2","queryEditorIsDirty","updateEditor","isActiveRepoOntopType","nocount","loadTab","selectTab","xhr","abort","viewMode","showPreview","outputType","runQuery","revertEditor","$watch","shared","encodeQuery","encodeURIComponent","getConfig","defaultTabConfig","saveQueryToLocal","currentQueryTab","setLoader","isRunning","progressMessage","extraMessage","yasrInnerContainer","element","document","getElementById","queryIsRunning","queryStartTime","Date","now","countTimeouted","addClass","removeClass","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalViewParam","visibleWindowHeight","innerHeight","documentElement","clientHeight","body","verticalView","orientationViewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","timer","cancel","yasr","container","resize","showHideEditor","$","tab","changePage","explain","executedQueryTab","getQueryType","getQueryMode","explainRequested","currentTabConfig","resultsCount","resetCurrentTabConfig","getRepositoryNamespaces","usedPrefixes","results","bindings","forEach","e","prefix","namespace","namespaces","repositoryError","finally","addKnownPrefixes","JSON","stringify","msg","getExistingTabId","existingTabId","tabsData","item","offset","allResultsCount","pageSize","timeFinished","timeTook","sizeDelta","css","getQueryID","attr","queryExists","tabs","saveTab","idx","i","length","findTabIndexByID","addNewTab","callback","tabName","savedQuery","changePagination","toggleSampleQueries","querySelected","tabId","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","tabID","remove","focusQueryEditor","find","is","focus","on","$watchCollection","tabEvent","relatedTarget","target","copy","showSampleQueries","sampleQueries","getResultsDescription","getUpdateDescription","getStaleWarningMessage","controller"],"mappings":"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","file":"39.0eebc4b972cff879c1c9.bundle.js","sourcesContent":["angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr', '$translate'];\n\nfunction Notifications(toastr, $translate) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success($translate.instant(message));\n setTimeout(r, 200);\n });\n }\n}\n","import 'angular/utils/notifications';\nimport 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.graphexplore.controllers.graphviz.config', [\n 'graphdb.framework.utils.notifications',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .controller('GraphConfigCtrl', GraphConfigCtrl);\n\nGraphConfigCtrl.$inject = ['$scope', '$timeout', '$location', 'toastr', '$repositories', 'SparqlRestService', '$filter', 'GraphConfigRestService', 'AutocompleteRestService', '$routeParams', 'Notifications', 'RDF4JRepositoriesRestService', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction GraphConfigCtrl($scope, $timeout, $location, toastr, $repositories, SparqlRestService, $filter, GraphConfigRestService, AutocompleteRestService, $routeParams, Notifications, RDF4JRepositoriesRestService, LocalStorageAdapter, LSKeys, $translate) {\n\n $scope.page = 1;\n $scope.totalPages = 5;\n\n $scope.helpHidden = LocalStorageAdapter.get(LSKeys.HIDE_GRAPH_CONFIG_HELP) === 1;\n\n $scope.toggleHelp = function (value) {\n if (value === undefined) {\n value = LocalStorageAdapter.get(LSKeys.HIDE_GRAPH_CONFIG_HELP);\n }\n if (value !== 1) {\n LocalStorageAdapter.set(LSKeys.HIDE_GRAPH_CONFIG_HELP, 1);\n $scope.helpHidden = true;\n } else {\n LocalStorageAdapter.set(LSKeys.HIDE_GRAPH_CONFIG_HELP, 0);\n $scope.helpHidden = false;\n }\n };\n\n var selectedFixedNodeChanged;\n $scope.fixedVisualCallback = function (uri, label) {\n $scope.newConfig.startIRI = uri;\n $scope.newConfig.startIRILabel = label;\n selectedFixedNodeChanged = true;\n };\n\n $scope.isDefaultGraph = function (sample) {\n return (sample.name === 'Minimal' || sample.name === 'Advanced');\n };\n\n $scope.isUserGraph = function (sample) {\n return !$scope.isDefaultGraph(sample);\n };\n\n $scope.getSampleName = function (sample, property) {\n const extra = sample[property + 'Description'];\n if (extra) {\n // Sample has description, use it\n return extra;\n } else {\n // Sample is a copy of existing config, prepend Copy of to name\n return sample.id ? 'Copy of ' + sample.name : sample.name;\n }\n };\n\n const getGraphConfigSamples = function () {\n GraphConfigRestService.getGraphConfigSamples()\n .success(function (data) {\n $scope.samples = _.filter(data, function (s) {\n // Skip the currently edited config from samples and store it into a revert variable\n if (!s.id || $scope.newConfig.id !== s.id) {\n return true;\n } else {\n $scope.revertConfig = s;\n return false;\n }\n });\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.graph.configs'));\n });\n };\n\n const configName = $routeParams.configName;\n $scope.newConfig = {startQueryIncludeInferred: true, startQuerySameAs: true};\n $scope.newConfig.startMode = 'search';\n $scope.isUpdate = false;\n $scope.shared = false;\n\n $scope.encodeQuery = function (query) {\n return encodeURIComponent(query);\n };\n\n function showInvalidMsg(message) {\n toastr.warning(message);\n }\n\n if (configName) {\n $scope.isUpdate = true;\n GraphConfigRestService.getConfig(configName)\n .success(function (data) {\n $scope.newConfig = data;\n initForConfig();\n })\n .error(function (data) {\n toastr.error(getError(data), $translate.instant('created.connector', {name: configName}));\n });\n } else {\n $scope.isUpdate = false;\n initForConfig();\n }\n\n function getQueryForCurrentPage(config) {\n let query;\n\n if (config.startMode === 'query' && $scope.page === 1) {\n query = config.startGraphQuery;\n } else if ($scope.page === 2) {\n query = config.expandQuery;\n } else if ($scope.page === 3) {\n query = config.resourceQuery;\n } else if ($scope.page === 4) {\n query = config.predicateLabelQuery;\n } else if ($scope.page === 5) {\n query = config.resourcePropertiesQuery;\n }\n\n return angular.isDefined(query) ? query : '';\n }\n\n function initForConfig() {\n getGraphConfigSamples();\n $scope.createGraphConfig = function () {\n GraphConfigRestService.createGraphConfig($scope.newConfig)\n .success(async function () {\n await Notifications.showToastMessageWithDelay('graphexplore.saved.new.config');\n $location.url('graphs-visualizations');\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.could.not.create'));\n });\n };\n\n $scope.updateGraphConfig = function () {\n GraphConfigRestService.updateGraphConfig($scope.newConfig)\n .success(async function () {\n await Notifications.showToastMessageWithDelay('graphexplore.saved.config');\n $location.url('graphs-visualizations');\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.could.not.save'));\n });\n };\n\n function checkAutocompleteStatus() {\n $scope.getAutocompletePromise = AutocompleteRestService.checkAutocompleteStatus();\n }\n\n $scope.$on('autocompleteStatus', function() {\n checkAutocompleteStatus();\n });\n\n checkAutocompleteStatus();\n $scope.getNamespacesPromise = RDF4JRepositoriesRestService.getNamespaces($scope.getActiveRepository());\n\n const validateQueryWithCallback = function (successCallback, query, queryType, params, all, oneOf) {\n if (!query) {\n successCallback();\n } else {\n GraphConfigRestService.validateQuery(query, queryType, params, all, oneOf)\n .success(function () {\n successCallback();\n }).error(function (data) {\n showInvalidMsg(getError(data));\n });\n }\n };\n\n $scope.validateCurrentPage = function (successCallback) {\n $scope.updateModel();\n\n if ($scope.page === 1) {\n if ($scope.newConfig.startMode === 'node' && !$scope.newConfig.startIRI) {\n showInvalidMsg($translate.instant('graphexplore.select.start.node'));\n } else if ($scope.newConfig.startMode === 'query' && !$scope.newConfig.startGraphQuery) {\n showInvalidMsg($translate.instant('graphexplore.provide.query'));\n } else if ($scope.newConfig.startMode === 'query') {\n validateQueryWithCallback(successCallback, $scope.newConfig.startGraphQuery, 'graph')\n } else {\n successCallback();\n }\n } else if ($scope.page === 2) {\n validateQueryWithCallback(successCallback, $scope.newConfig.expandQuery, 'construct', ['node'])\n } else if ($scope.page === 3) {\n validateQueryWithCallback(successCallback, $scope.newConfig.resourceQuery, 'tuple', ['node'], [], ['type', 'label', 'comment', 'rank']);\n } else if ($scope.page === 4) {\n validateQueryWithCallback(successCallback, $scope.newConfig.predicateLabelQuery, 'tuple', ['edge'], ['label']);\n } else if ($scope.page === 5) {\n validateQueryWithCallback(successCallback, $scope.newConfig.resourcePropertiesQuery, 'tuple', ['node'], ['property', 'value']);\n }\n };\n\n $scope.goToPage = function (nextPage) {\n if ($scope.page === nextPage) {\n // already there\n return;\n }\n\n $scope.validateCurrentPage(function () {\n $scope.showEditor();\n $scope.page = nextPage;\n $scope.notoolbar = $scope.page !== 1;\n });\n };\n\n $scope.goToPreviousPage = function () {\n if ($scope.page > 1) {\n $scope.goToPage($scope.page - 1);\n }\n\n if (checkPageAndMode()) {\n selectedFixedNodeChanged = false;\n }\n };\n\n $scope.goToNextPage = function () {\n broadcastAddStartFixedNodeEvent();\n if ($scope.newConfig.startMode !== 'node' || selectedFixedNodeChanged) {\n $scope.goToPage($scope.page + 1);\n }\n };\n\n function broadcastAddStartFixedNodeEvent() {\n if (checkPageAndMode()) {\n $scope.$broadcast('addStartFixedNodeAutomatically', {startIRI: $scope.newConfig.startIRI});\n }\n }\n\n function checkPageAndMode() {\n return $scope.page === 1 && $scope.newConfig.startMode === 'node';\n }\n\n $scope.saveGraphConfig = function () {\n broadcastAddStartFixedNodeEvent();\n\n if (checkPageAndMode() && !selectedFixedNodeChanged) {\n return;\n }\n\n $scope.newConfig.startQueryIncludeInferred = $scope.currentQuery.inference;\n $scope.newConfig.startQuerySameAs = $scope.currentQuery.sameAs;\n\n $scope.validateCurrentPage(function () {\n if (!$scope.newConfig.name) {\n showInvalidMsg($translate.instant('graphexplore.provide.config.name'));\n return;\n }\n $scope.isUpdate ? $scope.updateGraphConfig($scope.newConfig) : $scope.createGraphConfig($scope.newConfig);\n });\n };\n\n $scope.updateModel = function () {\n const query = window.editor.getValue().trim();\n if ($scope.newConfig.startMode === 'query' && $scope.page === 1) {\n $scope.newConfig.startGraphQuery = query;\n } else if ($scope.page === 2) {\n $scope.newConfig.expandQuery = query;\n } else if ($scope.page === 3) {\n $scope.newConfig.resourceQuery = query;\n } else if ($scope.page === 4) {\n $scope.newConfig.predicateLabelQuery = query;\n } else if ($scope.page === 5) {\n $scope.newConfig.resourcePropertiesQuery = query;\n }\n };\n\n // Called when user clicks on a sample query\n $scope.setQuery = function (query) {\n // Hack for YASQE bug\n window.editor.setValue(query ? query : ' ');\n };\n\n $scope.updateDirty = function () {\n if ($scope.revertConfig) {\n const q1 = getQueryForCurrentPage($scope.revertConfig);\n const q2 = window.editor.getValue().trim();\n $scope.queryEditorIsDirty = q1 !== q2;\n }\n };\n\n // Updates the position of the query editor to match the current div placeholder\n // and sets the editor's query to the relevant query from the model.\n $scope.updateEditor = function () {\n $timeout(function () {\n $scope.currentQuery.query = getQueryForCurrentPage($scope.newConfig);\n // // Check for ontop repository and override nocount property (it's default value is false)\n if ($repositories.isActiveRepoOntopType()) {\n $scope.nocount = true;\n }\n $scope.currentQuery.inference = $scope.newConfig.startQueryIncludeInferred;\n $scope.currentQuery.sameAs = $scope.newConfig.startQuerySameAs;\n loadTab();\n selectTab($scope.currentQuery.id);\n }, 100);\n\n };\n\n $scope.showEditor = function () {\n if (window.editor && window.editor.xhr) {\n window.editor.xhr.abort();\n }\n $scope.viewMode = 'yasr';\n };\n\n $scope.showPreview = function () {\n // For some reason YASR gets confused and sets this to rawResponse\n // if we execute a CONSTRUCT and then a SELECT. This makes sure it's always table.\n $scope.currentQuery.outputType = 'table';\n $scope.runQuery();\n };\n\n $scope.revertEditor = function () {\n $scope.setQuery(getQueryForCurrentPage($scope.revertConfig));\n };\n\n // Trigger for showing the editor and moving it to the right position\n $scope.$watch('newConfig.startMode', function (value) {\n if (value === 'query') {\n $timeout(function () {\n $scope.updateEditor();\n }, 0);\n }\n });\n\n // Trigger for showing the editor and moving it to the right position\n $scope.$watch('page', function (value) {\n if ($scope.newConfig.startMode === 'query' || value > 1) {\n $timeout(function () {\n $scope.showEditor();\n $scope.updateEditor();\n }, 0);\n }\n });\n }\n\n // DOWN HERE WE KEEP EVERYTHING PURELY QUERY EDITOR (MOSTLY BORROWED FROM query-editor.controller.js)\n // But Why? Can't we reuse it instead of borrow?\n\n const defaultTabConfig = {\n id: '1',\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: $scope.newConfig.startQueryIncludeInferred,\n sameAs: $scope.newConfig.startQuerySameAs\n };\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 100, // page limit 100 as this is only used for preview\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = true;\n\n // start of repository actions\n\n function saveQueryToLocal(currentQueryTab) {\n }\n\n function setLoader(isRunning, progressMessage, extraMessage) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n yasrInnerContainer.addClass('hide');\n } else {\n $scope.progressMessage = '';\n $scope.extraMessage = '';\n yasrInnerContainer.removeClass('hide');\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n const timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n let message;\n\n if ($scope.progressMessage) {\n message = $scope.progressMessage + '... ' + timeHuman;\n } else {\n message = $translate.instant('common.running.operation', {timeHuman: timeHuman});\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += '\\n' + $scope.extraMessage;\n }\n\n return message;\n }\n\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalViewParam) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n const codemirrorWrapperSelector = '.CodeMirror-wrap';\n const verticalView = verticalViewParam;\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector(codemirrorWrapperSelector)) {\n let newHeight = visibleWindowHeight() - (document.querySelector(codemirrorWrapperSelector).getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector(codemirrorWrapperSelector).style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView)\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector(codemirrorWrapperSelector).getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector(codemirrorWrapperSelector).style.height = newHeight + 'px';\n } else {\n $scope.noPadding = {};\n document.querySelector(codemirrorWrapperSelector).style.height = '';\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode(tabID) {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n fixSizesOnHorizontalViewModeSwitch();\n $('.dataTables_filter').remove();\n $('.resultsTable').remove();\n $timeout(function () {\n loadTab();\n selectTab(tabID);\n }, 100);\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(':focus')) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery;\n if (explain && !(window.editor.getQueryType() === 'SELECT' || window.editor.getQueryType() === 'CONSTRUCT')) {\n toastr.warning($translate.instant('query.editor.warning.msg'));\n return;\n }\n\n if (window.editor.getQueryMode() === 'update') {\n toastr.warning($translate.instant('cannot.execute.update.error'));\n return;\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n // Hides the editor and shows the yasr results\n $scope.viewMode = 'editor';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch()\n }\n\n setLoader(true, $translate.instant('evaluating.query.msg'));\n window.editor.query();\n }\n }\n\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, $translate.instant('common.refreshing.namespaces'), $translate.instant('common.extra.message'));\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n if ($scope.getActiveRepository()) {\n getNamespaces();\n }\n\n $scope.$on('$destroy', function () {\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n }\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n let msg = getError(data);\n toastr.error(msg, $translate.instant('common.add.known.prefixes.error'));\n return true;\n });\n }\n\n $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n angular.forEach($scope.tabsData, function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n\n return existingTabId;\n }\n\n // end of query operations\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function () {\n saveQueryToLocal($scope.currentQuery);\n });\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n function addNewTab(callback, tabName, savedQuery) {\n }\n\n function loadTab() {\n $scope.tabsData = [$scope.currentQuery];\n\n let tab = $scope.currentQuery;\n\n if ($scope.currentQuery.query == null || $scope.currentQuery.query === '') {\n // hack for YASQE bug\n window.editor.setValue(' ');\n } else {\n window.editor.setValue($scope.currentQuery.query);\n }\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.$apply();\n }, 0);\n\n //Remove padding of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n $scope.loadTab(getQueryID(tabEvent.target));\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = angular.copy(defaultTabConfig);\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n\n $scope.getResultsDescription = function () {\n };\n\n $scope.getUpdateDescription = function () {\n };\n\n $scope.getStaleWarningMessage = function () {\n }\n\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/utils/notifications.js","webpack:///./src/js/angular/graphexplore/controllers/graphs-config.controller.js"],"names":["Notifications","toastr","$translate","showToastMessageWithDelay","message","Promise","r","success","instant","setTimeout","angular","module","factory","$inject","GraphConfigCtrl","$scope","$timeout","$location","$repositories","SparqlRestService","$filter","GraphConfigRestService","AutocompleteRestService","$routeParams","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys","selectedFixedNodeChanged","page","totalPages","helpHidden","get","HIDE_GRAPH_CONFIG_HELP","toggleHelp","value","undefined","set","fixedVisualCallback","uri","label","newConfig","startIRI","startIRILabel","isDefaultGraph","sample","name","isUserGraph","getSampleName","property","extra","id","configName","showInvalidMsg","warning","getQueryForCurrentPage","config","query","startMode","startGraphQuery","expandQuery","resourceQuery","predicateLabelQuery","resourcePropertiesQuery","isDefined","initForConfig","checkAutocompleteStatus","getAutocompletePromise","getGraphConfigSamples","data","samples","_","filter","s","revertConfig","error","getError","createGraphConfig","async","url","updateGraphConfig","$on","getNamespacesPromise","getNamespaces","getActiveRepository","validateQueryWithCallback","successCallback","queryType","params","all","oneOf","validateQuery","broadcastAddStartFixedNodeEvent","checkPageAndMode","$broadcast","validateCurrentPage","updateModel","goToPage","nextPage","showEditor","notoolbar","goToPreviousPage","goToNextPage","saveGraphConfig","startQueryIncludeInferred","currentQuery","inference","startQuerySameAs","sameAs","isUpdate","window","editor","getValue","trim","setQuery","setValue","updateDirty","q1","q2","queryEditorIsDirty","updateEditor","isActiveRepoOntopType","nocount","loadTab","selectTab","xhr","abort","viewMode","showPreview","outputType","runQuery","revertEditor","$watch","shared","encodeQuery","encodeURIComponent","getConfig","defaultTabConfig","saveQueryToLocal","currentQueryTab","setLoader","isRunning","progressMessage","extraMessage","yasrInnerContainer","element","document","getElementById","queryIsRunning","queryStartTime","Date","now","countTimeouted","addClass","removeClass","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalViewParam","visibleWindowHeight","innerHeight","documentElement","clientHeight","body","verticalView","orientationViewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","timer","cancel","yasr","container","resize","showHideEditor","$","tab","changePage","explain","executedQueryTab","getQueryType","getQueryMode","explainRequested","currentTabConfig","resultsCount","resetCurrentTabConfig","getRepositoryNamespaces","usedPrefixes","results","bindings","forEach","e","prefix","namespace","namespaces","repositoryError","finally","addKnownPrefixes","JSON","stringify","msg","getExistingTabId","existingTabId","tabsData","item","offset","allResultsCount","pageSize","timeFinished","timeTook","sizeDelta","css","getQueryID","attr","queryExists","tabs","saveTab","idx","i","length","findTabIndexByID","addNewTab","callback","tabName","savedQuery","changePagination","toggleSampleQueries","querySelected","tabId","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","tabID","remove","focusQueryEditor","find","is","focus","on","$watchCollection","tabEvent","relatedTarget","target","copy","showSampleQueries","sampleQueries","getResultsDescription","getUpdateDescription","getStaleWarningMessage","controller"],"mappings":"+EAMA,SAASA,EAAcC,EAAQC,GAC3B,MAAO,CACHC,0BASJ,SAAmCC,GAC/B,OAAO,IAAIC,QAASC,IAChBL,EAAOM,QAAQL,EAAWM,QAAQJ,IAClCK,WAAWH,EAAG,SApB1BI,QACKC,OAAO,wCAAyC,IAChDC,QAAQ,gBAAiBZ,GAE9BA,EAAca,QAAU,CAAC,SAAU,e,gCCJnC,kBAYA,SAASC,EAAgBC,EAAQC,EAAUC,EAAWhB,EAAQiB,EAAeC,EAAmBC,EAASC,EAAwBC,EAAyBC,EAAcvB,EAAewB,EAA8BC,EAAqBC,EAAQxB,GAoB9O,IAAIyB,EAlBJZ,EAAOa,KAAO,EACdb,EAAOc,WAAa,EAEpBd,EAAOe,WAAwE,IAA3DL,EAAoBM,IAAIL,EAAOM,wBAEnDjB,EAAOkB,WAAa,SAAUC,QACZC,IAAVD,IACAA,EAAQT,EAAoBM,IAAIL,EAAOM,yBAE7B,IAAVE,GACAT,EAAoBW,IAAIV,EAAOM,uBAAwB,GACvDjB,EAAOe,YAAa,IAEpBL,EAAoBW,IAAIV,EAAOM,uBAAwB,GACvDjB,EAAOe,YAAa,IAK5Bf,EAAOsB,oBAAsB,SAAUC,EAAKC,GACxCxB,EAAOyB,UAAUC,SAAWH,EAC5BvB,EAAOyB,UAAUE,cAAgBH,EACjCZ,GAA2B,GAG/BZ,EAAO4B,eAAiB,SAAUC,GAC9B,MAAwB,YAAhBA,EAAOC,MAAsC,aAAhBD,EAAOC,MAGhD9B,EAAO+B,YAAc,SAAUF,GAC3B,OAAQ7B,EAAO4B,eAAeC,IAGlC7B,EAAOgC,cAAgB,SAAUH,EAAQI,GACrC,MAAMC,EAAQL,EAAOI,EAAW,eAChC,OAAIC,IAKOL,EAAOM,GAAK,WAAaN,EAAOC,KAAOD,EAAOC,OAI7D,MAiBMM,EAAa5B,EAAa4B,WAUhC,SAASC,EAAehD,GACpBH,EAAOoD,QAAQjD,GAkBnB,SAASkD,EAAuBC,GAC5B,IAAIC,EAcJ,MAZyB,UAArBD,EAAOE,WAAyC,IAAhB1C,EAAOa,KACvC4B,EAAQD,EAAOG,gBACQ,IAAhB3C,EAAOa,KACd4B,EAAQD,EAAOI,YACQ,IAAhB5C,EAAOa,KACd4B,EAAQD,EAAOK,cACQ,IAAhB7C,EAAOa,KACd4B,EAAQD,EAAOM,oBACQ,IAAhB9C,EAAOa,OACd4B,EAAQD,EAAOO,yBAGZpD,QAAQqD,UAAUP,GAASA,EAAQ,GAG9C,SAASQ,IAsBL,SAASC,IACLlD,EAAOmD,uBAAyB5C,EAAwB2C,0BAtF5D5C,EAAuB8C,wBAClB5D,SAAQ,SAAU6D,GACfrD,EAAOsD,QAAUC,EAAEC,OAAOH,GAAM,SAAUI,GAEtC,OAAKA,EAAEtB,IAAMnC,EAAOyB,UAAUU,KAAOsB,EAAEtB,KAGnCnC,EAAO0D,aAAeD,GACf,SAGhBE,OAAM,SAAUN,GACfnE,EAAOyE,MAAMC,SAASP,GAAOlE,EAAWM,QAAQ,wCAqDxDO,EAAO6D,kBAAoB,WACvBvD,EAAuBuD,kBAAkB7D,EAAOyB,WAC3CjC,SAAQsE,uBACC7E,EAAcG,0BAA0B,iCAC9Cc,EAAU6D,IAAI,4BACfJ,OAAM,SAAUN,GACnBnE,EAAOyE,MAAMC,SAASP,GAAOlE,EAAWM,QAAQ,4CAIxDO,EAAOgE,kBAAoB,WACvB1D,EAAuB0D,kBAAkBhE,EAAOyB,WAC3CjC,SAAQsE,uBACC7E,EAAcG,0BAA0B,6BAC9Cc,EAAU6D,IAAI,4BACfJ,OAAM,SAAUN,GACnBnE,EAAOyE,MAAMC,SAASP,GAAOlE,EAAWM,QAAQ,0CAQxDO,EAAOiE,IAAI,sBAAsB,WAC7Bf,OAGJA,IACAlD,EAAOkE,qBAAuBzD,EAA6B0D,cAAcnE,EAAOoE,uBAEhF,MAAMC,EAA4B,SAAUC,EAAiB7B,EAAO8B,EAAWC,EAAQC,EAAKC,GACnFjC,EAGDnC,EAAuBqE,cAAclC,EAAO8B,EAAWC,EAAQC,EAAKC,GAC/DlF,SAAQ,WACL8E,OACDX,OAAM,SAAUN,GACnBhB,EAAeuB,SAASP,OAN5BiB,KAiER,SAASM,IACDC,KACA7E,EAAO8E,WAAW,iCAAkC,CAACpD,SAAU1B,EAAOyB,UAAUC,WAIxF,SAASmD,IACL,OAAuB,IAAhB7E,EAAOa,MAA6C,SAA/Bb,EAAOyB,UAAUiB,UA7DjD1C,EAAO+E,oBAAsB,SAAUT,GACnCtE,EAAOgF,cAEa,IAAhBhF,EAAOa,KAC4B,SAA/Bb,EAAOyB,UAAUiB,WAAyB1C,EAAOyB,UAAUC,SAErB,UAA/B1B,EAAOyB,UAAUiB,WAA0B1C,EAAOyB,UAAUkB,gBAE7B,UAA/B3C,EAAOyB,UAAUiB,UACxB2B,EAA0BC,EAAiBtE,EAAOyB,UAAUkB,gBAAiB,SAE7E2B,IAJAjC,EAAelD,EAAWM,QAAQ,+BAFlC4C,EAAelD,EAAWM,QAAQ,mCAQf,IAAhBO,EAAOa,KACdwD,EAA0BC,EAAiBtE,EAAOyB,UAAUmB,YAAa,YAAa,CAAC,SAChE,IAAhB5C,EAAOa,KACdwD,EAA0BC,EAAiBtE,EAAOyB,UAAUoB,cAAe,QAAS,CAAC,QAAS,GAAI,CAAC,OAAQ,QAAS,UAAW,SACxG,IAAhB7C,EAAOa,KACdwD,EAA0BC,EAAiBtE,EAAOyB,UAAUqB,oBAAqB,QAAS,CAAC,QAAS,CAAC,UAC9E,IAAhB9C,EAAOa,MACdwD,EAA0BC,EAAiBtE,EAAOyB,UAAUsB,wBAAyB,QAAS,CAAC,QAAS,CAAC,WAAY,WAI7H/C,EAAOiF,SAAW,SAAUC,GACpBlF,EAAOa,OAASqE,GAKpBlF,EAAO+E,qBAAoB,WACvB/E,EAAOmF,aACPnF,EAAOa,KAAOqE,EACdlF,EAAOoF,UAA4B,IAAhBpF,EAAOa,SAIlCb,EAAOqF,iBAAmB,WAClBrF,EAAOa,KAAO,GACdb,EAAOiF,SAASjF,EAAOa,KAAO,GAG9BgE,MACAjE,GAA2B,IAInCZ,EAAOsF,aAAe,WAClBV,KACmC,SAA/B5E,EAAOyB,UAAUiB,WAAwB9B,IACzCZ,EAAOiF,SAASjF,EAAOa,KAAO,IActCb,EAAOuF,gBAAkB,WACtBX,IAEKC,MAAuBjE,IAI3BZ,EAAOyB,UAAU+D,0BAA4BxF,EAAOyF,aAAaC,UACjE1F,EAAOyB,UAAUkE,iBAAmB3F,EAAOyF,aAAaG,OAExD5F,EAAO+E,qBAAoB,WAClB/E,EAAOyB,UAAUK,KAItB9B,EAAO6F,SAAW7F,EAAOgE,kBAAkBhE,EAAOyB,WAAazB,EAAO6D,kBAAkB7D,EAAOyB,WAH3FY,EAAelD,EAAWM,QAAQ,0CAO9CO,EAAOgF,YAAc,WACjB,MAAMvC,EAAQqD,OAAOC,OAAOC,WAAWC,OACJ,UAA/BjG,EAAOyB,UAAUiB,WAAyC,IAAhB1C,EAAOa,KACjDb,EAAOyB,UAAUkB,gBAAkBF,EACZ,IAAhBzC,EAAOa,KACdb,EAAOyB,UAAUmB,YAAcH,EACR,IAAhBzC,EAAOa,KACdb,EAAOyB,UAAUoB,cAAgBJ,EACV,IAAhBzC,EAAOa,KACdb,EAAOyB,UAAUqB,oBAAsBL,EAChB,IAAhBzC,EAAOa,OACdb,EAAOyB,UAAUsB,wBAA0BN,IAKnDzC,EAAOkG,SAAW,SAAUzD,GAExBqD,OAAOC,OAAOI,SAAS1D,GAAgB,MAG3CzC,EAAOoG,YAAc,WACjB,GAAIpG,EAAO0D,aAAc,CACrB,MAAM2C,EAAK9D,EAAuBvC,EAAO0D,cACnC4C,EAAKR,OAAOC,OAAOC,WAAWC,OACpCjG,EAAOuG,mBAAqBF,IAAOC,IAM3CtG,EAAOwG,aAAe,WAClBvG,GAAS,WACLD,EAAOyF,aAAahD,MAAQF,EAAuBvC,EAAOyB,WAEtDtB,EAAcsG,0BACdzG,EAAO0G,SAAU,GAErB1G,EAAOyF,aAAaC,UAAY1F,EAAOyB,UAAU+D,0BACjDxF,EAAOyF,aAAaG,OAAS5F,EAAOyB,UAAUkE,iBAC9CgB,IACAC,EAAU5G,EAAOyF,aAAatD,MAC/B,MAIPnC,EAAOmF,WAAa,WACZW,OAAOC,QAAUD,OAAOC,OAAOc,KAC/Bf,OAAOC,OAAOc,IAAIC,QAEtB9G,EAAO+G,SAAW,QAGtB/G,EAAOgH,YAAc,WAGjBhH,EAAOyF,aAAawB,WAAa,QACjCjH,EAAOkH,YAGXlH,EAAOmH,aAAe,WAClBnH,EAAOkG,SAAS3D,EAAuBvC,EAAO0D,gBAIlD1D,EAAOoH,OAAO,uBAAuB,SAAUjG,GAC7B,UAAVA,GACAlB,GAAS,WACLD,EAAOwG,iBACR,MAKXxG,EAAOoH,OAAO,QAAQ,SAAUjG,IACO,UAA/BnB,EAAOyB,UAAUiB,WAAyBvB,EAAQ,IAClDlB,GAAS,WACLD,EAAOmF,aACPnF,EAAOwG,iBACR,MA9PfxG,EAAOyB,UAAY,CAAC+D,2BAA2B,EAAMG,kBAAkB,GACvE3F,EAAOyB,UAAUiB,UAAY,SAC7B1C,EAAO6F,UAAW,EAClB7F,EAAOqH,QAAS,EAEhBrH,EAAOsH,YAAc,SAAU7E,GAC3B,OAAO8E,mBAAmB9E,IAO1BL,GACApC,EAAO6F,UAAW,EAClBvF,EAAuBkH,UAAUpF,GAC5B5C,SAAQ,SAAU6D,GACfrD,EAAOyB,UAAY4B,EACnBJ,OAEHU,OAAM,SAAUN,GACbnE,EAAOyE,MAAMC,SAASP,GAAOlE,EAAWM,QAAQ,oBAAqB,CAACqC,KAAMM,UAGpFpC,EAAO6F,UAAW,EAClB5C,KA6OJ,MAAMwE,EAAmB,CACrBtF,GAAI,IACJL,KAAM,GACNW,MAAO,kDAGPiD,UAAW1F,EAAOyB,UAAU+D,0BAC5BI,OAAQ5F,EAAOyB,UAAUkE,kBA6C7B,SAAS+B,EAAiBC,IAG1B,SAASC,EAAUC,EAAWC,EAAiBC,GAC3C,MAAMC,EAAqBrI,QAAQsI,QAAQC,SAASC,eAAe,eACnEnI,EAAOoI,eAAiBP,EACpBA,GACA7H,EAAOqI,eAAiBC,KAAKC,MAC7BvI,EAAOwI,gBAAiB,EACxBxI,EAAO8H,gBAAkBA,EACzB9H,EAAO+H,aAAeA,EACtBC,EAAmBS,SAAS,UAE5BzI,EAAO8H,gBAAkB,GACzB9H,EAAO+H,aAAe,GACtBC,EAAmBU,YAAY,SAGZ,OAAnB1I,EAAO2I,SACP3I,EAAO4I,SAuBf,SAASC,EAAmCC,GACxC,SAASC,IACL,OAAOjD,OAAOkD,aAAed,SAASe,gBAAgBC,cAAgBhB,SAASiB,KAAKD,cAAgB,EAGxG,MACME,EAAeN,EACrB,GAAK9I,EAAOqJ,oBAuBL,CACH,GAAwB,SAApBrJ,EAAO+G,SAAqB,CAC5B,IAAIuC,EAAYP,IAAyBb,SAASqB,cA3BxB,oBA2BiEC,wBAA2B,IACtHF,GAAa,GACbpB,SAASqB,cA7BiB,oBA6BwBE,MAAMC,OAASJ,EAAY,UAE7EtJ,EAAO2J,UAAY,GACnBzB,SAASqB,cAhCiB,oBAgCwBE,MAAMC,OAAS,GAErExB,SAASC,eAAe,QAAQsB,MAAMG,UAAY,QA5BlD,GAHA5J,EAAO2J,UAAY,CAACE,aAAc,GAAIC,YAAa,GAG/ChE,OAAOC,QAAUmC,SAASqB,cANA,oBAM0C,CACpE,IAAID,EAAYP,IAAyBb,SAASqB,cAPxB,oBAOiEC,wBAA2B,IACtHF,GAAa,GACbpB,SAASqB,cATiB,oBASwBE,MAAMC,OAASJ,EAAY,KAC7EpB,SAASC,eAAe,QAAQsB,MAAMG,UAAYN,EAAY,SAC3D,CACH,IAAIS,EAEAA,EAAQ9J,EADRmJ,EACiB,WACbpJ,EAAO6I,mCAAmCO,IAG7BpJ,EAAO6I,mCAFrB,KAKP7I,EAAOiE,IAAI,YAAY,WACnBhE,EAAS+J,OAAOD,MAcxBjE,OAAOmE,MAAQnE,OAAOmE,KAAKC,WAC3BjK,GAAS,WACL6F,OAAOmE,KAAKC,UAAUC,WACvB,KAoBX,SAASC,IACLvB,GAAmC,GASvC,SAASjC,EAAUzE,GACflC,GAAS,WACLoK,EAAE,gBAAkBlI,EAAK,MAAMmI,IAAI,UACpC,GAIP,SAASpD,EAASqD,EAAYC,GAC1BxK,EAAOyK,iBAAmBzK,EAAOyF,aAC7B+E,GAA8C,WAAjC1E,OAAOC,OAAO2E,gBAAgE,cAAjC5E,OAAOC,OAAO2E,eACxExL,EAAOoD,QAAQnD,EAAWM,QAAQ,6BAID,WAAjCqG,OAAOC,OAAO4E,gBAKlB3K,EAAO4K,iBAAmBJ,EACrBxK,EAAOoI,iBACJmC,EACAvK,EAAO6K,iBAAiBC,aAAe,EAEvC9K,EAAO+K,wBAIX/K,EAAO+G,SAAW,SACd/G,EAAOqJ,qBACPrJ,EAAO6I,qCAGXjB,GAAU,EAAMzI,EAAWM,QAAQ,yBACnCqG,OAAOC,OAAOtD,UAnBdvD,EAAOoD,QAAQnD,EAAWM,QAAQ,gCAuB1C,SAAS0E,IAELyD,GAAU,EAAMzI,EAAWM,QAAQ,gCAAiCN,EAAWM,QAAQ,yBACvFgB,EAA6BuK,0BACxBxL,SAAQ,SAAU6D,GACf,MAAM4H,EAAe,GACrB5H,EAAK6H,QAAQC,SAASC,SAAQ,SAAUC,GACpCJ,EAAaI,EAAEC,OAAOnK,OAASkK,EAAEE,UAAUpK,SAE/CnB,EAAOwL,WAAaP,KAEvBtH,OAAM,SAAUN,GACbrD,EAAOyL,gBAAkB7H,SAASP,MAErCqI,SAAQ,WAEL9D,GAAU,MAqBtB,SAAS+D,IACLvL,EAAkBuL,iBAAiBC,KAAKC,UAAU/F,OAAOC,OAAOC,aAC3DxG,SAAQ,SAAU6D,GACX1D,QAAQqD,UAAU8C,OAAOC,SAAWpG,QAAQqD,UAAUK,IAASA,IAASyC,OAAOC,OAAOC,YACtFF,OAAOC,OAAOI,SAAS9C,MAG9BM,OAAM,SAAUN,GACb,IAAIyI,EAAMlI,SAASP,GAEnB,OADAnE,EAAOyE,MAAMmI,EAAK3M,EAAWM,QAAQ,qCAC9B,KAoBnB,SAASsM,EAAiBtJ,GACtB,IAAIuJ,OAAgB5K,EAQpB,OAPAzB,QAAQyL,QAAQpL,EAAOiM,UAAU,SAAUC,GACvC,GAAIA,EAAKpK,OAASW,EAAMX,MAAQoK,EAAKzJ,QAAUA,EAAM0G,KAEjD,OADA6C,EAAgBE,EAAK/J,GACd+J,KAIRF,EAiCX,SAASrF,IACL3G,EAAOiM,SAAW,CAACjM,EAAOyF,cAE1B,IAAI6E,EAAMtK,EAAOyF,aAEgB,MAA7BzF,EAAOyF,aAAahD,OAA+C,KAA9BzC,EAAOyF,aAAahD,MAEzDqD,OAAOC,OAAOI,SAAS,KAEvBL,OAAOC,OAAOI,SAASnG,EAAOyF,aAAahD,OAG/CxC,GAAS,WACLD,EAAO6K,iBAAmB,GAC1B7K,EAAO6K,iBAAiBtG,UAAY+F,EAAI/F,UACxCvE,EAAO6K,iBAAiBC,aAAeR,EAAIQ,aAE3C9K,EAAO6K,iBAAiBsB,OAAS7B,EAAI6B,OACrCnM,EAAO6K,iBAAiBuB,gBAAkB9B,EAAI8B,gBAC9CpM,EAAO6K,iBAAiBhK,KAAOyJ,EAAIzJ,KACnCb,EAAO6K,iBAAiBwB,SAAW/B,EAAI+B,SAEvCrM,EAAO6K,iBAAiByB,aAAehC,EAAIgC,aAC3CtM,EAAO6K,iBAAiB0B,SAAWjC,EAAIiC,SACvCvM,EAAO6K,iBAAiB2B,UAAYlC,EAAIkC,UACxCxM,EAAO4I,WACR,GAGHyB,EAAE,SAASoC,IAAI,UAAW,KAG9B,SAASC,EAAWzE,GAChB,OAAOoC,EAAEpC,GAAS0E,KAAK,WAlV3B3M,EAAO+K,sBAAwB,WAC3B/K,EAAO6K,iBAAmB,CACtBwB,SAAU,IACVxL,KAAM,EACNuL,gBAAiB,EACjBtB,aAAc,IAItB9K,EAAO4M,aAAc,EAErB5M,EAAO+K,wBAEP/K,EAAOiM,SAAWjM,EAAO6M,KAAO,CAACpF,GAGjCzH,EAAO8M,QAmRP,SAAiB3K,GACb,MAAM4K,EAdV,SAA0B5K,GACtB,IAAK,IAAI6K,EAAI,EAAGA,EAAIhN,EAAOiM,SAASgB,OAAQD,IAAK,CAE7C,GADYhN,EAAOiM,SAASe,GACpB7K,KAAOA,EACX,OAAO6K,GAUHE,CAAiB/K,GAE7B,QAAYf,IAAR2L,EACA,MAAO,GAEX,MAAMzC,EAAMtK,EAAOiM,SAASc,GAE5B,OADA/M,EAAO0H,iBAAiB4C,GACjBA,GA1RXtK,EAAO2G,QAAUA,EACjB3G,EAAOmN,UA4RP,SAAmBC,EAAUC,EAASC,KAzRtCtN,EAAOkH,SAAWA,EAClBlH,EAAOmE,cAAgBA,EACvBnE,EAAOuN,iBAiMP,WACIrG,GAAS,EAAMlH,EAAO4K,mBAjM1B5K,EAAOwN,oBA6MP,aA5MAxN,EAAO2L,iBAAmBA,EAC1B3L,EAAO+L,iBAAmBA,EAC1B/L,EAAOyN,cAkOP,SAAuBhL,GACnB,MAAMiL,EAAQ3B,EAAiBtJ,GAC/BzC,EAAOwN,sBACF7N,QAAQqD,UAAU0K,GAGnB9G,EAAU8G,GAFV1N,EAAOmN,UAAU,KAAM1K,EAAMX,KAAMW,EAAM0G,OArOjDnJ,EAAO0H,iBAAmBA,EAE1B1H,EAAO4H,UAAYA,EACnB5H,EAAO2N,iBAkCP,WACI,MAAMC,GAAetF,KAAKC,MAAQvI,EAAOqI,gBAAkB,IACrDwF,EAAY7N,EAAO8N,wBAAwBF,GACjD,IAAIvO,EAGAA,EADAW,EAAO8H,gBACG9H,EAAO8H,gBAAkB,OAAS+F,EAElC1O,EAAWM,QAAQ,2BAA4B,CAACoO,UAAWA,IAErE7N,EAAO+H,cAAgB6F,EAAc,KACrCvO,GAAW,KAAOW,EAAO+H,cAG7B,OAAO1I,GA7CXW,EAAO6I,mCAAqCA,EAC5C7I,EAAO+N,eAqGP,SAAwBC,GACpBhO,EAAO+G,SAAW,OAClB/G,EAAOqJ,qBAAuBrJ,EAAOqJ,oBACrCR,IACAwB,EAAE,sBAAsB4D,SACxB5D,EAAE,iBAAiB4D,SACnBhO,GAAS,WACL0G,IACAC,EAAUoH,KACX,MA7GPhO,EAAOoK,eAAiBA,EACxBpK,EAAOkO,iBAmHP,WACSvO,QAAQsI,QAAQC,UAAUiG,KAAK,mBAAmBC,GAAG,WACtDzO,QAAQsI,QAAQC,UAAUiG,KAAK,oCAAoCE,SApH3ErO,EAAOqJ,qBAAsB,EA8FxBrJ,EAAOqJ,qBACRe,IAuFApK,EAAOoE,uBACPD,IAGJnE,EAAOiE,IAAI,YAAY,WACnB6B,OAAOC,OAAS,KAChBD,OAAOmE,KAAO,QAqBlBI,EAAE,YAAYiE,GAAG,SAAS,WACtBrO,GAAS,WACL0L,MACD,MAqCP3L,EAAOuO,iBAAiB,iDAAiD,WACpDvO,EAAOyF,gBAqD5BzF,EAAOiE,IAAI,aAAa,SAAUoH,EAAGmD,GAC7BA,EAASC,eACTzO,EAAO8M,QAAQJ,EAAW8B,EAASC,gBAEvCzO,EAAO2G,QAAQ+F,EAAW8B,EAASE,YAGvC1O,EAAOiE,IAAI,0BAA0B,SAAUoH,EAAGwB,GAC9C7M,EAAOiM,SAAWY,EAClB7M,EAAO6M,KAAOA,KAIlB7M,EAAOyF,aAAe9F,QAAQgP,KAAKlH,GAEnCzH,EAAO4O,mBAAoB,EAC3B5O,EAAOsN,WAAa,GACpBtN,EAAO6O,cAAgB,GAEvB7O,EAAO8O,sBAAwB,aAG/B9O,EAAO+O,qBAAuB,aAG9B/O,EAAOgP,uBAAyB,aAvsBpCrP,QACKC,OAAO,6DAA8D,CAClE,wCACA,gDAEHqP,WAAW,kBAAmBlP,GAEnCA,EAAgBD,QAAU,CAAC,SAAU,WAAY,YAAa,SAAU,gBAAiB,oBAAqB,UAAW,yBAA0B,0BAA2B,eAAgB,gBAAiB,+BAAgC,sBAAuB,SAAU","file":"39.8f8ae5c232bd2f023e7c.bundle.js","sourcesContent":["angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr', '$translate'];\n\nfunction Notifications(toastr, $translate) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success($translate.instant(message));\n setTimeout(r, 200);\n });\n }\n}\n","import 'angular/utils/notifications';\nimport 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.graphexplore.controllers.graphviz.config', [\n 'graphdb.framework.utils.notifications',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .controller('GraphConfigCtrl', GraphConfigCtrl);\n\nGraphConfigCtrl.$inject = ['$scope', '$timeout', '$location', 'toastr', '$repositories', 'SparqlRestService', '$filter', 'GraphConfigRestService', 'AutocompleteRestService', '$routeParams', 'Notifications', 'RDF4JRepositoriesRestService', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction GraphConfigCtrl($scope, $timeout, $location, toastr, $repositories, SparqlRestService, $filter, GraphConfigRestService, AutocompleteRestService, $routeParams, Notifications, RDF4JRepositoriesRestService, LocalStorageAdapter, LSKeys, $translate) {\n\n $scope.page = 1;\n $scope.totalPages = 5;\n\n $scope.helpHidden = LocalStorageAdapter.get(LSKeys.HIDE_GRAPH_CONFIG_HELP) === 1;\n\n $scope.toggleHelp = function (value) {\n if (value === undefined) {\n value = LocalStorageAdapter.get(LSKeys.HIDE_GRAPH_CONFIG_HELP);\n }\n if (value !== 1) {\n LocalStorageAdapter.set(LSKeys.HIDE_GRAPH_CONFIG_HELP, 1);\n $scope.helpHidden = true;\n } else {\n LocalStorageAdapter.set(LSKeys.HIDE_GRAPH_CONFIG_HELP, 0);\n $scope.helpHidden = false;\n }\n };\n\n var selectedFixedNodeChanged;\n $scope.fixedVisualCallback = function (uri, label) {\n $scope.newConfig.startIRI = uri;\n $scope.newConfig.startIRILabel = label;\n selectedFixedNodeChanged = true;\n };\n\n $scope.isDefaultGraph = function (sample) {\n return (sample.name === 'Minimal' || sample.name === 'Advanced');\n };\n\n $scope.isUserGraph = function (sample) {\n return !$scope.isDefaultGraph(sample);\n };\n\n $scope.getSampleName = function (sample, property) {\n const extra = sample[property + 'Description'];\n if (extra) {\n // Sample has description, use it\n return extra;\n } else {\n // Sample is a copy of existing config, prepend Copy of to name\n return sample.id ? 'Copy of ' + sample.name : sample.name;\n }\n };\n\n const getGraphConfigSamples = function () {\n GraphConfigRestService.getGraphConfigSamples()\n .success(function (data) {\n $scope.samples = _.filter(data, function (s) {\n // Skip the currently edited config from samples and store it into a revert variable\n if (!s.id || $scope.newConfig.id !== s.id) {\n return true;\n } else {\n $scope.revertConfig = s;\n return false;\n }\n });\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.graph.configs'));\n });\n };\n\n const configName = $routeParams.configName;\n $scope.newConfig = {startQueryIncludeInferred: true, startQuerySameAs: true};\n $scope.newConfig.startMode = 'search';\n $scope.isUpdate = false;\n $scope.shared = false;\n\n $scope.encodeQuery = function (query) {\n return encodeURIComponent(query);\n };\n\n function showInvalidMsg(message) {\n toastr.warning(message);\n }\n\n if (configName) {\n $scope.isUpdate = true;\n GraphConfigRestService.getConfig(configName)\n .success(function (data) {\n $scope.newConfig = data;\n initForConfig();\n })\n .error(function (data) {\n toastr.error(getError(data), $translate.instant('created.connector', {name: configName}));\n });\n } else {\n $scope.isUpdate = false;\n initForConfig();\n }\n\n function getQueryForCurrentPage(config) {\n let query;\n\n if (config.startMode === 'query' && $scope.page === 1) {\n query = config.startGraphQuery;\n } else if ($scope.page === 2) {\n query = config.expandQuery;\n } else if ($scope.page === 3) {\n query = config.resourceQuery;\n } else if ($scope.page === 4) {\n query = config.predicateLabelQuery;\n } else if ($scope.page === 5) {\n query = config.resourcePropertiesQuery;\n }\n\n return angular.isDefined(query) ? query : '';\n }\n\n function initForConfig() {\n getGraphConfigSamples();\n $scope.createGraphConfig = function () {\n GraphConfigRestService.createGraphConfig($scope.newConfig)\n .success(async function () {\n await Notifications.showToastMessageWithDelay('graphexplore.saved.new.config');\n $location.url('graphs-visualizations');\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.could.not.create'));\n });\n };\n\n $scope.updateGraphConfig = function () {\n GraphConfigRestService.updateGraphConfig($scope.newConfig)\n .success(async function () {\n await Notifications.showToastMessageWithDelay('graphexplore.saved.config');\n $location.url('graphs-visualizations');\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.could.not.save'));\n });\n };\n\n function checkAutocompleteStatus() {\n $scope.getAutocompletePromise = AutocompleteRestService.checkAutocompleteStatus();\n }\n\n $scope.$on('autocompleteStatus', function() {\n checkAutocompleteStatus();\n });\n\n checkAutocompleteStatus();\n $scope.getNamespacesPromise = RDF4JRepositoriesRestService.getNamespaces($scope.getActiveRepository());\n\n const validateQueryWithCallback = function (successCallback, query, queryType, params, all, oneOf) {\n if (!query) {\n successCallback();\n } else {\n GraphConfigRestService.validateQuery(query, queryType, params, all, oneOf)\n .success(function () {\n successCallback();\n }).error(function (data) {\n showInvalidMsg(getError(data));\n });\n }\n };\n\n $scope.validateCurrentPage = function (successCallback) {\n $scope.updateModel();\n\n if ($scope.page === 1) {\n if ($scope.newConfig.startMode === 'node' && !$scope.newConfig.startIRI) {\n showInvalidMsg($translate.instant('graphexplore.select.start.node'));\n } else if ($scope.newConfig.startMode === 'query' && !$scope.newConfig.startGraphQuery) {\n showInvalidMsg($translate.instant('graphexplore.provide.query'));\n } else if ($scope.newConfig.startMode === 'query') {\n validateQueryWithCallback(successCallback, $scope.newConfig.startGraphQuery, 'graph')\n } else {\n successCallback();\n }\n } else if ($scope.page === 2) {\n validateQueryWithCallback(successCallback, $scope.newConfig.expandQuery, 'construct', ['node'])\n } else if ($scope.page === 3) {\n validateQueryWithCallback(successCallback, $scope.newConfig.resourceQuery, 'tuple', ['node'], [], ['type', 'label', 'comment', 'rank']);\n } else if ($scope.page === 4) {\n validateQueryWithCallback(successCallback, $scope.newConfig.predicateLabelQuery, 'tuple', ['edge'], ['label']);\n } else if ($scope.page === 5) {\n validateQueryWithCallback(successCallback, $scope.newConfig.resourcePropertiesQuery, 'tuple', ['node'], ['property', 'value']);\n }\n };\n\n $scope.goToPage = function (nextPage) {\n if ($scope.page === nextPage) {\n // already there\n return;\n }\n\n $scope.validateCurrentPage(function () {\n $scope.showEditor();\n $scope.page = nextPage;\n $scope.notoolbar = $scope.page !== 1;\n });\n };\n\n $scope.goToPreviousPage = function () {\n if ($scope.page > 1) {\n $scope.goToPage($scope.page - 1);\n }\n\n if (checkPageAndMode()) {\n selectedFixedNodeChanged = false;\n }\n };\n\n $scope.goToNextPage = function () {\n broadcastAddStartFixedNodeEvent();\n if ($scope.newConfig.startMode !== 'node' || selectedFixedNodeChanged) {\n $scope.goToPage($scope.page + 1);\n }\n };\n\n function broadcastAddStartFixedNodeEvent() {\n if (checkPageAndMode()) {\n $scope.$broadcast('addStartFixedNodeAutomatically', {startIRI: $scope.newConfig.startIRI});\n }\n }\n\n function checkPageAndMode() {\n return $scope.page === 1 && $scope.newConfig.startMode === 'node';\n }\n\n $scope.saveGraphConfig = function () {\n broadcastAddStartFixedNodeEvent();\n\n if (checkPageAndMode() && !selectedFixedNodeChanged) {\n return;\n }\n\n $scope.newConfig.startQueryIncludeInferred = $scope.currentQuery.inference;\n $scope.newConfig.startQuerySameAs = $scope.currentQuery.sameAs;\n\n $scope.validateCurrentPage(function () {\n if (!$scope.newConfig.name) {\n showInvalidMsg($translate.instant('graphexplore.provide.config.name'));\n return;\n }\n $scope.isUpdate ? $scope.updateGraphConfig($scope.newConfig) : $scope.createGraphConfig($scope.newConfig);\n });\n };\n\n $scope.updateModel = function () {\n const query = window.editor.getValue().trim();\n if ($scope.newConfig.startMode === 'query' && $scope.page === 1) {\n $scope.newConfig.startGraphQuery = query;\n } else if ($scope.page === 2) {\n $scope.newConfig.expandQuery = query;\n } else if ($scope.page === 3) {\n $scope.newConfig.resourceQuery = query;\n } else if ($scope.page === 4) {\n $scope.newConfig.predicateLabelQuery = query;\n } else if ($scope.page === 5) {\n $scope.newConfig.resourcePropertiesQuery = query;\n }\n };\n\n // Called when user clicks on a sample query\n $scope.setQuery = function (query) {\n // Hack for YASQE bug\n window.editor.setValue(query ? query : ' ');\n };\n\n $scope.updateDirty = function () {\n if ($scope.revertConfig) {\n const q1 = getQueryForCurrentPage($scope.revertConfig);\n const q2 = window.editor.getValue().trim();\n $scope.queryEditorIsDirty = q1 !== q2;\n }\n };\n\n // Updates the position of the query editor to match the current div placeholder\n // and sets the editor's query to the relevant query from the model.\n $scope.updateEditor = function () {\n $timeout(function () {\n $scope.currentQuery.query = getQueryForCurrentPage($scope.newConfig);\n // // Check for ontop repository and override nocount property (it's default value is false)\n if ($repositories.isActiveRepoOntopType()) {\n $scope.nocount = true;\n }\n $scope.currentQuery.inference = $scope.newConfig.startQueryIncludeInferred;\n $scope.currentQuery.sameAs = $scope.newConfig.startQuerySameAs;\n loadTab();\n selectTab($scope.currentQuery.id);\n }, 100);\n\n };\n\n $scope.showEditor = function () {\n if (window.editor && window.editor.xhr) {\n window.editor.xhr.abort();\n }\n $scope.viewMode = 'yasr';\n };\n\n $scope.showPreview = function () {\n // For some reason YASR gets confused and sets this to rawResponse\n // if we execute a CONSTRUCT and then a SELECT. This makes sure it's always table.\n $scope.currentQuery.outputType = 'table';\n $scope.runQuery();\n };\n\n $scope.revertEditor = function () {\n $scope.setQuery(getQueryForCurrentPage($scope.revertConfig));\n };\n\n // Trigger for showing the editor and moving it to the right position\n $scope.$watch('newConfig.startMode', function (value) {\n if (value === 'query') {\n $timeout(function () {\n $scope.updateEditor();\n }, 0);\n }\n });\n\n // Trigger for showing the editor and moving it to the right position\n $scope.$watch('page', function (value) {\n if ($scope.newConfig.startMode === 'query' || value > 1) {\n $timeout(function () {\n $scope.showEditor();\n $scope.updateEditor();\n }, 0);\n }\n });\n }\n\n // DOWN HERE WE KEEP EVERYTHING PURELY QUERY EDITOR (MOSTLY BORROWED FROM query-editor.controller.js)\n // But Why? Can't we reuse it instead of borrow?\n\n const defaultTabConfig = {\n id: '1',\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: $scope.newConfig.startQueryIncludeInferred,\n sameAs: $scope.newConfig.startQuerySameAs\n };\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 100, // page limit 100 as this is only used for preview\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = true;\n\n // start of repository actions\n\n function saveQueryToLocal(currentQueryTab) {\n }\n\n function setLoader(isRunning, progressMessage, extraMessage) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n yasrInnerContainer.addClass('hide');\n } else {\n $scope.progressMessage = '';\n $scope.extraMessage = '';\n yasrInnerContainer.removeClass('hide');\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n const timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n let message;\n\n if ($scope.progressMessage) {\n message = $scope.progressMessage + '... ' + timeHuman;\n } else {\n message = $translate.instant('common.running.operation', {timeHuman: timeHuman});\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += '\\n' + $scope.extraMessage;\n }\n\n return message;\n }\n\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalViewParam) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n const codemirrorWrapperSelector = '.CodeMirror-wrap';\n const verticalView = verticalViewParam;\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector(codemirrorWrapperSelector)) {\n let newHeight = visibleWindowHeight() - (document.querySelector(codemirrorWrapperSelector).getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector(codemirrorWrapperSelector).style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView)\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector(codemirrorWrapperSelector).getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector(codemirrorWrapperSelector).style.height = newHeight + 'px';\n } else {\n $scope.noPadding = {};\n document.querySelector(codemirrorWrapperSelector).style.height = '';\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode(tabID) {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n fixSizesOnHorizontalViewModeSwitch();\n $('.dataTables_filter').remove();\n $('.resultsTable').remove();\n $timeout(function () {\n loadTab();\n selectTab(tabID);\n }, 100);\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(':focus')) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery;\n if (explain && !(window.editor.getQueryType() === 'SELECT' || window.editor.getQueryType() === 'CONSTRUCT')) {\n toastr.warning($translate.instant('query.editor.warning.msg'));\n return;\n }\n\n if (window.editor.getQueryMode() === 'update') {\n toastr.warning($translate.instant('cannot.execute.update.error'));\n return;\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n // Hides the editor and shows the yasr results\n $scope.viewMode = 'editor';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch()\n }\n\n setLoader(true, $translate.instant('evaluating.query.msg'));\n window.editor.query();\n }\n }\n\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, $translate.instant('common.refreshing.namespaces'), $translate.instant('common.extra.message'));\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n if ($scope.getActiveRepository()) {\n getNamespaces();\n }\n\n $scope.$on('$destroy', function () {\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n }\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n let msg = getError(data);\n toastr.error(msg, $translate.instant('common.add.known.prefixes.error'));\n return true;\n });\n }\n\n $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n angular.forEach($scope.tabsData, function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n\n return existingTabId;\n }\n\n // end of query operations\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function () {\n saveQueryToLocal($scope.currentQuery);\n });\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n function addNewTab(callback, tabName, savedQuery) {\n }\n\n function loadTab() {\n $scope.tabsData = [$scope.currentQuery];\n\n let tab = $scope.currentQuery;\n\n if ($scope.currentQuery.query == null || $scope.currentQuery.query === '') {\n // hack for YASQE bug\n window.editor.setValue(' ');\n } else {\n window.editor.setValue($scope.currentQuery.query);\n }\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.$apply();\n }, 0);\n\n //Remove padding of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n $scope.loadTab(getQueryID(tabEvent.target));\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = angular.copy(defaultTabConfig);\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n\n $scope.getResultsDescription = function () {\n };\n\n $scope.getUpdateDescription = function () {\n };\n\n $scope.getStaleWarningMessage = function () {\n }\n\n}\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[4,113],{43:function(e,t){angular.module("graphdb.framework.rest.cluster.service",[]).factory("ClusterRestService",n),n.$inject=["$http"];function n(e){return{getClusterConfig:function(){return e.get("rest/cluster/config")},createCluster:function(t){return e.post("rest/cluster/config",t)},updateCluster:function(t){t.nodes&&delete t.nodes;return e.patch("rest/cluster/config",t)},deleteCluster:function(t){const n=$.param({force:t});return e.delete("rest/cluster/config?"+n)},addNodesToCluster:function(t){return e.post("rest/cluster/config/node",{nodes:t})},removeNodesFromCluster:function(t){return e.delete("rest/cluster/config/node",{data:{nodes:t},headers:{"Content-Type":"application/json"}})},getClusterStatus:function(){return e.get("rest/cluster/group/status")},getNodeStatus:function(){return e.get("rest/cluster/node/status")}}}},59:function(e,t,n){"use strict";n.r(t),n.d(t,"NodeState",(function(){return r})),n.d(t,"LinkState",(function(){return s}));n(4),n(43);var o=n(67);angular.module("graphdb.framework.clustermanagement.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.repositories.service","graphdb.framework.rest.cluster.service","toastr","pageslide-directive"]).controller("ClusterManagementCtrl",a).controller("CreateClusterCtrl",c).controller("DeleteClusterCtrl",i).controller("EditClusterCtrl",g).controller("AddLocationFromClusterCtrl",d).controller("AddNodesDialogCtrl",m).controller("RemoveNodesDialogCtrl",p).factory("RemoteLocationsService",u);const r={LEADER:"LEADER",FOLLOWER:"FOLLOWER",CANDIDATE:"CANDIDATE",OUT_OF_SYNC:"OUT_OF_SYNC",NO_CONNECTION:"NO_CONNECTION",READ_ONLY:"READ_ONLY",RESTRICTED:"RESTRICTED",NO_CLUSTER:"NO_CLUSTER"},s={IN_SYNC:"IN_SYNC",OUT_OF_SYNC:"OUT_OF_SYNC",SYNCING:"SYNCING",NO_CONNECTION:"NO_CONNECTION"};function a(e,t,n,a,l,c,i,u,d,g,f,m,p,C,h,_){e.loader=!0,e.isLeader=!1,e.currentNode=null,e.clusterModel={},e.NodeState=r,e.leaderChanged=!1,e.currentLeader=null,e.childContext={},e.shouldShowClusterSettingsPanel=!1;let N;function L(t){N||(N=e.getClusterStatus().then(()=>{if(t||!e.clusterConfiguration)return e.getClusterConfiguration()}).then(()=>{if(!e.currentNode||e.leaderChanged)return e.getCurrentNodeStatus()}).finally(()=>{N=null,e.childContext.redraw()}))}function $(){return h.getLocationsWithRpcAddresses().then(t=>{const n=t.find(e=>e.isLocal);n&&(n.endpoint=e.currentNode.endpoint,n.rpcAddress=e.currentNode.address),e.clusterModel.locations=t})}function v(t){a.success(t),e.getClusterConfiguration()}function S(e,t,n){let r=e.message||e;400===t&&Array.isArray(e)?r=e.reduce((e,t)=>e+`<div>${t}</div>`,""):412!==t||Object(o.isString)(e)||(r=Object.keys(e).reduce((t,n)=>t+`<div>${n} - ${e[n]}</div>`,"")),a.error(r,n,{allowHtml:!0})}e.onopen=e.onclose=()=>angular.noop(),e.toggleSidePanel=()=>{e.shouldShowClusterSettingsPanel=!e.shouldShowClusterSettingsPanel},e.toggleLegend=()=>{e.childContext.toggleLegend&&e.childContext.toggleLegend()},e.setLoader=function(t,n){f.cancel(e.loaderTimeout),t?(e.loaderMessage=n,e.loaderTimeout=f((function(){e.loader=t}),50)):e.loader=!1},e.childContext.selectNode=function(t){e.selectedNode!==t?e.selectedNode=t:e.selectedNode=null,e.$apply()},e.getLoaderMessage=function(){return e.loaderMessage||C.instant("common.loading")},e.getClusterConfiguration=()=>m.getClusterConfig().then(t=>{if(e.clusterConfiguration=t.data,!e.currentNode)return e.getCurrentNodeStatus()}).catch(()=>{e.clusterConfiguration=null}),e.getClusterStatus=function(){return m.getClusterStatus().then((function(t){const n=t.data.slice(),o=n.find(e=>e.nodeState===r.LEADER);var a,l;a=e.currentLeader,(l=o)&&a&&a.address===l.address||(e.currentLeader=o,e.leaderChanged=!0),e.currentNode=n.find(t=>t.address===e.currentNode.address);const c=[];o&&Object.keys(o.syncStatus).forEach(e=>{const t=o.syncStatus[e];t!==s.NO_CONNECTION&&c.push({id:`${o.address}-${e}`,source:o.address,target:e,status:t})}),e.clusterModel.hasCluster=!0,e.clusterModel.nodes=n,e.clusterModel.links=c})).catch((function(t){404===t.status&&(e.clusterModel.hasCluster=!1,e.clusterModel.nodes=[],e.clusterModel.links=[],e.clusterConfiguration=null)}))},e.showCreateClusterDialog=function(){c.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-create-dialog.html",controller:"CreateClusterCtrl",size:"lg",resolve:{data:function(){return{clusterModel:e.clusterModel}}}}).result.finally((function(){$(),L(!0)}))},e.showDeleteDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-delete-dialog.html",controller:"DeleteClusterCtrl"}).result.then((function(t){const n=C.instant("cluster_management.delete_cluster_dialog.loader_message");e.setLoader(!0,n),m.deleteCluster(t).then(t=>{if(Object.values(t.data).every(e=>"Cluster was deleted on this node."===e)){const e=C.instant("cluster_management.delete_cluster_dialog.notifications.success_delete");a.success(e)}else{const e=C.instant("cluster_management.delete_cluster_dialog.notifications.success_delete_partial"),n=Object.keys(t.data).reduce((e,n)=>e+`<div>${n} - ${t.data[n]}</div>`,"");a.warning(n,e,{allowHtml:!0})}e.getClusterConfiguration()}).catch(e=>{const t=C.instant("cluster_management.delete_cluster_dialog.notifications.fail_delete");S(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),L(!0),_.$broadcast("reloadLocations")})}))},e.showEditConfigurationDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-edit-dialog.html",controller:"EditClusterCtrl",size:"lg",resolve:{data:function(){return{clusterConfiguration:e.clusterConfiguration}}}}).result.finally((function(){L(!0)}))},e.getCurrentNodeStatus=()=>m.getNodeStatus().then(t=>{e.leaderChanged=!1,e.currentNode=t.data}).catch(t=>{e.currentNode=t.data,e.clusterModel.hasCluster=!1}).then(()=>$()),e.showAddNodeToClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/add-nodes-dialog.html",controller:"AddNodesDialogCtrl",size:"lg",resolve:{data:function(){return{clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then((function(t){const n=C.instant("cluster_management.cluster_page.add_nodes_loader");e.setLoader(!0,n);const o=t.map(e=>e.rpcAddress);m.addNodesToCluster(o).then(()=>{v(C.instant("cluster_management.cluster_page.notifications.add_nodes_success"))}).catch(e=>{const t=C.instant("cluster_management.cluster_page.notifications.add_nodes_fail");S(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),L(!0)})})).finally(()=>$())},e.showRemoveNodesFromClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/remove-nodes-dialog.html",controller:"RemoveNodesDialogCtrl",size:"lg",resolve:{data:function(){return{clusterModel:e.clusterModel}}}}).result.then((function(t){const n=C.instant("cluster_management.cluster_page.remove_nodes_loader");e.setLoader(!0,n);const o=t.map(e=>e.address);m.removeNodesFromCluster(o).then(()=>{v(C.instant("cluster_management.cluster_page.notifications.remove_nodes_success"))}).catch(e=>{const t=C.instant("cluster_management.cluster_page.notifications.remove_nodes_fail");S(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),L(!0)})}))},(e.loader=!0,e.getCurrentNodeStatus().then(()=>e.getClusterConfiguration()).then(()=>e.getClusterStatus()).finally(()=>{e.setLoader(!1)})).finally(()=>{const t=d((function(){L()}),1e3);e.$on("$destroy",(function(){d.cancel(t)}))});const w=angular.element(u),T=function(){e.childContext.resize()};w.bind("resize",T);const O=function(t){const n=t.target,o=document.getElementById("nodeTooltip");e.selectedNode&&o!==n&&!o.contains(n)&&e.childContext.selectNode(null)};w.bind("mousedown",O),e.$on("$destroy",(function(){w.unbind("resize",T),w.unbind("mousedown",O)}))}a.$inject=["$scope","$http","$q","toastr","$repositories","$uibModal","$sce","$window","$interval","ModalService","$timeout","ClusterRestService","$location","$translate","RemoteLocationsService","$rootScope"];const l=function(){const e=document.getElementById("advancedOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"};function c(e,t,n,o,r,s,a,c,i,u){e.pageTitle=s.instant("cluster_management.cluster_page.create_page_title"),e.autofocusId="autofocus",e.errors=[],e.clusterConfiguration={electionMinTimeout:8e3,electionRangeTimeout:6e3,heartbeatInterval:2e3,messageSizeKB:64,verificationTimeout:1500,nodes:[]},e.locations=a.clusterModel.locations.filter(e=>!e.isLocal),e.selectedLocations=a.clusterModel.locations.filter(e=>e.isLocal),e.loader=!1,e.getAdvancedOptionsClass=l,e.createCluster=function(){return e.setLoader(!0,s.instant("cluster_management.cluster_page.creating_cluster_loader")),e.clusterConfiguration.nodes=e.selectedLocations.map(e=>e.rpcAddress),o.createCluster(e.clusterConfiguration).then(()=>{r.success(s.instant("cluster_management.cluster_page.notifications.create_success")),t.close()}).catch((function(t){!function(t,n){delete e.preconditionErrors,r.error(s.instant("cluster_management.cluster_page.notifications.create_failed")),e.errors.splice(0),412===n?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===n?e.errors.push(...t):409===n&&e.errors.push(t)}(t.data,t.status)})).finally(()=>{e.setLoader(!1),u.$broadcast("reloadLocations")})},e.isClusterConfigurationValid=()=>{const t=!e.clusterConfigurationForm.$invalid,n=e.selectedLocations&&e.selectedLocations.length>=2;return t&&n},e.setLoader=function(t,o){n.cancel(e.loaderTimeout),t?e.loaderTimeout=n((function(){e.loader=t,e.loaderMessage=o}),300):e.loader=!1},e.addNodeToList=function(t){t.rpcAddress&&(e.selectedLocations.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=function(t,n){n.isLocal||(e.selectedLocations.splice(t,1),e.locations.push(n))},e.addLocation=function(){i.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=function(){e.isClusterConfigurationValid()?e.createCluster():r.warning(s.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=function(){t.dismiss("cancel")}}function i(e,t){e.forceDelete=!1,e.ok=function(){t.close(e.forceDelete)},e.cancel=function(){t.dismiss("cancel")}}function u(e,t,n,o,r){return{addLocation:function(){let e;return n.open({templateUrl:"js/angular/templates/modal/add-location.html",windowClass:"addLocationDialog",controller:"AddLocationFromClusterCtrl"}).result.then(n=>(e=n,e.isLocal=!1,e.endpoint=e.uri,function(e){let n;return o.addLocation(e).catch(e=>{const n=getError(e.data,e.status);return t.error(n,r.instant("common.error")),!1}).then(e=>!!e&&s()).then(t=>{if(!1!==t)return n=t.find(t=>t.endpoint===e.uri),n})}(e)))},getLocationsWithRpcAddresses:s};function s(){return o.getLocations().then((function(e){return e.data.map(e=>({isLocal:e.local,endpoint:e.uri,rpcAddress:e.rpcAddress||"",error:e.errorMsg}))})).catch((function(e){const n=getError(e.data,e.status);t.error(n,r.instant("common.error"))})).then(e=>{if(e)return function(e){const t=e.filter(e=>!e.isLocal&&!e.error).map(e=>function(e){return o.getLocationRpcAddress(e.endpoint)}(e).then(t=>(e.rpcAddress=t.data,e.isAvailable=!0,e)).catch(t=>{e.isAvailable=!1,e.error=getError(t.data,t.status)}));return Promise.allSettled(t).then(()=>e)}(e)})}}function d(e,t,n,o,r){e.newLocation={uri:"",authType:"signature",username:"",password:"",active:!1},e.docBase=f(o),e.isValidLocation=function(){return(e.newLocation.uri.length<6||0===e.newLocation.uri.indexOf("http:")||0===e.newLocation.uri.indexOf("https:"))&&e.newLocation.uri.indexOf("/repositories")<=-1},e.ok=function(){e.newLocation?t.close(e.newLocation):n.error(r.instant("location.cannot.be.empty.error"))},e.cancel=function(){t.dismiss("cancel")}}function g(e,t,n,o,r,s,a){e.pageTitle=s.instant("cluster_management.cluster_page.edit_page_title"),e.errors=[],e.clusterConfiguration=angular.copy(a.clusterConfiguration),e.loader=!1,e.updateCluster=function(){return e.setLoader(!0,s.instant("cluster_management.cluster_page.updating_cluster_loader")),o.updateCluster(e.clusterConfiguration).then(()=>{r.success(s.instant("cluster_management.cluster_page.notifications.update_success")),t.close()}).catch((function(t){!function(t,n){delete e.preconditionErrors,r.error(s.instant("cluster_management.cluster_page.notifications.update_failed")),e.errors.splice(0),409===n||"string"==typeof t?e.errors.push(t):412===n?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===n&&e.errors.push(...t)}(t.data,t.status)})).finally(()=>e.setLoader(!1))},e.isClusterConfigurationValid=()=>!e.clusterConfigurationForm.$invalid,e.setLoader=function(t,o){n.cancel(e.loaderTimeout),t?e.loaderTimeout=n((function(){e.loader=t,e.loaderMessage=o}),300):e.loader=!1},e.ok=function(){e.isClusterConfigurationValid()?e.updateCluster():r.warning(s.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=function(){t.dismiss("cancel")}}c.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data","$uibModal","RemoteLocationsService","$rootScope"],i.$inject=["$scope","$uibModalInstance"],u.$inject=["$http","toastr","$uibModal","LocationsRestService","$translate"],d.$inject=["$scope","$uibModalInstance","toastr","productInfo","$translate"],g.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data"];const f=function(e){return"https://graphdb.ontotext.com/documentation/"+e.productShortVersion};function m(e,t,n,o,r){const s=angular.copy(n.clusterConfiguration),a=angular.copy(n.clusterModel);e.nodes=[],e.clusterNodes=a.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint})),e.locations=a.locations.filter(e=>!s.nodes.includes(e.rpcAddress)),e.locations.forEach(e=>e.isNew=!0),e.addNodeToList=function(t){t.rpcAddress&&(e.nodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=function(t,n){e.nodes.splice(t,1),e.locations.push(n)},e.addLocation=function(){r.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=function(){t.close(e.nodes)},e.cancel=function(){t.dismiss("cancel")}}function p(e,t,n){const o=angular.copy(n.clusterModel);e.clusterNodes=o.nodes,e.clusterNodes.forEach(e=>e.shouldRemove=!1),e.nodesToRemoveCount=0,e.leftNodesLessThanTwo=!1,e.toggleNode=function(t,n){n.shouldRemove=!n.shouldRemove,n.shouldRemove?e.nodesToRemoveCount++:e.nodesToRemoveCount--,e.leftNodesLessThanTwo=e.clusterNodes.length-e.nodesToRemoveCount<2},e.ok=function(){const n=e.clusterNodes.filter(e=>e.shouldRemove);t.close(n)},e.cancel=function(){t.dismiss("cancel")}}m.$inject=["$scope","$uibModalInstance","data","$uibModal","RemoteLocationsService"],p.$inject=["$scope","$uibModalInstance","data"]}}]);
2
+ //# sourceMappingURL=4.5391679fa01c55e842cc.bundle.js.map