graphdb-workbench 1.11.2 → 1.11.3-TR1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/10.94e753e068396d6b6ec9.bundle.js +2 -0
- package/dist/10.94e753e068396d6b6ec9.bundle.js.map +1 -0
- package/dist/11.043e8d20764e39c10e31.bundle.js +2 -0
- package/dist/11.043e8d20764e39c10e31.bundle.js.map +1 -0
- package/dist/111.73819c3722ceee587ce7.bundle.js +2 -0
- package/dist/111.73819c3722ceee587ce7.bundle.js.map +1 -0
- package/dist/112.b48a6ea437c1c3ddd7b5.bundle.js +2 -0
- package/dist/112.b48a6ea437c1c3ddd7b5.bundle.js.map +1 -0
- package/dist/113.09a0a17c31bfc387c352.bundle.js +2 -0
- package/dist/113.09a0a17c31bfc387c352.bundle.js.map +1 -0
- package/dist/{114.edebb3161ce52d4ca2e1.bundle.js → 114.dcc909bf7059e08fad2a.bundle.js} +2 -2
- package/dist/{114.edebb3161ce52d4ca2e1.bundle.js.map → 114.dcc909bf7059e08fad2a.bundle.js.map} +1 -1
- package/dist/119.08aed6d34851afdefac5.bundle.js +2 -0
- package/dist/119.08aed6d34851afdefac5.bundle.js.map +1 -0
- package/dist/12.bb55709d82da219afedf.bundle.js +2 -0
- package/dist/12.bb55709d82da219afedf.bundle.js.map +1 -0
- package/dist/121.574db48a413271cafc2e.bundle.js +2 -0
- package/dist/121.574db48a413271cafc2e.bundle.js.map +1 -0
- package/dist/123.9ba8fea15f3fcddc734d.bundle.js +2 -0
- package/dist/123.9ba8fea15f3fcddc734d.bundle.js.map +1 -0
- package/dist/125.4ffda62ed511df3132f6.bundle.js +2 -0
- package/dist/125.4ffda62ed511df3132f6.bundle.js.map +1 -0
- package/dist/126.c5fd3ba65878ffcc3c03.bundle.js +2 -0
- package/dist/126.c5fd3ba65878ffcc3c03.bundle.js.map +1 -0
- package/dist/129.5d023d0fbbb2c517932c.bundle.js +2 -0
- package/dist/129.5d023d0fbbb2c517932c.bundle.js.map +1 -0
- package/dist/131.e7a34e7f2b2e5898249d.bundle.js +2 -0
- package/dist/131.e7a34e7f2b2e5898249d.bundle.js.map +1 -0
- package/dist/132.b98cc245bf2c668b2ffd.bundle.js +2 -0
- package/dist/132.b98cc245bf2c668b2ffd.bundle.js.map +1 -0
- package/dist/134.72b76429fe72a9fc5119.bundle.js +2 -0
- package/dist/134.72b76429fe72a9fc5119.bundle.js.map +1 -0
- package/dist/136.991f41ef4565f68c31a7.bundle.js +2 -0
- package/dist/136.991f41ef4565f68c31a7.bundle.js.map +1 -0
- package/dist/137.b62f0afcb15c29764c04.bundle.js +2 -0
- package/dist/137.b62f0afcb15c29764c04.bundle.js.map +1 -0
- package/dist/138.fba22be7b3b98750e0c3.bundle.js +2 -0
- package/dist/138.fba22be7b3b98750e0c3.bundle.js.map +1 -0
- package/dist/{14.0c709b039159410b0b91.bundle.js → 14.6f8b993e972dee32e159.bundle.js} +2 -2
- package/dist/14.6f8b993e972dee32e159.bundle.js.map +1 -0
- package/dist/140.b4777706146b1ac867ed.bundle.js +2 -0
- package/dist/140.b4777706146b1ac867ed.bundle.js.map +1 -0
- package/dist/141.4464fb26b1893e0dbc7a.bundle.js +2 -0
- package/dist/141.4464fb26b1893e0dbc7a.bundle.js.map +1 -0
- package/dist/142.4d4fdae663dbeb2df310.bundle.js +2 -0
- package/dist/142.4d4fdae663dbeb2df310.bundle.js.map +1 -0
- package/dist/145.c9ab7d2a56005326406c.bundle.js +2 -0
- package/dist/145.c9ab7d2a56005326406c.bundle.js.map +1 -0
- package/dist/146.f5efcb8ef74bf52d3daf.bundle.js +2 -0
- package/dist/146.f5efcb8ef74bf52d3daf.bundle.js.map +1 -0
- package/dist/{147.0798c61ee5472e70b552.bundle.js → 147.fa44265c07ea2c3c5615.bundle.js} +2 -2
- package/dist/{147.0798c61ee5472e70b552.bundle.js.map → 147.fa44265c07ea2c3c5615.bundle.js.map} +1 -1
- package/dist/148.8b1e910543c6c25b2f0b.bundle.js +2 -0
- package/dist/148.8b1e910543c6c25b2f0b.bundle.js.map +1 -0
- package/dist/15.eb562ad073aa0fcd725f.bundle.js +2 -0
- package/dist/15.eb562ad073aa0fcd725f.bundle.js.map +1 -0
- package/dist/16.0a3c03f05a4bbdfe83ef.bundle.js +2 -0
- package/dist/16.0a3c03f05a4bbdfe83ef.bundle.js.map +1 -0
- package/dist/18.c3e44ed00a2532402729.bundle.js +3 -0
- package/dist/18.c3e44ed00a2532402729.bundle.js.map +1 -0
- package/dist/20.264daf29beccbf7de84a.bundle.js +2 -0
- package/dist/20.264daf29beccbf7de84a.bundle.js.map +1 -0
- package/dist/22.e85ffde858c596437b7a.bundle.js +1 -1
- package/dist/22.e85ffde858c596437b7a.bundle.js.map +1 -1
- package/dist/23.c58eff831306fad29d42.bundle.js +2 -0
- package/dist/23.c58eff831306fad29d42.bundle.js.map +1 -0
- package/dist/25.8c10d875bf32c8648157.bundle.js +2 -0
- package/dist/25.8c10d875bf32c8648157.bundle.js.map +1 -0
- package/dist/{26.57526f30f6b3c581334d.bundle.js → 26.c59631eb4bc0bf8d26b2.bundle.js} +2 -2
- package/dist/26.c59631eb4bc0bf8d26b2.bundle.js.map +1 -0
- package/dist/27.ed9e0cc8aaa3a12c1fa2.bundle.js +2 -0
- package/dist/27.ed9e0cc8aaa3a12c1fa2.bundle.js.map +1 -0
- package/dist/28.8f5d9fc8ee46db2a6357.bundle.js +2 -0
- package/dist/28.8f5d9fc8ee46db2a6357.bundle.js.map +1 -0
- package/dist/30.d341c7532759bc79f41a.bundle.js +1 -1
- package/dist/30.d341c7532759bc79f41a.bundle.js.map +1 -1
- package/dist/{32.ba5b5ca3e4b7dcf5bd15.bundle.js → 32.1059e272ed99ba3db699.bundle.js} +2 -2
- package/dist/32.1059e272ed99ba3db699.bundle.js.map +1 -0
- package/dist/{35.b8c8d16a8707c20a1fcb.bundle.js → 35.1f53c71368afc468cc10.bundle.js} +2 -2
- package/dist/35.1f53c71368afc468cc10.bundle.js.map +1 -0
- package/dist/{36.d96e6ee811e8340ae320.bundle.js → 36.aced0c9768c16e4d29ef.bundle.js} +2 -2
- package/dist/36.aced0c9768c16e4d29ef.bundle.js.map +1 -0
- package/dist/37.dcbe2e4e1f86ca2da209.bundle.js +1 -1
- package/dist/37.dcbe2e4e1f86ca2da209.bundle.js.map +1 -1
- package/dist/38.171aa543e807777b4f29.bundle.js +1 -1
- package/dist/38.171aa543e807777b4f29.bundle.js.map +1 -1
- package/dist/40.f660048c67e9b6d478dc.bundle.js +2 -0
- package/dist/40.f660048c67e9b6d478dc.bundle.js.map +1 -0
- package/dist/{42.190f8880ee8f3a97a042.bundle.js → 42.9bbccd6cb2c263d7b873.bundle.js} +2 -2
- package/dist/42.9bbccd6cb2c263d7b873.bundle.js.map +1 -0
- package/dist/{43.899bf21ce1de203ace21.bundle.js → 43.6f609ec150488009b166.bundle.js} +2 -2
- package/dist/43.6f609ec150488009b166.bundle.js.map +1 -0
- package/dist/{44.c649782fa0755b53a62c.bundle.js → 44.8be8b582a97146d3ad6f.bundle.js} +2 -2
- package/dist/44.8be8b582a97146d3ad6f.bundle.js.map +1 -0
- package/dist/47.b94dca10f70c70009f46.bundle.js +2 -0
- package/dist/47.b94dca10f70c70009f46.bundle.js.map +1 -0
- package/dist/{48.52c5b13ab244c45a8c43.bundle.js → 48.10699147cdbee9af3c2b.bundle.js} +2 -2
- package/dist/48.10699147cdbee9af3c2b.bundle.js.map +1 -0
- package/dist/{5.21d2da4b4bc2b26e2534.bundle.js → 5.275d1f74283aff0821f2.bundle.js} +2 -2
- package/dist/5.275d1f74283aff0821f2.bundle.js.map +1 -0
- package/dist/{56.ce399f5788c0f5fe937b.bundle.js → 56.dae3cb719fcb013d7a06.bundle.js} +2 -2
- package/dist/56.dae3cb719fcb013d7a06.bundle.js.map +1 -0
- package/dist/68.5fa639981e7ce624fb73.bundle.js +2 -0
- package/dist/68.5fa639981e7ce624fb73.bundle.js.map +1 -0
- package/dist/{7.a0f5ec224bebd08058f4.bundle.js → 7.9946929545b7635857ac.bundle.js} +2 -2
- package/dist/7.9946929545b7635857ac.bundle.js.map +1 -0
- package/dist/75.3dd1e0c0ad0cf40ed6a1.bundle.js +2 -0
- package/dist/75.3dd1e0c0ad0cf40ed6a1.bundle.js.map +1 -0
- package/dist/78.6caec59329b53bb098ee.bundle.js +2 -0
- package/dist/78.6caec59329b53bb098ee.bundle.js.map +1 -0
- package/dist/{79.f4a2c3ec71bed08d61b9.bundle.js → 79.0f7567cb18c210d45806.bundle.js} +2 -2
- package/dist/79.0f7567cb18c210d45806.bundle.js.map +1 -0
- package/dist/{9.c9fc88a79b7990e29e04.bundle.js → 9.c4b55fc1e3fc858be626.bundle.js} +2 -2
- package/dist/9.c4b55fc1e3fc858be626.bundle.js.map +1 -0
- package/dist/{94.3efcd047d4d4e506cbd7.bundle.js → 94.afe4c166f07dbf1bc30f.bundle.js} +2 -2
- package/dist/94.afe4c166f07dbf1bc30f.bundle.js.map +1 -0
- package/dist/{96.754454264340bc9d9a70.bundle.js → 96.f7d3f181e8860ce2bd8b.bundle.js} +2 -2
- package/dist/96.f7d3f181e8860ce2bd8b.bundle.js.map +1 -0
- package/dist/bundle.48ae48a008439cff2323.bundle.js +79 -0
- package/dist/bundle.48ae48a008439cff2323.bundle.js.map +1 -0
- package/dist/index.html +7 -7
- package/dist/js/angular/core/directives/queryeditor/templates/query-editor.html +18 -18
- package/dist/js/angular/core/directives/queryeditor/templates/query-sample.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +3 -3
- package/dist/js/angular/core/templates/core-errors.html +1 -1
- package/dist/js/angular/core/templates/search-resource-input.html +3 -3
- package/dist/js/angular/externalsync/templates/deleteConnector.html +1 -1
- package/dist/js/angular/graphexplore/templates/modal/save-graph.html +1 -1
- package/dist/js/angular/graphexplore/templates/rdfsCommentLabelTemplate.html +3 -3
- package/dist/js/angular/graphexplore/templates/searchIconInputTemplate.html +3 -3
- package/dist/js/angular/import/templates/filesTable.html +12 -12
- package/dist/js/angular/import/templates/settingsModal.html +19 -19
- package/dist/js/angular/import/templates/textSnippet.html +4 -4
- package/dist/js/angular/import/templates/urlImport.html +4 -4
- package/dist/js/angular/repositories/templates/fedx-repo.html +28 -19
- package/dist/js/angular/repositories/templates/ontop-repo.html +8 -8
- package/dist/js/angular/security/templates/modal/default-authorities.html +3 -3
- package/dist/js/angular/security/templates/user.html +12 -12
- package/dist/js/angular/security/templates/users.html +11 -11
- package/dist/js/angular/settings/modal/location-settings.html +5 -5
- package/dist/js/angular/templates/modal/add-location.html +3 -3
- package/dist/js/angular/templates/modal/edit-location.html +3 -3
- package/dist/js/angular/templates/modal/editRepoFile.html +1 -1
- package/dist/js/angular/templates/modal/upload-repository-config.html +2 -2
- package/dist/pages/autocomplete.html +8 -8
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/clusterInfo.html +2 -2
- package/dist/pages/connectorsInfo.html +5 -5
- package/dist/pages/create-index.html +16 -16
- package/dist/pages/createConnector.html +22 -22
- package/dist/pages/dependencies.html +12 -12
- package/dist/pages/domainRangeInfo.html +4 -4
- package/dist/pages/edit.html +7 -7
- package/dist/pages/explore.html +10 -10
- package/dist/pages/export.html +14 -14
- package/dist/pages/find.html +2 -2
- package/dist/pages/graph-config/saveGraphConfig.html +28 -40
- package/dist/pages/graphs-visualizations.html +46 -46
- package/dist/pages/home.html +10 -10
- package/dist/pages/import.html +7 -7
- package/dist/pages/info.html +16 -16
- package/dist/pages/jdbc-create.html +20 -20
- package/dist/pages/jdbc.html +3 -3
- package/dist/pages/licenseInfo.html +1 -1
- package/dist/pages/login.html +2 -2
- package/dist/pages/monitor/queries.html +6 -6
- package/dist/pages/monitor/resources.html +3 -3
- package/dist/pages/namespaces.html +14 -14
- package/dist/pages/ontorefine.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +16 -16
- package/dist/pages/rdfrank.html +17 -17
- package/dist/pages/registerLicenseInfo.html +3 -3
- package/dist/pages/repositories.html +22 -22
- package/dist/pages/repository.html +28 -28
- package/dist/pages/similarity-indexes.html +15 -15
- package/dist/pages/sparql-template-create.html +9 -9
- package/dist/pages/sparql-templates.html +3 -3
- package/dist/pages/sparql.html +8 -8
- package/dist/pages/webapi.html +3 -3
- package/dist/res/swagger/index.html +25 -25
- package/package.json +5 -4
- package/dist/10.f0277e5092cea150b5a8.bundle.js +0 -2
- package/dist/10.f0277e5092cea150b5a8.bundle.js.map +0 -1
- package/dist/11.bdd794940dcfd5daa9a1.bundle.js +0 -2
- package/dist/11.bdd794940dcfd5daa9a1.bundle.js.map +0 -1
- package/dist/111.056eb71072bfd8f6551b.bundle.js +0 -2
- package/dist/111.056eb71072bfd8f6551b.bundle.js.map +0 -1
- package/dist/112.50fd62c66c6594e055a3.bundle.js +0 -2
- package/dist/112.50fd62c66c6594e055a3.bundle.js.map +0 -1
- package/dist/113.2c059fa7d06fd04149eb.bundle.js +0 -2
- package/dist/113.2c059fa7d06fd04149eb.bundle.js.map +0 -1
- package/dist/119.dfdf8b9afa2c31b90232.bundle.js +0 -2
- package/dist/119.dfdf8b9afa2c31b90232.bundle.js.map +0 -1
- package/dist/12.a3762f9fba854a28c1cb.bundle.js +0 -2
- package/dist/12.a3762f9fba854a28c1cb.bundle.js.map +0 -1
- package/dist/121.aa10886f87136602a6cf.bundle.js +0 -2
- package/dist/121.aa10886f87136602a6cf.bundle.js.map +0 -1
- package/dist/123.318a247a0939300080aa.bundle.js +0 -2
- package/dist/123.318a247a0939300080aa.bundle.js.map +0 -1
- package/dist/125.4978d60a14b65499a047.bundle.js +0 -2
- package/dist/125.4978d60a14b65499a047.bundle.js.map +0 -1
- package/dist/126.4a830f0d18f079b1dca7.bundle.js +0 -2
- package/dist/126.4a830f0d18f079b1dca7.bundle.js.map +0 -1
- package/dist/129.7ca4a0a32cacb6feb225.bundle.js +0 -2
- package/dist/129.7ca4a0a32cacb6feb225.bundle.js.map +0 -1
- package/dist/131.087611adf6562e7e1b00.bundle.js +0 -2
- package/dist/131.087611adf6562e7e1b00.bundle.js.map +0 -1
- package/dist/132.b1ed3e4c9238c5b6303b.bundle.js +0 -2
- package/dist/132.b1ed3e4c9238c5b6303b.bundle.js.map +0 -1
- package/dist/134.653804476f9803033cbe.bundle.js +0 -2
- package/dist/134.653804476f9803033cbe.bundle.js.map +0 -1
- package/dist/136.5d60eb9d8d66581003ce.bundle.js +0 -2
- package/dist/136.5d60eb9d8d66581003ce.bundle.js.map +0 -1
- package/dist/137.0cfdd5934c6a400ab990.bundle.js +0 -2
- package/dist/137.0cfdd5934c6a400ab990.bundle.js.map +0 -1
- package/dist/138.611df35cbfdfec860909.bundle.js +0 -2
- package/dist/138.611df35cbfdfec860909.bundle.js.map +0 -1
- package/dist/14.0c709b039159410b0b91.bundle.js.map +0 -1
- package/dist/140.b0310ba39e9c3237f48a.bundle.js +0 -2
- package/dist/140.b0310ba39e9c3237f48a.bundle.js.map +0 -1
- package/dist/141.5d76be84a3151e69fc9d.bundle.js +0 -2
- package/dist/141.5d76be84a3151e69fc9d.bundle.js.map +0 -1
- package/dist/142.a4094b510036aaf72b0b.bundle.js +0 -2
- package/dist/142.a4094b510036aaf72b0b.bundle.js.map +0 -1
- package/dist/145.6536295098a4f2e030e3.bundle.js +0 -2
- package/dist/145.6536295098a4f2e030e3.bundle.js.map +0 -1
- package/dist/146.ee9db0da29c25ec7fbf9.bundle.js +0 -2
- package/dist/146.ee9db0da29c25ec7fbf9.bundle.js.map +0 -1
- package/dist/148.0ce4968734a80e71b2b9.bundle.js +0 -2
- package/dist/148.0ce4968734a80e71b2b9.bundle.js.map +0 -1
- package/dist/15.fc7c799455b5aec64393.bundle.js +0 -2
- package/dist/15.fc7c799455b5aec64393.bundle.js.map +0 -1
- package/dist/16.005766c64d76f95231b1.bundle.js +0 -2
- package/dist/16.005766c64d76f95231b1.bundle.js.map +0 -1
- package/dist/18.2ddbba81e5b663db1894.bundle.js +0 -3
- package/dist/18.2ddbba81e5b663db1894.bundle.js.map +0 -1
- package/dist/20.a35d80fb5e80ae3874ce.bundle.js +0 -2
- package/dist/20.a35d80fb5e80ae3874ce.bundle.js.map +0 -1
- package/dist/23.102a20601f717ba91551.bundle.js +0 -2
- package/dist/23.102a20601f717ba91551.bundle.js.map +0 -1
- package/dist/25.bd69d5c4040e1547800b.bundle.js +0 -2
- package/dist/25.bd69d5c4040e1547800b.bundle.js.map +0 -1
- package/dist/26.57526f30f6b3c581334d.bundle.js.map +0 -1
- package/dist/27.ab75434b1389b977291c.bundle.js +0 -2
- package/dist/27.ab75434b1389b977291c.bundle.js.map +0 -1
- package/dist/28.b2180a7cba95d9328e1a.bundle.js +0 -2
- package/dist/28.b2180a7cba95d9328e1a.bundle.js.map +0 -1
- package/dist/32.ba5b5ca3e4b7dcf5bd15.bundle.js.map +0 -1
- package/dist/35.b8c8d16a8707c20a1fcb.bundle.js.map +0 -1
- package/dist/36.d96e6ee811e8340ae320.bundle.js.map +0 -1
- package/dist/40.c754ab2b3b35c2acb854.bundle.js +0 -2
- package/dist/40.c754ab2b3b35c2acb854.bundle.js.map +0 -1
- package/dist/42.190f8880ee8f3a97a042.bundle.js.map +0 -1
- package/dist/43.899bf21ce1de203ace21.bundle.js.map +0 -1
- package/dist/44.c649782fa0755b53a62c.bundle.js.map +0 -1
- package/dist/47.421938875d2461427ae3.bundle.js +0 -2
- package/dist/47.421938875d2461427ae3.bundle.js.map +0 -1
- package/dist/48.52c5b13ab244c45a8c43.bundle.js.map +0 -1
- package/dist/5.21d2da4b4bc2b26e2534.bundle.js.map +0 -1
- package/dist/56.ce399f5788c0f5fe937b.bundle.js.map +0 -1
- package/dist/68.6b887fe6160e5bd8742b.bundle.js +0 -2
- package/dist/68.6b887fe6160e5bd8742b.bundle.js.map +0 -1
- package/dist/7.a0f5ec224bebd08058f4.bundle.js.map +0 -1
- package/dist/75.dbd9915663de96056138.bundle.js +0 -2
- package/dist/75.dbd9915663de96056138.bundle.js.map +0 -1
- package/dist/78.608f8074bef29a89d68b.bundle.js +0 -2
- package/dist/78.608f8074bef29a89d68b.bundle.js.map +0 -1
- package/dist/79.f4a2c3ec71bed08d61b9.bundle.js.map +0 -1
- package/dist/9.c9fc88a79b7990e29e04.bundle.js.map +0 -1
- package/dist/94.3efcd047d4d4e506cbd7.bundle.js.map +0 -1
- package/dist/96.754454264340bc9d9a70.bundle.js.map +0 -1
- package/dist/bundle.ac70985c70f7da448f2d.bundle.js +0 -79
- package/dist/bundle.ac70985c70f7da448f2d.bundle.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/lib/FileSaver-patch.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./src/js/angular/utils/file-types.js","webpack:///./src/js/angular/core/directives/paginations.js","webpack:///./src/js/angular/export/controllers.js","webpack:///./src/js/angular/export/app.js"],"names":["saveAs","view","navigator","test","userAgent","doc","document","get_URL","URL","webkitURL","save_link","createElementNS","webkit_req_fs","webkitRequestFileSystem","req_fs","requestFileSystem","mozRequestFileSystem","throw_outside","ex","setImmediate","setTimeout","fs_min_size","revoke","file","revoker","revokeObjectURL","remove","chrome","dispatch","filesaver","event_types","event","i","concat","length","listener","call","auto_bom","blob","type","Blob","FileSaver","name","object_url","target_view","slice","this","blob_changed","dispatch_all","split","fs_error","createObjectURL","location","href","undefined","open","safari","readyState","DONE","abortable","func","apply","arguments","create_if_not_found","create","exclusive","INIT","download","node","MouseEvent","dispatchEvent","webkitSlice","size","TEMPORARY","fs","root","getDirectory","dir","save","getFile","createWriter","writer","onwriteend","toURL","onerror","error","code","ABORT_ERR","forEach","write","abort","WRITING","NOT_FOUND_ERR","FS_proto","prototype","msSaveOrOpenBlob","onwritestart","onprogress","onwrite","onabort","self","window","content","module","exports","Error","__webpack_amd_options__","angular","value","extension","directive","template","controller","$scope","$http","$location","$timeout","ModalService","filterFilter","$repositories","toastr","RDF4JRepositoriesRestService","FileTypes","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","key","binding","uri","encodeURIComponent","clearUri","exportUri","longName","graphs","filteredGraphs","copy","matchedElements","status","msg","getError","setRepository","onGraphSearch","deselectAll","filterResults","item","indexOf","push","downloadExport","downloadUrl","format","url","auth","localStorage","getItem","openExportDDTooltip","$","trigger","exportRepo","openSimpleModal","title","message","warning","result","then","startDownload","hasMultipleSelected","_","isEmpty","index","exportSelectedGraphs","contextStr","substring","element","find","valueOfFilteredGraphsButton","innerHTML","trim","valueOfFilteredGraphs","changePagination","isDefined","removeClass","checkAll","dropRepository","canWriteActiveRepo","addStatements","err","dropContext","ctx","updateResults","dropGraph","selectedGraphsForDelete","counterOfClearedGraphs","dropSelectedGraphs","config","$uibTooltipProvider","setTriggers"],"mappings":"wFAAA,MAcIA,EAASA,GAAW,SAASC,GAChC,aAEA,GAAyB,oBAAdC,YAA6B,eAAeC,KAAKD,UAAUE,WAAtE,CAGA,IACGC,EAAMJ,EAAKK,SAEXC,EAAU,WACX,OAAON,EAAKO,KAAOP,EAAKQ,WAAaR,GAEpCS,EAAYL,EAAIM,gBAAgB,+BAAgC,KAMhEC,EAAgBX,EAAKY,wBACrBC,EAASb,EAAKc,mBAAqBH,GAAiBX,EAAKe,qBACzDC,EAAgB,SAASC,IACzBjB,EAAKkB,cAAgBlB,EAAKmB,aAAY,WACtC,MAAMF,IACJ,IAGFG,EAAc,EAKdC,EAAS,SAASC,GACnB,IAAIC,EAAU,WACO,iBAATD,EACVhB,IAAUkB,gBAAgBF,GAE1BA,EAAKG,UAGHzB,EAAK0B,OACRH,IAEAJ,WAAWI,EAZgB,MAe3BI,EAAW,SAASC,EAAWC,EAAaC,GAG7C,IADA,IAAIC,GADJF,EAAc,GAAGG,OAAOH,IACJI,OACbF,KAAK,CACX,IAAIG,EAAWN,EAAU,KAAOC,EAAYE,IAC5C,GAAwB,mBAAbG,EACV,IACCA,EAASC,KAAKP,EAAWE,GAASF,GACjC,MAAOX,GACRD,EAAcC,MAKhBmB,EAAW,SAASC,GAErB,MAAI,6EAA6EnC,KAAKmC,EAAKC,MACnF,IAAIC,KAAK,CAAC,SAAUF,GAAO,CAACC,KAAMD,EAAKC,OAExCD,GAENG,EAAY,SAASH,EAAMI,GAC5BJ,EAAOD,EAASC,GAEhB,IAIGK,EACAC,EA+BAC,EAnCAhB,EAAYiB,KACZP,EAAOD,EAAKC,KACZQ,GAAe,EAGfC,EAAe,WAChBpB,EAASC,EAAW,qCAAqCoB,MAAM,OAG9DC,EAAW,aAERH,GAAiBJ,IACpBA,EAAapC,IAAU4C,gBAAgBb,IAEpCM,GACHA,EAAYQ,SAASC,KAAOV,EAGbW,MADDrD,EAAKsD,KAAKZ,EAAY,WACU,oBAAXa,SAElCvD,EAAKmD,SAASC,KAAOV,GAGvBd,EAAU4B,WAAa5B,EAAU6B,KACjCV,IACA1B,EAAOqB,IAENgB,EAAY,SAASC,GACtB,OAAO,WACN,GAAI/B,EAAU4B,aAAe5B,EAAU6B,KACtC,OAAOE,EAAKC,MAAMf,KAAMgB,aAIzBC,EAAsB,CAACC,QAAQ,EAAMC,WAAW,GAOnD,GAJApC,EAAU4B,WAAa5B,EAAUqC,KAC5BxB,IACJA,EAAO,YAEJhC,EAWH,OAVAiC,EAAapC,IAAU4C,gBAAgBb,GAEvC5B,EAAU2C,KAAOV,EACjBjC,EAAUyD,SAAWzB,OACrBtB,YAAW,WAtGH,IAASgD,EACdrC,EADcqC,EAuGV1D,EAtGJqB,EAAQ,IAAIsC,WAAW,SAC3BD,EAAKE,cAAcvC,GAsGjBiB,IACA1B,EAAOqB,GACPd,EAAU4B,WAAa5B,EAAU6B,QAS/BzD,EAAK0B,QAAUY,GAxGI,6BAwGIA,IAC1BM,EAAQP,EAAKO,OAASP,EAAKiC,YAC3BjC,EAAOO,EAAMT,KAAKE,EAAM,EAAGA,EAAKkC,KA1GV,4BA2GtBzB,GAAe,GAKZnC,GAA0B,aAAT8B,IACpBA,GAAQ,cAjHc,6BAmHnBH,GAAgC3B,KACnCgC,EAAc3C,GAEVa,GAILO,GAAeiB,EAAKkC,KACpB1D,EAAOb,EAAKwE,UAAWpD,EAAasC,GAAU,SAASe,GACtDA,EAAGC,KAAKC,aAAa,QAASb,EAAqBJ,GAAU,SAASkB,GACrE,IAAIC,EAAO,WACVD,EAAIE,QAAQrC,EAAMqB,EAAqBJ,GAAU,SAASpC,GACzDA,EAAKyD,aAAarB,GAAU,SAASsB,GACpCA,EAAOC,WAAa,SAASnD,GAC5Ba,EAAYQ,SAASC,KAAO9B,EAAK4D,QACjCtD,EAAU4B,WAAa5B,EAAU6B,KACjC9B,EAASC,EAAW,WAAYE,GAChCT,EAAOC,IAER0D,EAAOG,QAAU,WAChB,IAAIC,EAAQJ,EAAOI,MACfA,EAAMC,OAASD,EAAME,WACxBrC,KAGF,kCAAkCD,MAAM,KAAKuC,SAAQ,SAASzD,GAC7DkD,EAAO,KAAOlD,GAASF,EAAU,KAAOE,MAEzCkD,EAAOQ,MAAMnD,GACbT,EAAU6D,MAAQ,WACjBT,EAAOS,QACP7D,EAAU4B,WAAa5B,EAAU6B,MAElC7B,EAAU4B,WAAa5B,EAAU8D,WAC9BzC,MACDA,IAEL2B,EAAIE,QAAQrC,EAAM,CAACsB,QAAQ,GAAQL,GAAU,SAASpC,GAErDA,EAAKG,SACLoD,OACGnB,GAAU,SAASzC,GAClBA,EAAGoE,OAASpE,EAAG0E,cAClBd,IAEA5B,WAGCA,MACDA,IA7CHA,KA+CA2C,EAAWpD,EAAUqD,UAMxB,MAAyB,oBAAd5F,WAA6BA,UAAU6F,iBAC1C,SAASzD,EAAMI,GACrB,OAAOxC,UAAU6F,iBAAiB1D,EAASC,GAAOI,KAIpDmD,EAASH,MAAQ,WACA5C,KACNW,WADMX,KACiBY,KACjC9B,EAFgBkB,KAEI,UAErB+C,EAASpC,WAAaoC,EAAS3B,KAAO,EACtC2B,EAASF,QAAU,EACnBE,EAASnC,KAAO,EAEhBmC,EAASR,MACTQ,EAASG,aACTH,EAASI,WACTJ,EAASK,QACTL,EAASM,QACTN,EAAST,QACTS,EAASX,WACR,KA3BW,SAAS5C,EAAMI,GACzB,OAAO,IAAID,EAAUH,EAAMI,MAjMP,CA+NH,oBAAT0D,MAAwBA,MACb,oBAAXC,QAA0BA,QACjCvD,KAAKwD;mFAM4BC,EAAOC,QAC1CD,EAAOC,QAAQxG,OAASA,EAC8B,OAAX,QAAmC,MAAd,cAG/D,KAFU,EAAF,WACP,OAAOA,GACR,QAFM,OAEN,e,kBC1PHuG,EAAOC,QAAU,WAChB,MAAM,IAAIC,MAAM,oC,mBCDjB,YACAF,EAAOC,QAAUE,I,gCCDjBC,QAAQJ,OAAO,oCAAqC,IAC/CK,MAAM,YAAa,CAChB,CAAClE,KAAM,OAAQH,KAAM,uBAAwBsE,UAAW,SACxD,CAACnE,KAAM,UAAWH,KAAM,sBAAuBsE,UAAW,WAC1D,CAACnE,KAAM,UAAWH,KAAM,sBAAuBsE,UAAW,QAC1D,CAACnE,KAAM,KAAMH,KAAM,cAAesE,UAAW,OAC7C,CAACnE,KAAM,YAAaH,KAAM,aAAcsE,UAAW,OACnD,CAACnE,KAAM,UAAWH,KAAM,gBAAiBsE,UAAW,OACpD,CAACnE,KAAM,SAAUH,KAAM,cAAesE,UAAW,QACjD,CAACnE,KAAM,UAAWH,KAAM,2BAA4BsE,UAAW,SAC/D,CAACnE,KAAM,OAAQH,KAAM,mBAAoBsE,UAAW,SACpD,CAACnE,KAAM,OAAQH,KAAM,qBAAsBsE,UAAW,SACtD,CAACnE,KAAM,QAASH,KAAM,yBAA0BsE,UAAW,UAC3D,CAACnE,KAAM,aAAcH,KAAM,2BAA4BsE,UAAW,W,iBCb1EF,QAAQJ,OAAO,gDAAiD,IAC3DO,UAAU,eAAe,WACtB,MAAO,CACHC,SAAU,yP,gCCHtB,4BAcmBJ,QAAQJ,OAAO,6CATlB,CACZ,YACA,eACA,SACA,+CACA,0CACA,sCAKOS,WAAW,aAClB,CAAC,SAAU,QAAS,YAAa,WAAY,eAAgB,eAAgB,gBAAiB,SAAU,+BAAgC,YACpI,SAAUC,EAAQC,EAAOC,EAAWC,EAAUC,EAAcC,EAAcC,EAAeC,EAAQC,EAA8BC,GAE3HT,EAAOU,oBAAsB,WACzB,OAAOJ,EAAcI,uBAGzBV,EAAOW,cAAgBF,EACvBT,EAAOY,SAAW,GAClBZ,EAAOa,qBAAsB,EAC7Bb,EAAOc,KAAO,EACdd,EAAOe,SAAW,GAClBf,EAAOgB,gBAAkB,CAAC,GAAI,GAAI,GAAI,KACtChB,EAAOiB,cAAgB,GACvBjB,EAAOkB,aAAe,GACtBlB,EAAOmB,QAAS,EAChBnB,EAAOoB,sBAAuB,EAC9BpB,EAAOqB,iBAAmB,CACtB5F,KAAM,OACNH,KAAM,qBACNsE,UAAW,SAEfI,EAAOsB,eAAiB,CACpBC,aAAc,IAGlBvB,EAAOwB,QAAO,WACV,OAAOlB,EAAcI,yBACtB,WACCV,EAAOkB,aAAe,GACtBlB,EAAOyB,YACPzB,EAAO0B,aAAc,EACrBvB,GAAS,WACLH,EAAO2B,eAAe,MACvB,QAGP3B,EAAO4B,QAAU,SAAUC,GACvB,MAAe,8DAARA,GAIX7B,EAAOyB,UAAY,WACXzB,EAAOU,uBACPV,EAAO8B,QAAS,EAChBtB,EAA6BiB,UAAUzB,EAAOU,uBAAuBqB,SAAQ,SAAUC,GACnFA,EAAKC,QAAQC,SAASC,QAAQ,CAC1BC,UAAW,CACP9G,KAAM,UACNqE,MAAO,uBAGfK,EAAOqC,cAAgB,GACvBC,OAAOC,KAAKP,EAAKC,QAAQC,UAAU3D,SAAQ,SAAUiE,GACjD,MAAMC,EAAUT,EAAKC,QAAQC,SAASM,GACP,UAA3BC,EAAQL,UAAU9G,KAClBmH,EAAQL,UAAUzC,MAAQ,KAAO8C,EAAQL,UAAUzC,MACjB,YAA3B8C,EAAQL,UAAU9G,MACzBmH,EAAQL,UAAUM,IAAMC,mBAAmB,4CAC3CF,EAAQL,UAAUQ,SAAW,UAC7BH,EAAQL,UAAUS,UAAY,OAC9BJ,EAAQL,UAAUU,SAAW,kBAE7BL,EAAQL,UAAUM,IAAMC,mBAAmBF,EAAQL,UAAUzC,OAC7D8C,EAAQL,UAAUQ,SAAW,UAAYH,EAAQL,UAAUzC,MAAQ,IACnE8C,EAAQL,UAAUS,UAAYF,mBAAmB,IAAMF,EAAQL,UAAUzC,MAAQ,KACjF8C,EAAQL,UAAUU,SAAW,eAAiBL,EAAQL,UAAUzC,OAEpEK,EAAOqC,cAAcI,EAAQL,UAAUzC,OAAS8C,EAAQL,aAE5DpC,EAAO+C,OAASf,EAAKC,QAAQC,SAC7BlC,EAAOgD,eAAiBtD,QAAQuD,KAAKjD,EAAO+C,QAC5C/C,EAAOiB,cAAgBjB,EAAOgD,eAAepH,MAAMoE,EAAOe,UAAYf,EAAOc,KAAO,GAAId,EAAOe,SAAWf,EAAOc,MACjHd,EAAO8B,QAAS,EAChB9B,EAAOsB,eAAeC,aAAe,GACrCvB,EAAOkD,gBAAkBlD,EAAO+C,UACjC3E,OAAM,SAAU4D,EAAMmB,GACrB,MAAMC,EAAMC,SAASrB,EAAMmB,GACf,iCAARC,IACA9C,EAAcgD,cAAc,IAC5B/C,EAAOnC,MAAMgF,EAAK,UAEtBpD,EAAO8B,QAAS,MAGpB9B,EAAO8B,QAAS,GAIxB9B,EAAOuD,cAAgB,WACnBvD,EAAOkD,gBAAkB,GACzBlD,EAAOwD,cACPxD,EAAOyD,iBAGXzD,EAAOyD,cAAgB,WACnB/D,QAAQnB,QAAQyB,EAAO+C,QAAQ,SAAUW,IACsB,IAAvDA,EAAKtB,UAAUzC,MAAMgE,QAAQ3D,EAAOkB,eACpClB,EAAOkD,gBAAgBU,KAAKF,OAKxC1D,EAAO6D,eAAiB,SAAUC,EAAaC,GAC3C,IAAIC,EAAMF,EAAc,WAAanB,mBAAmBoB,EAAOzI,MAC/D,MAAM2I,EAAOC,aAAaC,QAAQ,6BAC9BF,IACAD,EAAMA,EAAM,cAAgBrB,mBAAmBsB,IAEnD7E,OAAO9C,KAAK0H,IAIhBhE,EAAOoE,oBAAsB,WACrBpE,EAAOa,sBACPV,GAAS,WACLkE,EAAE,kBAAkBC,QAAQ,yBAC7B,GACHnE,GAAS,WACLkE,EAAE,kBAAkBC,QAAQ,yBAC7B,KAGHtE,EAAOa,qBAAsB,IAMrCb,EAAOuE,WAAa,SAAUR,EAAQ3B,GACd,wBAAhB2B,EAAOzI,MAAkD,eAAhByI,EAAOzI,MAAyC,gBAAhByI,EAAOzI,MAA0C,6BAAhByI,EAAOzI,MAAuD,gBAAhByI,EAAOzI,KAC/J8E,EAAaoE,gBAAgB,CACzBC,MAAO,UACPC,QAAS,iGACTC,SAAS,IACVC,OACEC,MAAK,WACF7E,EAAO8E,cAAcf,EAAQ3B,MAGrCpC,EAAO8E,cAAcf,EAAQ3B,IAIrCpC,EAAO8E,cAAgB,SAAUf,EAAQ3B,GAErC,IAAI0B,EAEAA,EADA1B,EACc,gBAAkBpC,EAAOU,sBAAwB,mCAAqCV,EAAOqC,cAAcD,EAAUzC,OAAOkD,UAE5H,gBAAkB7C,EAAOU,sBAAwB,0BAEnEV,EAAO6D,eAAeC,EAAaC,IAGvC/D,EAAO+E,oBAAsB,WACzB,GAAIC,EAAEC,QAAQjF,EAAOsB,eAAeC,cAChC,OAAQyD,EAAEC,QAAQjF,EAAOsB,eAAeC,cAExC,IAAK,MAAM2D,KAASlF,EAAOsB,eAAeC,aACtC,IAAkD,IAA9CvB,EAAOsB,eAAeC,aAAa2D,GACnC,OAAO,EAGf,OAAO,GAIflF,EAAOmF,qBAAuB,SAAUpB,GACpC,IAAIqB,EAAa,GACjB,IAAK,MAAMF,KAASlF,EAAOsB,eAAeC,aAClCvB,EAAOsB,eAAeC,aAAa2D,KACnCE,GAAc,WAAapF,EAAOqC,cAAc6C,GAAOrC,UAAY,KAI3E,GAAIuC,EAAY,CACZ,MAAMN,EAAgB,WAClBM,EAAaA,EAAWC,UAAU,EAAGD,EAAWnK,OAAS,GACzD,MAAM6I,EAAc,gBAAkB9D,EAAOU,sBAAwB,2BAA6B0E,EAClGpF,EAAO6D,eAAeC,EAAaC,IAGnB,wBAAhBA,EAAOzI,MAAkD,eAAhByI,EAAOzI,MAAyC,gBAAhByI,EAAOzI,MAA0C,6BAAhByI,EAAOzI,MAAuD,gBAAhByI,EAAOzI,KAC/J8E,EAAaoE,gBAAgB,CACzBC,MAAO,UACPC,QAAS,iGACTC,SAAS,IACVC,OACEC,MAAK,WACFC,OAGRA,SAGJ1E,EAAaoE,gBAAgB,CACzBC,MAAO,wBACPC,QAAS,yCACTC,SAAS,KAKrB3E,EAAOwB,OAAO,gBAAgB,WAE1B,GADAxB,EAAOgD,eAAiB3C,EAAaL,EAAO+C,OAAQ/C,EAAOkB,cACvDlB,EAAOU,uBAAyBhB,QAAQ4F,QAAQjM,UAAUkM,KAAK,kDAAkDtK,OAAQ,CACzH,MAAMuK,EAA8B9F,QAAQ4F,QAAQjM,UAAUkM,KAAK,kDAAkD,GAAGE,UAAUC,OAClI,IAAIC,EACgC,QAAhCH,IACAG,EAAwB3F,EAAOgD,eAAe/H,QAE9C+E,EAAOgD,gBAAkBhD,EAAOgD,eAAe/H,OAAS+E,EAAOe,UAA4C,QAAhCyE,IAC3EG,EAAwB3F,EAAOe,UAEnCf,EAAO2B,eAAegE,GACtB3F,EAAO4F,uBAIf5F,EAAO4F,iBAAmB,WACtB5F,EAAO0B,aAAc,EACjBhC,QAAQmG,UAAU7F,EAAOgD,kBACzBhD,EAAOiB,cAAgBjB,EAAOgD,eAAepH,MAAMoE,EAAOe,UAAYf,EAAOc,KAAO,GAAId,EAAOe,SAAWf,EAAOc,QAIzHd,EAAO2B,eAAiB,SAAUpE,GAC9B8G,EAAE,uBAAuByB,YAAY,UACrC9F,EAAOc,KAAO,EACVvD,IACAyC,EAAOe,SAAWxD,EAClByC,EAAO4F,oBAEP5F,EAAOgD,gBAA0C,KAAxBhD,EAAOkB,eAChClB,EAAOiB,cAAgBjB,EAAOgD,iBAItChD,EAAO+F,SAAW,WACd/F,EAAO0B,YAAc1B,EAAO0B,cAAe,EAE3ChC,QAAQnB,QAAQyB,EAAOiB,eAAe,SAAUyC,GACxCA,EAAKtB,UAAUM,MACf1C,EAAOsB,eAAeC,aAAamC,EAAKtB,UAAUzC,OAASK,EAAO0B,iBAK9E1B,EAAOwD,YAAc,WACjBxD,EAAO0B,aAAc,EACrBhC,QAAQnB,QAAQyB,EAAOiB,eAAe,SAAUyC,GACxCA,EAAKtB,UAAUM,MACf1C,EAAOsB,eAAeC,aAAamC,EAAKtB,UAAUzC,QAAS,OAKvEK,EAAOgG,eAAiB,WACfhG,EAAOiG,uBAGZjG,EAAOY,SAAS,MAAO,EAEvBR,EAAaoE,gBAAgB,CACzBC,MAAO,2BACPC,QAAS,6CAA+CpE,EAAcI,sBAAwB,IAC9FiE,SAAS,IACVC,OACEC,MAAK,WACF1E,GAAS,WACLK,EAA6B0F,cAAc5F,EAAcI,sBAAuB,oBAC3EmE,MAAK,WACF7E,EAAOY,SAAS,MAAO,EACvBL,EAAOwB,QAAQ,sBAAwBzB,EAAcI,uBACrDV,EAAOyB,eACR,SAAU0E,GACTnG,EAAOY,SAAS,MAAO,EACA,iBAAZuF,EAAInE,MAAoBmE,EAAInE,KAAK2B,QAAQ,sFACS,EACzDpD,EAAOnC,MAAM+H,EAAInE,MAEjBzB,EAAOnC,MAAM,8BAAgCkC,EAAcI,sBAAuByF,QAG/F,UAkFfnG,EAAOoG,YAAc,SAAUC,GACtBrG,EAAOiG,uBAGRvG,QAAQmG,UAAUQ,GAlF1B,SAAmBA,GACf,MAAMvD,EAAWuD,EAAIjE,UAAUU,SAC/B9C,EAAOY,SAASyF,IAAO,EACvBjG,EAAaoE,gBAAgB,CACzBC,MAAO,sBACPC,QAAS,sCAAwC5B,EAAW,IAC5D6B,SAAS,IACVC,OACEC,MAAK,WACF1E,GAAS,WACL,MAAM6B,EAAO,gBAAgBqE,EAAIjE,UAAUQ,WAC3CpC,EAA6B0F,cAAc5F,EAAcI,sBAAuBsB,GAC3E6C,MAAK,WACF7E,EAAOY,SAASyF,IAAO,EACvB9F,EAAOwB,QAAQ,eAAiBe,GAChC9C,EAAOyB,YACPzB,EAAOkB,aAAe,GACtBlB,EAAOgD,eAAe/H,OAAS,EAC/B+E,EAAOsG,gBACPtG,EAAO2B,eAAe3B,EAAOe,aAC9B,SAAUoF,GACTnG,EAAOY,SAASyF,IAAO,EACvB9F,EAAOnC,MAAM,uBAAyB0E,EAAUO,SAAS8C,EAAKA,EAAIhD,cAE3E,QACJ,WACCnD,EAAOY,SAASyF,IAAO,KAyD3BE,CAAUF,GArDlB,SAA4BA,GACxB,MAAMG,EAA0B,GAChC9G,QAAQnB,QAAQyB,EAAOsB,eAAeC,cAAc,SAAU5B,EAAO6C,GAC7D7C,GACA6G,EAAwB5C,KAAKpB,MAIjCgE,EAAwBvL,OAAS,IACjC+E,EAAOY,SAASyF,IAAO,EACvBjG,EAAaoE,gBAAgB,CACzBC,MAAO,uBACPC,QAAS,sDACTC,SAAS,IACVC,OAAOC,MAAK,WACX1E,GAAS,WACL,IAAIsG,EAAyB,EAC7B/G,QAAQnB,QAAQiI,GAAyB,SAAUpE,GAC/C,MAAMJ,EAAO,gBAAgBhC,EAAOqC,cAAcD,GAAWQ,WAC7DpC,EAA6B0F,cAAc5F,EAAcI,sBAAuBsB,GAC3E6C,MAAK,WACF7E,EAAO8B,QAAS,EAChB9B,EAAOsB,eAAeC,aAAaa,IAAa,SACzCpC,EAAOsB,eAAeC,aAAaa,GAC1CqE,IACID,EAAwBvL,SAAWwL,IACnCzG,EAAO0B,aAAc,EACrB1B,EAAOkB,aAAe,GACtBlB,EAAOgD,eAAe/H,OAAS,EAC/B+E,EAAOyB,YACPzB,EAAOsG,gBACPtG,EAAO2B,eAAe3B,EAAOe,UAC7BR,EAAOwB,QAAQ,+BACf/B,EAAO8B,QAAS,MAErB,SAAUqE,GACT,MAAMrD,EAAW9C,EAAOqC,cAAcD,GAAWU,SACjDvC,EAAOnC,MAAM,uBAAyB0E,EAAUO,SAAS8C,EAAKA,EAAIhD,SAClEnD,EAAO0B,aAAc,UAGlC,QACJ,WACC1B,EAAOY,SAASyF,IAAO,MAY3BK,CAAmBL,S,gCCvYvC,yCAkBkB3G,QAAQJ,OAAO,iCAXjB,CACZ,eACA,SACA,UACA,YACA,6CACA,gDACA,+CACA,sCAKMqH,OAAO,CAAC,sBAAuB,SAAUC,GAE/CA,EAAoBC,YAAY,CAAC,oBAAuB","file":"18.c3e44ed00a2532402729.bundle.js","sourcesContent":["/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 2015-05-07.2\n *\n * By Eli Grey, http://eligrey.com\n * License: X11/MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t doc = view.document\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, webkit_req_fs = view.webkitRequestFileSystem\n\t\t, req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t, fs_min_size = 0\n\t\t// See https://code.google.com/p/chromium/issues/detail?id=375297#c7 and\n\t\t// https://github.com/eligrey/FileSaver.js/commit/485930a#commitcomment-8768047\n\t\t// for the reasoning behind the timeout and revocation flow\n\t\t, arbitrary_revoke_timeout = 500 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (view.chrome) {\n\t\t\t\trevoker();\n\t\t\t} else {\n\t\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t\t}\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([\"\\ufeff\", blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name) {\n\t\t\tblob = auto_bom(blob);\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, blob_changed = false\n\t\t\t\t, object_url\n\t\t\t\t, target_view\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (blob_changed || !object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (target_view) {\n\t\t\t\t\t\ttarget_view.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar new_tab = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (new_tab == undefined && typeof safari !== \"undefined\") {\n\t\t\t\t\t\t\t//Apple do not allow window.open, see http://bit.ly/1kZffRI\n\t\t\t\t\t\t\tview.location.href = object_url\n\t\t\t\t\t\t} \n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t\t, abortable = function(func) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif (filesaver.readyState !== filesaver.DONE) {\n\t\t\t\t\t\t\treturn func.apply(this, arguments);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t, create_if_not_found = {create: true, exclusive: false}\n\t\t\t\t, slice\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\tif (!name) {\n\t\t\t\tname = \"download\";\n\t\t\t}\n\t\t\tif (save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t//window.open('data:attachment/csv;charset=utf-8,' + object_url);\n\t\t\t\tsave_link.href = object_url;\n\t\t\t\tsave_link.download = name;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Object and web filesystem URLs have a problem saving in Google Chrome when\n\t\t\t// viewed in a tab, so I force save with application/octet-stream\n\t\t\t// http://code.google.com/p/chromium/issues/detail?id=91158\n\t\t\t// Update: Google errantly closed 91158, I submitted it again:\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=389642\n\t\t\tif (view.chrome && type && type !== force_saveable_type) {\n\t\t\t\tslice = blob.slice || blob.webkitSlice;\n\t\t\t\tblob = slice.call(blob, 0, blob.size, force_saveable_type);\n\t\t\t\tblob_changed = true;\n\t\t\t}\n\t\t\t// Since I can't be sure that the guessed media type will trigger a download\n\t\t\t// in WebKit, I append .download to the filename.\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=65440\n\t\t\tif (webkit_req_fs && name !== \"download\") {\n\t\t\t\tname += \".download\";\n\t\t\t}\n\t\t\tif (type === force_saveable_type || webkit_req_fs) {\n\t\t\t\ttarget_view = view;\n\t\t\t}\n\t\t\tif (!req_fs) {\n\t\t\t\tfs_error();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfs_min_size += blob.size;\n\t\t\treq_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) {\n\t\t\t\tfs.root.getDirectory(\"saved\", create_if_not_found, abortable(function(dir) {\n\t\t\t\t\tvar save = function() {\n\t\t\t\t\t\tdir.getFile(name, create_if_not_found, abortable(function(file) {\n\t\t\t\t\t\t\tfile.createWriter(abortable(function(writer) {\n\t\t\t\t\t\t\t\twriter.onwriteend = function(event) {\n\t\t\t\t\t\t\t\t\ttarget_view.location.href = file.toURL();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t\tdispatch(filesaver, \"writeend\", event);\n\t\t\t\t\t\t\t\t\trevoke(file);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\twriter.onerror = function() {\n\t\t\t\t\t\t\t\t\tvar error = writer.error;\n\t\t\t\t\t\t\t\t\tif (error.code !== error.ABORT_ERR) {\n\t\t\t\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\"writestart progress write abort\".split(\" \").forEach(function(event) {\n\t\t\t\t\t\t\t\t\twriter[\"on\" + event] = filesaver[\"on\" + event];\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\twriter.write(blob);\n\t\t\t\t\t\t\t\tfilesaver.abort = function() {\n\t\t\t\t\t\t\t\t\twriter.abort();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.WRITING;\n\t\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t};\n\t\t\t\t\tdir.getFile(name, {create: false}, abortable(function(file) {\n\t\t\t\t\t\t// delete file if it already exists\n\t\t\t\t\t\tfile.remove();\n\t\t\t\t\t\tsave();\n\t\t\t\t\t}), abortable(function(ex) {\n\t\t\t\t\t\tif (ex.code === ex.NOT_FOUND_ERR) {\n\t\t\t\t\t\t\tsave();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}), fs_error);\n\t\t\t}), fs_error);\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name) {\n\t\t\treturn new FileSaver(blob, name);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name) {\n\t\t\treturn navigator.msSaveOrOpenBlob(auto_bom(blob), name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function() {\n\t\tvar filesaver = this;\n\t\tfilesaver.readyState = filesaver.DONE;\n\t\tdispatch(filesaver, \"abort\");\n\t};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd != null)) {\n define([], function() {\n return saveAs;\n });\n}","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","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","angular.module('graphdb.framework.core.directives.paginations', [])\n .directive('paginations', function () {\n return {\n template: '<uib-pagination class=\"nav navbar-right\" total-items=\"matchedElements.length\" items-per-page=\"pageSize\" ng-model=\"page\" ng-change=\"changePagination()\" direction-links=\"false\" boundary-links=\"true\" max-size=\"5\" rotate=\"true\"></uib-pagination>',\n };\n });\n","import 'angular/core/services';\nimport 'angular/core/services/repositories.service';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/utils/file-types';\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',\n function ($scope, $http, $location, $timeout, ModalService, filterFilter, $repositories, toastr, RDF4JRepositoriesRestService, FileTypes) {\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: 'The 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 = angular.copy($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, '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 window.open(url);\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: 'Warning',\n message: 'This format does not support graphs.<br>Graph information will not be available in the export.',\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 if (contextID) {\n downloadUrl = 'repositories/' + $scope.getActiveRepository() + '/statements?infer=false&context=' + $scope.graphsByValue[contextID.value].exportUri;\n } else {\n downloadUrl = 'repositories/' + $scope.getActiveRepository() + '/statements?infer=false';\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: 'Warning',\n message: 'This format does not support graphs.<br>Graph information will not be available in the export.',\n warning: true\n }).result\n .then(function () {\n startDownload();\n });\n } else {\n startDownload();\n }\n } else {\n ModalService.openSimpleModal({\n title: 'Multiple graph export',\n message: 'Check graphs you want to export first.',\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: 'Confirm clear repository',\n message: 'Are you sure you want to clear repository ' + $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('Cleared repository ' + $repositories.getActiveRepository());\n $scope.getGraphs();\n }, function (err) {\n $scope.deleting['*'] = false;\n if (typeof err.data == \"string\" && err.data.indexOf(\"Clearing all statements in the \" +\n \"repository is incompatible with collecting history\") > -1) {\n toastr.error(err.data);\n } else {\n toastr.error('Failed to clear repository ' + $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: 'Confirm clear graph',\n message: 'Are you sure you want to clear the ' + 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('Cleared the ' + 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('Failed to clear the ' + 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: 'Confirm clear graphs',\n message: 'Are you sure you want to clear the selected graphs?',\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('Cleared the selected graphs');\n $scope.loader = false;\n }\n }, function (err) {\n const longName = $scope.graphsByValue[contextID].longName;\n toastr.error('Failed to clear the ' + 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","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/export/controllers';\nimport 'angular/core/directives/paginations';\nimport 'angular/core/services/repositories.service';\nimport 'lib/FileSaver-patch';\n\nconst modules = [\n 'ui.bootstrap',\n 'toastr',\n 'ngRoute',\n 'ngCookies',\n 'graphdb.framework.impex.export.controllers',\n 'graphdb.framework.core.directives.paginations',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.directives'\n];\n\nconst exportApp = angular.module('graphdb.framework.impex.export', modules);\n\nexportApp.config(['$uibTooltipProvider', function ($uibTooltipProvider) {\n //Add custom event for Export repository DD tooltip\n $uibTooltipProvider.setTriggers({'showExportDDTooltip': 'showExportDDTooltip'});\n}]);\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[20,43,49,90,96,104],{117:function(e,t,r){"use strict";r.r(t);r(2),r(7),r(13),r(76),r(78),r(79),r(35),r(33),r(34);angular.module("graphdb.framework.similarity",["graphdb.framework.core.controllers","graphdb.framework.core.directives","graphdb.framework.rest.similarity.service","graphdb.framework.similarity.controllers.create","graphdb.framework.similarity.controllers.list","graphdb.framework.core.directives.queryeditor.controllers","graphdb.framework.core.directives.queryeditor.sparqltab","graphdb.framework.core.directives.queryeditor.queryeditor"])},31:function(e,t){function r(e){return{showToastMessageWithDelay:function(t){return new Promise(r=>{e.success(t),setTimeout(r,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",r),r.$inject=["toastr"]},35:function(e,t,r){"use strict";r.r(t);r(4);function n(e,t,r,n){return{restrict:"AE",template:'<a class="nav-link" role="tab" data-toggle="tab" blur="submit" editable-text="tab.name" e-form="editCurrentlySelectedOnly" ng-click="selectThisTab($event)" ng-dblclick="editCurrentTab()" ><span ng-class="{\'text-muted\': !tab.name}">{{ tab.name || \'Unnamed\'}}</span><button type="button" ng-click="deleteTab($event)" class="btn btn-link btn-sm secondary delete-sparql-tab-btn" title="Delete tab"><i class="icon-close"></i></button></a>',replace:!0,controller:["$scope","$element","$rootScope","ModalService","toastr",function(e,n,i,a,o){function s(e){return $(e).attr("data-id")}function c(e){$('a[data-id = "'+e+'"]').tab("show")}e.state={},$(n).on("shown.bs.tab",(function(e){i.$broadcast("tabAction",e)})),e.deleteTab=function(u){if(u.preventDefault(),u.stopPropagation(),e.tabs.length<2)return void o.warning("Last tab must remain open.");u.shiftKey?(e.state.selectedTabId=s(n),a.openSimpleModal({title:"Confirm",message:"Are you sure you want to delete all query tabs except selected tab?",warning:!0}).result.then((function(){var n;n=e.state.selectedTabId,e.tabs=e.tabs.filter((function(e){if(e.id===n)return e})),c(e.tabs[0].id),t.set(r.TABS_STATE,e.tabs),i.$broadcast("deleteAllexeptSelected",e.tabs)}))):(e.state.idForDelete=s(n),a.openSimpleModal({title:"Confirm",message:"Are you sure you want to close this query tab?",warning:!0}).result.then((function(){!function(t){if(angular.isUndefined(t))throw"Delete by id was called with undefined id";const r=function(t){for(let r=0;r<e.tabs.length;r++){if(e.tabs[r].id===t)return r}}(t);e.tabs.splice(r,1),t===e.currentQuery.id&&e.tabs.length>0&&c(r>0?e.tabs[r-1].id:e.tabs[0].id)}(e.state.idForDelete)})));angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.editCurrentTab=function(){if(s(n)!==e.currentQuery.id)return;e.editCurrentlySelectedOnly.$show();const t=$(".editable-buttons");t.children(".btn.btn-primary").addClass("btn-sm"),t.children(".btn.btn-default").addClass("btn-sm"),$(".editable-controls .editable-input").addClass("form-control-sm").on("change",(function(t){e.currentQuery.name=t.currentTarget.$$currentValue})),$(".editable-buttons .glyphicon.glyphicon-ok").removeClass("glyphicon glyphicon-ok").addClass("fa fa-check"),$(".editable-buttons .glyphicon.glyphicon-remove").removeClass("glyphicon glyphicon-remove").addClass("fa fa-close")},e.selectThisTab=function(t){t.preventDefault(),t.stopPropagation(),e.isTabChangeOk(!1)&&$(n).tab("show")}}]}}angular.module("graphdb.framework.core.directives.queryeditor.sparqltab",["graphdb.framework.core","graphdb.framework.utils.localstorageadapter"]).directive("sparqlTab",n),n.$inject=["$rootScope","LocalStorageAdapter","LSKeys","ModalService"]},76:function(e,t){angular.module("graphdb.framework.rest.similarity.service",[]).factory("SimilarityRestService",n),n.$inject=["$http","$repositories"];const r="rest/similarity";function n(e){return{getIndexes:function(){return e.get(r)},getSearchQueries:function(){return e.get(`${r}/config`)},rebuildIndex:function(e){return t("PUT",e.name,e.options,e.selectQuery,e.searchQuery,e.analogicalQuery,e.stopList,e.infer,e.sameAs,e.type)},deleteIndex:function(t){return e.delete(`${r}?name=${t.name}`)},createIndex:t,getSamples:function(){return e.get(`${r}/samples`)},getQuery:function(t){return e.get("rest/similarity/query",{params:{name:t.indexName,options:t.indexOptions,stopList:t.indexStopList,selectQuery:t.query,infer:t.queryInference,sameAs:t.querySameAs,type:t.viewType,analyzer:t.indexAnalyzer}})},saveSearchQuery:function(t){return e({method:"put",url:"rest/similarity/search-query",data:t})}};function t(t,n,i,a,o,s,c,u,l,d,y){return e({method:t,url:`${r}`,noCancelOnRouteChange:!0,data:{name:n,options:i,selectQuery:a,stopList:c,infer:u,sameAs:l,type:d,analyzer:y,searchQuery:o,analogicalQuery:s}})}}},78:function(e,t,r){"use strict";r.r(t);var n=r(208),i=r.n(n);function a(e,t,r,n,a,o,s,c,u,l){const d="http://www.ontotext.com/graphdb/similarity/",y="http://www.ontotext.com/graphdb/similarity/psi/",p=y+"any";e.pluginName="similarity",e.pluginIsActive=!0,e.setPluginIsActive=function(t){e.pluginIsActive=t};const g=function(e){return'"'+e+'"'},f=function(e){return void 0===e||e.startsWith("<<")&&e.endsWith(">>")?e:"<"+e+">"};function m(){return!e.getActiveRepository()||e.isActiveRepoFedXType()||e.isActiveRepoOntopType()}let h;function w(){e.getAutocompletePromise=c.checkAutocompleteStatus()}e.info=u,e.getActiveRepository=function(){return n.getActiveRepository()},m()||s.getSearchQueries().success((function(t){e.searchQueries=t})).error((function(e){const t=getError(e);r.error(t,"Could not get search queries")})),e.encodeURIComponent=function(e){return encodeURIComponent(e)},e.getSimilarityIndexes=function(){!m()&&e.pluginIsActive&&s.getIndexes().success((function(t){e.similarityIndexes=t})).error((function(e){const t=getError(e);r.error(t,"Could not get indexes")}))},e.pullList=function(){e.getSimilarityIndexes();const r=t((function(){e.$broadcast("checkIsActive"),"false"!==$("#indexes-table").attr("aria-expanded")&&e.getSimilarityIndexes()}),5e3);e.$on("$destroy",(function(){t.cancel(r)}))},e.getActiveRepository()&&e.pullList(),e.$watch((function(){return n.getActiveRepository()}),(function(){!e.getActiveRepository()||e.isActiveRepoOntopType()||e.isActiveRepoFedXType()||(e.getNamespacesPromise=l.getNamespaces(e.getActiveRepository()).success((function(t){w(),e.usedPrefixes={},t.results.bindings.forEach((function(t){e.usedPrefixes[t.prefix.value]=t.namespace.value})),h=i()(document.getElementById("yasr"),{getUsedPrefixes:e.usedPrefixes,persistency:!1,hideHeader:!0})})).error((function(e){r.error(getError(e),"Cannot get namespaces for repository. View will not work properly;")})))})),e.$on("autocompleteStatus",(function(){w()})),e.loading=!1,e.selected=void 0,e.searchType="searchTerm",e.resultType="termResult",e.$watch("searchType",(function(){e.empty=!0})),e.goToSimilarityIndex=function(t){"BUILT"!==t.status&&"OUTDATED"!==t.status&&"REBUILDING"!==t.status||(e.empty=!0,e.selected!==t&&(e.lastSearch=void 0,e.selected=t),"text"===t.type?e.searchType="searchTerm":"predication"===t.type&&(e.searchType="searchEntity"),"text"!==t.type&&"predication"!==t.type||$("#indexes-table").collapse("hide"))};const x=function(t){const r=angular.element(document.getElementById("yasr-inner")),n=angular.element(document.getElementById("results-loader"));t?(e.loading=!0,r.addClass("opacity-hide"),n.removeClass("opacity-hide")):(e.loading=!1,r.removeClass("opacity-hide"),n.addClass("opacity-hide"))};e.performSearch=function(t,i,a,o,s){x(!0);let c=i;e.lastSearch={},e.lastSearch.type=a,"searchEntityPredicate"===a&&(c=e.psiSubject,e.lastSearch.predicate=i),c="searchTerm"===a?g(c):f(c),e.lastSearch.termOrSubject=c;let u;u="searchAnalogical"===a?e.selected.analogicalQuery?e.selected.analogicalQuery:e.searchQueries.analogical:e.selected.searchQuery?e.selected.searchQuery:e.searchQueries[e.selected.type];const l={query:u,$index:f("http://www.ontotext.com/graphdb/similarity/instance/"+t),$query:c,$searchType:f(("text"===e.selected.type?d:y)+("searchEntityPredicate"===a?"searchEntity":a)),$resultType:f("text"===e.selected.type?d+o:y+"entityResult"),$parameters:g(s)};"searchEntityPredicate"===a&&(l.$psiPredicate=e.lastSearch.predicate?f(e.lastSearch.predicate):f(p)),"searchAnalogical"===a&&(e.searchSubject=i,l.$givenSubject=f(e.analogicalSubject),l.$givenObject=f(e.analogicalObject),l.$searchSubject=f(i)),$.ajax({method:"GET",url:"repositories/"+n.getActiveRepository(),data:l,headers:{Accept:"application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8"}}).done((function(e,t,r){x(!1),h.setResponse(e,t,r)})).fail((function(e){r.error(getError(e),"Could not get resource!"),x(!1)}))},e.viewSearchQuery=function(){let t;t="searchAnalogical"===e.lastSearch.type?e.selected.analogicalQuery?e.selected.analogicalQuery:e.searchQueries.analogical:e.selected.searchQuery?e.selected.searchQuery:e.searchQueries[e.selected.type];const r=t.replace("?index","inst:"+e.selected.name).replace("?query",e.lastSearch.termOrSubject).replace("?searchType",("text"===e.selected.type?":":"psi:")+("searchEntityPredicate"===e.lastSearch.type?"searchEntity":e.lastSearch.type)).replace("?resultType","text"===e.selected.type?":"+e.resultType:"psi:entityResult").replace("?parameters",g(e.searchParameters?e.searchParameters:"")).replace("?psiPredicate",e.lastSearch.predicate?f(e.lastSearch.predicate):f(p)).replace("?givenSubject",f(e.analogicalSubject)).replace("?givenObject",f(e.analogicalObject)).replace("?searchSubject",f(e.searchSubject));o.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return r}}})},e.deleteIndex=function(t){a.openSimpleModal({title:"Confirm",message:"Are you sure you want to delete the index '"+t.name+"'?",warning:!0}).result.then((function(){s.deleteIndex(t).then((function(){e.getSimilarityIndexes()}),(function(e){r.error(getError(e))}))}))},e.viewCreateQuery=function(e){s.getQuery({indexName:e.name,indexOptions:e.options,query:e.selectQuery,indexStopList:e.stopList,queryInference:e.infer,querySameAs:e.sameAs,viewType:e.type,indexAnalyzer:e.analyzer}).success((function(e){o.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return e}}})}))},e.rebuildIndex=function(t){t.searchQuery||(t.searchQuery=t.type?e.searchQueries[t.type]:e.searchQueries.text),a.openSimpleModal({title:"Confirm",message:"Are you sure you want to rebuild the whole index '"+t.name+"'?<br>You will still be able to use the latest successful build!",warning:!0}).result.then((function(){t.status="REBUILDING",s.rebuildIndex(t).then((function(e){}),(function(e){r.error(getError(e))}))}))},e.copyToClipboardResult=function(e){a.openCopyToClipboardModal(e)},e.trimIRI=function(e){return _.trim(e,"<>")}}angular.module("graphdb.framework.similarity.controllers.list",[]).controller("SimilarityCtrl",a),a.$inject=["$scope","$interval","toastr","$repositories","ModalService","$uibModal","SimilarityRestService","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService"]},79:function(e,t,r){"use strict";r.r(t);r(31),r(4);function n(e,t,r,n,i,a,o,s,c,u,l,d){const y=o.search().type;void 0===y||y.startsWith("text")?e.viewType="text":e.viewType=y;e.newIndex={},e.info=s,e.page=1;const p={id:"1",name:"",query:"",inference:!0,sameAs:!0};const g=function(){var r;if(e.editSearchQuery=o.search().editSearchQuery,e.page=e.editSearchQuery?2:1,e.newIndex.name=(r=o.search().name)?1!==e.page?r:"Copy_of_"+r:"",e.newIndex.options=o.search().options?o.search().options:"text"===e.viewType?"-termweight idf":"",e.searchQueries&&(e.newIndex.searchQuery=o.search().searchQuery?o.search().searchQuery:e.searchQueries[e.viewType],"predication"===e.viewType&&(e.newIndex.analogicalQuery=o.search().analogicalQuery?o.search().analogicalQuery:e.searchQueries.analogical)),e.editSearchQuery)e.currentQuery.query=e.newIndex.searchQuery,e.notoolbarInference=!0,e.notoolbarSameAs=!0,window.editor&&e.setQuery(e.newIndex.searchQuery);else{if("text"===e.viewType&&e.allSamples){e.samples=e.allSamples.text,e.newIndex.stopList=o.search().stopList?o.search().stopList:void 0,e.newIndex.analyzer=o.search().analyzer?o.search().analyzer:"org.apache.lucene.analysis.en.EnglishAnalyzer";const t=w("-literal_index");void 0!==t&&(e.newIndex.isLiteralIndex=t),window.editor&&e.setQuery(e.samples.literals)}"predication"===e.viewType&&e.allSamples&&(i.getIndexes().success((function(t){if(e.literalIndexes=["no-index"].concat(t.filter((function(e){return"textLiteral"===e.type&&("BUILT"===e.status||"OUTDATED"===e.status)})).map((function(e){return e.name}))),void 0===e.newIndex.inputIndex){const t=w("-input_index");if(void 0!==t)for(let r=0;r<e.literalIndexes.length;r++)t===e.literalIndexes[r]&&(e.newIndex.inputIndex=e.literalIndexes[r])}void 0===e.newIndex.inputIndex&&(e.newIndex.inputIndex=e.literalIndexes[0])})).error((function(e){const r=getError(e);t.error(r,"Could not get indexes")})),e.samples=e.allSamples.predication,window.editor&&e.setQuery(e.samples.predication))}},f=new RegExp("^[a-zA-Z0-9-_]+$"),m=function(){return e.invalidIndexName=!1,e.saveQueries(),e.newIndex.name?f.test(e.newIndex.name)?e.newIndex.query?e.newIndex.searchQuery?"predication"!==e.viewType||e.newIndex.analogicalQuery?"SELECT"===window.editor.getQueryType()||void t.error("Similarity index requires SELECT queries."):(t.error("Analogical query cannot be empty."),!1):(t.error("Search query cannot be empty."),!1):(t.error("Select query cannot be empty."),!1):(e.invalidIndexName='Index name can contain only letters (a-z, A-Z), numbers (0-9), "-" and "_"',!1):(e.invalidIndexName="Index name cannot be empty",!1)},h=function(t,r){e.newIndex.options=e.newIndex.options+(""===e.newIndex.options?"":" ")+t+" "+r};function w(t){const r=e.newIndex.options.split(" ");for(let n=0;n<r.length;n++)if(r[n]===t&&n+1<r.length){const t=r[n+1];return delete r[n],delete r[n+1],e.newIndex.options=r.join(" "),t}}function x(e){}function b(t,r,n){const i=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=t,t?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=r,e.extraMessage=n,i.addClass("hide")):(e.progressMessage="",e.extraMessage="",i.removeClass("hide")),null===e.$$phase&&e.$apply()}function I(t){function r(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0}const i=t;if(e.orientationViewMode){if("yasr"===e.viewMode){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px"}else e.noPadding={},document.querySelector(".CodeMirror-wrap").style.height="";document.getElementById("yasr").style.minHeight=""}else if(e.noPadding={paddingRight:15,paddingLeft:0},window.editor&&document.querySelector(".CodeMirror-wrap")){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px",document.getElementById("yasr").style.minHeight=e+"px"}else{let t;t=n(i?function(){e.fixSizesOnHorizontalViewModeSwitch(i)}:e.fixSizesOnHorizontalViewModeSwitch,100),e.$on("$destroy",(function(){n.cancel(t)}))}window.yasr&&window.yasr.container&&n((function(){window.yasr.container.resize()}),100)}function S(){I(!0)}function v(e){n((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function Q(r,n){e.executedQueryTab=e.currentQuery,"SELECT"===window.editor.getQueryType()?n&&"SELECT"!==window.editor.getQueryType()?t.warning("Explain only works with SELECT queries."):"update"!==window.editor.getQueryMode()?(e.explainRequested=n,e.queryIsRunning||(r?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.viewMode="editor",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch(),b(!0,"Evaluating query"),window.editor.query())):t.warning("Cannot execute updates from this editor."):t.error("Similarity indexes work only with SELECT queries.")}function T(){b(!0,"Refreshing namespaces","Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first."),u.getRepositoryNamespaces().success((function(t){const r={};t.results.bindings.forEach((function(e){r[e.prefix.value]=e.namespace.value})),e.namespaces=r})).error((function(t){e.repositoryError=getError(t)})).finally((function(){b(!1)}))}function C(){a.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){const r=getError(e);return t.error(r,"Error! Could not add known prefixes"),!0}))}function q(t){let r=void 0;return angular.forEach(e.tabsData,(function(e){if(e.name===t.name&&e.query===t.body)return r=e.id,e})),r}function E(){e.tabsData=[e.currentQuery];const t=e.currentQuery;null===e.currentQuery.query||""===e.currentQuery.query?window.editor.setValue(" "):window.editor.setValue(e.currentQuery.query||" "),n((function(){e.currentTabConfig={},e.currentTabConfig.queryType=t.queryType,e.currentTabConfig.resultsCount=t.resultsCount,e.currentTabConfig.offset=t.offset,e.currentTabConfig.allResultsCount=t.allResultsCount,e.currentTabConfig.page=t.page,e.currentTabConfig.pageSize=t.pageSize,e.currentTabConfig.timeFinished=t.timeFinished,e.currentTabConfig.timeTook=t.timeTook,e.currentTabConfig.sizeDelta=t.sizeDelta,e.$apply()}),0),$("#yasr").css("padding","0")}function A(e){return $(e).attr("data-id")}i.getSearchQueries().success((function(t){e.searchQueries=t,i.getSamples().success((function(t){p.query=o.search().selectQuery?o.search().selectQuery:t.text.literals,p.inference=!("false"===o.search().infer),p.sameAs=!("false"===o.search().sameAs),e.tabsData=e.tabs=[p],e.currentQuery=angular.copy(p),e.allSamples=t,g()}))})).error((function(e){const r=getError(e);t.error(r,"Could not get search queries")})),e.$watch("viewType",(function(){g()})),e.helpHidden=1===l.get(d.HIDE_SIMILARITY_HELP),e.toggleHelp=function(t){void 0===t&&(t=l.get(d.HIDE_SIMILARITY_HELP)),1!==t?(l.set(d.HIDE_SIMILARITY_HELP,1),e.helpHidden=!0):(l.set(d.HIDE_SIMILARITY_HELP,0),e.helpHidden=!1)},e.viewQuery=function(){m()&&i.getQuery({indexName:e.newIndex.name,indexOptions:e.newIndex.options,query:e.currentQuery.query,indexStopList:e.newIndex.stopList,queryInference:e.currentQuery.inference,querySameAs:e.currentQuery.sameAs,viewType:e.viewType,indexAnalyzer:e.newIndex.analyzer}).success((function(e){e&&r.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return e}}})}))},e.$watch("newIndex.name",(function(){e.isInvalidIndexName=!1,e.isEmptyIndexName=!1})),e.saveQueries=function(){const t=window.editor.getValue().trim();1===e.page?e.newIndex.query=t:2===e.page?e.newIndex.searchQuery=t:3===e.page&&(e.newIndex.analogicalQuery=t)},e.goToPage=function(t){1!==t&&"yasr"!==e.viewMode&&(e.showEditor(),n((function(){2===t&&(e.currentQuery.query=e.newIndex.searchQuery),3===t&&(e.currentQuery.query=e.newIndex.analogicalQuery),window.editor.setValue(e.currentQuery.query||" ")}))),e.saveQueries(),1===t?e.currentQuery.query=e.newIndex.query:2===t?e.currentQuery.query=e.newIndex.searchQuery:3===t&&(e.currentQuery.query=e.newIndex.analogicalQuery),E(),e.notoolbar=1!==t,e.page=t},e.createIndex=function(){m()&&i.getIndexes().success((function(r){if(r.forEach((function(t){t.name===e.newIndex.name&&(e.invalidIndexName="Index with this name already exists.")})),!e.invalidIndexName){let r=e.viewType;if(void 0!==e.literalIndexes){const t=e.newIndex.inputIndex;t!==e.literalIndexes[0]&&h("-input_index",t)}"true"===e.newIndex.isLiteralIndex&&(h("-literal_index","true"),r="textLiteral"),i.createIndex("POST",e.newIndex.name,e.newIndex.options,e.newIndex.query,e.newIndex.searchQuery,e.newIndex.analogicalQuery,e.newIndex.stopList,e.currentQuery.inference,e.currentQuery.sameAs,r,e.newIndex.analyzer).error((function(e){t.error(getError(e),"Could not create index")})),o.url("similarity")}})).error((function(e){const r=getError(e);t.error(r,"Could not get indexes")}))},e.setQuery=function(e){window.editor.setValue(e||" ")},e.showEditor=function(){window.editor.xhr&&window.editor.xhr.abort(),e.viewMode="yasr"},e.showPreview=function(){e.currentQuery.outputType="table",e.runQuery()},e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:100,page:1,allResultsCount:0,resultsCount:0}},e.queryExists=!1,e.resetCurrentTabConfig(),e.tabsData=e.tabs=[p],e.saveTab=function(t){const r=function(t){for(let r=0;r<e.tabsData.length;r++){if(e.tabsData[r].id===t)return r}}(t);if(void 0===r)return{};const n=e.tabsData[r];return e.saveQueryToLocal(n),n},e.loadTab=E,e.addNewTab=function(e,t,r){},e.runQuery=Q,e.getNamespaces=T,e.changePagination=function(){Q(!0,e.explainRequested)},e.toggleSampleQueries=function(){},e.addKnownPrefixes=C,e.getExistingTabId=q,e.querySelected=function(t){const r=q(t);e.toggleSampleQueries(),angular.isDefined(r)?v(r):e.addNewTab(null,t.name,t.body)},e.saveQueryToLocal=x,e.setLoader=b,e.getLoaderMessage=function(){const t=(Date.now()-e.queryStartTime)/1e3,r=e.getHumanReadableSeconds(t);let n="";n=e.progressMessage?e.progressMessage+"... "+r:"Running operation..."+r;e.extraMessage&&t>10&&(n+="\n"+e.extraMessage);return n},e.fixSizesOnHorizontalViewModeSwitch=I,e.changeViewMode=function(t){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,I(),$(".dataTables_filter").remove(),$(".resultsTable").remove(),n((function(){E(),v(t)}),100)},e.showHideEditor=S,e.focusQueryEditor=function(){angular.element(document).find(".editable-input").is(":focus")||angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.orientationViewMode=!0,e.getActiveRepository(),e.orientationViewMode||S(),e.getActiveRepository()&&T(),e.$on("$destroy",(function(){window.editor=null,window.yasr=null})),$("textarea").on("paste",(function(){n((function(){C()}),0)})),e.$watchCollection("[currentQuery.inference, currentQuery.sameAs]",(function(){e.currentQuery})),e.$on("tabAction",(function(t,r){r.relatedTarget&&e.saveTab(A(r.relatedTarget)),e.loadTab(A(r.target))})),e.$on("deleteAllexeptSelected",(function(t,r){e.tabsData=r,e.tabs=r})),e.currentQuery=angular.copy(p),e.showSampleQueries=!1,e.savedQuery={},e.sampleQueries={},e.getResultsDescription=function(){},e.getUpdateDescription=function(){},e.getStaleWarningMessage=function(){},e.saveSearchQuery=function(){if("SELECT"!==window.editor.getQueryType())return void t.error("Similarity index requires SELECT queries.");let r={name:e.newIndex.name,changedQuery:e.currentQuery.query,isSearchQuery:2===e.page};return i.saveSearchQuery(JSON.stringify(r)).then((async function(){await c.showToastMessageWithDelay(2===e.page?"Changed search query":"Changed analogical query"),o.url("similarity")}),(function(e){t.error(getError(e),"Could not change query!")}))},e.getCloseBtnMsg=function(){return"Closes "+(e.editSearchQuery?"query edition":"index creation")+" without saving the changes."}}angular.module("graphdb.framework.similarity.controllers.create",["graphdb.framework.utils.notifications","graphdb.framework.utils.localstorageadapter"]).controller("CreateSimilarityIdxCtrl",n),n.$inject=["$scope","toastr","$uibModal","$timeout","SimilarityRestService","SparqlRestService","$location","productInfo","Notifications","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys"]}}]);
|
|
2
|
+
//# sourceMappingURL=20.264daf29beccbf7de84a.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/similarity/app.js","webpack:///./src/js/angular/utils/notifications.js","webpack:///./src/js/angular/core/directives/queryeditor/sparql-tab.directive.js","webpack:///./src/js/angular/rest/similarity.rest.service.js","webpack:///./src/js/angular/similarity/controllers/similarity-list.controller.js","webpack:///./src/js/angular/similarity/controllers/create-index.controller.js"],"names":["angular","module","Notifications","toastr","showToastMessageWithDelay","message","Promise","r","success","setTimeout","factory","$inject","sparqlTabDirective","$rootScope","LocalStorageAdapter","LSKeys","ModalService","restrict","template","replace","controller","$scope","$element","getQueryID","element","$","attr","selectTab","id","tab","state","on","e","$broadcast","deleteTab","preventDefault","stopPropagation","tabs","length","warning","shiftKey","selectedTabId","openSimpleModal","title","result","then","filter","obj","set","TABS_STATE","idForDelete","isUndefined","idx","i","findTabIndexByID","splice","currentQuery","deleteTabByID","document","find","focus","editCurrentTab","editCurrentlySelectedOnly","$show","$editableButtons","children","addClass","$el","name","currentTarget","$$currentValue","removeClass","selectThisTab","isTabChangeOk","directive","SimilarityRestService","SIMILARITY_ENDPOINT","$http","getIndexes","get","getSearchQueries","rebuildIndex","index","createIndex","options","selectQuery","searchQuery","analogicalQuery","stopList","infer","sameAs","type","deleteIndex","delete","getSamples","getQuery","data","params","indexName","indexOptions","indexStopList","query","queryInference","querySameAs","viewType","analyzer","indexAnalyzer","saveSearchQuery","method","url","noCancelOnRouteChange","SimilarityCtrl","$interval","$repositories","$uibModal","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService","PREFIX","PREFIX_PREDICATION","ANY_PREDICATE","pluginName","pluginIsActive","setPluginIsActive","isPluginActive","literalForQuery","literal","iriForQuery","iri","undefined","startsWith","endsWith","shouldSkipCall","getActiveRepository","isActiveRepoFedXType","isActiveRepoOntopType","yasr","checkAutocompleteStatus","getAutocompletePromise","info","searchQueries","error","msg","getError","encodeURIComponent","param","getSimilarityIndexes","similarityIndexes","pullList","timer","$on","cancel","$watch","getNamespacesPromise","getNamespaces","usedPrefixes","results","bindings","forEach","prefix","value","namespace","getElementById","getUsedPrefixes","persistency","hideHeader","loading","selected","searchType","resultType","empty","goToSimilarityIndex","status","lastSearch","collapse","toggleOntoLoader","showLoader","yasrInnerContainer","resultsLoader","performSearch","uri","parameters","termOrSubject","psiSubject","predicate","sparqlQuery","sendData","$index","$query","$searchType","$resultType","$parameters","$psiPredicate","searchSubject","$givenSubject","analogicalSubject","$givenObject","analogicalObject","$searchSubject","ajax","headers","Accept","done","textStatus","jqXhrOrErrorString","setResponse","fail","viewSearchQuery","queryTemplate","replacedQuery","searchParameters","open","templateUrl","resolve","err","viewCreateQuery","text","res","copyToClipboardResult","openCopyToClipboardModal","trimIRI","_","trim","CreateSimilarityIdxCtrl","$timeout","SparqlRestService","$location","indexType","search","newIndex","page","defaultTabConfig","inference","initForViewType","indexNameFromLocation","editSearchQuery","notoolbarInference","notoolbarSameAs","window","editor","setQuery","allSamples","samples","isLiteralIndex","getAndRemoveOption","literalIndexes","concat","map","inputIndex","desiredIdx","j","filenamePattern","RegExp","validateIndex","invalidIndexName","saveQueries","test","getQueryType","appendOption","option","key","optArr","split","join","saveQueryToLocal","currentQueryTab","setLoader","isRunning","progressMessage","extraMessage","queryIsRunning","queryStartTime","Date","now","countTimeouted","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalViewParam","visibleWindowHeight","innerHeight","documentElement","clientHeight","body","verticalView","orientationViewMode","viewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","container","resize","showHideEditor","runQuery","changePage","explain","executedQueryTab","getQueryMode","explainRequested","currentTabConfig","resultsCount","resetCurrentTabConfig","getRepositoryNamespaces","namespaces","repositoryError","finally","addKnownPrefixes","JSON","stringify","getValue","isDefined","setValue","getExistingTabId","existingTabId","tabsData","item","loadTab","queryType","offset","allResultsCount","pageSize","timeFinished","timeTook","sizeDelta","css","copy","helpHidden","HIDE_SIMILARITY_HELP","toggleHelp","viewQuery","isInvalidIndexName","isEmptyIndexName","goToPage","showEditor","notoolbar","xhr","abort","showPreview","outputType","queryExists","saveTab","addNewTab","callback","tabName","savedQuery","changePagination","toggleSampleQueries","querySelected","tabId","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","tabID","remove","focusQueryEditor","is","$watchCollection","tabEvent","relatedTarget","target","showSampleQueries","sampleQueries","getResultsDescription","getUpdateDescription","getStaleWarningMessage","changedQuery","isSearchQuery","async","response","getCloseBtnMsg"],"mappings":"2GAAA,2DAUAA,QAAQC,OAAO,+BAAgC,CAC3C,qCACA,oCACA,4CACA,kDACA,gDACA,4DACA,0DACA,+D,iBCZJ,SAASC,EAAcC,GACnB,MAAO,CACHC,0BASJ,SAAmCC,GAC/B,OAAO,IAAIC,QAASC,IAChBJ,EAAOK,QAAQH,GACfI,WAAWF,EAAG,SApB1BP,QACKC,OAAO,wCAAyC,IAChDS,QAAQ,gBAAiBR,GAE9BA,EAAcS,QAAU,CAAC,W,gCCJzB,YAWA,SAASC,EAAmBC,EAAYC,EAAqBC,EAAQC,GA4HjE,MAAO,CACHC,SAAU,KAEVC,SAAU,wbACVC,SAAS,EACTC,WAhIkB,CAAC,SAAU,WAAY,aAAc,eAAgB,SAAU,SAAUC,EAAQC,EAAUT,EAAYG,EAAcb,GAGvI,SAASoB,EAAWC,GAChB,OAAOC,EAAED,GAASE,KAAK,WA4B3B,SAASC,EAAUC,GACfH,EAAE,gBAAkBG,EAAK,MAAMC,IAAI,QAhCvCR,EAAOS,MAAQ,GAefL,EAAEH,GAAUS,GAAG,gBAAgB,SAAUC,GACrCnB,EAAWoB,WAAW,YAAaD,MAGvCX,EAAOa,UAgBP,SAAmBF,GAIf,GAHAA,EAAEG,iBACFH,EAAEI,kBAEEf,EAAOgB,KAAKC,OAAS,EAErB,YADAnC,EAAOoC,QAAQ,8BAIfP,EAAEQ,UACFnB,EAAOS,MAAMW,cAAgBlB,EAAWD,GAExCN,EAAa0B,gBAAgB,CACzBC,MAAO,UACPtC,QAAS,sEACTkC,SAAS,IACVK,OAAOC,MAAK,WA2DvB,IAAqCjB,IA1DGP,EAAOS,MAAMW,cA2DjDpB,EAAOgB,KAAOhB,EAAOgB,KAAKS,QAAO,SAAUC,GACvC,GAAIA,EAAInB,KAAOA,EACX,OAAOmB,KAGfpB,EAAUN,EAAOgB,KAAK,GAAGT,IACzBd,EAAoBkC,IAAIjC,EAAOkC,WAAY5B,EAAOgB,MAClDxB,EAAWoB,WAAW,yBAA0BZ,EAAOgB,WA/DnDhB,EAAOS,MAAMoB,YAAc3B,EAAWD,GAEtCN,EAAa0B,gBAAgB,CACzBC,MAAO,UACPtC,QAAS,iDACTkC,SAAS,IACVK,OAAOC,MAAK,YA6BvB,SAAuBjB,GACnB,GAAI5B,QAAQmD,YAAYvB,GACpB,KAAM,4CAEV,MAAMwB,EAxFV,SAA0BxB,GACtB,IAAK,IAAIyB,EAAI,EAAGA,EAAIhC,EAAOgB,KAAKC,OAAQe,IAAK,CAEzC,GADYhC,EAAOgB,KAAKgB,GAChBzB,KAAOA,EACX,OAAOyB,GAoFHC,CAAiB1B,GAC7BP,EAAOgB,KAAKkB,OAAOH,EAAK,GAEpBxB,IAAOP,EAAOmC,aAAa5B,IACvBP,EAAOgB,KAAKC,OAAS,GAGjBX,EAFAyB,EAAM,EAEI/B,EAAOgB,KAAKe,EAAM,GAAGxB,GAGrBP,EAAOgB,KAAK,GAAGT,IA1C7B6B,CAAcpC,EAAOS,MAAMoB,iBAGnClD,QAAQwB,QAAQkC,UAAUC,KAAK,oCAAoCC,SA7CvEvC,EAAOwC,eAgDP,WACI,GAAItC,EAAWD,KAAcD,EAAOmC,aAAa5B,GAC7C,OAEJP,EAAOyC,0BAA0BC,QAEjC,MAAMC,EAAmBvC,EAAE,qBAC3BuC,EAAiBC,SAAS,oBAAoBC,SAAS,UACvDF,EAAiBC,SAAS,oBAAoBC,SAAS,UACvDzC,EAAE,sCAAsCyC,SAAS,mBAAmBnC,GAAG,UAAU,SAAUoC,GACvF9C,EAAOmC,aAAaY,KAAOD,EAAIE,cAAcC,kBAIjD7C,EAAE,6CACG8C,YAAY,0BACZL,SAAS,eACdzC,EAAE,iDACG8C,YAAY,8BACZL,SAAS,gBAlElB7C,EAAOmD,cAEP,SAAuBxC,GACnBA,EAAEG,iBACFH,EAAEI,kBACEf,EAAOoD,eAAc,IACrBhD,EAAEH,GAAUO,IAAI,YAtChC7B,QACKC,OAAO,0DAA2D,CAC/D,yBACA,gDAEHyE,UAAU,YAAa9D,GAE5BA,EAAmBD,QAAU,CAAC,aAAc,sBAAuB,SAAU,iB,iBCT7EX,QACKC,OAAO,4CAA6C,IACpDS,QAAQ,wBAAyBiE,GAEtCA,EAAsBhE,QAAU,CAAC,QAAS,iBAE1C,MAAMiE,EAAsB,kBAE5B,SAASD,EAAsBE,GAE3B,MAAO,CACHC,WAUJ,WACI,OAAOD,EAAME,IAAIH,IAVjBI,iBAiBJ,WACI,OAAOH,EAAME,IAAI,GAAGH,aAjBpBK,aAyCJ,SAAsBC,GAClB,OAAOC,EAAY,MAAOD,EAAMd,KAAMc,EAAME,QAASF,EAAMG,YAAaH,EAAMI,YAAaJ,EAAMK,gBAAiBL,EAAMM,SAAUN,EAAMO,MAAOP,EAAMQ,OAAQR,EAAMS,OAzCnKC,YA4CJ,SAAqBV,GACjB,OAAOL,EAAMgB,OAAO,GAAGjB,UAA4BM,EAAMd,SA5CzDe,cACAW,WASJ,WACI,OAAOjB,EAAME,IAAI,GAAGH,cATpBmB,SA6CJ,SAAkBC,GACd,OAAOnB,EAAME,IAAI,wBACb,CACIkB,OAAQ,CACJ7B,KAAM4B,EAAKE,UACXd,QAASY,EAAKG,aACdX,SAAUQ,EAAKI,cACff,YAAaW,EAAKK,MAClBZ,MAAOO,EAAKM,eACZZ,OAAQM,EAAKO,YACbZ,KAAMK,EAAKQ,SACXC,SAAUT,EAAKU,kBAvD3BC,gBA4DJ,SAAyBX,GACrB,OAAOnB,EAAM,CACT+B,OAAQ,MACRC,IAAK,+BACLb,WAjDR,SAASb,EAAYyB,EAAQxC,EAAMgB,EAASC,EAAaC,EAAaC,EAAiBC,EAAUC,EAAOC,EAAQC,EAAMc,GAClH,OAAO5B,EAAM,CACL+B,SACAC,IAAK,GAAGjC,IACRkC,uBAAuB,EACvBd,KAAM,CACF5B,OACAgB,UACAC,cACAG,WACAC,QACAC,SACAC,OACAc,WACAnB,cACAC,wB,gCChDpB,6BAQA,SAASwB,EAAe1F,EAAQ2F,EAAW7G,EAAQ8G,EAAejG,EAAckG,EAAWvC,EAAuBwC,EAAyBC,EAAaC,GAEpJ,MAAMC,EAAS,8CACTC,EAAqB,kDAErBC,EAAgBD,EAAqB,MAC3ClG,EAAOoG,WAAa,aACpBpG,EAAOqG,gBAAiB,EAExBrG,EAAOsG,kBAAoB,SAAUC,GACjCvG,EAAOqG,eAAiBE,GAG5B,MAAMC,EAAkB,SAAUC,GAC9B,MAAO,IAAMA,EAAU,KAIrBC,EAAc,SAAUC,GAE1B,YAAYC,IAARD,GAAqBA,EAAIE,WAAW,OAASF,EAAIG,SAAS,MACnDH,EAEJ,IAAMA,EAAM,KAUvB,SAASI,IACL,OAAQ/G,EAAOgH,uBACHhH,EAAOiH,wBACFjH,EAAOkH,wBAgD5B,IAAIC,EA0BJ,SAASC,IACLpH,EAAOqH,uBAAyBvB,EAAwBsB,0BArF5DpH,EAAOsH,KAAOvB,EAEd/F,EAAOgH,oBAAsB,WACzB,OAAOpB,EAAcoB,uBAUpBD,KACDzD,EAAsBK,mBAAmBxE,SAAQ,SAAUwF,GACvD3E,EAAOuH,cAAgB5C,KACxB6C,OAAM,SAAU7C,GACf,MAAM8C,EAAMC,SAAS/C,GACrB7F,EAAO0I,MAAMC,EAAK,mCAI1BzH,EAAO2H,mBAAqB,SAAUC,GAClC,OAAOD,mBAAmBC,IAI9B5H,EAAO6H,qBAAuB,YACtBd,KAAqB/G,EAAOqG,gBAGhC/C,EAAsBG,aACjBtE,SAAQ,SAAUwF,GACf3E,EAAO8H,kBAAoBnD,KAE9B6C,OAAM,SAAU7C,GACb,MAAM8C,EAAMC,SAAS/C,GACrB7F,EAAO0I,MAAMC,EAAK,6BAI9BzH,EAAO+H,SAAW,WACd/H,EAAO6H,uBACP,MAAMG,EAAQrC,GAAU,WACpB3F,EAAOY,WAAW,iBACgC,UAA9CR,EAAE,kBAAkBC,KAAK,kBACzBL,EAAO6H,yBAEZ,KACH7H,EAAOiI,IAAI,YAAY,WACnBtC,EAAUuC,OAAOF,OAIrBhI,EAAOgH,uBACPhH,EAAO+H,WAKX/H,EAAOmI,QAAO,WACV,OAAOvC,EAAcoB,yBACtB,YAEKhH,EAAOgH,uBAA0BhH,EAAOkH,yBAA4BlH,EAAOiH,yBAC3EjH,EAAOoI,qBAAuBpC,EAA6BqC,cAAcrI,EAAOgH,uBAC3E7H,SAAQ,SAAUwF,GACfyC,IACApH,EAAOsI,aAAe,GACtB3D,EAAK4D,QAAQC,SAASC,SAAQ,SAAU9H,GACpCX,EAAOsI,aAAa3H,EAAE+H,OAAOC,OAAShI,EAAEiI,UAAUD,SAEtDxB,EAAO,IAAK9E,SAASwG,eAAe,QAAS,CAEzCC,gBAAiB9I,EAAOsI,aACxBS,aAAa,EACbC,YAAY,OAEjBxB,OAAM,SAAU7C,GACf7F,EAAO0I,MAAME,SAAS/C,GAAO,6EAS7C3E,EAAOiI,IAAI,sBAAsB,WAC7Bb,OAGJpH,EAAOiJ,SAAU,EAEjBjJ,EAAOkJ,cAAWtC,EAClB5G,EAAOmJ,WAAa,aACpBnJ,EAAOoJ,WAAa,aAEpBpJ,EAAOmI,OAAO,cAAc,WACxBnI,EAAOqJ,OAAQ,KAGnBrJ,EAAOsJ,oBAAsB,SAAUzF,GAC7B,UAAYA,EAAM0F,QAAU,aAAe1F,EAAM0F,QAAU,eAAiB1F,EAAM0F,SAGxFvJ,EAAOqJ,OAAQ,EACXrJ,EAAOkJ,WAAarF,IACpB7D,EAAOwJ,gBAAa5C,EACpB5G,EAAOkJ,SAAWrF,GAEH,SAAfA,EAAMS,KACNtE,EAAOmJ,WAAa,aACE,gBAAftF,EAAMS,OACbtE,EAAOmJ,WAAa,gBAEL,SAAftF,EAAMS,MAAkC,gBAAfT,EAAMS,MAC/BlE,EAAE,kBAAkBqJ,SAAS,UAIrC,MAAMC,EAAmB,SAAUC,GAC/B,MAAMC,EAAqBjL,QAAQwB,QAAQkC,SAASwG,eAAe,eAC7DgB,EAAgBlL,QAAQwB,QAAQkC,SAASwG,eAAe,mBAE1Dc,GACA3J,EAAOiJ,SAAU,EACjBW,EAAmB/G,SAAS,gBAC5BgH,EAAc3G,YAAY,kBAE1BlD,EAAOiJ,SAAU,EACjBW,EAAmB1G,YAAY,gBAC/B2G,EAAchH,SAAS,kBAI/B7C,EAAO8J,cAAgB,SAAUjG,EAAOkG,EAAKZ,EAAYC,EAAYY,GAEjEN,GAAiB,GAGjB,IAAIO,EAAgBF,EAEpB/J,EAAOwJ,WAAa,GACpBxJ,EAAOwJ,WAAWlF,KAAO6E,EAEN,0BAAfA,IACAc,EAAgBjK,EAAOkK,WACvBlK,EAAOwJ,WAAWW,UAAYJ,GAI9BE,EADe,eAAfd,EACgB3C,EAAgByD,GAEhBvD,EAAYuD,GAGhCjK,EAAOwJ,WAAWS,cAAgBA,EAGlC,IAAIG,EAEAA,EADe,qBAAfjB,EACenJ,EAAOkJ,SAAwB,gBAAIlJ,EAAOkJ,SAAShF,gBAAkBlE,EAAOuH,cAA0B,WAEtGvH,EAAOkJ,SAAoB,YAAIlJ,EAAOkJ,SAASjF,YAAcjE,EAAOuH,cAAcvH,EAAOkJ,SAAS5E,MAErH,MAAM+F,EAAW,CACbrF,MAAOoF,EACPE,OAAQ5D,EA9LQT,uDA8LsBpC,GACtC0G,OAAQN,EACRO,YAAa9D,GAAsC,SAAzB1G,EAAOkJ,SAAS5E,KAAkB2B,EAASC,IAAsC,0BAAfiD,EAAyC,eAAiBA,IACtJsB,YAAa/D,EAAqC,SAAzB1G,EAAOkJ,SAAS5E,KAAkB2B,EAASmD,EAAalD,EAAqB,gBACtGwE,YAAalE,EAAgBwD,IAGd,0BAAfb,IACAkB,EAASM,cAAgB3K,EAAOwJ,WAAWW,UAAYzD,EAAY1G,EAAOwJ,WAAWW,WAAazD,EAAYP,IAG/F,qBAAfgD,IACAnJ,EAAO4K,cAAgBb,EACvBM,EAASQ,cAAgBnE,EAAY1G,EAAO8K,mBAC5CT,EAASU,aAAerE,EAAY1G,EAAOgL,kBAC3CX,EAASY,eAAiBvE,EAAYqD,IAG1C3J,EAAE8K,KAAK,CACH3F,OAAQ,MACRC,IAAK,gBAAkBI,EAAcoB,sBACrCrC,KAAM0F,EACNc,QA/BY,CAACC,OAAQ,6FAgCtBC,MAAK,SAAU1G,EAAM2G,EAAYC,GAChC7B,GAAiB,GACjBvC,EAAKqE,YAAY7G,EAAM2G,EAAYC,MACpCE,MAAK,SAAU9G,GACd7F,EAAO0I,MAAME,SAAS/C,GAAO,2BAC7B+E,GAAiB,OAIzB1J,EAAO0L,gBAAkB,WACrB,IAAIC,EAEAA,EAD2B,qBAA3B3L,EAAOwJ,WAAWlF,KACDtE,EAAOkJ,SAAwB,gBAAIlJ,EAAOkJ,SAAShF,gBAAkBlE,EAAOuH,cAA0B,WAEtGvH,EAAOkJ,SAAoB,YAAIlJ,EAAOkJ,SAASjF,YAAcjE,EAAOuH,cAAcvH,EAAOkJ,SAAS5E,MAEvH,MAAMsH,EAAgBD,EACjB7L,QAAQ,SAAU,QAAUE,EAAOkJ,SAASnG,MAC5CjD,QAAQ,SAAUE,EAAOwJ,WAAWS,eACpCnK,QAAQ,eAAyC,SAAzBE,EAAOkJ,SAAS5E,KAAkB,IAAM,SAAsC,0BAA3BtE,EAAOwJ,WAAWlF,KAAmC,eAAiBtE,EAAOwJ,WAAWlF,OACnKxE,QAAQ,cAAwC,SAAzBE,EAAOkJ,SAAS5E,KAAkB,IAAMtE,EAAOoJ,WAAa,oBACnFtJ,QAAQ,cAAe0G,EAAkBxG,EAAO6L,iBAAyB7L,EAAO6L,iBAAZ,KACpE/L,QAAQ,gBAAiBE,EAAOwJ,WAAWW,UAAYzD,EAAY1G,EAAOwJ,WAAWW,WAAazD,EAAYP,IAC9GrG,QAAQ,gBAAiB4G,EAAY1G,EAAO8K,oBAC5ChL,QAAQ,eAAgB4G,EAAY1G,EAAOgL,mBAC3ClL,QAAQ,iBAAkB4G,EAAY1G,EAAO4K,gBAElD/E,EAAUiG,KAAK,CACXC,YAAa,uBACbhM,WAAY,gBACZiM,QAAS,CACLhH,MAAO,WACH,OAAO4G,OAOvB5L,EAAOuE,YAAc,SAAUV,GAC3BlE,EAAa0B,gBAAgB,CACzBC,MAAO,UACPtC,QAAS,8CAAsD6E,EAAMd,KAAO,KAC5E7B,SAAS,IACVK,OACEC,MAAK,WACF8B,EAAsBiB,YAAYV,GAC7BrC,MAAK,WACFxB,EAAO6H,0BACR,SAAUoE,GACTnN,EAAO0I,MAAME,SAASuE,WAK1CjM,EAAOkM,gBAAkB,SAAUrI,GAC/BP,EAAsBoB,SAAS,CAC3BG,UAAWhB,EAAMd,KACjB+B,aAAcjB,EAAME,QACpBiB,MAAOnB,EAAMG,YACbe,cAAelB,EAAMM,SACrBc,eAAgBpB,EAAMO,MACtBc,YAAarB,EAAMQ,OACnBc,SAAUtB,EAAMS,KAChBe,cAAexB,EAAMuB,WACtBjG,SAAQ,SAAU6F,GACjBa,EAAUiG,KAAK,CACXC,YAAa,uBACbhM,WAAY,gBACZiM,QAAS,CACLhH,MAAO,WACH,OAAOA,UAO3BhF,EAAO4D,aAAe,SAAUC,GAEvBA,EAAMI,cACPJ,EAAMI,YAAcJ,EAAMS,KAAOtE,EAAOuH,cAAc1D,EAAMS,MAAQtE,EAAOuH,cAAc4E,MAE7FxM,EAAa0B,gBAAgB,CACzBC,MAAO,UACPtC,QAAS,qDAA6D6E,EAAMd,KAAO,mEACnF7B,SAAS,IACVK,OACEC,MAAK,WACFqC,EAAM0F,OAAS,aACfjG,EAAsBM,aAAaC,GAC9BrC,MAAK,SAAU4K,OACb,SAAUH,GACTnN,EAAO0I,MAAME,SAASuE,WAK1CjM,EAAOqM,sBAAwB,SAAUtC,GACrCpK,EAAa2M,yBAAyBvC,IAG1C/J,EAAOuM,QAAU,SAAU5F,GACvB,OAAO6F,EAAEC,KAAK9F,EAAK,OAtU3BhI,QACKC,OAAO,gDAAiD,IACxDmB,WAAW,iBAAkB2F,GAElCA,EAAepG,QAAU,CAAC,SAAU,YAAa,SAAU,gBAAiB,eAAgB,YAAa,wBAAyB,0BAA2B,cAAe,iC,gCCN5K,kBAYA,SAASoN,EAAwB1M,EAAQlB,EAAQ+G,EAAW8G,EAAUrJ,EAAuBsJ,EAAmBC,EAAW9G,EAAalH,EAAemH,EAA8BvG,EAAqBC,GAEtM,MAAMoN,EAAYD,EAAUE,SAASzI,UACnBsC,IAAdkG,GAA2BA,EAAUjG,WAAW,QAChD7G,EAAOmF,SAAW,OAElBnF,EAAOmF,SAAW2H,EAKtB9M,EAAOgN,SAAW,GAElBhN,EAAOsH,KAAOvB,EACd/F,EAAOiN,KAAO,EAEd,MAAMC,EAAmB,CACrB3M,GAAI,IACJwC,KAAM,GACNiC,MAAO,GACPmI,WAAW,EACX9I,QAAQ,GAcZ,MAAM+I,EAAkB,WAXF,IAAUC,EAwB5B,GAZArN,EAAOsN,gBAAkBT,EAAUE,SAASO,gBAC5CtN,EAAOiN,KAAOjN,EAAOsN,gBAAkB,EAAI,EAC3CtN,EAAOgN,SAASjK,MAdYsK,EAcWR,EAAUE,SAAShK,MAZlC,IAAhB/C,EAAOiN,KACAI,EAEA,WAAaA,EAGrB,GAOPrN,EAAOgN,SAASjJ,QAAW8I,EAAUE,SAAShJ,QAAU8I,EAAUE,SAAShJ,QAA+B,SAApB/D,EAAOmF,SA9BtE,kBACA,GA+BnBnF,EAAOuH,gBACPvH,EAAOgN,SAAS/I,YAAc4I,EAAUE,SAAS9I,YAAc4I,EAAUE,SAAS9I,YAAcjE,EAAOuH,cAAcvH,EAAOmF,UACpG,gBAApBnF,EAAOmF,WACPnF,EAAOgN,SAAS9I,gBAAkB2I,EAAUE,SAAS7I,gBAAkB2I,EAAUE,SAAS7I,gBAAkBlE,EAAOuH,cAA0B,aAIjJvH,EAAOsN,gBAEPtN,EAAOmC,aAAa6C,MAAQhF,EAAOgN,SAAS/I,YAC5CjE,EAAOuN,oBAAqB,EAC5BvN,EAAOwN,iBAAkB,EACrBC,OAAOC,QACP1N,EAAO2N,SAAS3N,EAAOgN,SAAS/I,iBAEjC,CACH,GAAwB,SAApBjE,EAAOmF,UAAuBnF,EAAO4N,WAAY,CACjD5N,EAAO6N,QAAU7N,EAAO4N,WAAiB,KACzC5N,EAAOgN,SAAS7I,SAAY0I,EAAUE,SAAS5I,SAAW0I,EAAUE,SAAS5I,cAAWyC,EACxF5G,EAAOgN,SAAS5H,SAAYyH,EAAUE,SAAS3H,SAAWyH,EAAUE,SAAS3H,SAAW,gDACxF,MAAM0I,EAAiBC,EAAmB,uBACnBnH,IAAnBkH,IACA9N,EAAOgN,SAASc,eAAiBA,GAEjCL,OAAOC,QACP1N,EAAO2N,SAAS3N,EAAO6N,QAAkB,UAGzB,gBAApB7N,EAAOmF,UAA8BnF,EAAO4N,aAC5CtK,EAAsBG,aACjBtE,SAAQ,SAAUwF,GASnB,GARI3E,EAAOgO,eAAiB,CAAC,YAAYC,OAAOtJ,EACvClD,QAAO,SAAUM,GACd,MAAoB,gBAAbA,EAAIuC,OAA0C,UAAfvC,EAAIwH,QAAqC,aAAfxH,EAAIwH,WAEvE2E,KAAI,SAAUnM,GACX,OAAOA,EAAIgB,cAGY6D,IAA/B5G,EAAOgN,SAASmB,WAA0B,CAC1C,MAAMC,EAAaL,EAAmB,gBACtC,QAAmBnH,IAAfwH,EACA,IAAK,IAAIC,EAAI,EAAGA,EAAIrO,EAAOgO,eAAe/M,OAAQoN,IAC1CD,IAAepO,EAAOgO,eAAeK,KACrCrO,EAAOgN,SAASmB,WAAanO,EAAOgO,eAAeK,SAKhCzH,IAA/B5G,EAAOgN,SAASmB,aAChBnO,EAAOgN,SAASmB,WAAanO,EAAOgO,eAAe,OAG1DxG,OAAM,SAAU7C,GACb,MAAM8C,EAAMC,SAAS/C,GACrB7F,EAAO0I,MAAMC,EAAK,4BAGtBzH,EAAO6N,QAAU7N,EAAO4N,WAAwB,YAC5CH,OAAOC,QACP1N,EAAO2N,SAAS3N,EAAO6N,QAAqB,gBAMtDS,EAAkB,IAAIC,OAAO,oBAE7BC,EAAgB,WAGlB,OAFAxO,EAAOyO,kBAAmB,EAC1BzO,EAAO0O,cACF1O,EAAOgN,SAASjK,KAIhBuL,EAAgBK,KAAK3O,EAAOgN,SAASjK,MAKrC/C,EAAOgN,SAAShI,MAKhBhF,EAAOgN,SAAS/I,YAKG,gBAApBjE,EAAOmF,UAA+BnF,EAAOgN,SAAS9I,gBAKrB,WAAjCuJ,OAAOC,OAAOkB,qBACd9P,EAAO0I,MAAM,8CALb1I,EAAO0I,MAAM,sCACN,IANP1I,EAAO0I,MAAM,kCACN,IANP1I,EAAO0I,MAAM,kCACN,IANPxH,EAAOyO,iBAAmB,8EACnB,IALPzO,EAAOyO,iBAAmB,8BACnB,IA8BTI,EAAe,SAAUC,EAAQnG,GACnC3I,EAAOgN,SAASjJ,QAAU/D,EAAOgN,SAASjJ,SAAuC,KAA5B/D,EAAOgN,SAASjJ,QAAiB,GAAK,KAAO+K,EAAS,IAAMnG,GAuOrH,SAASoF,EAAmBgB,GACxB,MAAMC,EAAShP,EAAOgN,SAASjJ,QAAQkL,MAAM,KAC7C,IAAK,IAAIjN,EAAI,EAAGA,EAAIgN,EAAO/N,OAAQe,IAC/B,GAAIgN,EAAOhN,KAAO+M,GAAO/M,EAAI,EAAIgN,EAAO/N,OAAQ,CAC5C,MAAM0H,EAAQqG,EAAOhN,EAAI,GAMzB,cAJOgN,EAAOhN,UACPgN,EAAOhN,EAAI,GAClBhC,EAAOgN,SAASjJ,QAAUiL,EAAOE,KAAK,KAE/BvG,GAMnB,SAASwG,EAAiBC,IAG1B,SAASC,EAAUC,EAAWC,EAAiBC,GAC3C,MAAM5F,EAAqBjL,QAAQwB,QAAQkC,SAASwG,eAAe,eACnE7I,EAAOyP,eAAiBH,EACpBA,GACAtP,EAAO0P,eAAiBC,KAAKC,MAC7B5P,EAAO6P,gBAAiB,EACxB7P,EAAOuP,gBAAkBA,EACzBvP,EAAOwP,aAAeA,EACtB5F,EAAmB/G,SAAS,UAE5B7C,EAAOuP,gBAAkB,GACzBvP,EAAOwP,aAAe,GACtB5F,EAAmB1G,YAAY,SAGZ,OAAnBlD,EAAO8P,SACP9P,EAAO+P,SAsBf,SAASC,EAAmCC,GACxC,SAASC,IACL,OAAOzC,OAAO0C,aAAe9N,SAAS+N,gBAAgBC,cAAgBhO,SAASiO,KAAKD,cAAgB,EAGxG,MAAME,EAAeN,EACrB,GAAKjQ,EAAOwQ,oBAwBL,CACH,GAAwB,SAApBxQ,EAAOyQ,SAAqB,CAC5B,IAAIC,EAAYR,IAAyB7N,SAASsO,cAAc,oBAAoBC,wBAA2B,IAC/GF,GAAa,GACbrO,SAASsO,cAAc,oBAAoBE,MAAMC,OAASJ,EAAY,UAEtE1Q,EAAO+Q,UAAY,GACnB1O,SAASsO,cAAc,oBAAoBE,MAAMC,OAAS,GAE9DzO,SAASwG,eAAe,QAAQgI,MAAMG,UAAY,QA7BlD,GAHAhR,EAAO+Q,UAAY,CAACE,aAAc,GAAIC,YAAa,GAG/CzD,OAAOC,QAAUrL,SAASsO,cAAc,oBAAqB,CAC7D,IAAID,EAAYR,IAAyB7N,SAASsO,cAAc,oBAAoBC,wBAA2B,IAC/GF,GAAa,GACbrO,SAASsO,cAAc,oBAAoBE,MAAMC,OAASJ,EAAY,KACtErO,SAASwG,eAAe,QAAQgI,MAAMG,UAAYN,EAAY,SAE3D,CACH,IAAI1I,EAEAA,EAAQ2E,EADR4D,EACiB,WACbvQ,EAAOgQ,mCAAmCO,IAG7BvQ,EAAOgQ,mCAFrB,KAKPhQ,EAAOiI,IAAI,YAAY,WACnB0E,EAASzE,OAAOF,MAcxByF,OAAOtG,MAAQsG,OAAOtG,KAAKgK,WAC3BxE,GAAS,WACLc,OAAOtG,KAAKgK,UAAUC,WACvB,KAoBX,SAASC,IACLrB,GAAmC,GAWvC,SAAS1P,EAAUC,GACfoM,GAAS,WACLvM,EAAE,gBAAkBG,EAAK,MAAMC,IAAI,UACpC,GAIP,SAAS8Q,EAASC,EAAYC,GAC1BxR,EAAOyR,iBAAmBzR,EAAOmC,aACI,WAAjCsL,OAAOC,OAAOkB,eAId4C,GAA8C,WAAjC/D,OAAOC,OAAOkB,eAC3B9P,EAAOoC,QAAQ,2CAIkB,WAAjCuM,OAAOC,OAAOgE,gBAKlB1R,EAAO2R,iBAAmBH,EACrBxR,EAAOyP,iBACJ8B,EACAvR,EAAO4R,iBAAiBC,aAAe,EAEvC7R,EAAO8R,wBAIX9R,EAAOyQ,SAAW,SACdzQ,EAAOwQ,qBACPxQ,EAAOgQ,qCAGXX,GAAU,EAAM,oBAChB5B,OAAOC,OAAO1I,UAnBdlG,EAAOoC,QAAQ,4CATfpC,EAAO0I,MAAM,qDAiCrB,SAASa,IAELgH,GAAU,EAAM,wBAAyB,kHACzCrJ,EAA6B+L,0BACxB5S,SAAQ,SAAUwF,GACf,MAAM2D,EAAe,GACrB3D,EAAK4D,QAAQC,SAASC,SAAQ,SAAU9H,GACpC2H,EAAa3H,EAAE+H,OAAOC,OAAShI,EAAEiI,UAAUD,SAE/C3I,EAAOgS,WAAa1J,KAEvBd,OAAM,SAAU7C,GACb3E,EAAOiS,gBAAkBvK,SAAS/C,MAErCuN,SAAQ,WAEL7C,GAAU,MAqBtB,SAAS8C,IACLvF,EAAkBuF,iBAAiBC,KAAKC,UAAU5E,OAAOC,OAAO4E,aAC3DnT,SAAQ,SAAUwF,GACXhG,QAAQ4T,UAAU9E,OAAOC,SAAW/O,QAAQ4T,UAAU5N,IAASA,IAAS8I,OAAOC,OAAO4E,YACtF7E,OAAOC,OAAO8E,SAAS7N,MAG9B6C,OAAM,SAAU7C,GACb,MAAM8C,EAAMC,SAAS/C,GAErB,OADA7F,EAAO0I,MAAMC,EAAK,wCACX,KAoBnB,SAASgL,EAAiBzN,GACtB,IAAI0N,OAAgB9L,EAQpB,OAPAjI,QAAQ8J,QAAQzI,EAAO2S,UAAU,SAAUC,GACvC,GAAIA,EAAK7P,OAASiC,EAAMjC,MAAQ6P,EAAK5N,QAAUA,EAAMsL,KAEjD,OADAoC,EAAgBE,EAAKrS,GACdqS,KAIRF,EAmCX,SAASG,IACL7S,EAAO2S,SAAW,CAAC3S,EAAOmC,cAE1B,MAAM3B,EAAMR,EAAOmC,aAEe,OAA9BnC,EAAOmC,aAAa6C,OAAgD,KAA9BhF,EAAOmC,aAAa6C,MAE1DyI,OAAOC,OAAO8E,SAAS,KAEvB/E,OAAOC,OAAO8E,SAASxS,EAAOmC,aAAa6C,OAAS,KAGxD2H,GAAS,WACL3M,EAAO4R,iBAAmB,GAC1B5R,EAAO4R,iBAAiBkB,UAAYtS,EAAIsS,UACxC9S,EAAO4R,iBAAiBC,aAAerR,EAAIqR,aAE3C7R,EAAO4R,iBAAiBmB,OAASvS,EAAIuS,OACrC/S,EAAO4R,iBAAiBoB,gBAAkBxS,EAAIwS,gBAC9ChT,EAAO4R,iBAAiB3E,KAAOzM,EAAIyM,KACnCjN,EAAO4R,iBAAiBqB,SAAWzS,EAAIyS,SAEvCjT,EAAO4R,iBAAiBsB,aAAe1S,EAAI0S,aAC3ClT,EAAO4R,iBAAiBuB,SAAW3S,EAAI2S,SACvCnT,EAAO4R,iBAAiBwB,UAAY5S,EAAI4S,UACxCpT,EAAO+P,WACR,GAGH3P,EAAE,SAASiT,IAAI,UAAW,KAG9B,SAASnT,EAAWC,GAChB,OAAOC,EAAED,GAASE,KAAK,WApiB3BiD,EAAsBK,mBAAmBxE,SAAQ,SAAUwF,GACvD3E,EAAOuH,cAAgB5C,EACvBrB,EAAsBmB,aAAatF,SAAQ,SAAU0O,GACjDX,EAAiBlI,MAAQ6H,EAAUE,SAAS/I,YAAc6I,EAAUE,SAAS/I,YAAc6J,EAAc,KAAY,SACrHX,EAAiBC,YAA2C,UAA7BN,EAAUE,SAAS3I,OAClD8I,EAAiB7I,SAAyC,UAA9BwI,EAAUE,SAAS1I,QAC/CrE,EAAO2S,SAAW3S,EAAOgB,KAAO,CAACkM,GACjClN,EAAOmC,aAAexD,QAAQ2U,KAAKpG,GACnClN,EAAO4N,WAAaC,EACpBT,UAEL5F,OAAM,SAAU7C,GACf,MAAM8C,EAAMC,SAAS/C,GACrB7F,EAAO0I,MAAMC,EAAK,mCAGtBzH,EAAOmI,OAAO,YAAY,WACtBiF,OAGJpN,EAAOuT,WAAsE,IAAzD9T,EAAoBiE,IAAIhE,EAAO8T,sBACnDxT,EAAOyT,WAAa,SAAU9K,QACZ/B,IAAV+B,IACAA,EAAQlJ,EAAoBiE,IAAIhE,EAAO8T,uBAE7B,IAAV7K,GACAlJ,EAAoBkC,IAAIjC,EAAO8T,qBAAsB,GACrDxT,EAAOuT,YAAa,IAEpB9T,EAAoBkC,IAAIjC,EAAO8T,qBAAsB,GACrDxT,EAAOuT,YAAa,IAI5BvT,EAAO0T,UAAY,WACVlF,KAILlL,EAAsBoB,SAAS,CAC3BG,UAAW7E,EAAOgN,SAASjK,KAC3B+B,aAAc9E,EAAOgN,SAASjJ,QAC9BiB,MAAOhF,EAAOmC,aAAa6C,MAC3BD,cAAe/E,EAAOgN,SAAS7I,SAC/Bc,eAAgBjF,EAAOmC,aAAagL,UACpCjI,YAAalF,EAAOmC,aAAakC,OACjCc,SAAUnF,EAAOmF,SACjBE,cAAerF,EAAOgN,SAAS5H,WAChCjG,SAAQ,SAAU6F,GACbA,GACAa,EAAUiG,KAAK,CACXC,YAAa,uBACbhM,WAAY,gBACZiM,QAAS,CACLhH,MAAO,WACH,OAAOA,UAQ/BhF,EAAOmI,OAAO,iBAAiB,WAC3BnI,EAAO2T,oBAAqB,EAC5B3T,EAAO4T,kBAAmB,KAG9B5T,EAAO0O,YAAc,WAEjB,MAAM1J,EAAQyI,OAAOC,OAAO4E,WAAW7F,OACnB,IAAhBzM,EAAOiN,KACPjN,EAAOgN,SAAShI,MAAQA,EACD,IAAhBhF,EAAOiN,KACdjN,EAAOgN,SAAS/I,YAAce,EACP,IAAhBhF,EAAOiN,OACdjN,EAAOgN,SAAS9I,gBAAkBc,IAI1ChF,EAAO6T,SAAW,SAAU5G,GAEX,IAATA,GAAkC,SAApBjN,EAAOyQ,WACrBzQ,EAAO8T,aACPnH,GAAS,WACQ,IAATM,IACAjN,EAAOmC,aAAa6C,MAAQhF,EAAOgN,SAAS/I,aAEnC,IAATgJ,IACAjN,EAAOmC,aAAa6C,MAAQhF,EAAOgN,SAAS9I,iBAGhDuJ,OAAOC,OAAO8E,SAASxS,EAAOmC,aAAa6C,OAAS,SAI5DhF,EAAO0O,cAEM,IAATzB,EACAjN,EAAOmC,aAAa6C,MAAQhF,EAAOgN,SAAShI,MAC5B,IAATiI,EACPjN,EAAOmC,aAAa6C,MAAQhF,EAAOgN,SAAS/I,YAC5B,IAATgJ,IACPjN,EAAOmC,aAAa6C,MAAQhF,EAAOgN,SAAS9I,iBAGhD2O,IACA7S,EAAO+T,UAAqB,IAAT9G,EAEnBjN,EAAOiN,KAAOA,GAGlBjN,EAAO8D,YAAc,WACZ0K,KAILlL,EAAsBG,aACjBtE,SAAQ,SAAUwF,GAMf,GALAA,EAAK8D,SAAQ,SAAU5E,GACfA,EAAMd,OAAS/C,EAAOgN,SAASjK,OAC/B/C,EAAOyO,iBAAmB,4CAG7BzO,EAAOyO,iBAAkB,CAC1B,IAAI3B,EAAY9M,EAAOmF,SAEvB,QAA8ByB,IAA1B5G,EAAOgO,eAA8B,CACrC,MAAMG,EAAanO,EAAOgN,SAASmB,WAC/BA,IAAenO,EAAOgO,eAAe,IACrCa,EAAa,eAAgBV,GAGE,SAAnCnO,EAAOgN,SAASc,iBAChBe,EAAa,iBAAkB,QAC/B/B,EAAY,eAGhBxJ,EAAsBQ,YAAY,OAC9B9D,EAAOgN,SAASjK,KAChB/C,EAAOgN,SAASjJ,QAChB/D,EAAOgN,SAAShI,MAChBhF,EAAOgN,SAAS/I,YAChBjE,EAAOgN,SAAS9I,gBAChBlE,EAAOgN,SAAS7I,SAChBnE,EAAOmC,aAAagL,UACpBnN,EAAOmC,aAAakC,OACpByI,EACA9M,EAAOgN,SAAS5H,UACfoC,OAAM,SAAUyE,GACbnN,EAAO0I,MAAME,SAASuE,GAAM,6BAEpCY,EAAUrH,IAAI,kBAIrBgC,OAAM,SAAU7C,GACb,MAAM8C,EAAMC,SAAS/C,GACrB7F,EAAO0I,MAAMC,EAAK,6BAK9BzH,EAAO2N,SAAW,SAAU3I,GAExByI,OAAOC,OAAO8E,SAASxN,GAAgB,MAM3ChF,EAAO8T,WAAa,WACZrG,OAAOC,OAAOsG,KACdvG,OAAOC,OAAOsG,IAAIC,QAEtBjU,EAAOyQ,SAAW,QAGtBzQ,EAAOkU,YAAc,WAGjBlU,EAAOmC,aAAagS,WAAa,QACjCnU,EAAOsR,YAGXtR,EAAO8R,sBAAwB,WAC3B9R,EAAO4R,iBAAmB,CACtBqB,SAAU,IACVhG,KAAM,EACN+F,gBAAiB,EACjBnB,aAAc,IAItB7R,EAAOoU,aAAc,EAErBpU,EAAO8R,wBAEP9R,EAAO2S,SAAW3S,EAAOgB,KAAO,CAACkM,GAGjClN,EAAOqU,QA2SP,SAAiB9T,GACb,MAAMwB,EAdV,SAA0BxB,GACtB,IAAK,IAAIyB,EAAI,EAAGA,EAAIhC,EAAO2S,SAAS1R,OAAQe,IAAK,CAE7C,GADYhC,EAAO2S,SAAS3Q,GACpBzB,KAAOA,EACX,OAAOyB,GAUHC,CAAiB1B,GAE7B,QAAYqG,IAAR7E,EACA,MAAO,GAEX,MAAMvB,EAAMR,EAAO2S,SAAS5Q,GAG5B,OADA/B,EAAOmP,iBAAiB3O,GACjBA,GAnTXR,EAAO6S,QAAUA,EACjB7S,EAAOsU,UAqTP,SAAmBC,EAAUC,EAASC,KAlTtCzU,EAAOsR,SAAWA,EAClBtR,EAAOqI,cAAgBA,EACvBrI,EAAO0U,iBAwNP,WACIpD,GAAS,EAAMtR,EAAO2R,mBAxN1B3R,EAAO2U,oBAoOP,aAnOA3U,EAAOmS,iBAAmBA,EAC1BnS,EAAOyS,iBAAmBA,EAC1BzS,EAAO4U,cAyPP,SAAuB5P,GACnB,MAAM6P,EAAQpC,EAAiBzN,GAC/BhF,EAAO2U,sBACFhW,QAAQ4T,UAAUsC,GAGnBvU,EAAUuU,GAFV7U,EAAOsU,UAAU,KAAMtP,EAAMjC,KAAMiC,EAAMsL,OA5PjDtQ,EAAOmP,iBAAmBA,EAE1BnP,EAAOqP,UAAYA,EACnBrP,EAAO8U,iBAmDP,WACI,MAAMC,GAAepF,KAAKC,MAAQ5P,EAAO0P,gBAAkB,IACrDsF,EAAYhV,EAAOiV,wBAAwBF,GACjD,IAAI/V,EAAU,GAGVA,EADAgB,EAAOuP,gBACGvP,EAAOuP,gBAAkB,OAASyF,EAElC,uBAAyBA,EAEnChV,EAAOwP,cAAgBuF,EAAc,KACrC/V,GAAW,KAAOgB,EAAOwP,cAG7B,OAAOxQ,GA9DXgB,EAAOgQ,mCAAqCA,EAC5ChQ,EAAOkV,eAqHP,SAAwBC,GACpBnV,EAAOyQ,SAAW,OAClBzQ,EAAOwQ,qBAAuBxQ,EAAOwQ,oBACrCR,IACA5P,EAAE,sBAAsBgV,SACxBhV,EAAE,iBAAiBgV,SACnBzI,GAAS,WACLkG,IACAvS,EAAU6U,KACX,MA7HPnV,EAAOqR,eAAiBA,EACxBrR,EAAOqV,iBAmIP,WACS1W,QAAQwB,QAAQkC,UAAUC,KAAK,mBAAmBgT,GAAG,WACtD3W,QAAQwB,QAAQkC,UAAUC,KAAK,oCAAoCC,SApI3EvC,EAAOwQ,qBAAsB,EAG7BxQ,EAAOgH,sBA2GFhH,EAAOwQ,qBACRa,IA8FArR,EAAOgH,uBACPqB,IAGJrI,EAAOiI,IAAI,YAAY,WACnBwF,OAAOC,OAAS,KAChBD,OAAOtG,KAAO,QAqBlB/G,EAAE,YAAYM,GAAG,SAAS,WACtBiM,GAAS,WACLwF,MACD,MAsCPnS,EAAOuV,iBAAiB,iDAAiD,WACpDvV,EAAOmC,gBAsD5BnC,EAAOiI,IAAI,aAAa,SAAUtH,EAAG6U,GAC7BA,EAASC,eACTzV,EAAOqU,QAAQnU,EAAWsV,EAASC,gBAEvCzV,EAAO6S,QAAQ3S,EAAWsV,EAASE,YAGvC1V,EAAOiI,IAAI,0BAA0B,SAAUtH,EAAGK,GAC9ChB,EAAO2S,SAAW3R,EAClBhB,EAAOgB,KAAOA,KAIlBhB,EAAOmC,aAAexD,QAAQ2U,KAAKpG,GAEnClN,EAAO2V,mBAAoB,EAC3B3V,EAAOyU,WAAa,GACpBzU,EAAO4V,cAAgB,GAEvB5V,EAAO6V,sBAAwB,aAG/B7V,EAAO8V,qBAAuB,aAG9B9V,EAAO+V,uBAAyB,aAGhC/V,EAAOsF,gBAAkB,WAErB,GAAqC,WAAjCmI,OAAOC,OAAOkB,eAEd,YADA9P,EAAO0I,MAAM,6CAGjB,IAAI7C,EAAO,CACP5B,KAAM/C,EAAOgN,SAASjK,KACtBiT,aAAchW,EAAOmC,aAAa6C,MAClCiR,cAA+B,IAAhBjW,EAAOiN,MAG1B,OAAO3J,EAAsBgC,gBAAgB8M,KAAKC,UAAU1N,IACvDnD,MAAK0U,uBACIrX,EAAcE,0BAA0C,IAAhBiB,EAAOiN,KAAa,uBAAyB,4BAC3FJ,EAAUrH,IAAI,iBACf,SAAU2Q,GACTrX,EAAO0I,MAAME,SAASyO,GAAW,+BAI7CnW,EAAOoW,eAAiB,WACpB,MAAO,WAAapW,EAAOsN,gBAAkB,gBAAiB,kBAAoB,gCAtvB1F3O,QACKC,OAAO,kDAAmD,CACvD,wCACA,gDAEHmB,WAAW,0BAA2B2M,GAE3CA,EAAwBpN,QAAU,CAAC,SAAU,SAAU,YAAa,WAAY,wBAAyB,oBAAqB,YAAa,cAAe,gBAAiB,+BAAgC,sBAAuB","file":"20.264daf29beccbf7de84a.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/controllers';\nimport 'angular/rest/similarity.rest.service';\nimport 'angular/similarity/controllers/similarity-list.controller';\nimport 'angular/similarity/controllers/create-index.controller';\nimport 'angular/core/directives/queryeditor/sparql-tab.directive';\nimport 'angular/core/directives/queryeditor/query-editor.controller';\nimport 'angular/core/directives/queryeditor/query-editor.directive';\n\nangular.module('graphdb.framework.similarity', [\n 'graphdb.framework.core.controllers',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.rest.similarity.service',\n 'graphdb.framework.similarity.controllers.create',\n 'graphdb.framework.similarity.controllers.list',\n 'graphdb.framework.core.directives.queryeditor.controllers',\n 'graphdb.framework.core.directives.queryeditor.sparqltab',\n 'graphdb.framework.core.directives.queryeditor.queryeditor'\n]);\n","angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr'];\n\nfunction Notifications(toastr) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success(message);\n setTimeout(r, 200);\n });\n }\n}\n","import 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.core.directives.queryeditor.sparqltab', [\n 'graphdb.framework.core',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .directive('sparqlTab', sparqlTabDirective);\n\nsparqlTabDirective.$inject = ['$rootScope', 'LocalStorageAdapter', 'LSKeys', 'ModalService'];\n\nfunction sparqlTabDirective($rootScope, LocalStorageAdapter, LSKeys, ModalService) {\n const SparqlTabCtrl = ['$scope', '$element', '$rootScope', 'ModalService', 'toastr', function ($scope, $element, $rootScope, ModalService, toastr) {\n $scope.state = {};\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabs.length; i++) {\n const tab = $scope.tabs[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $($element).on('shown.bs.tab', function (e) {\n $rootScope.$broadcast('tabAction', e);\n });\n\n $scope.deleteTab = deleteTab;\n $scope.editCurrentTab = editCurrentTab;\n $scope.selectThisTab = selectThisTab;\n\n function selectThisTab(e) {\n e.preventDefault();\n e.stopPropagation();\n if ($scope.isTabChangeOk(false)) {\n $($element).tab('show');\n }\n }\n\n function selectTab(id) {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }\n\n function deleteTab(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if ($scope.tabs.length < 2) {\n toastr.warning('Last tab must remain open.');\n return;\n }\n\n if (e.shiftKey) {\n $scope.state.selectedTabId = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to delete all query tabs except selected tab?',\n warning: true\n }).result.then(function () {\n deleteAllTabsExceptSelected($scope.state.selectedTabId);\n });\n } else {\n $scope.state.idForDelete = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to close this query tab?',\n warning: true\n }).result.then(function () {\n deleteTabByID($scope.state.idForDelete);\n });\n }\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n\n function editCurrentTab() {\n if (getQueryID($element) !== $scope.currentQuery.id) {\n return;\n }\n $scope.editCurrentlySelectedOnly.$show();\n //fix for buttons for edit\n const $editableButtons = $(\".editable-buttons\");\n $editableButtons.children(\".btn.btn-primary\").addClass('btn-sm');\n $editableButtons.children(\".btn.btn-default\").addClass('btn-sm');\n $('.editable-controls .editable-input').addClass('form-control-sm').on('change', function ($el) {\n $scope.currentQuery.name = $el.currentTarget.$$currentValue;\n });\n //$('.editable-buttons').css('margin-top', '5px');\n //$('.editable-input.editable-has-buttons').css('width', '50%');\n $('.editable-buttons .glyphicon.glyphicon-ok')\n .removeClass('glyphicon glyphicon-ok')\n .addClass('fa fa-check');\n $('.editable-buttons .glyphicon.glyphicon-remove')\n .removeClass('glyphicon glyphicon-remove')\n .addClass('fa fa-close');\n }\n\n function deleteTabByID(id) {\n if (angular.isUndefined(id)) {\n throw 'Delete by id was called with undefined id';\n }\n const idx = findTabIndexByID(id);\n $scope.tabs.splice(idx, 1);\n\n if (id === $scope.currentQuery.id) {\n if ($scope.tabs.length > 0) {\n if (idx > 0) {\n // select previous tab if we deleted any but the first tab\n selectTab($scope.tabs[idx - 1].id);\n } else {\n // select first tab if we deleted the first tab\n selectTab($scope.tabs[0].id);\n }\n }\n }\n }\n\n function deleteAllTabsExceptSelected(id) {\n $scope.tabs = $scope.tabs.filter(function (obj) {\n if (obj.id === id) {\n return obj;\n }\n });\n selectTab($scope.tabs[0].id);\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n $rootScope.$broadcast('deleteAllexeptSelected', $scope.tabs);\n }\n }];\n\n return {\n restrict: 'AE',\n // for some reason when you extract this template in a file and use templateUrl it selects all tabs when editing the tab name, not only the currently selected one\n template: '<a class=\"nav-link\" role=\"tab\" data-toggle=\"tab\" blur=\"submit\" editable-text=\"tab.name\" e-form=\"editCurrentlySelectedOnly\" ng-click=\"selectThisTab($event)\" ng-dblclick=\"editCurrentTab()\" ><span ng-class=\"{\\'text-muted\\': !tab.name}\">{{ tab.name || \\'Unnamed\\'}}</span><button type=\"button\" ng-click=\"deleteTab($event)\" class=\"btn btn-link btn-sm secondary delete-sparql-tab-btn\" title=\"Delete tab\"><i class=\"icon-close\"></i></button></a>',\n replace: true,\n controller: SparqlTabCtrl\n };\n}\n","angular\n .module('graphdb.framework.rest.similarity.service', [])\n .factory('SimilarityRestService', SimilarityRestService);\n\nSimilarityRestService.$inject = ['$http', '$repositories'];\n\nconst SIMILARITY_ENDPOINT = 'rest/similarity';\n\nfunction SimilarityRestService($http) {\n\n return {\n getIndexes,\n getSearchQueries,\n rebuildIndex,\n deleteIndex,\n createIndex,\n getSamples,\n getQuery,\n saveSearchQuery\n };\n\n function getIndexes() {\n return $http.get(SIMILARITY_ENDPOINT);\n }\n\n function getSamples() {\n return $http.get(`${SIMILARITY_ENDPOINT}/samples`);\n }\n\n function getSearchQueries() {\n return $http.get(`${SIMILARITY_ENDPOINT}/config`);\n }\n\n function createIndex(method, name, options, selectQuery, searchQuery, analogicalQuery, stopList, infer, sameAs, type, analyzer) {\n return $http({\n method,\n url: `${SIMILARITY_ENDPOINT}`,\n noCancelOnRouteChange: true,\n data: {\n name,\n options,\n selectQuery,\n stopList,\n infer,\n sameAs,\n type,\n analyzer,\n searchQuery,\n analogicalQuery\n }\n }\n );\n }\n\n function rebuildIndex(index) {\n return createIndex('PUT', index.name, index.options, index.selectQuery, index.searchQuery, index.analogicalQuery, index.stopList, index.infer, index.sameAs, index.type);\n }\n\n function deleteIndex(index) {\n return $http.delete(`${SIMILARITY_ENDPOINT}?name=${index.name}`);\n }\n\n function getQuery(data) {\n return $http.get('rest/similarity/query',\n {\n params: {\n name: data.indexName,\n options: data.indexOptions,\n stopList: data.indexStopList,\n selectQuery: data.query,\n infer: data.queryInference,\n sameAs: data.querySameAs,\n type: data.viewType,\n analyzer: data.indexAnalyzer\n }\n });\n }\n\n function saveSearchQuery(data) {\n return $http({\n method: 'put',\n url: 'rest/similarity/search-query',\n data\n });\n }\n}\n","import YASR from 'lib/yasr.bundled';\n\nangular\n .module('graphdb.framework.similarity.controllers.list', [])\n .controller('SimilarityCtrl', SimilarityCtrl);\n\nSimilarityCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', 'ModalService', '$uibModal', 'SimilarityRestService', 'AutocompleteRestService', 'productInfo', 'RDF4JRepositoriesRestService'];\n\nfunction SimilarityCtrl($scope, $interval, toastr, $repositories, ModalService, $uibModal, SimilarityRestService, AutocompleteRestService, productInfo, RDF4JRepositoriesRestService) {\n\n const PREFIX = 'http://www.ontotext.com/graphdb/similarity/';\n const PREFIX_PREDICATION = 'http://www.ontotext.com/graphdb/similarity/psi/';\n const PREFIX_INSTANCE = PREFIX + 'instance/';\n const ANY_PREDICATE = PREFIX_PREDICATION + 'any';\n $scope.pluginName = 'similarity';\n $scope.pluginIsActive = true;\n\n $scope.setPluginIsActive = function (isPluginActive) {\n $scope.pluginIsActive = isPluginActive;\n }\n\n const literalForQuery = function (literal) {\n return '\"' + literal + '\"';\n };\n\n // TODO: Fix cases when this function is called with undefined\n const iriForQuery = function (iri) {\n // Do not put brackets on nested triples\n if (iri === undefined || iri.startsWith(\"<<\") && iri.endsWith(\">>\")) {\n return iri;\n }\n return '<' + iri + '>';\n };\n\n $scope.info = productInfo;\n\n $scope.getActiveRepository = function () {\n return $repositories.getActiveRepository();\n };\n\n // Don't call functions if one of the following conditions are met\n function shouldSkipCall() {\n return !$scope.getActiveRepository() ||\n $scope.isActiveRepoFedXType() ||\n $scope.isActiveRepoOntopType();\n }\n\n if (!shouldSkipCall()) {\n SimilarityRestService.getSearchQueries().success(function (data) {\n $scope.searchQueries = data;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get search queries');\n });\n }\n\n $scope.encodeURIComponent = function (param) {\n return encodeURIComponent(param);\n };\n\n // get similarity indexes\n $scope.getSimilarityIndexes = function () {\n if (shouldSkipCall() || !$scope.pluginIsActive) {\n return;\n }\n SimilarityRestService.getIndexes()\n .success(function (data) {\n $scope.similarityIndexes = data;\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get indexes');\n });\n };\n\n $scope.pullList = function () {\n $scope.getSimilarityIndexes();\n const timer = $interval(function () {\n $scope.$broadcast('checkIsActive');\n if ($('#indexes-table').attr('aria-expanded') !== 'false') {\n $scope.getSimilarityIndexes();\n }\n }, 5000);\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n };\n\n if ($scope.getActiveRepository()) {\n $scope.pullList();\n }\n\n let yasr;\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n // Don't try to get namespaces for ontop or fedx repository\n if ($scope.getActiveRepository() && !$scope.isActiveRepoOntopType() && !$scope.isActiveRepoFedXType()) {\n $scope.getNamespacesPromise = RDF4JRepositoriesRestService.getNamespaces($scope.getActiveRepository())\n .success(function (data) {\n checkAutocompleteStatus();\n $scope.usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n $scope.usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n yasr = YASR(document.getElementById('yasr'), { // eslint-disable-line new-cap\n //this way, the URLs in the results are prettified using the defined prefixes\n getUsedPrefixes: $scope.usedPrefixes,\n persistency: false,\n hideHeader: true\n });\n }).error(function (data) {\n toastr.error(getError(data), 'Cannot get namespaces for repository. View will not work properly;');\n });\n }\n });\n\n function checkAutocompleteStatus() {\n $scope.getAutocompletePromise = AutocompleteRestService.checkAutocompleteStatus();\n }\n\n $scope.$on('autocompleteStatus', function() {\n checkAutocompleteStatus();\n });\n\n $scope.loading = false;\n\n $scope.selected = undefined;\n $scope.searchType = 'searchTerm';\n $scope.resultType = 'termResult';\n\n $scope.$watch('searchType', function () {\n $scope.empty = true;\n });\n\n $scope.goToSimilarityIndex = function (index) {\n if (!('BUILT' === index.status || 'OUTDATED' === index.status || 'REBUILDING' === index.status)) {\n return;\n }\n $scope.empty = true;\n if ($scope.selected !== index) {\n $scope.lastSearch = undefined;\n $scope.selected = index;\n }\n if (index.type === 'text') {\n $scope.searchType = 'searchTerm';\n } else if (index.type === 'predication') {\n $scope.searchType = 'searchEntity';\n }\n if (index.type === 'text' || index.type === 'predication') {\n $('#indexes-table').collapse('hide');\n }\n };\n\n const toggleOntoLoader = function (showLoader) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n const resultsLoader = angular.element(document.getElementById('results-loader'));\n /* Angular b**it. For some reason the loader behaved strangely with ng-show not always showing */\n if (showLoader) {\n $scope.loading = true;\n yasrInnerContainer.addClass('opacity-hide');\n resultsLoader.removeClass('opacity-hide');\n } else {\n $scope.loading = false;\n yasrInnerContainer.removeClass('opacity-hide');\n resultsLoader.addClass('opacity-hide');\n }\n };\n\n $scope.performSearch = function (index, uri, searchType, resultType, parameters) {\n\n toggleOntoLoader(true);\n\n // this is either the search term or the iri for the subject\n let termOrSubject = uri;\n\n $scope.lastSearch = {};\n $scope.lastSearch.type = searchType;\n\n if (searchType === 'searchEntityPredicate') {\n termOrSubject = $scope.psiSubject;\n $scope.lastSearch.predicate = uri;\n }\n\n if (searchType === 'searchTerm') {\n termOrSubject = literalForQuery(termOrSubject);\n } else {\n termOrSubject = iriForQuery(termOrSubject);\n }\n\n $scope.lastSearch.termOrSubject = termOrSubject;\n\n const headers = {Accept: 'application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8'};\n let sparqlQuery;\n if (searchType === 'searchAnalogical') {\n sparqlQuery = ($scope.selected.analogicalQuery) ? $scope.selected.analogicalQuery : $scope.searchQueries['analogical'];\n } else {\n sparqlQuery = ($scope.selected.searchQuery) ? $scope.selected.searchQuery : $scope.searchQueries[$scope.selected.type];\n }\n const sendData = {\n query: sparqlQuery,\n $index: iriForQuery(PREFIX_INSTANCE + index),\n $query: termOrSubject,\n $searchType: iriForQuery(($scope.selected.type === 'text' ? PREFIX : PREFIX_PREDICATION) + (searchType === 'searchEntityPredicate' ? 'searchEntity' : searchType)),\n $resultType: iriForQuery($scope.selected.type === 'text' ? PREFIX + resultType : PREFIX_PREDICATION + 'entityResult'),\n $parameters: literalForQuery(parameters)\n };\n\n if (searchType === 'searchEntityPredicate') {\n sendData.$psiPredicate = $scope.lastSearch.predicate ? iriForQuery($scope.lastSearch.predicate) : iriForQuery(ANY_PREDICATE);\n }\n\n if (searchType === 'searchAnalogical') {\n $scope.searchSubject = uri;\n sendData.$givenSubject = iriForQuery($scope.analogicalSubject);\n sendData.$givenObject = iriForQuery($scope.analogicalObject);\n sendData.$searchSubject = iriForQuery(uri);\n }\n\n $.ajax({\n method: 'GET',\n url: 'repositories/' + $repositories.getActiveRepository(),\n data: sendData,\n headers: headers\n }).done(function (data, textStatus, jqXhrOrErrorString) {\n toggleOntoLoader(false);\n yasr.setResponse(data, textStatus, jqXhrOrErrorString);\n }).fail(function (data) {\n toastr.error(getError(data), 'Could not get resource!');\n toggleOntoLoader(false);\n });\n };\n\n $scope.viewSearchQuery = function () {\n let queryTemplate;\n if ($scope.lastSearch.type === 'searchAnalogical') {\n queryTemplate = ($scope.selected.analogicalQuery) ? $scope.selected.analogicalQuery : $scope.searchQueries['analogical'];\n } else {\n queryTemplate = ($scope.selected.searchQuery) ? $scope.selected.searchQuery : $scope.searchQueries[$scope.selected.type];\n }\n const replacedQuery = queryTemplate\n .replace('?index', 'inst:' + $scope.selected.name)\n .replace('?query', $scope.lastSearch.termOrSubject)\n .replace('?searchType', ($scope.selected.type === 'text' ? ':' : 'psi:') + ($scope.lastSearch.type === 'searchEntityPredicate' ? 'searchEntity' : $scope.lastSearch.type))\n .replace('?resultType', $scope.selected.type === 'text' ? ':' + $scope.resultType : 'psi:entityResult')\n .replace('?parameters', literalForQuery((!$scope.searchParameters) ? '' : $scope.searchParameters))\n .replace('?psiPredicate', $scope.lastSearch.predicate ? iriForQuery($scope.lastSearch.predicate) : iriForQuery(ANY_PREDICATE))\n .replace('?givenSubject', iriForQuery($scope.analogicalSubject))\n .replace('?givenObject', iriForQuery($scope.analogicalObject))\n .replace('?searchSubject', iriForQuery($scope.searchSubject));\n\n $uibModal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return replacedQuery;\n }\n }\n });\n };\n\n\n $scope.deleteIndex = function (index) {\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to delete the index ' + '\\'' + index.name + '\\'?',\n warning: true\n }).result\n .then(function () {\n SimilarityRestService.deleteIndex(index)\n .then(function () {\n $scope.getSimilarityIndexes();\n }, function (err) {\n toastr.error(getError(err));\n });\n });\n };\n\n $scope.viewCreateQuery = function (index) {\n SimilarityRestService.getQuery({\n indexName: index.name,\n indexOptions: index.options,\n query: index.selectQuery,\n indexStopList: index.stopList,\n queryInference: index.infer,\n querySameAs: index.sameAs,\n viewType: index.type,\n indexAnalyzer: index.analyzer\n }).success(function (query) {\n $uibModal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n });\n };\n\n $scope.rebuildIndex = function (index) {\n // Migration\n if (!index.searchQuery) {\n index.searchQuery = index.type ? $scope.searchQueries[index.type] : $scope.searchQueries.text;\n }\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to rebuild the whole index ' + '\\'' + index.name + '\\'?' + '<br>You will still be able to use the latest successful build!',\n warning: true\n }).result\n .then(function () {\n index.status = 'REBUILDING';\n SimilarityRestService.rebuildIndex(index)\n .then(function (res) {\n }, function (err) {\n toastr.error(getError(err));\n });\n });\n };\n\n $scope.copyToClipboardResult = function (uri) {\n ModalService.openCopyToClipboardModal(uri);\n };\n\n $scope.trimIRI = function (iri) {\n return _.trim(iri, \"<>\");\n };\n}\n","import 'angular/utils/notifications';\nimport 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.similarity.controllers.create', [\n 'graphdb.framework.utils.notifications',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .controller('CreateSimilarityIdxCtrl', CreateSimilarityIdxCtrl);\n\nCreateSimilarityIdxCtrl.$inject = ['$scope', 'toastr', '$uibModal', '$timeout', 'SimilarityRestService', 'SparqlRestService', '$location', 'productInfo', 'Notifications', 'RDF4JRepositoriesRestService', 'LocalStorageAdapter', 'LSKeys'];\n\nfunction CreateSimilarityIdxCtrl($scope, toastr, $uibModal, $timeout, SimilarityRestService, SparqlRestService, $location, productInfo, Notifications, RDF4JRepositoriesRestService, LocalStorageAdapter, LSKeys) {\n\n const indexType = $location.search().type;\n if (indexType === undefined || indexType.startsWith('text')) {\n $scope.viewType = 'text';\n } else {\n $scope.viewType = indexType;\n }\n\n const textDefaultOptions = '-termweight idf';\n const predDefaultOptions = '';\n $scope.newIndex = {};\n\n $scope.info = productInfo;\n $scope.page = 1;\n\n const defaultTabConfig = {\n id: '1',\n name: '',\n query: '',\n inference: true,\n sameAs: true\n };\n\n let getNewIndexName = function (indexNameFromLocation) {\n if (indexNameFromLocation) {\n if ($scope.page !== 1) {\n return indexNameFromLocation;\n } else {\n return 'Copy_of_' + indexNameFromLocation;\n }\n }\n return '';\n };\n\n const initForViewType = function () {\n $scope.editSearchQuery = $location.search().editSearchQuery;\n $scope.page = $scope.editSearchQuery ? 2 : 1;\n $scope.newIndex.name = getNewIndexName($location.search().name);\n $scope.newIndex.options = ($location.search().options ? $location.search().options : ($scope.viewType === \"text\") ? textDefaultOptions : predDefaultOptions);\n\n if ($scope.searchQueries) {\n $scope.newIndex.searchQuery = $location.search().searchQuery ? $location.search().searchQuery : $scope.searchQueries[$scope.viewType];\n if ($scope.viewType === 'predication') {\n $scope.newIndex.analogicalQuery = $location.search().analogicalQuery ? $location.search().analogicalQuery : $scope.searchQueries['analogical'];\n }\n }\n\n if ($scope.editSearchQuery) {\n // Default will be opened search query tab for edition\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n $scope.notoolbarInference = true;\n $scope.notoolbarSameAs = true;\n if (window.editor) {\n $scope.setQuery($scope.newIndex.searchQuery);\n }\n } else {\n if ($scope.viewType === 'text' && $scope.allSamples) {\n $scope.samples = $scope.allSamples['text'];\n $scope.newIndex.stopList = ($location.search().stopList ? $location.search().stopList : undefined);\n $scope.newIndex.analyzer = ($location.search().analyzer ? $location.search().analyzer : 'org.apache.lucene.analysis.en.EnglishAnalyzer');\n const isLiteralIndex = getAndRemoveOption('-literal_index');\n if (isLiteralIndex !== undefined) {\n $scope.newIndex.isLiteralIndex = isLiteralIndex;\n }\n if (window.editor) {\n $scope.setQuery($scope.samples['literals']);\n }\n }\n if ($scope.viewType === 'predication' && $scope.allSamples) {\n SimilarityRestService.getIndexes()\n .success(function (data) {\n $scope.literalIndexes = ['no-index'].concat(data\n .filter(function (idx) {\n return idx.type === 'textLiteral' && (idx.status === 'BUILT' || idx.status === 'OUTDATED')\n })\n .map(function (idx) {\n return idx.name;\n }));\n\n if ($scope.newIndex.inputIndex === undefined) {\n const desiredIdx = getAndRemoveOption('-input_index');\n if (desiredIdx !== undefined) {\n for (let j = 0; j < $scope.literalIndexes.length; j++) {\n if (desiredIdx === $scope.literalIndexes[j]) {\n $scope.newIndex.inputIndex = $scope.literalIndexes[j];\n }\n }\n }\n }\n if ($scope.newIndex.inputIndex === undefined) {\n $scope.newIndex.inputIndex = $scope.literalIndexes[0];\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get indexes');\n });\n\n $scope.samples = $scope.allSamples['predication'];\n if (window.editor) {\n $scope.setQuery($scope.samples['predication']);\n }\n }\n }\n };\n\n const filenamePattern = new RegExp('^[a-zA-Z0-9-_]+$');\n\n const validateIndex = function () {\n $scope.invalidIndexName = false;\n $scope.saveQueries();\n if (!$scope.newIndex.name) {\n $scope.invalidIndexName = 'Index name cannot be empty';\n return false;\n }\n if (!filenamePattern.test($scope.newIndex.name)) {\n $scope.invalidIndexName = 'Index name can contain only letters (a-z, A-Z), numbers (0-9), \"-\" and \"_\"';\n return false;\n }\n\n if (!$scope.newIndex.query) {\n toastr.error('Select query cannot be empty.');\n return false;\n }\n\n if (!$scope.newIndex.searchQuery) {\n toastr.error('Search query cannot be empty.');\n return false;\n }\n\n if ($scope.viewType === 'predication' && !$scope.newIndex.analogicalQuery) {\n toastr.error('Analogical query cannot be empty.');\n return false;\n }\n\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity index requires SELECT queries.');\n return;\n }\n\n return true;\n };\n\n const appendOption = function (option, value) {\n $scope.newIndex.options = $scope.newIndex.options + ($scope.newIndex.options === '' ? '' : ' ') + option + ' ' + value;\n };\n\n SimilarityRestService.getSearchQueries().success(function (data) {\n $scope.searchQueries = data;\n SimilarityRestService.getSamples().success(function (samples) {\n defaultTabConfig.query = $location.search().selectQuery ? $location.search().selectQuery : samples['text']['literals'];\n defaultTabConfig.inference = !($location.search().infer === 'false');\n defaultTabConfig.sameAs = !($location.search().sameAs === 'false');\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n $scope.currentQuery = angular.copy(defaultTabConfig);\n $scope.allSamples = samples;\n initForViewType();\n });\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get search queries');\n });\n\n $scope.$watch('viewType', function () {\n initForViewType();\n });\n\n $scope.helpHidden = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP) === 1;\n $scope.toggleHelp = function (value) {\n if (value === undefined) {\n value = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP);\n }\n if (value !== 1) {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 1);\n $scope.helpHidden = true;\n } else {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 0);\n $scope.helpHidden = false;\n }\n };\n\n $scope.viewQuery = function () {\n if (!validateIndex()) {\n return;\n }\n\n SimilarityRestService.getQuery({\n indexName: $scope.newIndex.name,\n indexOptions: $scope.newIndex.options,\n query: $scope.currentQuery.query,\n indexStopList: $scope.newIndex.stopList,\n queryInference: $scope.currentQuery.inference,\n querySameAs: $scope.currentQuery.sameAs,\n viewType: $scope.viewType,\n indexAnalyzer: $scope.newIndex.analyzer\n }).success(function (query) {\n if (query) {\n $uibModal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n }\n });\n };\n\n $scope.$watch('newIndex.name', function () {\n $scope.isInvalidIndexName = false;\n $scope.isEmptyIndexName = false;\n });\n\n $scope.saveQueries = function () {\n // save the current query\n const query = window.editor.getValue().trim();\n if ($scope.page === 1) {\n $scope.newIndex.query = query;\n } else if ($scope.page === 2) {\n $scope.newIndex.searchQuery = query;\n } else if ($scope.page === 3) {\n $scope.newIndex.analogicalQuery = query;\n }\n };\n\n $scope.goToPage = function (page) {\n // ugly fix for GDB-3099\n if (page !== 1 && $scope.viewMode !== 'yasr') {\n $scope.showEditor();\n $timeout(function () {\n if (page === 2) {\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n }\n if (page === 3) {\n $scope.currentQuery.query = $scope.newIndex.analogicalQuery;\n }\n\n window.editor.setValue($scope.currentQuery.query || ' ');\n });\n }\n\n $scope.saveQueries();\n // get the saved query\n if (page === 1) {\n $scope.currentQuery.query = $scope.newIndex.query;\n } else if (page === 2) {\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n } else if (page === 3) {\n $scope.currentQuery.query = $scope.newIndex.analogicalQuery;\n }\n\n loadTab();\n $scope.notoolbar = page !== 1;\n\n $scope.page = page;\n };\n\n $scope.createIndex = function () {\n if (!validateIndex()) {\n return;\n }\n // Check existing indexes\n SimilarityRestService.getIndexes()\n .success(function (data) {\n data.forEach(function (index) {\n if (index.name === $scope.newIndex.name) {\n $scope.invalidIndexName = 'Index with this name already exists.';\n }\n });\n if (!$scope.invalidIndexName) {\n let indexType = $scope.viewType;\n\n if ($scope.literalIndexes !== undefined) {\n const inputIndex = $scope.newIndex.inputIndex;\n if (inputIndex !== $scope.literalIndexes[0]) {\n appendOption('-input_index', inputIndex);\n }\n }\n if ($scope.newIndex.isLiteralIndex === 'true') {\n appendOption('-literal_index', 'true');\n indexType = 'textLiteral';\n }\n\n SimilarityRestService.createIndex('POST',\n $scope.newIndex.name,\n $scope.newIndex.options,\n $scope.newIndex.query,\n $scope.newIndex.searchQuery,\n $scope.newIndex.analogicalQuery,\n $scope.newIndex.stopList,\n $scope.currentQuery.inference,\n $scope.currentQuery.sameAs,\n indexType,\n $scope.newIndex.analyzer)\n .error(function (err) {\n toastr.error(getError(err), 'Could not create index');\n });\n $location.url('similarity');\n }\n\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get indexes');\n });\n };\n\n // Called when user clicks on a sample query\n $scope.setQuery = function (query) {\n // Hack for YASQE bug\n window.editor.setValue(query ? query : ' ');\n };\n\n // TODO don't copy paste each time, this is the same as in the graph config\n // DOWN HERE WE KEEP EVERYTHING PURELY QUERY EDITOR (MOSTLY BORROWED FROM query-editor.controller.js)\n\n $scope.showEditor = function () {\n if (window.editor.xhr) {\n window.editor.xhr.abort();\n }\n $scope.viewMode = 'yasr';\n };\n\n $scope.showPreview = function () {\n // For some reason YASR gets confused and sets this to rawResponse\n // if we execute a CONSTRUCT and then a SELECT. This makes sure it's always table.\n $scope.currentQuery.outputType = 'table';\n $scope.runQuery();\n };\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 100, // page limit 100 as this is only used for preview\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = true;\n\n // start of repository actions\n $scope.getActiveRepository();\n\n function getAndRemoveOption(key) {\n const optArr = $scope.newIndex.options.split(' ');\n for (let i = 0; i < optArr.length; i++) {\n if (optArr[i] === key && i + 1 < optArr.length) {\n const value = optArr[i + 1];\n\n delete optArr[i];\n delete optArr[i + 1];\n $scope.newIndex.options = optArr.join(' ');\n\n return value;\n }\n }\n return undefined;\n }\n\n function saveQueryToLocal(currentQueryTab) {\n }\n\n function setLoader(isRunning, progressMessage, extraMessage) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n yasrInnerContainer.addClass('hide');\n } else {\n $scope.progressMessage = '';\n $scope.extraMessage = '';\n yasrInnerContainer.removeClass('hide');\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n const timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n let message = '';\n\n if ($scope.progressMessage) {\n message = $scope.progressMessage + '... ' + timeHuman;\n } else {\n message = 'Running operation...' + timeHuman;\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += '\\n' + $scope.extraMessage;\n }\n\n return message;\n }\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalViewParam) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n const verticalView = verticalViewParam;\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector('.CodeMirror-wrap')) {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n //window.editor.refresh();\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView);\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n } else {\n $scope.noPadding = {};\n document.querySelector('.CodeMirror-wrap').style.height = '';\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode(tabID) {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n fixSizesOnHorizontalViewModeSwitch();\n $('.dataTables_filter').remove();\n $('.resultsTable').remove();\n $timeout(function () {\n loadTab();\n selectTab(tabID);\n }, 100);\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(':focus')) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n // end of query editor results orientation operations\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery;\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity indexes work only with SELECT queries.');\n return;\n }\n if (explain && !(window.editor.getQueryType() === 'SELECT')) {\n toastr.warning('Explain only works with SELECT queries.');\n return;\n }\n\n if (window.editor.getQueryMode() === 'update') {\n toastr.warning('Cannot execute updates from this editor.');\n return;\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n // Hides the editor and shows the yasr results\n $scope.viewMode = 'editor';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch();\n }\n\n setLoader(true, 'Evaluating query');\n window.editor.query();\n }\n }\n\n // FIXME: this is copy-pasted in graphs-config.controller.js and query-editor.controller.js. Find a way to avoid duplications\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, 'Refreshing namespaces', 'Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first.');\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n if ($scope.getActiveRepository()) {\n getNamespaces();\n }\n\n $scope.$on('$destroy', function () {\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n }\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Error! Could not add known prefixes');\n return true;\n });\n }\n\n $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n angular.forEach($scope.tabsData, function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n\n return existingTabId;\n }\n\n\n // end of query operations\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function () {\n saveQueryToLocal($scope.currentQuery);\n });\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n //tab.query = window.editor.getValue();\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n function addNewTab(callback, tabName, savedQuery) {\n }\n\n function loadTab() {\n $scope.tabsData = [$scope.currentQuery];\n\n const tab = $scope.currentQuery;\n\n if ($scope.currentQuery.query === null || $scope.currentQuery.query === '') {\n // hack for YASQE bug\n window.editor.setValue(' ');\n } else {\n window.editor.setValue($scope.currentQuery.query || ' ');\n }\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.$apply();\n }, 0);\n\n //Remove paddign of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n $scope.loadTab(getQueryID(tabEvent.target));\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = angular.copy(defaultTabConfig);\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n\n $scope.getResultsDescription = function () {\n };\n\n $scope.getUpdateDescription = function () {\n };\n\n $scope.getStaleWarningMessage = function () {\n };\n\n $scope.saveSearchQuery = function () {\n // Should validate that query is SELECT\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity index requires SELECT queries.');\n return;\n }\n let data = {\n name: $scope.newIndex.name,\n changedQuery: $scope.currentQuery.query,\n isSearchQuery: $scope.page === 2\n };\n\n return SimilarityRestService.saveSearchQuery(JSON.stringify(data))\n .then(async function () {\n await Notifications.showToastMessageWithDelay($scope.page === 2 ? 'Changed search query' : 'Changed analogical query');\n $location.url('similarity');\n }, function (response) {\n toastr.error(getError(response), 'Could not change query!');\n });\n };\n\n $scope.getCloseBtnMsg = function () {\n return \"Closes \" + ($scope.editSearchQuery ? \"query edition\": \"index creation\") + \" without saving the changes.\"\n }\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{206:function(e,t,n){"use strict";var r=r||{};r.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),r.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},r.Click={delayDblClick:function(){var e=d3.dispatch("click","dblclick");return d3.rebind((function(t){var n,r=null;t.on("mousedown",(function(){n=d3.mouse(document.body),new Date})),t.on("mouseup",(function(t){var i,a;i=n,a=d3.mouse(document.body),Math.sqrt(Math.pow(i[0]-a[0],2),Math.pow(i[1]-a[1],2))>5||(r?(window.clearTimeout(r),r=null,e.dblclick(t)):r=window.setTimeout((d3.event,function(){e.click(t),r=null}),250))}))}),e,"on")}},t.a=r},207:function(e,t,n){"use strict";var r=r||{};r.Export={getCSSRules:function(e){var t=$('link[href="'+e+'"]')[0].sheet.rules,n="";return _.each(t,(function(e){n+=e.cssText})),n},generateBase64ImageSource:function(){var e=d3.selectAll("svg").attr({version:"1.1",xmlns:"http://www.w3.org/2000/svg"}).node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(e)))}},t.a=r},209:function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),i=null,a=null,o=null,s=null;function l(e){var t;i="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=i.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(o=r.pop());var i,a=n.apply(this,r),u=t.apply(this,r),h=e.apply(this,r),p=f(),v=d.length,y=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft,m=s.apply(this,r);for(p.html(a).style({opacity:1,"pointer-events":"all"});v--;)p.classed(d[v],!1);return i=c.get(h).apply(this),m?p.style(m):p.classed(h,!0).style({top:i.top+u[0]+y+"px",left:i.left+u[1]+g+"px"}),l},l.hide=function(){return f().style({opacity:0,"pointer-events":"none"}),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:d3.functor(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:d3.functor(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:d3.functor(e),l):n},l.customPosition=function(e){return arguments.length?(s=null==e?e:d3.functor(e),l):s},l.destroy=function(){return r&&(f().remove(),r=null),l};var c=d3.map({n:function(){var e=h();return{top:e.n.y-r.offsetHeight,left:e.n.x-r.offsetWidth/2}},s:function(){var e=h();return{top:e.s.y,left:e.s.x-r.offsetWidth/2}},e:function(){var e=h();return{top:e.e.y-r.offsetHeight/2,left:e.e.x}},w:function(){var e=h();return{top:e.w.y-r.offsetHeight/2,left:e.w.x-r.offsetWidth}},nw:function(){var e=h();return{top:e.nw.y-r.offsetHeight,left:e.nw.x-r.offsetWidth}},ne:function(){var e=h();return{top:e.ne.y-r.offsetHeight,left:e.ne.x}},sw:function(){var e=h();return{top:e.sw.y,left:e.sw.x-r.offsetWidth}},se:function(){var e=h();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){var e=d3.select(document.createElement("div"));return e.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box"}),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),d3.select(r)}function h(){for(var e=o||d3.event.target;void 0===e.getScreenCTM&&"undefined"===e.parentNode;)e=e.parentNode;var t={},n=e.getScreenCTM(),r=e.getBBox(),i=r.width,s=r.height,l=r.x,c=r.y;return a.x=l,a.y=c,t.nw=a.matrixTransform(n),a.x+=i,t.ne=a.matrixTransform(n),a.y+=s,t.se=a.matrixTransform(n),a.x-=i,t.sw=a.matrixTransform(n),a.y-=s/2,t.w=a.matrixTransform(n),a.x+=i,t.e=a.matrixTransform(n),a.x-=i/2,a.y-=s/2,t.n=a.matrixTransform(n),a.y+=s,t.s=a.matrixTransform(n),t}return l}})?r.apply(t,i):r)||(e.exports=a)},215:function(e,t,n){"use strict";var r=r||{};r.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var r=0;r<t.children.length;r++)e(t.children[r]);if(1===t.children.length){var i=1.2*t.size;n&&(i=.1*t.children[0].size),t.children.push({name:"placeholder",size:i})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var r=t[n];"placeholder"===r.name?t.splice(n,1):r.children&&e(r.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var r=n.x-n.children[0].x;n.children[0].x+=r,i(n.children[0],r)}}function i(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,i(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,r=0;r<e.length;r++){var i=e[r];i.x-=t,i.y-=n}}},t.a=r},59:function(e,t,n){"use strict";n.r(t);var r=n(209),i=n.n(r),a=n(215),o=n(206),s=n(207);n(4);function l(e,t,n,r,l,c,d,u,f,h,p){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(v,y,g){!function(v,y){var g=800,m=800,x=m,w=20,S=d3.layout.pack().size([x-w,x-w]).value((function(e){return e.size})),C=d3.scale.linear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(d3.interpolateHcl),E=d3.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 "+g+" "+m).attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function R(){return E.append("svg:g").attr({id:"main-group",transform:"translate("+g/2+","+m/2+")"})}function T(){return"true"===h.get(p.CLASS_HIERARCHY_HIDE_PREFIXES)}function A(){var e=s.a.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=1.11.2");d3.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),d3.selectAll("g").style("opacity",1);var t=s.a.Export.generateBase64ImageSource();d3.select(this).attr({href:t,download:"class-hierarchy-"+c.getActiveRepository()+".svg"})}v.hidePrefixes=T();var H,P,I=R();if(!v.classHierarchyData.classCount&&c.getActiveRepository()&&!c.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=h.get(`classHierarchy-selectedGraph-${c.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success((function(t,n,r){e.loader=!1,207===n&&d.warning("You can update the diagram by pressing the reload button.","Repository data has changed"),v.classHierarchyData=t,d3.select("#download-svg").on("mouseover",A)})).error((function(t){e.loader=!1,e.hierarchyError=getError(t),d.error("Request for "+f+" failed! "+getError(t))}))}var b,k,F,L,D,N,z,O,U={};function M(n,s,c,d){F&&F(),L&&L(),d3.selectAll("#main-group").remove(),I=R(),a.a.SingleChild.addPlaceholders(n,!0),k=c||n;var h,p=S.nodes(n);k.isInFocusTransitive=!0,a.a.SingleChild.removePlaceholders(p),a.a.SingleChild.centerNodes(p),a.a.SingleChild.makePositionsRelativeToZero(p);var y=i()().attr("class","d3-tip").customPosition((function(e){return{top:"inherit",bottom:r.innerHeight-d3.event.clientY+"px",right:r.innerWidth-d3.event.clientX+"px"}})).html((function(e){return e.name}));E.call(y);var g=I.selectAll("circle").data(p).enter().append("g");s.doFade&&g.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)}));var m,T=[],A=g.append("circle").attr("class",(function(e){return e.role})).style("fill",(function(e){return e.children?C(e.depth):"#E0D0D0"})).each((function(e){if(e.circle=d3.select(this),e.name!==f){var t=e.name;T.push({name:t}),U[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",(function(){s.noPrefixes?y.show(e):e.textHidden?y.show(e):y.hide(e)})),e.circle.on("mouseout",y.hide)}}));function D(e){d3.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),m=e}function N(){v.showClassInfoPanel=!1}T&&(T=_.uniqBy(T,"name"),v.flattenedClassNames=T);var $=o.a.Click.delayDblClick();d3.selectAll(".parent, .topLevelParent, .child, .root").call($);P=function(e){Z(e),e.name===f?(N(),d3.selectAll(".selected").classed("selected",!1)):(D(e),v.selectedClass=m,v.showClassInfoPanel=!0,v.$on("sidePanelClosed",(function(t){d3.selectAll(".selected").classed("selected",e.selected=!1)})))},$.on("click",(function(e){e.id&&r.history.pushState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),y.hide(),P(e)})),$.on("dblclick",(function(t){t!==n&&(y.hide(),D(t),e.$broadcast("goToDomainRangeGraphView",m,k),d3.event.stopPropagation())}));var z=0;E.on("wheel",(function(){y.hide();var e=d3.event;e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var i=e.target.__data__;if(i||(i=k),"in"===n){if(i!==k){for(;i.parent&&!i.parent.isInFocusTransitive;)i=i.parent;i.depth<k.depth&&(i=k)}if(i===k&&i.children){for(var a=i.children[0],o=1;o<i.children.length;o++)i.children[o].sortingRank>a.sortingRank&&(a=i.children[o]);i=a}Z(i,!0)}else"out"===n&&(i=k.parent)&&Z(i,!0);k.name===f&&r.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),V()}}));var O=I.selectAll("text").data(p).enter().append("text").attr("class",(function(e){return e.children&&e.children.length?"label":"label child-label"})).each((function(e){e.textSel=d3.select(this)}));s.noPrefixes?(b!==n&&(O.each((function(e){var t=e.name.indexOf(":");e.name.indexOf("http://")>-1?e.noPrefixName=e.name:t>-1&&(e.noPrefixName=e.name.substring(t+1))})),b=n),O.style("font-size",(function(e){return o.a.Text.calcFontSize(e.noPrefixName,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)}))):O.style("font-size",(function(e){return o.a.Text.calcFontSize(e.name,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r/3)})),O.style("display",(function(e){return e.parent===n?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")})),s.doFade&&!s.keepPrevState&&O.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)})),H=function(){function e(e){e&&A.each((function(t){e==t.id&&P(t)}))}var n=t.hash();r.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var M=I.selectAll("circle, text");function W(e,t){var n=x/e[2];h=e,M.attr("transform",(function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"})),A.attr("r",(function(e){return e.r*n})),t&&O.each((function(e){e.fullName!==k.topLevelParentUri&&k.topLevelParentUri!==f||(e.textSel.style("display","none"),k.children&&k.children.length?_.each(k.children,(function(e){e.textSel.style("display","inline")})):k.textSel.style("display","inline"),k.parent&&_.each(k.parent.children,(function(e){e.name!==k.name&&e.textSel.style("display","inline")})))})),O.style("font-size",(function(e){return s.noPrefixes?o.a.Text.calcFontSize(e.noPrefixName,e.r*n):o.a.Text.calcFontSize(e.name,e.r*n)})).text((function(e){return s.noPrefixes?o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r*n/3)}))}function Y(e){var t=2*e+w;return 2*e/t<.3&&(t=2*e+2),t}function B(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive||(e.textHidden=!0,this.style.display="none")}function G(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive&&(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display="")}function Z(e,t){if(l((function(){v.showExternalElements=e.name===f})),e.id&&r.history.replaceState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),k!==e){if(t&&(N(),d3.selectAll(".selected").classed("selected",!1)),k.parent)for(var n=k;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=n.children,n=n.parent;if(2*(k=e).r/(2*k.r+w)<.3||v.currentSliderValue>v.currentBrowserLimit)W([k.x,k.y,Y(k.r)]),O.each((function(e){B.call(this,e),G.call(this,e)}));else d3.transition().duration(u).tween("zoom",(function(e){var t=d3.interpolateZoom(h,[k.x,k.y,Y(k.r)]);return function(e){W(t(e))}})).selectAll("text").each("start",B).each("end",G)}}W([k.x,k.y,Y(k.r)],d),F=v.$on("rootFocus",(function(){r.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),P(n)})),L=v.$on("classSearch",(function(e){P(e)}))}function V(){var t=v.classHierarchyData.classCount;let n=h.get(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,h.set(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",V),window.addEventListener("beforeunload",(function e(){window.removeEventListener("resize",V),window.removeEventListener("beforeunload",e)})),v.$watch("classHierarchyData",(function(){D&&D(),N&&N(),z&&z(),O&&O();var e=T();if(v.classHierarchyData.classCount){V();var t=angular.copy(v.classHierarchyData);var n,r,i=function(e){return S.nodes(e).sort((function(e,t){return e.sortingRank>t.sortingRank?-1:e.sortingRank<t.sortingRank?1:e.depth>t.depth?1:e.depth<t.depth?-1:0}))}(t);function a(e,t){var i={keepPrevState:!0,noPrefixes:T()};r=i.noPrefixes,M(n||e,i,k,!0),l((function(){h.set(p.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H()}),70)}function o(e,i,o){if(e){h.set(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:f,children:[]};for(var s=new Set,l=1;l<=e;l++)s.add(i[l].id),i[l].parent===i[0]&&n.children.push(i[l]);if(function e(t){if(t.children){for(var n=[],r=0;r<t.children.length;r++)s.has(t.children[r].id)&&n.push($.extend({},t.children[r]));t.children=n;for(r=0;r<t.children.length;r++)e(t.children[r])}}(n),o)r=angular.isUndefined(r)?T():r,M(n,{noPrefixes:r});else a(t)}}var s,c=h.get(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)o(c,i);else{var d={doFade:!0,keepPrevState:!0,noPrefixes:T()};M(t,d),H()}D=v.$watch("hidePrefixes",(function(n){angular.isUndefined(n)||e?e=void 0:l((function(){!function(e){angular.isUndefined(e)||h.set(p.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),a(t,!0)}),50)}),!0),N=v.$watch("currentSliderValue",(function(e){o(e,i,!0)}),!0),O=v.$on("onEnterKeypressSearchAction",(function(e){s&&P(s)})),z=v.$on("searchedClass",(function(e,t){(s=U[t.name])&&P(s)}))}}),!0)}(v)}}}angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys"]}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{206:function(e,t,n){"use strict";var r=r||{};r.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),r.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},r.Click={delayDblClick:function(){var e=d3.dispatch("click","dblclick");return d3.rebind((function(t){var n,r=null;t.on("mousedown",(function(){n=d3.mouse(document.body),new Date})),t.on("mouseup",(function(t){var i,a;i=n,a=d3.mouse(document.body),Math.sqrt(Math.pow(i[0]-a[0],2),Math.pow(i[1]-a[1],2))>5||(r?(window.clearTimeout(r),r=null,e.dblclick(t)):r=window.setTimeout((d3.event,function(){e.click(t),r=null}),250))}))}),e,"on")}},t.a=r},207:function(e,t,n){"use strict";var r=r||{};r.Export={getCSSRules:function(e){var t=$('link[href="'+e+'"]')[0].sheet.rules,n="";return _.each(t,(function(e){n+=e.cssText})),n},generateBase64ImageSource:function(){var e=d3.selectAll("svg").attr({version:"1.1",xmlns:"http://www.w3.org/2000/svg"}).node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(e)))}},t.a=r},209:function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),i=null,a=null,o=null,s=null;function l(e){var t;i="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=i.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(o=r.pop());var i,a=n.apply(this,r),u=t.apply(this,r),h=e.apply(this,r),p=f(),v=d.length,y=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft,m=s.apply(this,r);for(p.html(a).style({opacity:1,"pointer-events":"all"});v--;)p.classed(d[v],!1);return i=c.get(h).apply(this),m?p.style(m):p.classed(h,!0).style({top:i.top+u[0]+y+"px",left:i.left+u[1]+g+"px"}),l},l.hide=function(){return f().style({opacity:0,"pointer-events":"none"}),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:d3.functor(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:d3.functor(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:d3.functor(e),l):n},l.customPosition=function(e){return arguments.length?(s=null==e?e:d3.functor(e),l):s},l.destroy=function(){return r&&(f().remove(),r=null),l};var c=d3.map({n:function(){var e=h();return{top:e.n.y-r.offsetHeight,left:e.n.x-r.offsetWidth/2}},s:function(){var e=h();return{top:e.s.y,left:e.s.x-r.offsetWidth/2}},e:function(){var e=h();return{top:e.e.y-r.offsetHeight/2,left:e.e.x}},w:function(){var e=h();return{top:e.w.y-r.offsetHeight/2,left:e.w.x-r.offsetWidth}},nw:function(){var e=h();return{top:e.nw.y-r.offsetHeight,left:e.nw.x-r.offsetWidth}},ne:function(){var e=h();return{top:e.ne.y-r.offsetHeight,left:e.ne.x}},sw:function(){var e=h();return{top:e.sw.y,left:e.sw.x-r.offsetWidth}},se:function(){var e=h();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){var e=d3.select(document.createElement("div"));return e.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box"}),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),d3.select(r)}function h(){for(var e=o||d3.event.target;void 0===e.getScreenCTM&&"undefined"===e.parentNode;)e=e.parentNode;var t={},n=e.getScreenCTM(),r=e.getBBox(),i=r.width,s=r.height,l=r.x,c=r.y;return a.x=l,a.y=c,t.nw=a.matrixTransform(n),a.x+=i,t.ne=a.matrixTransform(n),a.y+=s,t.se=a.matrixTransform(n),a.x-=i,t.sw=a.matrixTransform(n),a.y-=s/2,t.w=a.matrixTransform(n),a.x+=i,t.e=a.matrixTransform(n),a.x-=i/2,a.y-=s/2,t.n=a.matrixTransform(n),a.y+=s,t.s=a.matrixTransform(n),t}return l}})?r.apply(t,i):r)||(e.exports=a)},215:function(e,t,n){"use strict";var r=r||{};r.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var r=0;r<t.children.length;r++)e(t.children[r]);if(1===t.children.length){var i=1.2*t.size;n&&(i=.1*t.children[0].size),t.children.push({name:"placeholder",size:i})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var r=t[n];"placeholder"===r.name?t.splice(n,1):r.children&&e(r.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var r=n.x-n.children[0].x;n.children[0].x+=r,i(n.children[0],r)}}function i(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,i(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,r=0;r<e.length;r++){var i=e[r];i.x-=t,i.y-=n}}},t.a=r},59:function(e,t,n){"use strict";n.r(t);var r=n(209),i=n.n(r),a=n(215),o=n(206),s=n(207);n(4);function l(e,t,n,r,l,c,d,u,f,h,p){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(v,y,g){!function(v,y){var g=800,m=800,x=m,w=20,S=d3.layout.pack().size([x-w,x-w]).value((function(e){return e.size})),C=d3.scale.linear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(d3.interpolateHcl),E=d3.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 "+g+" "+m).attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function R(){return E.append("svg:g").attr({id:"main-group",transform:"translate("+g/2+","+m/2+")"})}function T(){return"true"===h.get(p.CLASS_HIERARCHY_HIDE_PREFIXES)}function A(){var e=s.a.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=1.11.3-TR1");d3.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),d3.selectAll("g").style("opacity",1);var t=s.a.Export.generateBase64ImageSource();d3.select(this).attr({href:t,download:"class-hierarchy-"+c.getActiveRepository()+".svg"})}v.hidePrefixes=T();var H,P,I=R();if(!v.classHierarchyData.classCount&&c.getActiveRepository()&&!c.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=h.get(`classHierarchy-selectedGraph-${c.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success((function(t,n,r){e.loader=!1,207===n&&d.warning("You can update the diagram by pressing the reload button.","Repository data has changed"),v.classHierarchyData=t,d3.select("#download-svg").on("mouseover",A)})).error((function(t){e.loader=!1,e.hierarchyError=getError(t),d.error("Request for "+f+" failed! "+getError(t))}))}var b,k,F,L,D,N,z,O,U={};function M(n,s,c,d){F&&F(),L&&L(),d3.selectAll("#main-group").remove(),I=R(),a.a.SingleChild.addPlaceholders(n,!0),k=c||n;var h,p=S.nodes(n);k.isInFocusTransitive=!0,a.a.SingleChild.removePlaceholders(p),a.a.SingleChild.centerNodes(p),a.a.SingleChild.makePositionsRelativeToZero(p);var y=i()().attr("class","d3-tip").customPosition((function(e){return{top:"inherit",bottom:r.innerHeight-d3.event.clientY+"px",right:r.innerWidth-d3.event.clientX+"px"}})).html((function(e){return e.name}));E.call(y);var g=I.selectAll("circle").data(p).enter().append("g");s.doFade&&g.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)}));var m,T=[],A=g.append("circle").attr("class",(function(e){return e.role})).style("fill",(function(e){return e.children?C(e.depth):"#E0D0D0"})).each((function(e){if(e.circle=d3.select(this),e.name!==f){var t=e.name;T.push({name:t}),U[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",(function(){s.noPrefixes?y.show(e):e.textHidden?y.show(e):y.hide(e)})),e.circle.on("mouseout",y.hide)}}));function D(e){d3.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),m=e}function N(){v.showClassInfoPanel=!1}T&&(T=_.uniqBy(T,"name"),v.flattenedClassNames=T);var $=o.a.Click.delayDblClick();d3.selectAll(".parent, .topLevelParent, .child, .root").call($);P=function(e){Z(e),e.name===f?(N(),d3.selectAll(".selected").classed("selected",!1)):(D(e),v.selectedClass=m,v.showClassInfoPanel=!0,v.$on("sidePanelClosed",(function(t){d3.selectAll(".selected").classed("selected",e.selected=!1)})))},$.on("click",(function(e){e.id&&r.history.pushState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),y.hide(),P(e)})),$.on("dblclick",(function(t){t!==n&&(y.hide(),D(t),e.$broadcast("goToDomainRangeGraphView",m,k),d3.event.stopPropagation())}));var z=0;E.on("wheel",(function(){y.hide();var e=d3.event;e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var i=e.target.__data__;if(i||(i=k),"in"===n){if(i!==k){for(;i.parent&&!i.parent.isInFocusTransitive;)i=i.parent;i.depth<k.depth&&(i=k)}if(i===k&&i.children){for(var a=i.children[0],o=1;o<i.children.length;o++)i.children[o].sortingRank>a.sortingRank&&(a=i.children[o]);i=a}Z(i,!0)}else"out"===n&&(i=k.parent)&&Z(i,!0);k.name===f&&r.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),V()}}));var O=I.selectAll("text").data(p).enter().append("text").attr("class",(function(e){return e.children&&e.children.length?"label":"label child-label"})).each((function(e){e.textSel=d3.select(this)}));s.noPrefixes?(b!==n&&(O.each((function(e){var t=e.name.indexOf(":");e.name.indexOf("http://")>-1?e.noPrefixName=e.name:t>-1&&(e.noPrefixName=e.name.substring(t+1))})),b=n),O.style("font-size",(function(e){return o.a.Text.calcFontSize(e.noPrefixName,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)}))):O.style("font-size",(function(e){return o.a.Text.calcFontSize(e.name,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r/3)})),O.style("display",(function(e){return e.parent===n?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")})),s.doFade&&!s.keepPrevState&&O.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)})),H=function(){function e(e){e&&A.each((function(t){e==t.id&&P(t)}))}var n=t.hash();r.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var M=I.selectAll("circle, text");function W(e,t){var n=x/e[2];h=e,M.attr("transform",(function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"})),A.attr("r",(function(e){return e.r*n})),t&&O.each((function(e){e.fullName!==k.topLevelParentUri&&k.topLevelParentUri!==f||(e.textSel.style("display","none"),k.children&&k.children.length?_.each(k.children,(function(e){e.textSel.style("display","inline")})):k.textSel.style("display","inline"),k.parent&&_.each(k.parent.children,(function(e){e.name!==k.name&&e.textSel.style("display","inline")})))})),O.style("font-size",(function(e){return s.noPrefixes?o.a.Text.calcFontSize(e.noPrefixName,e.r*n):o.a.Text.calcFontSize(e.name,e.r*n)})).text((function(e){return s.noPrefixes?o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r*n/3)}))}function Y(e){var t=2*e+w;return 2*e/t<.3&&(t=2*e+2),t}function B(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive||(e.textHidden=!0,this.style.display="none")}function G(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive&&(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display="")}function Z(e,t){if(l((function(){v.showExternalElements=e.name===f})),e.id&&r.history.replaceState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),k!==e){if(t&&(N(),d3.selectAll(".selected").classed("selected",!1)),k.parent)for(var n=k;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=n.children,n=n.parent;if(2*(k=e).r/(2*k.r+w)<.3||v.currentSliderValue>v.currentBrowserLimit)W([k.x,k.y,Y(k.r)]),O.each((function(e){B.call(this,e),G.call(this,e)}));else d3.transition().duration(u).tween("zoom",(function(e){var t=d3.interpolateZoom(h,[k.x,k.y,Y(k.r)]);return function(e){W(t(e))}})).selectAll("text").each("start",B).each("end",G)}}W([k.x,k.y,Y(k.r)],d),F=v.$on("rootFocus",(function(){r.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),P(n)})),L=v.$on("classSearch",(function(e){P(e)}))}function V(){var t=v.classHierarchyData.classCount;let n=h.get(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,h.set(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",V),window.addEventListener("beforeunload",(function e(){window.removeEventListener("resize",V),window.removeEventListener("beforeunload",e)})),v.$watch("classHierarchyData",(function(){D&&D(),N&&N(),z&&z(),O&&O();var e=T();if(v.classHierarchyData.classCount){V();var t=angular.copy(v.classHierarchyData);var n,r,i=function(e){return S.nodes(e).sort((function(e,t){return e.sortingRank>t.sortingRank?-1:e.sortingRank<t.sortingRank?1:e.depth>t.depth?1:e.depth<t.depth?-1:0}))}(t);function a(e,t){var i={keepPrevState:!0,noPrefixes:T()};r=i.noPrefixes,M(n||e,i,k,!0),l((function(){h.set(p.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H()}),70)}function o(e,i,o){if(e){h.set(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:f,children:[]};for(var s=new Set,l=1;l<=e;l++)s.add(i[l].id),i[l].parent===i[0]&&n.children.push(i[l]);if(function e(t){if(t.children){for(var n=[],r=0;r<t.children.length;r++)s.has(t.children[r].id)&&n.push($.extend({},t.children[r]));t.children=n;for(r=0;r<t.children.length;r++)e(t.children[r])}}(n),o)r=angular.isUndefined(r)?T():r,M(n,{noPrefixes:r});else a(t)}}var s,c=h.get(p.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)o(c,i);else{var d={doFade:!0,keepPrevState:!0,noPrefixes:T()};M(t,d),H()}D=v.$watch("hidePrefixes",(function(n){angular.isUndefined(n)||e?e=void 0:l((function(){!function(e){angular.isUndefined(e)||h.set(p.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),a(t,!0)}),50)}),!0),N=v.$watch("currentSliderValue",(function(e){o(e,i,!0)}),!0),O=v.$on("onEnterKeypressSearchAction",(function(e){s&&P(s)})),z=v.$on("searchedClass",(function(e,t){(s=U[t.name])&&P(s)}))}}),!0)}(v)}}}angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys"]}}]);
|
|
2
2
|
//# sourceMappingURL=22.e85ffde858c596437b7a.bundle.js.map
|