graphdb-workbench 10.0.0-M2-1 → 10.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (728) hide show
  1. package/README.md +10 -2
  2. package/dist/0.f8448f998a59db17e94e.bundle.js +25 -0
  3. package/dist/1.46d9ecd4119bac145f3b.bundle.js +81 -0
  4. package/dist/10.a26ae97905866618b14e.bundle.js +7 -0
  5. package/dist/100.aef098a33fbb925e0d2d.bundle.js +1 -0
  6. package/dist/101.42eacc63e0fb5834b78a.bundle.js +1 -0
  7. package/dist/102.4f78eeab62aac245879e.bundle.js +1 -0
  8. package/dist/103.f38f3cd69ff610955aaf.bundle.js +1 -0
  9. package/dist/104.2e21f1462021dca17db1.bundle.js +1 -0
  10. package/dist/105.76381cb7984bcbc9ba9a.bundle.js +1 -0
  11. package/dist/106.23e14c6b280756d04533.bundle.js +1 -0
  12. package/dist/107.75e40619cb45972dc39f.bundle.js +1 -0
  13. package/dist/108.f09444e990531d27e0be.bundle.js +1 -0
  14. package/dist/109.ef97393181ee534042d8.bundle.js +1 -0
  15. package/dist/11.0fc995ac096734b915c6.bundle.js +1 -0
  16. package/dist/110.d59b8565d2255a282669.bundle.js +1 -0
  17. package/dist/111.fff9f089f65f01013923.bundle.js +1 -0
  18. package/dist/112.5bd3fcd7c37f1024fe26.bundle.js +1 -0
  19. package/dist/113.2fa29eca15d32deb3320.bundle.js +1 -0
  20. package/dist/114.d78615087abe68db7b2f.bundle.js +1 -0
  21. package/dist/115.558ce3da00d3be87d18a.bundle.js +1 -0
  22. package/dist/116.577aab1d9bafd0053623.bundle.js +1 -0
  23. package/dist/117.c20f037799328c931eba.bundle.js +1 -0
  24. package/dist/118.39c8b47405ab93c40847.bundle.js +1 -0
  25. package/dist/119.19ee7b3ae143f817c5b1.bundle.js +1 -0
  26. package/dist/12.7877dd6008df9acf44e1.bundle.js +1 -0
  27. package/dist/120.b944d5e63424d4307fc8.bundle.js +1 -0
  28. package/dist/121.3a8954e4c885c56a9817.bundle.js +1 -0
  29. package/dist/122.71a8cf0330504672fffc.bundle.js +1 -0
  30. package/dist/123.c6957ecb441d8a09932a.bundle.js +1 -0
  31. package/dist/124.27e85a0284e2ebeb7d6e.bundle.js +1 -0
  32. package/dist/125.9e925ae0dd1217d81d89.bundle.js +1 -0
  33. package/dist/126.a32b57d6108545746ed3.bundle.js +1 -0
  34. package/dist/127.90d1975083eef3d4a715.bundle.js +1 -0
  35. package/dist/128.544f1a82e19dd245c7de.bundle.js +1 -0
  36. package/dist/129.64ec11449e0c734500c2.bundle.js +1 -0
  37. package/dist/13.fe78f15334507bcc08ae.bundle.js +1 -0
  38. package/dist/130.f8e68ac86e17b3622d40.bundle.js +1 -0
  39. package/dist/131.4868fc3a837277c30273.bundle.js +1 -0
  40. package/dist/132.7815ab1168a254cb0d47.bundle.js +1 -0
  41. package/dist/133.f87e1685dd5ed920f9b5.bundle.js +1 -0
  42. package/dist/134.8998ff724a077ecff2ce.bundle.js +1 -0
  43. package/dist/135.c07268699f76ef7a02ff.bundle.js +1 -0
  44. package/dist/136.908f1f6fe3054f99b560.bundle.js +1 -0
  45. package/dist/137.8262ca9736e9818284cd.bundle.js +1 -0
  46. package/dist/138.8c149cad49010a65b3ca.bundle.js +1 -0
  47. package/dist/139.97ee12e7a3c05be03456.bundle.js +1 -0
  48. package/dist/14.0bb211bcdc29c6d8b3b5.bundle.js +29 -0
  49. package/dist/140.6b3c57ffec700081328b.bundle.js +1 -0
  50. package/dist/141.4981056237955a34b2e2.bundle.js +1 -0
  51. package/dist/142.4d60c1795eed3a9570f9.bundle.js +1 -0
  52. package/dist/143.b7057852f7859cf39e75.bundle.js +1 -0
  53. package/dist/144.3f85f8eacae521d52355.bundle.js +1 -0
  54. package/dist/145.9281069e9e77978b640a.bundle.js +1 -0
  55. package/dist/146.51d2987de4defe7df7c7.bundle.js +1 -0
  56. package/dist/147.54016549674d35bc2869.bundle.js +1 -0
  57. package/dist/148.ad95b30f508a0bd02970.bundle.js +1 -0
  58. package/dist/149.8dd1281617389f8c189b.bundle.js +1 -0
  59. package/dist/15.6a74adbd30b4d2930e10.bundle.js +1 -0
  60. package/dist/150.5e0ee4350f8edd0e7b9a.bundle.js +1 -0
  61. package/dist/151.6b81c99a1ec1b184b82d.bundle.js +1 -0
  62. package/dist/152.2e1aa910a68f0086825b.bundle.js +1 -0
  63. package/dist/153.7a64973115bdaec26406.bundle.js +1 -0
  64. package/dist/154.5938248b52830d0a80a2.bundle.js +1 -0
  65. package/dist/155.a4511849c1001c5f2ba6.bundle.js +1 -0
  66. package/dist/156.bbcaf52acb0cecbc6257.bundle.js +1 -0
  67. package/dist/157.51181d03518519f84b5e.bundle.js +1 -0
  68. package/dist/158.640e412f6002ee1d7341.bundle.js +1 -0
  69. package/dist/159.10457cbb053c1315d93a.bundle.js +1 -0
  70. package/dist/16.2f60fbeaccd97aefaae2.bundle.js +1 -0
  71. package/dist/160.c46bfdf09357a4c62a53.bundle.js +1 -0
  72. package/dist/{103.05b86c1b360c05133b49.bundle.js → 161.0f35ee11981f0ea0455f.bundle.js} +1 -2
  73. package/dist/{104.089568ff7c49a29de892.bundle.js → 162.fef28120701e7d200b01.bundle.js} +1 -2
  74. package/dist/{105.81b74220f7fa646e719b.bundle.js → 163.38565d40ac5f71d1c875.bundle.js} +1 -2
  75. package/dist/164.b2116f472aa847618aee.bundle.js +1 -0
  76. package/dist/168.2d4b5a75da5430c73efc.bundle.js +1 -0
  77. package/dist/169.6897f56896e3664e8b53.bundle.js +1 -0
  78. package/dist/17.2bff7856b13fd72e2db4.bundle.js +1 -0
  79. package/dist/170.d5c0d475c5b6ad84ef77.bundle.js +1 -0
  80. package/dist/171.60cdc91b2bf682a20911.bundle.js +1 -0
  81. package/dist/172.1fb9ead3e508a7cfa5f3.bundle.js +1 -0
  82. package/dist/173.95602c81a2692624a015.bundle.js +1 -0
  83. package/dist/174.aac1982e67b5ca1731c1.bundle.js +1 -0
  84. package/dist/175.5e49a28397900168f816.bundle.js +1 -0
  85. package/dist/176.2e6d1a9f4eac4fdd8422.bundle.js +1 -0
  86. package/dist/177.3b6aabf3c4db8519ea74.bundle.js +1 -0
  87. package/dist/178.e10370553beb5c6bb839.bundle.js +1 -0
  88. package/dist/179.784cbd536b8e636c1272.bundle.js +1 -0
  89. package/dist/18.d6be3e6583bf3dacd54f.bundle.js +2 -0
  90. package/dist/180.d37db50f3ce1b3a04a65.bundle.js +1 -0
  91. package/dist/181.f307cabdc4ed7a10ff64.bundle.js +1 -0
  92. package/dist/182.e8fe148e90fcd334b9b9.bundle.js +1 -0
  93. package/dist/183.a086e00d4dc3c7855611.bundle.js +1 -0
  94. package/dist/184.ff8a39692d0ff666c9e6.bundle.js +1 -0
  95. package/dist/185.8b9f0b866e848f8a1aac.bundle.js +1 -0
  96. package/dist/186.798880846274da7033da.bundle.js +1 -0
  97. package/dist/{120.3b0b67fbfa81ec95e044.bundle.js → 187.eb92a35d38294bc21703.bundle.js} +1 -2
  98. package/dist/{121.ff452d05188836228deb.bundle.js → 188.641582484af80415d29a.bundle.js} +1 -2
  99. package/dist/189.7ccbb0ef67513ae7001a.bundle.js +1 -0
  100. package/dist/19.c2a5c3e7a49a4acba486.bundle.js +2 -0
  101. package/dist/{123.289bb9a87ce416004c0a.bundle.js → 190.a3609218c5d8e873a46f.bundle.js} +1 -2
  102. package/dist/191.4c817606bf66c16d9ad1.bundle.js +1 -0
  103. package/dist/{125.51ff26fe7687752811e4.bundle.js → 192.21f366a1ea7e6905f120.bundle.js} +1 -2
  104. package/dist/193.4d40b788bd7ddcf16788.bundle.js +1 -0
  105. package/dist/{127.4d0a2164fb95df43ea22.bundle.js → 194.0170093f1daf20e82b5f.bundle.js} +1 -2
  106. package/dist/{128.c7a3530622ede2f34e72.bundle.js → 195.d7d8af61458f9416878f.bundle.js} +1 -2
  107. package/dist/{129.2d32313059ae96dba010.bundle.js → 196.6e6b7589cd1342a0b2b5.bundle.js} +1 -2
  108. package/dist/{130.7302112cf14a10bd1306.bundle.js → 197.c071fa1fe9e081a3b053.bundle.js} +1 -2
  109. package/dist/{131.eb262b5100305bdc23ee.bundle.js → 198.3c5ca9ac5a745b4b23a1.bundle.js} +1 -2
  110. package/dist/199.00ac5221a334189ea09a.bundle.js +1 -0
  111. package/dist/2.78b4e53269171c9c08a5.bundle.js +1 -0
  112. package/dist/20.8fd969e3860ddffedcc3.bundle.js +1 -0
  113. package/dist/{133.f855496341ba657eb673.bundle.js → 200.aa3f4dcf9cf98409dbf5.bundle.js} +1 -2
  114. package/dist/201.a1b147e78f43a3bc99c3.bundle.js +1 -0
  115. package/dist/202.20e71b18f57e7d234ff0.bundle.js +1 -0
  116. package/dist/{136.74f131c98a163b48e3df.bundle.js → 203.0219c2ba2d4fe4881af2.bundle.js} +1 -2
  117. package/dist/204.cc169603e18b84e7e65b.bundle.js +1 -0
  118. package/dist/{138.9111fe731587313e4574.bundle.js → 205.99fb3c89cd9b9183ddbf.bundle.js} +1 -2
  119. package/dist/206.43b04d2170165e13353c.bundle.js +1 -0
  120. package/dist/207.798c195e1d7d3f301131.bundle.js +1 -0
  121. package/dist/208.34f042066a757f4fd8c0.bundle.js +1 -0
  122. package/dist/{142.5ced0a8e7a08aea7988f.bundle.js → 209.288844c6a42ff4d5685a.bundle.js} +1 -2
  123. package/dist/21.c981976c6528073c0a2f.bundle.js +1 -0
  124. package/dist/210.1ac38e393ca959703d4b.bundle.js +1 -0
  125. package/dist/211.d2721b9785e609e2f817.bundle.js +1 -0
  126. package/dist/212.b6b19c939f21132b451c.bundle.js +1 -0
  127. package/dist/213.5a5116f764e6357e53ab.bundle.js +1 -0
  128. package/dist/{147.f6bd445276a200981cff.bundle.js → 214.a2640be51c42d820bb83.bundle.js} +1 -2
  129. package/dist/215.209396a71f130477e2b3.bundle.js +1 -0
  130. package/dist/216.16e2e982acc750b4045a.bundle.js +1 -0
  131. package/dist/217.8540eb1d1a0946e72dbf.bundle.js +1 -0
  132. package/dist/218.ef33580c82d20f39f75f.bundle.js +1 -0
  133. package/dist/219.1652bc940cdd0088dc18.bundle.js +1 -0
  134. package/dist/22.9d339503774f4f6c0a8b.bundle.js +1 -0
  135. package/dist/{153.ebc378a7a60222b69484.bundle.js → 220.f8f9c348b1fc0cc72bd6.bundle.js} +1 -2
  136. package/dist/221.b18a92f0ba880edaebbf.bundle.js +1 -0
  137. package/dist/222.a52ebecd1d5201437ebe.bundle.js +1 -0
  138. package/dist/23.87ca8226d464e3699b8e.bundle.js +3 -0
  139. package/dist/24.9076b75f45ce0579f7be.bundle.js +1 -0
  140. package/dist/25.073791b8dd02c5b31183.bundle.js +1 -0
  141. package/dist/26.6e06be7172a866ad45f9.bundle.js +2 -0
  142. package/dist/27.5152c2a1f3b1369e21b0.bundle.js +1 -0
  143. package/dist/28.90b784e728e3d5e4c6aa.bundle.js +1 -0
  144. package/dist/29.e2309b858706718f1732.bundle.js +1 -0
  145. package/dist/3.cf89087c137e759ecd19.bundle.js +27 -0
  146. package/dist/30.32fb84930c42bae43a74.bundle.js +1 -0
  147. package/dist/31.31b7b4bd073b82c09fda.bundle.js +1 -0
  148. package/dist/32.6725d94946764db833b8.bundle.js +1 -0
  149. package/dist/33.fa9f0e662060f2e97267.bundle.js +1 -0
  150. package/dist/34.af22bc6d5ed2bcb72a09.bundle.js +1 -0
  151. package/dist/35.e601e19e63c6ddaf2484.bundle.js +1 -0
  152. package/dist/36.df47a70d8efbf1cd033b.bundle.js +1 -0
  153. package/dist/37.085cdb373f74d55eee07.bundle.js +2 -0
  154. package/dist/38.fc172c7b0d24ab0f8a35.bundle.js +1 -0
  155. package/dist/39.5ca9fa51ec3c63459317.bundle.js +1 -0
  156. package/dist/4.851f9ade6202116ecfb9.bundle.js +1 -0
  157. package/dist/40.309ec5212fd53fe696bb.bundle.js +1 -0
  158. package/dist/41.3870740f1d24570cb415.bundle.js +1 -0
  159. package/dist/42.b926c2c8620df5c7ed6d.bundle.js +1 -0
  160. package/dist/43.d4551e1f6cac0a1a77e5.bundle.js +1 -0
  161. package/dist/44.46c9e2d54a9f07d78368.bundle.js +1 -0
  162. package/dist/45.a916daee1f0c6873c890.bundle.js +1 -0
  163. package/dist/46.4f57238bd032edc81d6d.bundle.js +1 -0
  164. package/dist/47.4fbfdaa63628c501a30c.bundle.js +1 -0
  165. package/dist/48.3fbd50adcb0c7dd7ec60.bundle.js +1 -0
  166. package/dist/49.0707795b3b6e40387da8.bundle.js +1 -0
  167. package/dist/5.7cfbc07050f137932ffe.bundle.js +1 -0
  168. package/dist/50.8f6cc698b42c96f2b41f.bundle.js +1 -0
  169. package/dist/51.514a339efd6cd11db0f8.bundle.js +1 -0
  170. package/dist/52.410a7d8b4cb433fb24ca.bundle.js +1 -0
  171. package/dist/53.174d18435f7bf3bf05a0.bundle.js +1 -0
  172. package/dist/54.7cb3bd3ae8055e350629.bundle.js +1 -0
  173. package/dist/55.f0762e755ba58cbaac26.bundle.js +1 -0
  174. package/dist/56.3b0312e77f8607a4d957.bundle.js +1 -0
  175. package/dist/57.dfb7a710da8ca09c725b.bundle.js +1 -0
  176. package/dist/58.ac0fa95bbbe4b2dfb0fc.bundle.js +1 -0
  177. package/dist/59.273ffcd48e856d2752ff.bundle.js +1 -0
  178. package/dist/6.c5eea752e1f541f494e8.bundle.js +1 -0
  179. package/dist/60.00a29320ea162becd718.bundle.js +1 -0
  180. package/dist/61.3794de8b6d022738bafa.bundle.js +1 -0
  181. package/dist/62.cf39ad55adb1616560ec.bundle.js +1 -0
  182. package/dist/63.8880f667c958d12b338b.bundle.js +1 -0
  183. package/dist/64.fdd90fedc8a5dc3cacaf.bundle.js +1 -0
  184. package/dist/65.cdc961a8042c385c49c6.bundle.js +1 -0
  185. package/dist/66.c3b906de2fcf69089b7b.bundle.js +1 -0
  186. package/dist/67.9c851e5930459a5f5903.bundle.js +1 -0
  187. package/dist/68.05bba948c414a1e21c8f.bundle.js +1 -0
  188. package/dist/69.c5561c83fe410ea9a908.bundle.js +1 -0
  189. package/dist/7.14f008aaac190939acd3.bundle.js +7 -0
  190. package/dist/70.f2557c225be5923bab24.bundle.js +1 -0
  191. package/dist/71.e9c3c5ccc70f443c97cf.bundle.js +1 -0
  192. package/dist/72.0780a8424293909f94a4.bundle.js +1 -0
  193. package/dist/73.57e88cee0af3f67aee77.bundle.js +1 -0
  194. package/dist/74.48e90caf0b5ecd351f1d.bundle.js +1 -0
  195. package/dist/75.c75a824264d0e67421ed.bundle.js +1 -0
  196. package/dist/76.2ad0f5373462bc70bebf.bundle.js +1 -0
  197. package/dist/77.303a075d21928354102c.bundle.js +1 -0
  198. package/dist/78.66f3e9630550f20287ff.bundle.js +1 -0
  199. package/dist/79.29d39a29721f936ae688.bundle.js +1 -0
  200. package/dist/8.b5e29f80f8a5766d70d5.bundle.js +2 -0
  201. package/dist/80.8af0388db859fcc9fbf3.bundle.js +1 -0
  202. package/dist/{47.686e599732ae6f41120c.bundle.js → 81.2ff1f5047ab4e0591585.bundle.js} +1 -2
  203. package/dist/82.27bb51dfeb4898504e96.bundle.js +1 -0
  204. package/dist/83.a59d34bc50cf323af43d.bundle.js +1 -0
  205. package/dist/84.a4ee7bb5d3ed2e6ead5e.bundle.js +1 -0
  206. package/dist/{51.895a3dacdc3a8eaee275.bundle.js → 85.1f1b07562fbf97ab3e11.bundle.js} +1 -2
  207. package/dist/86.637667a4555ae621aff0.bundle.js +1 -0
  208. package/dist/87.b76338a62297ad83960b.bundle.js +1 -0
  209. package/dist/88.532e7295b49b1071d45c.bundle.js +1 -0
  210. package/dist/89.90bb1cf65f183ecce47c.bundle.js +1 -0
  211. package/dist/9.610b595b60a0fc51466a.bundle.js +1 -0
  212. package/dist/90.683c4d5b142356f274ef.bundle.js +1 -0
  213. package/dist/{56.91947e80d8e04223ac58.bundle.js → 91.2437dfc2ea1bc89f53f3.bundle.js} +1 -2
  214. package/dist/92.a12cfd3b602e98b344de.bundle.js +1 -0
  215. package/dist/93.a5cb6192d32cb016bb60.bundle.js +1 -0
  216. package/dist/94.f6a3e7628449796419b6.bundle.js +1 -0
  217. package/dist/95.15f0e472c49c81a68c3a.bundle.js +1 -0
  218. package/dist/96.2bf3b75fb0efb6b9e7e8.bundle.js +1 -0
  219. package/dist/97.bd1988af419f7373b569.bundle.js +1 -0
  220. package/dist/98.060c6842b3a8ed94dd20.bundle.js +1 -0
  221. package/dist/{64.ac922cb38c3ff6c431fb.bundle.js → 99.6360b70da56083cd76fe.bundle.js} +1 -2
  222. package/dist/bundle.39b836d40f0926aeec16.bundle.js +91 -0
  223. package/dist/css/aclmanagement.css +114 -0
  224. package/dist/css/angular-tooltips.css +144 -0
  225. package/dist/css/autocomplete-select.css +62 -0
  226. package/dist/css/backup-and-restore.css +7 -0
  227. package/dist/css/bootstrap-graphdb-theme-dark-auto.css +36 -0
  228. package/dist/css/bootstrap-graphdb-theme.css +514 -252
  229. package/dist/css/clustermanagement.css +145 -266
  230. package/dist/css/common.css +105 -0
  231. package/dist/css/dependencies.css +4 -4
  232. package/dist/css/domain-range-graph.css +3 -3
  233. package/dist/css/explore.css +7 -1
  234. package/dist/css/export.css +13 -9
  235. package/dist/css/find.css +2 -3
  236. package/dist/css/fonts/icons.eot +0 -0
  237. package/dist/css/fonts/icons.svg +14 -5
  238. package/dist/css/fonts/icons.ttf +0 -0
  239. package/dist/css/fonts/icons.woff +0 -0
  240. package/dist/css/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-600.woff +0 -0
  241. package/dist/css/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-600.woff2 +0 -0
  242. package/dist/css/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-600italic.woff +0 -0
  243. package/dist/css/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-600italic.woff2 +0 -0
  244. package/dist/css/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-italic.woff +0 -0
  245. package/dist/css/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-italic.woff2 +0 -0
  246. package/dist/css/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-regular.woff +0 -0
  247. package/dist/css/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-regular.woff2 +0 -0
  248. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.woff +0 -0
  249. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.woff2 +0 -0
  250. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.woff +0 -0
  251. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.woff2 +0 -0
  252. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.woff +0 -0
  253. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.woff2 +0 -0
  254. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.woff +0 -0
  255. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.woff2 +0 -0
  256. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff +0 -0
  257. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff2 +0 -0
  258. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff +0 -0
  259. package/dist/css/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2 +0 -0
  260. package/dist/css/graphs-config.css +4 -4
  261. package/dist/css/graphs-vizualizations.css +11 -10
  262. package/dist/css/guides.css +9 -0
  263. package/dist/css/jmx.css +22 -0
  264. package/dist/css/lib/angular-xeditable/xeditable.min.css +2 -2
  265. package/dist/css/new-sparql.css +68 -2
  266. package/dist/css/operations-statuses-monitor.css +111 -0
  267. package/dist/css/plugins.css +7 -18
  268. package/dist/css/rdf-class-hierarchy-labels.css +2 -2
  269. package/dist/css/rdf-class-hierarchy.css +3 -3
  270. package/dist/css/rdf-details-side-panel.css +8 -1
  271. package/dist/css/rdf-resource-search.css +5 -2
  272. package/dist/css/repositories.css +73 -31
  273. package/dist/css/repository.create.css +14 -4
  274. package/dist/css/shepherd-custom.css +80 -0
  275. package/dist/css/workbench-custom.css +54 -14
  276. package/dist/css/yasr.custom.css +28 -6
  277. package/dist/font/{icons.f404525bf0491c43fc1c35fc43fe14d8.eot → icons.23e96f215ba03e98233de883d2c30b60.eot} +0 -0
  278. package/dist/i18n/locale-en.json +488 -129
  279. package/dist/i18n/locale-fr.json +602 -261
  280. package/dist/icon.png +0 -0
  281. package/dist/img/{graphdb-logo-sq.75ddb875d9a986a6ac944450ae134725.svg → graphdb-logo-sq.3a5fb4b3f1e0e248dc308da1bf4de9f8.svg} +4 -4
  282. package/dist/img/{graphdb-logo.cb18d544b9cf2eb6062daa81bdb1f850.svg → graphdb-logo.741abf3e3881e1566e4504c9f00b91c0.svg} +3 -4
  283. package/dist/img/{graphdb-small.635110bdf15de2ad589b6e3fdaa75887.svg → graphdb-small.5f94ee13e65870be1db31bb89e6deded.svg} +6 -6
  284. package/dist/img/graphdb-splash.1ef2940889acddc03c7defb3f9f41f8d.svg +1 -0
  285. package/dist/img/{icons.2271b2cdd5a3d1037d80bf831f4918cc.svg → icons.ab6168834b8775f511d09c8fad540b27.svg} +14 -5
  286. package/dist/index.html +87 -85
  287. package/dist/js/angular/autocomplete/templates/modal/add-label.html +9 -8
  288. package/dist/js/angular/chatgpt/templates/chat.html +113 -0
  289. package/dist/js/angular/chatgpt/templates/chatInfo.html +11 -0
  290. package/dist/js/angular/chatgpt/templates/modal/settings.html +61 -0
  291. package/dist/js/angular/clustermanagement/templates/modal/add-nodes-dialog.html +67 -0
  292. package/dist/js/angular/clustermanagement/templates/modal/cluster-create-dialog.html +173 -0
  293. package/dist/js/angular/clustermanagement/templates/modal/cluster-delete-dialog.html +9 -14
  294. package/dist/js/angular/clustermanagement/templates/modal/cluster-edit-dialog.html +118 -0
  295. package/dist/js/angular/clustermanagement/templates/modal/remove-nodes-dialog.html +39 -0
  296. package/dist/js/angular/clustermanagement/templates/modal/replace-nodes-dialog.html +86 -0
  297. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +18 -0
  298. package/dist/js/angular/core/directives/languageselector/templates/languageSelector.html +9 -7
  299. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +57 -0
  300. package/dist/js/angular/core/directives/queryeditor/templates/query-editor.html +44 -56
  301. package/dist/js/angular/core/directives/queryeditor/templates/query-sample.html +11 -11
  302. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +4 -6
  303. package/dist/js/angular/core/templates/core-errors.html +27 -18
  304. package/dist/js/angular/core/templates/inactive-plugin-warning-page.html +1 -2
  305. package/dist/js/angular/core/templates/modal/copy-to-clipboard-modal.html +9 -10
  306. package/dist/js/angular/core/templates/modal/modal-warning.html +1 -1
  307. package/dist/js/angular/core/templates/search-resource-input.html +9 -9
  308. package/dist/js/angular/externalsync/templates/deleteConnector.html +5 -5
  309. package/dist/js/angular/graphexplore/templates/modal/save-graph.html +10 -11
  310. package/dist/js/angular/graphexplore/templates/rdfsCommentLabelTemplate.html +4 -6
  311. package/dist/js/angular/graphexplore/templates/searchIconInputTemplate.html +5 -7
  312. package/dist/js/angular/import/templates/filesTable.html +15 -15
  313. package/dist/js/angular/import/templates/settingsModal.html +231 -231
  314. package/dist/js/angular/import/templates/textSnippet.html +4 -4
  315. package/dist/js/angular/import/templates/urlImport.html +7 -5
  316. package/dist/js/angular/repositories/templates/fedx-repo.html +53 -49
  317. package/dist/js/angular/repositories/templates/ontop-repo.html +191 -60
  318. package/dist/js/angular/security/templates/modal/default-authorities.html +12 -12
  319. package/dist/js/angular/security/templates/user.html +102 -41
  320. package/dist/js/angular/security/templates/users.html +24 -17
  321. package/dist/js/angular/settings/modal/location-settings.html +17 -18
  322. package/dist/js/angular/settings/modal/validate-license.html +19 -6
  323. package/dist/js/angular/templates/graphdb-small.svg +6 -6
  324. package/dist/js/angular/templates/modal/add-fedx-remote-repo.html +17 -15
  325. package/dist/js/angular/templates/modal/add-location.html +18 -22
  326. package/dist/js/angular/templates/modal/edit-location.html +11 -11
  327. package/dist/js/angular/templates/modal/editRepoFile.html +2 -2
  328. package/dist/js/angular/templates/modal/upload-repository-config.html +2 -2
  329. package/dist/js/angular/templates/repositorySize.html +7 -1
  330. package/dist/js/lib/angucomplete-alt/angucomplete-alt.css +2 -2
  331. package/dist/js/lib/rzslider/rzslider.min.css +1 -1
  332. package/dist/license-checker-static.json +128 -0
  333. package/dist/license-checker.json +872 -0
  334. package/dist/main.3ac2b4b19f56209c6467.css +1 -0
  335. package/dist/main.948c3b96766ce09e145b.bundle.js +1 -0
  336. package/dist/pages/aclmanagement.html +177 -0
  337. package/dist/pages/autocomplete.html +16 -12
  338. package/dist/pages/choose-repository-type.html +8 -8
  339. package/dist/pages/cluster-management/clusterInfo.html +160 -138
  340. package/dist/pages/connectorsInfo.html +23 -18
  341. package/dist/pages/create-index.html +18 -18
  342. package/dist/pages/createConnector.html +137 -137
  343. package/dist/pages/dependencies.html +23 -31
  344. package/dist/pages/domainRangeInfo.html +16 -19
  345. package/dist/pages/edit.html +15 -15
  346. package/dist/pages/explore.html +22 -25
  347. package/dist/pages/export.html +38 -39
  348. package/dist/pages/find.html +3 -3
  349. package/dist/pages/graph-config/saveGraphConfig.html +43 -43
  350. package/dist/pages/graphs-visualizations.html +71 -78
  351. package/dist/pages/guides.html +60 -0
  352. package/dist/pages/home.html +46 -28
  353. package/dist/pages/import.html +11 -10
  354. package/dist/pages/info.html +18 -18
  355. package/dist/pages/jdbc-create.html +48 -46
  356. package/dist/pages/jdbc.html +4 -4
  357. package/dist/pages/licenseInfo.html +66 -48
  358. package/dist/pages/login.html +5 -6
  359. package/dist/pages/monitor/backup-and-restore.html +80 -0
  360. package/dist/pages/monitor/queries.html +7 -8
  361. package/dist/pages/monitor/resources.html +213 -79
  362. package/dist/pages/namespaces.html +22 -21
  363. package/dist/pages/plugins.html +9 -10
  364. package/dist/pages/rdfClassHierarchyInfo.html +31 -35
  365. package/dist/pages/rdfrank.html +25 -27
  366. package/dist/pages/registerLicenseInfo.html +10 -12
  367. package/dist/pages/repositories.html +170 -193
  368. package/dist/pages/repository.html +124 -58
  369. package/dist/pages/similarity-indexes.html +18 -18
  370. package/dist/pages/sparql-template-create.html +30 -29
  371. package/dist/pages/sparql-templates.html +4 -4
  372. package/dist/pages/sparql.html +11 -11
  373. package/dist/pages/ux-test1.html +102 -0
  374. package/dist/pages/ux-test2.html +17 -0
  375. package/dist/pages/webapi.html +4 -4
  376. package/dist/plugin-registry.js +14 -0
  377. package/dist/plugins.js +1967 -84
  378. package/dist/res/sparql/keyboard-shortcuts.html +7 -1
  379. package/dist/res/swagger/css/onto-theme.css +8 -0
  380. package/dist/res/swagger/css/reset.css +1 -2
  381. package/dist/res/swagger/css/screen.css +6 -15
  382. package/dist/res/swagger/fonts/icons.woff +0 -0
  383. package/dist/res/swagger/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-600.woff +0 -0
  384. package/dist/res/swagger/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-600.woff2 +0 -0
  385. package/dist/res/swagger/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-600italic.woff +0 -0
  386. package/dist/res/swagger/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-600italic.woff2 +0 -0
  387. package/dist/res/swagger/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-italic.woff +0 -0
  388. package/dist/res/swagger/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-italic.woff2 +0 -0
  389. package/dist/res/swagger/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-regular.woff +0 -0
  390. package/dist/res/swagger/fonts/jetbrains-mono-v12-vietnamese_latin-ext_latin_greek_cyrillic-ext_cyrillic-regular.woff2 +0 -0
  391. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.woff +0 -0
  392. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.woff2 +0 -0
  393. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.woff +0 -0
  394. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.woff2 +0 -0
  395. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.woff +0 -0
  396. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.woff2 +0 -0
  397. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.woff +0 -0
  398. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.woff2 +0 -0
  399. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff +0 -0
  400. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff2 +0 -0
  401. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff +0 -0
  402. package/dist/res/swagger/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2 +0 -0
  403. package/dist/res/swagger/fonts/rubik-italic.woff +0 -0
  404. package/dist/res/swagger/fonts/rubik-italic.woff2 +0 -0
  405. package/dist/res/swagger/fonts/rubik-light.woff +0 -0
  406. package/dist/res/swagger/fonts/rubik-light.woff2 +0 -0
  407. package/dist/res/swagger/fonts/rubik-lightitalic.woff +0 -0
  408. package/dist/res/swagger/fonts/rubik-lightitalic.woff2 +0 -0
  409. package/dist/res/swagger/fonts/rubik-medium.woff +0 -0
  410. package/dist/res/swagger/fonts/rubik-medium.woff2 +0 -0
  411. package/dist/res/swagger/fonts/rubik-mediumitalic.woff +0 -0
  412. package/dist/res/swagger/fonts/rubik-mediumitalic.woff2 +0 -0
  413. package/dist/res/swagger/fonts/rubik-regular.woff +0 -0
  414. package/dist/res/swagger/fonts/rubik-regular.woff2 +0 -0
  415. package/dist/res/swagger/index.html +27 -25
  416. package/dist/vendor.7b6ede99ef82acd3dcf5.bundle.js +27 -0
  417. package/dist/{vendor.4ba46e62f4d43dab5e82.css → vendor.d1c629ceaacea40a5f4a.css} +1 -1
  418. package/package.json +13 -9
  419. package/dist/0.32d0f91ca9c8d09fb6f1.bundle.js +0 -82
  420. package/dist/0.32d0f91ca9c8d09fb6f1.bundle.js.map +0 -1
  421. package/dist/1.6300131e72a9f28f9df3.bundle.js +0 -27
  422. package/dist/1.6300131e72a9f28f9df3.bundle.js.map +0 -1
  423. package/dist/10.bb0713b18c3e55445fa7.bundle.js +0 -2
  424. package/dist/10.bb0713b18c3e55445fa7.bundle.js.map +0 -1
  425. package/dist/100.acbece8e389effbcfa2e.bundle.js +0 -2
  426. package/dist/100.acbece8e389effbcfa2e.bundle.js.map +0 -1
  427. package/dist/101.abc28aeafc8c037b80dc.bundle.js +0 -2
  428. package/dist/101.abc28aeafc8c037b80dc.bundle.js.map +0 -1
  429. package/dist/102.236df15ec49946c8799a.bundle.js +0 -2
  430. package/dist/102.236df15ec49946c8799a.bundle.js.map +0 -1
  431. package/dist/103.05b86c1b360c05133b49.bundle.js.map +0 -1
  432. package/dist/104.089568ff7c49a29de892.bundle.js.map +0 -1
  433. package/dist/105.81b74220f7fa646e719b.bundle.js.map +0 -1
  434. package/dist/106.5de7943f8a3adda97372.bundle.js +0 -2
  435. package/dist/106.5de7943f8a3adda97372.bundle.js.map +0 -1
  436. package/dist/11.288d37db1902f00f7c8e.bundle.js +0 -2
  437. package/dist/11.288d37db1902f00f7c8e.bundle.js.map +0 -1
  438. package/dist/110.5a553b21d45a64e7e321.bundle.js +0 -2
  439. package/dist/110.5a553b21d45a64e7e321.bundle.js.map +0 -1
  440. package/dist/111.04e34833a2c4fc227899.bundle.js +0 -2
  441. package/dist/111.04e34833a2c4fc227899.bundle.js.map +0 -1
  442. package/dist/112.b2bdfd64c50509d05503.bundle.js +0 -2
  443. package/dist/112.b2bdfd64c50509d05503.bundle.js.map +0 -1
  444. package/dist/113.b386b036c2a3d9077f64.bundle.js +0 -2
  445. package/dist/113.b386b036c2a3d9077f64.bundle.js.map +0 -1
  446. package/dist/114.0768e042a8e6ec856942.bundle.js +0 -2
  447. package/dist/114.0768e042a8e6ec856942.bundle.js.map +0 -1
  448. package/dist/115.374b221f284e8755ef31.bundle.js +0 -2
  449. package/dist/115.374b221f284e8755ef31.bundle.js.map +0 -1
  450. package/dist/116.ca9d40889c222f47c45f.bundle.js +0 -2
  451. package/dist/116.ca9d40889c222f47c45f.bundle.js.map +0 -1
  452. package/dist/117.92f7630bfb95444a87e8.bundle.js +0 -2
  453. package/dist/117.92f7630bfb95444a87e8.bundle.js.map +0 -1
  454. package/dist/118.7e28dcfd80b93a705d71.bundle.js +0 -2
  455. package/dist/118.7e28dcfd80b93a705d71.bundle.js.map +0 -1
  456. package/dist/119.e3a038ffb960ed3661fe.bundle.js +0 -2
  457. package/dist/119.e3a038ffb960ed3661fe.bundle.js.map +0 -1
  458. package/dist/12.9004ab127289745129a4.bundle.js +0 -4
  459. package/dist/12.9004ab127289745129a4.bundle.js.map +0 -1
  460. package/dist/120.3b0b67fbfa81ec95e044.bundle.js.map +0 -1
  461. package/dist/121.ff452d05188836228deb.bundle.js.map +0 -1
  462. package/dist/122.1b8056c745358fa2f6cb.bundle.js +0 -2
  463. package/dist/122.1b8056c745358fa2f6cb.bundle.js.map +0 -1
  464. package/dist/123.289bb9a87ce416004c0a.bundle.js.map +0 -1
  465. package/dist/124.75965fcb93d0fe988609.bundle.js +0 -2
  466. package/dist/124.75965fcb93d0fe988609.bundle.js.map +0 -1
  467. package/dist/125.51ff26fe7687752811e4.bundle.js.map +0 -1
  468. package/dist/126.b89a0728154793be4eb9.bundle.js +0 -2
  469. package/dist/126.b89a0728154793be4eb9.bundle.js.map +0 -1
  470. package/dist/127.4d0a2164fb95df43ea22.bundle.js.map +0 -1
  471. package/dist/128.c7a3530622ede2f34e72.bundle.js.map +0 -1
  472. package/dist/129.2d32313059ae96dba010.bundle.js.map +0 -1
  473. package/dist/13.897f9af290de9fbd43bb.bundle.js +0 -16
  474. package/dist/13.897f9af290de9fbd43bb.bundle.js.map +0 -1
  475. package/dist/130.7302112cf14a10bd1306.bundle.js.map +0 -1
  476. package/dist/131.eb262b5100305bdc23ee.bundle.js.map +0 -1
  477. package/dist/132.264b9ebf860e308417ad.bundle.js +0 -2
  478. package/dist/132.264b9ebf860e308417ad.bundle.js.map +0 -1
  479. package/dist/133.f855496341ba657eb673.bundle.js.map +0 -1
  480. package/dist/134.91de2ab11c49967200ad.bundle.js +0 -2
  481. package/dist/134.91de2ab11c49967200ad.bundle.js.map +0 -1
  482. package/dist/135.82e48e81e60b2ab89e04.bundle.js +0 -2
  483. package/dist/135.82e48e81e60b2ab89e04.bundle.js.map +0 -1
  484. package/dist/136.74f131c98a163b48e3df.bundle.js.map +0 -1
  485. package/dist/137.89253235e0e48f86534b.bundle.js +0 -2
  486. package/dist/137.89253235e0e48f86534b.bundle.js.map +0 -1
  487. package/dist/138.9111fe731587313e4574.bundle.js.map +0 -1
  488. package/dist/139.642cab70149cdfc8c034.bundle.js +0 -2
  489. package/dist/139.642cab70149cdfc8c034.bundle.js.map +0 -1
  490. package/dist/14.3c22be70e13b5347940a.bundle.js +0 -3
  491. package/dist/14.3c22be70e13b5347940a.bundle.js.map +0 -1
  492. package/dist/140.8fcbd3b16a54b9ca5d80.bundle.js +0 -2
  493. package/dist/140.8fcbd3b16a54b9ca5d80.bundle.js.map +0 -1
  494. package/dist/141.09939d5f25d69d9e1bdd.bundle.js +0 -2
  495. package/dist/141.09939d5f25d69d9e1bdd.bundle.js.map +0 -1
  496. package/dist/142.5ced0a8e7a08aea7988f.bundle.js.map +0 -1
  497. package/dist/143.1bd6e2941d5c9fdc9e77.bundle.js +0 -2
  498. package/dist/143.1bd6e2941d5c9fdc9e77.bundle.js.map +0 -1
  499. package/dist/144.34dd1b710f93da283e39.bundle.js +0 -2
  500. package/dist/144.34dd1b710f93da283e39.bundle.js.map +0 -1
  501. package/dist/145.832e90a54396296da91b.bundle.js +0 -2
  502. package/dist/145.832e90a54396296da91b.bundle.js.map +0 -1
  503. package/dist/146.a4ab1f2f5177d9e27861.bundle.js +0 -2
  504. package/dist/146.a4ab1f2f5177d9e27861.bundle.js.map +0 -1
  505. package/dist/147.f6bd445276a200981cff.bundle.js.map +0 -1
  506. package/dist/148.1c23268b87514b7220b3.bundle.js +0 -2
  507. package/dist/148.1c23268b87514b7220b3.bundle.js.map +0 -1
  508. package/dist/149.82fc16905f1377c6610a.bundle.js +0 -2
  509. package/dist/149.82fc16905f1377c6610a.bundle.js.map +0 -1
  510. package/dist/15.ba4fe6f57951d2f73adc.bundle.js +0 -2
  511. package/dist/15.ba4fe6f57951d2f73adc.bundle.js.map +0 -1
  512. package/dist/150.6d8e3bb0cbc5774322d9.bundle.js +0 -2
  513. package/dist/150.6d8e3bb0cbc5774322d9.bundle.js.map +0 -1
  514. package/dist/151.c752cbb4d5f9299df813.bundle.js +0 -2
  515. package/dist/151.c752cbb4d5f9299df813.bundle.js.map +0 -1
  516. package/dist/152.78d7840c4b8f93748bfe.bundle.js +0 -2
  517. package/dist/152.78d7840c4b8f93748bfe.bundle.js.map +0 -1
  518. package/dist/153.ebc378a7a60222b69484.bundle.js.map +0 -1
  519. package/dist/154.4452ad65074e44967389.bundle.js +0 -2
  520. package/dist/154.4452ad65074e44967389.bundle.js.map +0 -1
  521. package/dist/155.12819130f26753e109ad.bundle.js +0 -2
  522. package/dist/155.12819130f26753e109ad.bundle.js.map +0 -1
  523. package/dist/16.a236b38d63123b1a3c61.bundle.js +0 -4
  524. package/dist/16.a236b38d63123b1a3c61.bundle.js.map +0 -1
  525. package/dist/17.d8d59fa7fbb3b422fdf8.bundle.js +0 -2
  526. package/dist/17.d8d59fa7fbb3b422fdf8.bundle.js.map +0 -1
  527. package/dist/18.bc2da9ff57be136ef082.bundle.js +0 -2
  528. package/dist/18.bc2da9ff57be136ef082.bundle.js.map +0 -1
  529. package/dist/19.19811699b6e54f19f71e.bundle.js +0 -3
  530. package/dist/19.19811699b6e54f19f71e.bundle.js.map +0 -1
  531. package/dist/2.fb2f97f5c543a24296f6.bundle.js +0 -2
  532. package/dist/2.fb2f97f5c543a24296f6.bundle.js.map +0 -1
  533. package/dist/20.df3652981fc73c6a8b8c.bundle.js +0 -2
  534. package/dist/20.df3652981fc73c6a8b8c.bundle.js.map +0 -1
  535. package/dist/21.b7fbdf3c3b22b578928c.bundle.js +0 -2
  536. package/dist/21.b7fbdf3c3b22b578928c.bundle.js.map +0 -1
  537. package/dist/22.2da0e8ec2ac2048ecd60.bundle.js +0 -3
  538. package/dist/22.2da0e8ec2ac2048ecd60.bundle.js.map +0 -1
  539. package/dist/23.4140c4c20347efc963a4.bundle.js +0 -2
  540. package/dist/23.4140c4c20347efc963a4.bundle.js.map +0 -1
  541. package/dist/24.219ce55f8f6a5bd02dad.bundle.js +0 -2
  542. package/dist/24.219ce55f8f6a5bd02dad.bundle.js.map +0 -1
  543. package/dist/25.e79de2370b1ee4072e19.bundle.js +0 -2
  544. package/dist/25.e79de2370b1ee4072e19.bundle.js.map +0 -1
  545. package/dist/26.c1619706b8cbb1ab23cb.bundle.js +0 -2
  546. package/dist/26.c1619706b8cbb1ab23cb.bundle.js.map +0 -1
  547. package/dist/27.350dba622e243e1ab5fb.bundle.js +0 -2
  548. package/dist/27.350dba622e243e1ab5fb.bundle.js.map +0 -1
  549. package/dist/28.e687c87a5f1dc8a30fd0.bundle.js +0 -2
  550. package/dist/28.e687c87a5f1dc8a30fd0.bundle.js.map +0 -1
  551. package/dist/29.34a4af65623cd4af6899.bundle.js +0 -2
  552. package/dist/29.34a4af65623cd4af6899.bundle.js.map +0 -1
  553. package/dist/3.dfa66b44200c3fca24a2.bundle.js +0 -2
  554. package/dist/3.dfa66b44200c3fca24a2.bundle.js.map +0 -1
  555. package/dist/30.f4738c7c2d74f00f2e5f.bundle.js +0 -2
  556. package/dist/30.f4738c7c2d74f00f2e5f.bundle.js.map +0 -1
  557. package/dist/31.ab8f2e70841221e1d427.bundle.js +0 -2
  558. package/dist/31.ab8f2e70841221e1d427.bundle.js.map +0 -1
  559. package/dist/32.3210a7952ffcb57daa1a.bundle.js +0 -2
  560. package/dist/32.3210a7952ffcb57daa1a.bundle.js.map +0 -1
  561. package/dist/33.fcf9c56901b5590bd603.bundle.js +0 -2
  562. package/dist/33.fcf9c56901b5590bd603.bundle.js.map +0 -1
  563. package/dist/34.2c344c05bfc4048c3d53.bundle.js +0 -2
  564. package/dist/34.2c344c05bfc4048c3d53.bundle.js.map +0 -1
  565. package/dist/35.423c4a91e80adf5d97c8.bundle.js +0 -2
  566. package/dist/35.423c4a91e80adf5d97c8.bundle.js.map +0 -1
  567. package/dist/36.247686b6d65de11ec10d.bundle.js +0 -2
  568. package/dist/36.247686b6d65de11ec10d.bundle.js.map +0 -1
  569. package/dist/37.5f6089a939b59309cc82.bundle.js +0 -2
  570. package/dist/37.5f6089a939b59309cc82.bundle.js.map +0 -1
  571. package/dist/38.9e79a9ec2f9d5af38692.bundle.js +0 -2
  572. package/dist/38.9e79a9ec2f9d5af38692.bundle.js.map +0 -1
  573. package/dist/39.b64ae969a5f5fea4504c.bundle.js +0 -2
  574. package/dist/39.b64ae969a5f5fea4504c.bundle.js.map +0 -1
  575. package/dist/4.188966396c80909f58cd.bundle.js +0 -2
  576. package/dist/4.188966396c80909f58cd.bundle.js.map +0 -1
  577. package/dist/40.1303e99feecbba2614a7.bundle.js +0 -2
  578. package/dist/40.1303e99feecbba2614a7.bundle.js.map +0 -1
  579. package/dist/41.687956ca2240355a838f.bundle.js +0 -2
  580. package/dist/41.687956ca2240355a838f.bundle.js.map +0 -1
  581. package/dist/42.78e0302e87b9d244a1d7.bundle.js +0 -2
  582. package/dist/42.78e0302e87b9d244a1d7.bundle.js.map +0 -1
  583. package/dist/43.ee0de548c525f8e422ba.bundle.js +0 -2
  584. package/dist/43.ee0de548c525f8e422ba.bundle.js.map +0 -1
  585. package/dist/44.38b4979d4b201ae1fffb.bundle.js +0 -2
  586. package/dist/44.38b4979d4b201ae1fffb.bundle.js.map +0 -1
  587. package/dist/45.8a0ab002ad0f614964e5.bundle.js +0 -2
  588. package/dist/45.8a0ab002ad0f614964e5.bundle.js.map +0 -1
  589. package/dist/46.720c0f65b93f4fe01a7c.bundle.js +0 -2
  590. package/dist/46.720c0f65b93f4fe01a7c.bundle.js.map +0 -1
  591. package/dist/47.686e599732ae6f41120c.bundle.js.map +0 -1
  592. package/dist/48.bdb51ad865126b918831.bundle.js +0 -2
  593. package/dist/48.bdb51ad865126b918831.bundle.js.map +0 -1
  594. package/dist/49.74a24e08097ef1f6fcd2.bundle.js +0 -2
  595. package/dist/49.74a24e08097ef1f6fcd2.bundle.js.map +0 -1
  596. package/dist/5.9bbd38317d375cd02da2.bundle.js +0 -8
  597. package/dist/5.9bbd38317d375cd02da2.bundle.js.map +0 -1
  598. package/dist/50.313e315d4c339ad1bcdd.bundle.js +0 -2
  599. package/dist/50.313e315d4c339ad1bcdd.bundle.js.map +0 -1
  600. package/dist/51.895a3dacdc3a8eaee275.bundle.js.map +0 -1
  601. package/dist/52.1f6bc47f1c9abcc79e8d.bundle.js +0 -2
  602. package/dist/52.1f6bc47f1c9abcc79e8d.bundle.js.map +0 -1
  603. package/dist/53.f6c19075252833268cca.bundle.js +0 -2
  604. package/dist/53.f6c19075252833268cca.bundle.js.map +0 -1
  605. package/dist/54.599ca3ae32ee1fb5f937.bundle.js +0 -2
  606. package/dist/54.599ca3ae32ee1fb5f937.bundle.js.map +0 -1
  607. package/dist/55.c20a51cb1d894f9113b4.bundle.js +0 -2
  608. package/dist/55.c20a51cb1d894f9113b4.bundle.js.map +0 -1
  609. package/dist/56.91947e80d8e04223ac58.bundle.js.map +0 -1
  610. package/dist/57.ab4ee313c9d6c7e29384.bundle.js +0 -2
  611. package/dist/57.ab4ee313c9d6c7e29384.bundle.js.map +0 -1
  612. package/dist/58.99c83a8dac31c1b681df.bundle.js +0 -2
  613. package/dist/58.99c83a8dac31c1b681df.bundle.js.map +0 -1
  614. package/dist/59.99da52e1d8946ac0f601.bundle.js +0 -2
  615. package/dist/59.99da52e1d8946ac0f601.bundle.js.map +0 -1
  616. package/dist/6.6c67a1bcf82bb335b0c4.bundle.js +0 -2
  617. package/dist/6.6c67a1bcf82bb335b0c4.bundle.js.map +0 -1
  618. package/dist/60.92b9758945e497e52bac.bundle.js +0 -2
  619. package/dist/60.92b9758945e497e52bac.bundle.js.map +0 -1
  620. package/dist/61.42887fbc87f941cf7c81.bundle.js +0 -2
  621. package/dist/61.42887fbc87f941cf7c81.bundle.js.map +0 -1
  622. package/dist/62.c21410d6e123395d3920.bundle.js +0 -2
  623. package/dist/62.c21410d6e123395d3920.bundle.js.map +0 -1
  624. package/dist/63.1ab0c580ba57aee5479c.bundle.js +0 -2
  625. package/dist/63.1ab0c580ba57aee5479c.bundle.js.map +0 -1
  626. package/dist/64.ac922cb38c3ff6c431fb.bundle.js.map +0 -1
  627. package/dist/65.9fcde753699dc94bea1d.bundle.js +0 -2
  628. package/dist/65.9fcde753699dc94bea1d.bundle.js.map +0 -1
  629. package/dist/66.8213a0430e7543b6d7f7.bundle.js +0 -2
  630. package/dist/66.8213a0430e7543b6d7f7.bundle.js.map +0 -1
  631. package/dist/67.320a484bc979f5076d8c.bundle.js +0 -2
  632. package/dist/67.320a484bc979f5076d8c.bundle.js.map +0 -1
  633. package/dist/68.a69e9e22327878f44dbd.bundle.js +0 -2
  634. package/dist/68.a69e9e22327878f44dbd.bundle.js.map +0 -1
  635. package/dist/69.be786580c66ac4ee18cb.bundle.js +0 -2
  636. package/dist/69.be786580c66ac4ee18cb.bundle.js.map +0 -1
  637. package/dist/7.0fd9bc389f42820382e4.bundle.js +0 -3
  638. package/dist/7.0fd9bc389f42820382e4.bundle.js.map +0 -1
  639. package/dist/70.93cfa1f02948e8276451.bundle.js +0 -2
  640. package/dist/70.93cfa1f02948e8276451.bundle.js.map +0 -1
  641. package/dist/71.6b8c8bce52a95f2da242.bundle.js +0 -2
  642. package/dist/71.6b8c8bce52a95f2da242.bundle.js.map +0 -1
  643. package/dist/72.6cbb41a38d917191c660.bundle.js +0 -2
  644. package/dist/72.6cbb41a38d917191c660.bundle.js.map +0 -1
  645. package/dist/73.801e05b4acc74a3e268c.bundle.js +0 -2
  646. package/dist/73.801e05b4acc74a3e268c.bundle.js.map +0 -1
  647. package/dist/74.1c6322e5f93d5376fd76.bundle.js +0 -2
  648. package/dist/74.1c6322e5f93d5376fd76.bundle.js.map +0 -1
  649. package/dist/75.c95c9015a30a98acb353.bundle.js +0 -2
  650. package/dist/75.c95c9015a30a98acb353.bundle.js.map +0 -1
  651. package/dist/76.29111b9618d43a0dd149.bundle.js +0 -2
  652. package/dist/76.29111b9618d43a0dd149.bundle.js.map +0 -1
  653. package/dist/77.6ced6f6e26dfe1c4e00f.bundle.js +0 -2
  654. package/dist/77.6ced6f6e26dfe1c4e00f.bundle.js.map +0 -1
  655. package/dist/78.7c7d2a0d9e7c2d2483e6.bundle.js +0 -2
  656. package/dist/78.7c7d2a0d9e7c2d2483e6.bundle.js.map +0 -1
  657. package/dist/79.696045e048461f420813.bundle.js +0 -2
  658. package/dist/79.696045e048461f420813.bundle.js.map +0 -1
  659. package/dist/8.22695f5c20dcddc1c7f9.bundle.js +0 -2
  660. package/dist/8.22695f5c20dcddc1c7f9.bundle.js.map +0 -1
  661. package/dist/80.b5e832779f88ebe839e2.bundle.js +0 -2
  662. package/dist/80.b5e832779f88ebe839e2.bundle.js.map +0 -1
  663. package/dist/81.5a0776b89463df60bd1a.bundle.js +0 -2
  664. package/dist/81.5a0776b89463df60bd1a.bundle.js.map +0 -1
  665. package/dist/82.0a98b482c7c37a9812fc.bundle.js +0 -2
  666. package/dist/82.0a98b482c7c37a9812fc.bundle.js.map +0 -1
  667. package/dist/83.8beeb651df72c23d53ac.bundle.js +0 -2
  668. package/dist/83.8beeb651df72c23d53ac.bundle.js.map +0 -1
  669. package/dist/84.6f35fe422db61d53ae3e.bundle.js +0 -2
  670. package/dist/84.6f35fe422db61d53ae3e.bundle.js.map +0 -1
  671. package/dist/85.2d1142fcbdf4c9868e94.bundle.js +0 -2
  672. package/dist/85.2d1142fcbdf4c9868e94.bundle.js.map +0 -1
  673. package/dist/86.ce91cb69963c2b84e551.bundle.js +0 -2
  674. package/dist/86.ce91cb69963c2b84e551.bundle.js.map +0 -1
  675. package/dist/87.d4aa485128cd374a11c7.bundle.js +0 -2
  676. package/dist/87.d4aa485128cd374a11c7.bundle.js.map +0 -1
  677. package/dist/88.b4cd8e99a6af1abea692.bundle.js +0 -2
  678. package/dist/88.b4cd8e99a6af1abea692.bundle.js.map +0 -1
  679. package/dist/89.8ce40cc9d5fe2596fdf9.bundle.js +0 -2
  680. package/dist/89.8ce40cc9d5fe2596fdf9.bundle.js.map +0 -1
  681. package/dist/9.d94f24c12177433d455a.bundle.js +0 -2
  682. package/dist/9.d94f24c12177433d455a.bundle.js.map +0 -1
  683. package/dist/90.94988124ca51fa46932e.bundle.js +0 -2
  684. package/dist/90.94988124ca51fa46932e.bundle.js.map +0 -1
  685. package/dist/91.bfbbacbaea095478d82e.bundle.js +0 -2
  686. package/dist/91.bfbbacbaea095478d82e.bundle.js.map +0 -1
  687. package/dist/92.791121a262e5f42a2ba2.bundle.js +0 -2
  688. package/dist/92.791121a262e5f42a2ba2.bundle.js.map +0 -1
  689. package/dist/93.7da268902b8515abecf6.bundle.js +0 -2
  690. package/dist/93.7da268902b8515abecf6.bundle.js.map +0 -1
  691. package/dist/94.88f1bd8fa645739c4f30.bundle.js +0 -2
  692. package/dist/94.88f1bd8fa645739c4f30.bundle.js.map +0 -1
  693. package/dist/95.bbd1b757de3af20f2ac1.bundle.js +0 -2
  694. package/dist/95.bbd1b757de3af20f2ac1.bundle.js.map +0 -1
  695. package/dist/96.38e7df277c99946f9a20.bundle.js +0 -2
  696. package/dist/96.38e7df277c99946f9a20.bundle.js.map +0 -1
  697. package/dist/97.1818744137f2fb66596a.bundle.js +0 -2
  698. package/dist/97.1818744137f2fb66596a.bundle.js.map +0 -1
  699. package/dist/98.1a14af46a31cf35db0e5.bundle.js +0 -2
  700. package/dist/98.1a14af46a31cf35db0e5.bundle.js.map +0 -1
  701. package/dist/99.bd486f7d738e281a0752.bundle.js +0 -2
  702. package/dist/99.bd486f7d738e281a0752.bundle.js.map +0 -1
  703. package/dist/bundle.5eeff901b77240e58d27.bundle.js +0 -89
  704. package/dist/bundle.5eeff901b77240e58d27.bundle.js.map +0 -1
  705. package/dist/css/fonts/rubik-italic.woff +0 -0
  706. package/dist/css/fonts/rubik-italic.woff2 +0 -0
  707. package/dist/css/fonts/rubik-light.woff +0 -0
  708. package/dist/css/fonts/rubik-light.woff2 +0 -0
  709. package/dist/css/fonts/rubik-lightitalic.woff +0 -0
  710. package/dist/css/fonts/rubik-lightitalic.woff2 +0 -0
  711. package/dist/css/fonts/rubik-medium.woff +0 -0
  712. package/dist/css/fonts/rubik-medium.woff2 +0 -0
  713. package/dist/css/fonts/rubik-mediumitalic.woff +0 -0
  714. package/dist/css/fonts/rubik-mediumitalic.woff2 +0 -0
  715. package/dist/css/fonts/rubik-regular.woff +0 -0
  716. package/dist/css/fonts/rubik-regular.woff2 +0 -0
  717. package/dist/css/lib/bootstrap-switch/bootstrap-switch.min.css +0 -10
  718. package/dist/img/graphdb-splash.2eb3f7f02aa7e25a2545459e096f3738.svg +0 -141
  719. package/dist/js/angular/clustermanagement/templates/modal/clone-modal.html +0 -27
  720. package/dist/js/lib/nvd3/nv.d3.css +0 -755
  721. package/dist/main.e5d47f1d0bcd23074c38.css +0 -1
  722. package/dist/main.f10730ef6eebe969b494.bundle.js +0 -2
  723. package/dist/main.f10730ef6eebe969b494.bundle.js.map +0 -1
  724. package/dist/pages/cluster-management/cluster-configuration.html +0 -183
  725. package/dist/res/swagger/css/style.css +0 -250
  726. package/dist/res/swagger/css/typography.css +0 -60
  727. package/dist/vendor.327ffd7c7997ca288654.bundle.js +0 -50
  728. package/dist/vendor.327ffd7c7997ca288654.bundle.js.map +0 -1
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[17,10,38,49,50,88,105],{105:function(e,t,n){"use strict";n.r(t);n(3),n(9),n(46),n(8),n(72),n(73),n(36),n(35),n(40);angular.module("graphdb.framework.jdbc",["toastr","ui.bootstrap","graphdb.framework.jdbc.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.rest.jdbc.service","graphdb.framework.core.directives.queryeditor.controllers","graphdb.framework.core.directives.queryeditor.sparqltab","graphdb.framework.core.directives.queryeditor.queryeditor"])},34:function(e,t){function n(e,t){return{showToastMessageWithDelay:function(n){return new Promise(r=>{e.success(t.instant(n)),setTimeout(r,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",n),n.$inject=["toastr","$translate"]},35:function(e,t,n){"use strict";n.r(t);n(4),n(12);var r=n(0);function o(e,t,n,o,i,a,s,u,c,l,d,g,f,p,y){const m={id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:!0,sameAs:!0};let b,w=l.getPrincipal();function h(e,t){m.inference=t.appSettings.DEFAULT_INFERENCE,m.sameAs=t.appSettings.DEFAULT_SAMEAS,e.skipCountQuery=!t.appSettings.EXECUTE_COUNT,e.ignoreSharedQueries=t.appSettings.IGNORE_SHARED_QUERIES,e.tabsData=e.tabs=f.get(p.TABS_STATE)||[m],e.$watchCollection("[currentQuery.inference, currentQuery.sameAs]",(function(e,t,n){T(n.currentQuery)})),e.$on("repositoryIsSet",q)}function T(t){!function(){if(o.isActiveRepoOntopType())return;const t=document.getElementById("sameAs");!t||e.currentQuery.inference||t.disabled?e.currentQuery.inference&&t.disabled&&(t.removeAttribute("disabled"),e.currentQuery.sameAs=w.appSettings.DEFAULT_SAMEAS):(t.disabled=!0,e.currentQuery.sameAs=!1)}(),e.tabs.forEach((function(n,r){n.id===t.id&&(e.tabs[r].query=t.query,o.isActiveRepoOntopType()||(e.tabs[r].inference=t.inference,e.tabs[r].sameAs=t.sameAs))})),f.set(p.TABS_STATE,e.tabs)}function C(t,n,r,o){const i=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=t,t?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=n,e.extraMessage=r,e.noLoaderTimer=o,i.addClass("hide")):(e.progressMessage="",e.extraMessage="",e.noLoaderTimer=!1,e.currentTrackAlias=null,e.abortRequested=!1,i.removeClass("hide")),null===e.$$phase&&e.$apply()}function v(n){function r(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0}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 r;r=t(n?function(){e.fixSizesOnHorizontalViewModeSwitch(n)}:e.fixSizesOnHorizontalViewModeSwitch,100),e.$on("$destroy",(function(){t.cancel(r)}))}window.yasr&&window.yasr.container&&t((function(){window.yasr.container.resize()}),100)}function S(){v(!0)}function q(t,n){n.newRepo&&(e.tabsData=f.get(p.TABS_STATE),e.tabsData.forEach((function(e){e.yasrData=void 0,e.queryType=void 0,e.resultsCount=0,e.allResultsCount=0,e.sizeDelta=void 0})),f.set(p.TABS_STATE,e.tabsData),e.tabs=e.tabsData,e.currentQuery={},e.errorMessage=null,e.repositoryError=null)}function Q(e){t((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function E(r,i){if(e.executedQueryTab=e.currentQuery,i){if("SELECT"!==window.editor.getQueryType()&&"CONSTRUCT"!==window.editor.getQueryType())return void n.warning(y.instant("query.editor.warning.msg"));if(o.isActiveRepoOntopType())return void n.warning(y.instant("query.editor.virtual.repo.warning.msg"))}if(e.explainRequested=i,!e.queryIsRunning){if(r?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.lastRunQueryMode=window.editor.getQueryMode(),"update"===e.lastRunQueryMode&&o.isActiveRepoOntopType())return void n.warning(y.instant("query.editor.virtual.repo.update.warning.msg"));if(C(!0,"update"===e.lastRunQueryMode?"Executing update":"Evaluating query"),"none"!==e.viewMode){e.viewMode="none",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch();const n=t(window.editor.query,500);e.$on("$destroy",(function(){t.cancel(n)}))}else window.editor.query()}}function A(){e.showSampleQueries=!e.showSampleQueries,e.showSampleQueries?s.getSavedQueries().success((function(t){e.sampleQueries=t,$("#sampleQueriesCollapse").collapse("show").width("300px")})).error((function(e){const t=getError(e);n.error(t,y.instant("query.editor.get.saved.queries.error"))})):$("#sampleQueriesCollapse").collapse("hide")}function M(t){let n=void 0;return e.tabsData.forEach((function(e){if(e.name===t.name&&e.query===t.body)return n=e.id,e})),n}function D(t){return function(n,r,o){e.savedQuery={name:n,query:r||window.editor.getValue(),shared:o},$(t).modal("show")}}function R(t){for(let n=0;n<e.tabsData.length;n++){if(e.tabsData[n].id===t)return n}}w?h(e,w):e.$on("securityInit",(function(e){w=l.getPrincipal(),h(e.currentScope,w)})),this.hint=document.createElement("span"),this.hint.innerHTML=y.instant("query.editor.autocomplete.hint"),this.hint.style.fontSize="12px",this.hint.style.color="gray",this.hint.style.backgroundColor="white",this.hint.style.position="absolute",this.hint.style.zIndex="3",this.hint.style.paddingLeft="12px",e.$watch((function(){return angular.element(".CodeMirror-hints").length}),e=>{if(e){const e=angular.element(".CodeMirror-hints")[0].getBoundingClientRect();document.body.appendChild(this.hint),this.hint.style.top=e.top-20+"px",this.hint.style.left=e.right-this.hint.offsetWidth-12+"px"}else this.hint&&this.hint.parentNode&&this.hint.parentNode.removeChild(this.hint)}),e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:1e3,page:1,allResultsCount:0,resultsCount:0}},e.queryExists=!1,e.resetCurrentTabConfig(),e.saveTab=function(t){const n=R(t);if(void 0===n)return{};const r=e.tabsData[n];return e.saveQueryToLocal(r),r},e.loadTab=function(n){e.tabsData=f.get(p.TABS_STATE)||[m];const r=R(n),i=e.tabsData[r];i.yasrData&&C(!0,y.instant("query.editor.render.results.msg"),null,!0);t((function(){""===e.currentQuery.query&&(e.currentQuery.query=" "),t((function(){window.editor.setValue(e.currentQuery.query),e.yasr.updateDownloadDropdown(),e.$broadcast("tabLoaded",e.currentQuery.id),e.yasr.options.output=i.outputType,i.yasrData&&(i.yasrData.customError?(e.yasr.results={getException:function(){return i.yasrData.customError}},C(!1)):t((function(){e.setYasrResponse(i.yasrData,i.textStatus,i.jqXhrOrErrorString),C(!1),$(".yasr_btnGroup li:nth-child(2)").hasClass("active")&&t((function(){$(".yasr_btnGroup li:nth-child(2) a").get(0).click()}),0)}),0))}),0)}),0),f.set(p.TABS_STATE_CURRENT_ID,n),e.currentQuery=i,t((function(){e.currentTabConfig={},e.currentTabConfig.queryType=i.queryType,e.currentTabConfig.resultsCount=i.resultsCount,e.currentTabConfig.offset=i.offset,e.currentTabConfig.allResultsCount=i.allResultsCount,e.currentTabConfig.allResultsCountExact=i.allResultsCountExact,e.currentTabConfig.page=i.page,e.currentTabConfig.pageSize=i.pageSize,e.currentTabConfig.timeFinished=i.timeFinished,e.currentTabConfig.timeTook=i.timeTook,e.currentTabConfig.sizeDelta=i.sizeDelta,e.currentTabConfig.customUpdateMessage=i.customUpdateMessage,e.currentTabConfig.errorMessage=i.errorMessage,e.currentTabConfig.warningMessage=i.warningMessage,e.$apply()}),0),$("#yasr").css("padding","0"),b||(b=setInterval(j,200));!function(){const t=o.isActiveRepoOntopType(),n=o.isActiveRepoFedXType();(function(e){const t=document.getElementById("sameAs"),n=document.getElementById("inference");t&&(t.disabled=!!e);n&&(n.disabled=!!e)})(t),e.nocount=!(!t&&!n)||!w.appSettings.EXECUTE_COUNT,t&&(e.currentQuery.inference=!0,e.currentQuery.sameAs=!0)}()},e.addNewTab=function(n,r,o){if(!_(!0))return;let i;i=r||o?{id:"1",name:r,query:o,inference:w.appSettings.DEFAULT_INFERENCE,sameAs:w.appSettings.DEFAULT_SAMEAS}:{id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:w.appSettings.DEFAULT_INFERENCE,sameAs:w.appSettings.DEFAULT_SAMEAS};x++;const a=""+x;e.tabsData=e.tabs;const s=i;s.id=a,e.tabsData.push(s),f.set(p.TABS_STATE_MAXID,x),f.set(p.TABS_STATE,e.tabsData);const u=Array.prototype.slice.call(arguments,1);t((function(){e.$apply(),Q(a),n&&n.apply(this,u)}),0),e.tabs=e.tabsData},e.isTabChangeOk=_,e.runQuery=E,e.abortCurrentQuery=function(){g.abortQueryByAlias(e.currentTrackAlias).success((function(){e.abortRequested=!0}))},e.editQuery=function(t){i.open({templateUrl:"js/angular/core/directives/queryeditor/templates/query-sample.html",controller:"QuerySampleModalCtrl",resolve:{data:function(){return{title:y.instant("query.editor.edit.saved.query",{name:t.name}),query:t,edit:!0,okButtonText:y.instant("common.save.btn")}}}}).result.then((function(r){const o={name:r.name,body:r.body,shared:r.shared};t.name!==r.name?s.addNewSavedQuery(o).success((function(){e.deleteQueryHttp(t.name,!0)})).error((function(e){const t=getError(e);n.error(t,y.instant("query.editor.edit.saved.query.error"))})):s.editSavedQuery(o).success((function(){$("#editQueryContainer").modal("hide"),e.toggleSampleQueries(),n.success(y.instant("query.editor.edit.saved.query.success.msg",{name:t.name}))})).error((function(e){const t=getError(e);n.error(t,y.instant("query.editor.edit.saved.query.error"))}))}))},e.getNamespaces=function(){C(!0,y.instant("common.refreshing.namespaces"),y.instant("common.extra.message")),e.namespacesLoading=!0,d.getRepositoryNamespaces().success((function(t){const n={};t.results.bindings.forEach((function(e){n[e.prefix.value]=e.namespace.value})),e.namespaces=n})).error((function(t){e.repositoryError=getError(t)})).finally((function(){C(!1),e.namespacesLoading=!1}))},e.changePagination=function(){E(!0,e.explainRequested)},e.toggleSampleQueries=A,e.addKnownPrefixes=function(){s.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 t=getError(e);return n.error(t,y.instant("common.add.known.prefixes.error")),!0}))},e.getExistingTabId=M,e.querySelected=function(t){const n=M(t);e.toggleSampleQueries(),e.isTabChangeOk(!1)&&(e.highlightNextTabChange=!0,angular.isDefined(n)?Q(n):e.addNewTab(null,t.name,t.body))},e.deleteQuery=function(t){a.openSimpleModal({title:y.instant("common.confirm"),message:y.instant("query.editor.delete.saved.query.warning.msg",{savedQueryName:t}),warning:!0}).result.then((function(){e.deleteQueryHttp(t)}))},e.deleteQueryHttp=function(t,r){s.deleteSavedQuery(t).success((function(){e.toggleSampleQueries(),r||n.success(y.instant("query.editor.delete.saved.query.success.msg",{savedQueryName:t}))})).error((function(e){const t=getError(e);n.error(t,y.instant("query.editor.delete.saved.query.error"))}))},e.saveQuery=function(t,n){i.open({templateUrl:"js/angular/core/directives/queryeditor/templates/query-sample.html",controller:"QuerySampleModalCtrl",resolve:{data:function(){return{title:y.instant("query.editor.create.saved.query.msg"),query:{name:t.name,body:t.query,shared:t.shared},edit:!1,okButtonText:y.instant("common.create.btn"),queryExists:n,existingQueryErrMsg:Object(r.decodeHTML)(y.instant("query.sample.existing.query.warning",{name:t.name}))}}}}).result.then((function(t){e.saveQueryHttp(t)}),(function(){}))},e.saveQueryHttp=function(t){s.addNewSavedQuery(t).success((function(){n.success(y.instant("query.editor.save.saved.query.success.msg",{name:t.name}))})).error((function(r){let o=getError(r);if(n.error(o,y.instant("query.editor.create.saved.query.error")),o="Query '"+t.name+"' already exists!"){t.query=t.body;const n=!0;e.saveQuery(t,n)}}))},e.saveQueryToLocal=T,e.setLoader=C,e.getLoaderMessage=function(){const t=(Date.now()-e.queryStartTime)/1e3;let n="",r="";e.noLoaderTimer||(n=e.getHumanReadableSeconds(t));r=e.progressMessage?y.instant("query.editor.progress.msg",{progressMessage:e.progressMessage,timeHuman:n}):y.instant("common.running.operation",{timeHuman:n});e.extraMessage&&t>10&&(r+=y.instant("query.editor.extra.msg",{extraMessage:e.extraMessage}));return r},e.fixSizesOnHorizontalViewModeSwitch=v,e.changeViewMode=function(){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,f.set(p.VIEW_MODE,e.orientationViewMode),v()},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=!f.get(p.VIEW_MODE)||"true"===f.get(p.VIEW_MODE),e.viewMode="none",e.getActiveRepository=function(){return o.getActiveRepository()},e.getActiveRepositoryNoError=function(){if(!e.repositoryError)return o.getActiveRepository()},e.orientationViewMode||S(),window.onbeforeunload=function(){e.currentQuery&&e.saveTab(e.currentQuery.id),f.set(p.TABS_STATE,e.tabs)},e.$on("$destroy",(function(){e.currentQuery&&e.saveTab(e.currentQuery.id),f.set(p.TABS_STATE,e.tabs),clearInterval(b)})),e.$on("$destroy",(function(){clearInterval(b),window.editor=null,window.yasr=null})),$(document).mouseup((function(t){const n=$("#sampleQueriesCollapse");!n.is(t.target)&&0===n.has(t.target).length&&e.showSampleQueries&&A()}));let x=f.get(p.TABS_STATE_MAXID)||1;function k(e){return $(e).attr("data-id")}function j(){if(e.currentTabConfig.resultsCount>=0){const e=$(".saveAsDropDown");e.length>0&&!window.editor.queryValid?yasr.header.find(".saveAsDropDown").remove():0===e.length&&window.editor.queryValid&&yasr.updateDownloadDropdown()}}function _(t){return!(e.queryIsRunning&&!e.namespacesLoading)||(t?n.info(y.instant("query.editor.new.tab.running.query.warning.msg")):n.info(y.instant("query.editor.tab.switching.running.query.warning.msg")),!1)}e.highlightNextTabChange=!1,e.$on("tabAction",(function(n,r){r.relatedTarget&&(t.cancel(r.relatedTarget.timer),$(r.relatedTarget).css("color",""),e.saveTab(k(r.relatedTarget))),e.loadTab(k(r.target));const o=["#ED4F2F","","#ED4F2F"],i=[400,400,400];if(e.highlightNextTabChange){e.highlightNextTabChange=!1;let n=0;$(r.target).css("color",o[n]);const a=function(){n++,n<o.length?($(r.target).css("color",o[n]),r.target.timer=t(a,i[n])):$(r.target).css("color","")};t(a,i[n])}})),e.$on("deleteAllexeptSelected",(function(t,n){e.tabsData=n,e.tabs=n})),e.currentQuery={},e.showSampleQueries=!1,e.savedQuery={},e.sampleQueries={},e.editQueryModal=D("#editQueryContainer"),e.deleteQueryModal=D("#confirmDeleteContainer"),e.saveQueryModal=D("#saveQueryContainer"),e.getResultsDescription=function(){let t;if(0===e.currentTabConfig.resultsCount)t="No results.";else{const n=(e.currentTabConfig.page-1)*e.currentTabConfig.pageSize+Math.min(e.currentTabConfig.resultsCount,e.currentTabConfig.pageSize);t=y.instant("query.editor.showing.results.from.msg")+u("currency")(e.currentTabConfig.offset,"",0)+y.instant("query.editor.to")+u("currency")(n,"",0),e.currentTabConfig.allResultsCount>0&&(t+=y.instant(e.currentTabConfig.allResultsCountExact?"query.editor.of":"query.editor.of.at.least"),t+=u("currency")(e.currentTabConfig.allResultsCount,"",0)),t+="."}return t},e.getUpdateDescription=function(){return e.currentTabConfig.customUpdateMessage?e.currentTabConfig.customUpdateMessage:void 0===e.currentTabConfig.sizeDelta?"":e.currentTabConfig.sizeDelta<0?y.instant("yasr.removed.statements.result.msg",{sizeDelta:Math.abs(e.currentTabConfig.sizeDelta)}):e.currentTabConfig.sizeDelta>0?y.instant("yasr.added.statements.result.msg",{sizeDelta:e.currentTabConfig.sizeDelta}):y.instant("yasr.statements.no.change.msg")},e.getStaleWarningMessage=function(){const t=60*Math.round((Date.now()-e.currentTabConfig.timeFinished)/6e4);if(t>=3600)return y.instant("yasr.stale.result.msg",{secondsAgo:e.getHumanReadableSeconds(t)})};const N=function(){};angular.element(c).bind("resize",N),e.$on("$destroy",(function(){angular.element(c).unbind("resize",N)}))}function i(e,t,n,r){n.queryExists&&(e.queryExists=!0),e.query=angular.copy(n.query),e.title=n.title,e.edit=n.edit,e.okButtonText=n.okButtonText,e.existingQueryErrMsg=r.trustAsHtml(n.existingQueryErrMsg),e.ok=function(){e.form.$valid&&t.close(e.query)},e.cancel=function(){t.dismiss("cancel")}}angular.module("graphdb.framework.core.directives.queryeditor.controllers",["graphdb.framework.utils.localstorageadapter","graphdb.framework.rest.sparql.service"]).controller("QueryEditorCtrl",o).controller("QuerySampleModalCtrl",i),o.$inject=["$scope","$timeout","toastr","$repositories","$modal","ModalService","SparqlRestService","$filter","$window","$jwtAuth","RDF4JRepositoriesRestService","MonitoringRestService","LocalStorageAdapter","LSKeys","$translate"],i.$inject=["$scope","$modalInstance","data","$sce"]},36:function(e,t,n){"use strict";n.r(t);n(4);function r(e,t,n,r){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","$translate",function(e,r,o,i,a,s){function u(e){return $(e).attr("data-id")}function c(e){$('a[data-id = "'+e+'"]').tab("show")}e.state={},$(r).on("shown.bs.tab",(function(e){o.$broadcast("tabAction",e)})),e.deleteTab=function(l){if(l.preventDefault(),l.stopPropagation(),e.tabs.length<2)return void a.warning(s.instant("sparql.tab.directive.close.last.warning"));l.shiftKey?(e.state.selectedTabId=u(r),i.openSimpleModal({title:s.instant("common.confirm"),message:s.instant("sparql.tab.directive.delete.all.tabs.warning"),warning:!0}).result.then((function(){var r;r=e.state.selectedTabId,e.tabs=e.tabs.filter((function(e){if(e.id===r)return e})),c(e.tabs[0].id),t.set(n.TABS_STATE,e.tabs),o.$broadcast("deleteAllexeptSelected",e.tabs)}))):(e.state.idForDelete=u(r),i.openSimpleModal({title:s.instant("common.confirm"),message:s.instant("sparql.tab.directive.close.tab.warning"),warning:!0}).result.then((function(){!function(t){if(angular.isUndefined(t))throw"Delete by id was called with undefined id";const n=function(t){for(let n=0;n<e.tabs.length;n++){if(e.tabs[n].id===t)return n}}(t);e.tabs.splice(n,1),t===e.currentQuery.id&&e.tabs.length>0&&c(n>0?e.tabs[n-1].id:e.tabs[0].id)}(e.state.idForDelete)})));angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.editCurrentTab=function(){if(u(r)!==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)&&$(r).tab("show")}}]}}angular.module("graphdb.framework.core.directives.queryeditor.sparqltab",["graphdb.framework.core","graphdb.framework.utils.localstorageadapter"]).directive("sparqlTab",r),r.$inject=["$rootScope","LocalStorageAdapter","LSKeys","ModalService"]},72:function(e,t,n){"use strict";n.r(t);n(3),n(8),n(11),n(34);function r(e,t,n,r,o,i){e.getSqlConfigurations=function(){!t.getActiveRepository()||t.isActiveRepoOntopType()||t.isActiveRepoFedXType()?e.jdbcConfigurations=[]:n.getJdbcConfigurations().success((function(t){e.jdbcConfigurations=t})).error((function(e){const t=getError(e);r.error(t,i.instant("jdbc.not.get.SQL.msg"))}))},e.$watch((function(){return t.getActiveRepository()}),(function(){e.getSqlConfigurations()})),e.deleteConfiguration=function(t){o.openSimpleModal({title:i.instant("common.warning"),message:i.instant("jdbc.delete.sql.table.warning.msg",{name:t}),warning:!0}).result.then((function(){n.deleteJdbcConfiguration(t).success((function(){e.getSqlConfigurations()})).error((function(e){r.error(getError(e),i.instant("jdbc.not.delete.sql.msg"))}))}))}}function o(e,t,n,r,o,i,a,s,u,c,l){e.name=t.search().name||"",e.getNamespaces=function(){m(!0,l.instant("common.refreshing.namespaces"),l.instant("common.extra.message")),s.getRepositoryNamespaces().success((function(t){const n={};t.results.bindings.forEach((function(e){n[e.prefix.value]=e.namespace.value})),e.namespaces=n})).error((function(t){e.repositoryError=getError(t)})).finally((function(){m(!1),b()}))},e.setLoader=m,e.addKnownPrefixes=h,e.page=1,e.noPadding={paddingRight:0,paddingLeft:0},e.sqlTypes=["string","iri","boolean","byte","short","int","long","float","double","decimal","date","time","timestamp","Get suggestion..."],e.currentTabConfig={},e.orientationViewMode=!0,e.currentQuery={},e.$watch((function(){return r.getActiveRepository()}),(function(e,n){e!==n&&t.path("jdbc")}));let d=null;e.goBack=function(){d=i((function(){o.history.back()}),1e3)};const g=e.$on("$locationChangeStart",(function(t){!function(t){e.currentQuery.isPristine||(confirm(l.instant("jdbc.warning.unsaved.changes"))?(window.removeEventListener("beforeunload",f),g(),i.cancel(d)):t.preventDefault())}(t)}));function f(t){e.currentQuery.isPristine||(t.returnValue=!0)}window.addEventListener("beforeunload",f),e.$on("$destroy",(function(e){window.removeEventListener("beforeunload",f),g(),i.cancel(d)}));const p={id:"1",name:"",query:"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n\n# Selects two variables to use as columns\nSELECT ?id ?label {\n ?id rdfs:label ?label\n # The following placeholder must be present in the query\n #!filter\n}",inference:!0,sameAs:!0,isNewConfiguration:!0,isPristine:!0};var y;function m(t,n,r){const o=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=t,t?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=n,e.extraMessage=r,o.addClass("hide")):(e.progressMessage="",e.extraMessage="",o.removeClass("hide")),null===e.$$phase&&e.$apply()}function b(){e.tabsData=[e.currentQuery];const t=e.currentQuery;e.currentQuery.query?window.editor.setValue(e.currentQuery.query):window.editor.setValue(" "),i((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),e.canWriteActiveRepo()||(window.editor.options.readOnly=!0)}function w(){e.tabsData=e.tabs=[p],e.currentQuery=angular.copy(p),C(),window.editor&&(e.setQuery(e.currentQuery.query),b()),e.$watch((function(){return e.currentQuery.query}),(function(t,n){t!==n&&e.setDirty()}))}function h(){u.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 t=getError(e);return n.error(t,l.instant("common.add.known.prefixes.error")),!0}))}function T(){Q()&&a.getColumnNames(e.currentQuery.query).success((function(t){a.getColumnsTypeSuggestion(e.currentQuery.query,t).success((function(n){const r=[];_.forEach(t,(function(e){r.push({column_name:e,column_type:n[e].column_type,nullable:!0,sparql_type:n[e].sparql_type})})),e.currentQuery.columns=r,e.setDirty()})).error((function(e){n.error(getError(e),l.instant("jdbc.not.suggest.column.types"))}))})).error((function(e){n.error(getError(e),l.instant("jdbc.not.suggest.column.names"))}))}function C(){2===e.page?e.viewMode="editor":e.viewMode="none"}function v(e,t,n,r,o){let i=n[r].value;return i=i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),"<div class = 'literal-cell'>"+("<p class='nonUri' style='border: none; background-color: transparent; padding: 0; margin: 0'>"+i+"</p>")+"</div>"}function S(){return window.editor&&"SELECT"===window.editor.getQueryType()}function q(){return Q()&&function(){if(!e.currentQuery.columns||!e.currentQuery.columns.length)return n.error(l.instant("jdbc.warning.one.column.msg"),l.instant("jdbc.invalid.columns")),!1;if(e.containsUnknownColumns())return n.error(l.instant("jdbc.warning.all.column.msg"),l.instant("jdbc.invalid.columns")),!1;return!0}()}function Q(){return!!S()||(n.error(l.instant("jdbc.warning.invalid.query"),l.instant("jdbc.invalid.query)")),!1)}e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:100,page:1,allResultsCount:0,resultsCount:0,queryType:""}},e.saveTab=function(){},e.setQuery=function(e){window.editor.setValue(e||" ")},e.name?(y=e.name,a.getJdbcConfiguration(y).success((function(e){p.query=e.query,p.name=e.name,p.columns=e.columns,p.isNewConfiguration=!e.name,w()})).error((function(e){const t=getError(e);n.error(t,l.instant("jdbc.not.get.sql.msg2"))}))):w(),e.goToPage=function(t){e.page=t;const n=e.currentQuery.columns;2!==t||n&&0!==n.length||!S()||e.getColumnsSuggestions(),C()},e.save=function(){q()&&(e.currentQuery.name?e.currentQuery.isNewConfiguration?a.createNewJdbcConfiguration(e.currentQuery).success((function(){e.currentQuery.isPristine=!0,e.currentQuery.isNewConfiguration=!1,n.success(l.instant("jdbc.saved.configuration")),e.goBack()})).error((function(e){const t=getError(e);n.error(t,l.instant("jdbc.not.saved.configuration"))})):a.updateJdbcConfiguration(e.currentQuery).success((function(){e.currentQuery.isPristine=!0,e.currentQuery.isNewConfiguration=!1,n.success(l.instant("jdbc.configuration.updated")),e.goBack()})).error((function(e){const t=getError(e);n.error(t,l.instant("jdbc.not.saved.configuration"))})):n.error(l.instant("jdbc.required.configuration.name")))},e.hasPrecision=function(e){return"iri"===e||"string"===e||"decimal"===e},e.containsColumnsWithPrecision=function(t){return t&&t.some(t=>e.hasPrecision(t.column_type))},e.hasScale=function(e){return"decimal"===e},e.containsColumnsWithScale=function(t){return t&&t.some(t=>e.hasScale(t.column_type))},e.isLiteral=function(e){return"iri"!==e&&"unknown"!==e},e.containsNonLiteralColumnsOnly=function(t){return t&&t.every(t=>!e.isLiteral(t.column_type))},e.containsUnknownColumns=function(){return e.currentQuery.columns&&e.currentQuery.columns.find(e=>"unknown"===e.column_type)},$("textarea").on("paste",(function(){i((function(){h()}),0)})),e.selectColumnType=function(t,r){const o=_.find(e.currentQuery.columns,(function(e){return e.column_name===t}));"Get suggestion..."===o.column_type&&a.getColumnsTypeSuggestion(e.currentQuery.query,[t]).success((function(e){o.column_type=e[t].column_type,o.column_type===r?n.info(l.instant("jdbc.same.suggested.sql.type",{type:o.column_type}),l.instant("jdbc.suggest.sql.type"),{allowHtml:!0}):n.success(l.instant("jdbc.suggested.sql.type",{type:o.column_type}),l.instant("jdbc.suggest.sql.type"),{allowHtml:!0}),o.sparql_type=e[t].sparql_type})).error((function(e){n.error(getError(e),l.instant("jdbc.not.suggest.column.type"))})),e.setDirty()},e.getColumnsSuggestions=function(){e.currentQuery.columns&&e.currentQuery.columns.length>0?c.openSimpleModal({title:l.instant("common.warning"),message:l.instant("jdbc.warning.column.type.msg"),warning:!0}).result.then((function(){T()})):T()},e.deleteColumn=function(t,n){c.openSimpleModal({title:l.instant("common.warning"),message:l.instant("jdbc.warning.delete.column.msg",{columnName:t}),warning:!0}).result.then((function(){e.currentQuery.columns.splice(n,1),e.setDirty()}))},e.getPreview=function(){if(q()&&(e.executedQueryTab=e.currentQuery,!e.queryIsRunning)){e.currentQuery.outputType="table",e.resetCurrentTabConfig(),m(!0,l.instant("jdbc.preview.first.rows",{name:e.name}),l.instant("common.extra.message"));const t=function(t,r,o){!function(t,r,o){t.results&&t.results.bindings&&t.results.bindings.length?(window.yasr.plugins.table.options.getCellContent=v,e.currentTabConfig.queryType="SELECT",window.yasr.setResponse(r,o,null)):n.info(l.instant("jdbc.table.definition"),l.instant("jdbc.preview.sql"))}(t,o,r),m(!1)},r=function(e){m(!1),n.error(getError(e,0,100),l.instant("jdbc.not.show.preview"))};if(e.canWriteActiveRepo()){const n=JSON.stringify({name:e.currentQuery.name,query:e.currentQuery.query,columns:e.currentQuery.columns||[]});a.getNewSqlTablePreview(n).done(t).fail(r)}else a.getExistingSqlTablePreview(e.currentQuery.name).done(t).fail(r)}},e.setDirty=function(){e.currentQuery.isPristine=!1},e.getTypeLabel=function(e){switch(e){case"iri":return"VARCHAR: IRI";case"string":return"VARCHAR: String";default:return e.indexOf(" ")>0?e:e.toUpperCase()}}}angular.module("graphdb.framework.jdbc.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.monitoring.service","toastr"],["graphdb.framework.utils.notifications"]).controller("JdbcListCtrl",r).controller("JdbcCreateCtrl",o),r.$inject=["$scope","$repositories","JdbcRestService","toastr","ModalService","$translate"],o.$inject=["$scope","$location","toastr","$repositories","$window","$timeout","JdbcRestService","RDF4JRepositoriesRestService","SparqlRestService","ModalService","$translate"]},73:function(e,t){angular.module("graphdb.framework.rest.jdbc.service",[]).factory("JdbcRestService",r),r.$inject=["$http","$repositories","$translate"];const n="rest/sql-views";function r(e,t){return{getJdbcConfigurations:function(){return e.get(`${n}/tables`)},getJdbcConfiguration:function(t){return e.get(`${n}/tables/${t}`)},createNewJdbcConfiguration:function(e){return r("POST","",e)},updateJdbcConfiguration:function(e){return r("PUT",e.name,e)},deleteJdbcConfiguration:function(t){return e.delete(`${n}/tables/${t}`)},getColumnNames:function(t){return e.post(`${n}/columns`,t,{headers:{Accept:"application/json","Content-Type":"text/plain"}})},getColumnsTypeSuggestion:function(r,o){if(!Array.isArray(o))throw new Error(t.instant("jdbc.column.names.constraint"));return e({method:"POST",url:`${n}/types`,data:{query:r,column_names:o}})},getExistingSqlTablePreview:function(e,t){return $.ajax({method:"GET",url:`rest/sql-views/preview/${e}`,params:{limit:t}})},getNewSqlTablePreview:function(e,t){return $.ajax({method:"POST",url:"rest/sql-views/preview",contentType:"application/json; charset=utf-8",dataType:"json",data:e,params:{limit:t},headers:{Accept:"application/sparql-results+json"}})}};function r(t,r,o){return e({method:t,url:`${n}/tables/${r}`,noCancelOnRouteChange:!0,data:{name:o.name,query:o.query,columns:o.columns||[]}})}}}}]);
2
- //# sourceMappingURL=17.d8d59fa7fbb3b422fdf8.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/jdbc/app.js","webpack:///./src/js/angular/utils/notifications.js","webpack:///./src/js/angular/core/directives/queryeditor/query-editor.controller.js","webpack:///./src/js/angular/core/directives/queryeditor/sparql-tab.directive.js","webpack:///./src/js/angular/jdbc/controllers.js","webpack:///./src/js/angular/rest/jdbc.rest.service.js"],"names":["angular","module","Notifications","toastr","$translate","showToastMessageWithDelay","message","Promise","r","success","instant","setTimeout","factory","$inject","QueryEditorCtrl","$scope","$timeout","$repositories","$modal","ModalService","SparqlRestService","$filter","$window","$jwtAuth","RDF4JRepositoriesRestService","MonitoringRestService","LocalStorageAdapter","LSKeys","defaultTabConfig","id","name","query","inference","sameAs","checkQueryIntervalId","principal","getPrincipal","initTabs","scope","appSettings","DEFAULT_INFERENCE","DEFAULT_SAMEAS","skipCountQuery","EXECUTE_COUNT","ignoreSharedQueries","IGNORE_SHARED_QUERIES","tabsData","tabs","get","TABS_STATE","$watchCollection","newVal","oldVal","saveQueryToLocal","currentQuery","$on","deleteCachedSparqlResults","currentQueryTab","isActiveRepoOntopType","sameAsBtn","document","getElementById","disabled","removeAttribute","shouldDisableSameAs","forEach","tab","index","set","setLoader","isRunning","progressMessage","extraMessage","noTimer","yasrInnerContainer","element","queryIsRunning","queryStartTime","Date","now","countTimeouted","noLoaderTimer","addClass","currentTrackAlias","abortRequested","removeClass","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalView","visibleWindowHeight","window","innerHeight","documentElement","clientHeight","body","orientationViewMode","viewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","editor","timer","cancel","yasr","container","resize","showHideEditor","foo","params","newRepo","item","yasrData","undefined","queryType","resultsCount","allResultsCount","sizeDelta","errorMessage","repositoryError","selectTab","$","runQuery","changePage","explain","executedQueryTab","getQueryType","warning","explainRequested","currentTabConfig","resetCurrentTabConfig","lastRunQueryMode","getQueryMode","toggleSampleQueries","showSampleQueries","getSavedQueries","data","sampleQueries","collapse","width","error","msg","getError","getExistingTabId","existingTabId","showModal","modalSelector","shared","savedQuery","getValue","modal","findTabIndexByID","i","length","currentScope","this","hint","createElement","innerHTML","fontSize","color","backgroundColor","position","zIndex","$watch","newValue","elRect","appendChild","top","left","right","offsetWidth","parentNode","removeChild","pageSize","page","queryExists","saveTab","idx","loadTab","setValue","updateDownloadDropdown","$broadcast","options","output","outputType","customError","results","getException","setYasrResponse","textStatus","jqXhrOrErrorString","hasClass","click","TABS_STATE_CURRENT_ID","offset","allResultsCountExact","timeFinished","timeTook","customUpdateMessage","warningMessage","css","setInterval","showOrHideSaveAsDropDown","isOntop","isFedX","isActiveRepoFedXType","inferenceBtn","handleSameAsAndInferenceBtns","nocount","overrideSameAsInferenceAndNoCountIfNeeded","addNewTab","callback","tabName","isTabChangeOk","maxID","newID","newTab","push","TABS_STATE_MAXID","callbackArgs","Array","prototype","slice","call","arguments","apply","abortCurrentQuery","abortQueryByAlias","editQuery","open","templateUrl","controller","resolve","title","edit","okButtonText","result","then","queryModal","addNewSavedQuery","deleteQueryHttp","editSavedQuery","getNamespaces","namespacesLoading","getRepositoryNamespaces","usedPrefixes","bindings","e","prefix","value","namespace","namespaces","finally","changePagination","addKnownPrefixes","JSON","stringify","isDefined","querySelected","tabId","highlightNextTabChange","deleteQuery","savedQueryName","openSimpleModal","deleteSavedQuery","saveQuery","existingQueryErrMsg","saveQueryHttp","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","VIEW_MODE","focusQueryEditor","find","is","focus","getActiveRepository","getActiveRepositoryNoError","onbeforeunload","clearInterval","mouseup","event","target","has","getQueryID","attr","$saveAsDropDown","queryValid","header","remove","isNew","info","tabEvent","relatedTarget","colors","times","highlightFun","editQueryModal","deleteQueryModal","saveQueryModal","getResultsDescription","desc","currentPageEnd","Math","min","getUpdateDescription","abs","getStaleWarningMessage","secondsAgo","round","bind","unbind","QuerySampleModalCtrl","$modalInstance","$sce","copy","trustAsHtml","ok","form","$valid","close","dismiss","sparqlTabDirective","$rootScope","restrict","template","replace","$element","state","on","deleteTab","preventDefault","stopPropagation","shiftKey","selectedTabId","filter","obj","idForDelete","isUndefined","splice","deleteTabByID","editCurrentTab","editCurrentlySelectedOnly","$show","$editableButtons","children","$el","currentTarget","$$currentValue","selectThisTab","directive","JdbcListCtrl","JdbcRestService","getSqlConfigurations","jdbcConfigurations","getJdbcConfigurations","deleteConfiguration","deleteJdbcConfiguration","JdbcCreateCtrl","$location","search","sqlTypes","oldValue","path","goBack","history","back","locationChangeListener","isPristine","confirm","removeEventListener","showBeforeunloadMessage","confirmExit","returnValue","addEventListener","isNewConfiguration","canWriteActiveRepo","readOnly","setQueryFromTabConfig","resetYasqeYasr","setQuery","setDirty","getSuggestions","validateQuery","getColumnNames","columns","getColumnsTypeSuggestion","columnTypes","suggestedColumns","_","columnName","column_name","column_type","nullable","sparql_type","getCellContentSQL","plugin","sparqlVar","context","hasValidQuery","validateDefinition","containsUnknownColumns","validateColumns","getJdbcConfiguration","config","goToPage","getColumnsSuggestions","save","createNewJdbcConfiguration","updateJdbcConfiguration","hasPrecision","columnType","containsColumnsWithPrecision","some","el","hasScale","containsColumnsWithScale","isLiteral","containsNonLiteralColumnsOnly","every","selectColumnType","prevColumnType","column","columnSuggestion","type","allowHtml","deleteColumn","getPreview","successCallback","jqXhr","plugins","table","getCellContent","setResponse","setPreviewResult","failCallback","sqlView","getNewSqlTablePreview","done","fail","getExistingSqlTablePreview","getTypeLabel","indexOf","toUpperCase","JDBC_ENDPOINT","$http","configuration","createConfiguration","delete","post","headers","isArray","Error","method","url","column_names","limit","ajax","contentType","dataType","Accept","noCancelOnRouteChange"],"mappings":"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","file":"17.d8d59fa7fbb3b422fdf8.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/resources/controllers';\nimport 'angular/core/services/repositories.service';\nimport 'angular/jdbc/controllers';\nimport 'angular/rest/jdbc.rest.service';\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\nconst modules = [\n 'toastr',\n 'ui.bootstrap',\n 'graphdb.framework.jdbc.controllers',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.rest.jdbc.service',\n 'graphdb.framework.core.directives.queryeditor.controllers',\n 'graphdb.framework.core.directives.queryeditor.sparqltab',\n 'graphdb.framework.core.directives.queryeditor.queryeditor'\n\n];\n\nangular.module('graphdb.framework.jdbc', modules);\n\n","angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr', '$translate'];\n\nfunction Notifications(toastr, $translate) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success($translate.instant(message));\n setTimeout(r, 200);\n });\n }\n}\n","import 'angular/utils/local-storage-adapter';\nimport 'angular/rest/sparql.rest.service';\nimport {decodeHTML} from \"../../../../../app\";\n\nangular\n .module('graphdb.framework.core.directives.queryeditor.controllers', [\n 'graphdb.framework.utils.localstorageadapter',\n 'graphdb.framework.rest.sparql.service'\n ])\n .controller('QueryEditorCtrl', QueryEditorCtrl)\n .controller('QuerySampleModalCtrl', QuerySampleModalCtrl);\n\nQueryEditorCtrl.$inject = ['$scope', '$timeout', 'toastr', '$repositories', '$modal', 'ModalService', 'SparqlRestService', '$filter', '$window', '$jwtAuth', 'RDF4JRepositoriesRestService', 'MonitoringRestService', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction QueryEditorCtrl($scope, $timeout, toastr, $repositories, $modal, ModalService, SparqlRestService, $filter, $window, $jwtAuth, RDF4JRepositoriesRestService, MonitoringRestService, LocalStorageAdapter, LSKeys, $translate) {\n const defaultTabConfig = {\n id: \"1\",\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: true,\n sameAs: true\n };\n\n let principal = $jwtAuth.getPrincipal();\n let checkQueryIntervalId;\n if (principal) {\n initTabs($scope, principal);\n // principal is not yet set, wait for its initialization\n } else {\n $scope.$on('securityInit', function (scope) {\n principal = $jwtAuth.getPrincipal();\n initTabs(scope.currentScope, principal);\n });\n }\n\n function initTabs(scope, principal) {\n defaultTabConfig.inference = principal.appSettings.DEFAULT_INFERENCE;\n defaultTabConfig.sameAs = principal.appSettings.DEFAULT_SAMEAS;\n\n scope.skipCountQuery = !principal.appSettings.EXECUTE_COUNT;\n scope.ignoreSharedQueries = principal.appSettings.IGNORE_SHARED_QUERIES;\n scope.tabsData = scope.tabs = LocalStorageAdapter.get(LSKeys.TABS_STATE) || [defaultTabConfig];\n\n scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function (newVal, oldVal, scope) {\n saveQueryToLocal(scope.currentQuery);\n });\n\n scope.$on('repositoryIsSet', deleteCachedSparqlResults);\n }\n\n this.hint = document.createElement(\"span\");\n this.hint.innerHTML = $translate.instant('query.editor.autocomplete.hint');\n this.hint.style.fontSize = \"12px\";\n this.hint.style.color = \"gray\";\n this.hint.style.backgroundColor = \"white\";\n this.hint.style.position = \"absolute\";\n this.hint.style.zIndex = \"3\";\n this.hint.style.paddingLeft = 12 + \"px\";\n\n $scope.$watch(function() {\n return angular.element('.CodeMirror-hints').length;\n }, (newValue) => {\n if (newValue) {\n const elRect = angular.element('.CodeMirror-hints')[0].getBoundingClientRect();\n document.body.appendChild(this.hint);\n this.hint.style.top = elRect.top - 20 + \"px\";\n this.hint.style.left = elRect.right - this.hint.offsetWidth - 12 + \"px\";\n } else {\n this.hint && this.hint.parentNode && this.hint.parentNode.removeChild(this.hint);\n }\n });\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 1000,\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n $scope.isTabChangeOk = isTabChangeOk;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.abortCurrentQuery = abortCurrentQuery;\n $scope.editQuery = editQuery;\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.deleteQuery = deleteQuery;\n $scope.deleteQueryHttp = deleteQueryHttp;\n $scope.saveQuery = saveQuery;\n $scope.saveQueryHttp = saveQueryHttp;\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 = LocalStorageAdapter.get(LSKeys.VIEW_MODE) ? LocalStorageAdapter.get(LSKeys.VIEW_MODE) === \"true\" : true;\n $scope.viewMode = 'none';\n\n // start of repository actions\n // FIXME: do we need this??\n // $scope.getActiveRepository();\n $scope.getActiveRepository = function () {\n // same as getActiveRepository() but takes into account repo errors\n return $repositories.getActiveRepository();\n };\n\n $scope.getActiveRepositoryNoError = function () {\n if (!$scope.repositoryError) {\n return $repositories.getActiveRepository();\n }\n };\n\n function saveQueryToLocal(currentQueryTab) {\n shouldDisableSameAs();\n $scope.tabs.forEach(function (tab, index) {\n if (tab.id === currentQueryTab.id) {\n $scope.tabs[index].query = currentQueryTab.query;\n // Don't store inference and sameAs values for Ontop repository,\n // because they are overridden afterwards to true\n if (!$repositories.isActiveRepoOntopType()) {\n $scope.tabs[index].inference = currentQueryTab.inference;\n $scope.tabs[index].sameAs = currentQueryTab.sameAs;\n }\n }\n });\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n }\n\n function setLoader(isRunning, progressMessage, extraMessage, noTimer) {\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 $scope.noLoaderTimer = noTimer;\n yasrInnerContainer.addClass(\"hide\");\n } else {\n $scope.progressMessage = \"\";\n $scope.extraMessage = \"\";\n $scope.noLoaderTimer = false;\n $scope.currentTrackAlias = null;\n $scope.abortRequested = false;\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 let timeHuman = \"\";\n let message = \"\";\n\n if (!$scope.noLoaderTimer) {\n timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n }\n\n if ($scope.progressMessage) {\n message = $translate.instant('query.editor.progress.msg', {progressMessage: $scope.progressMessage, timeHuman: timeHuman});\n } else {\n message = $translate.instant('common.running.operation', {timeHuman: timeHuman});\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += $translate.instant('query.editor.extra.msg', {extraMessage: $scope.extraMessage});\n }\n\n return message;\n }\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalView) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\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 //window.editor.refresh();\n } else {\n $scope.noPadding = {};\n document.querySelector('.CodeMirror-wrap').style.height = '';\n //window.editor.refresh();\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() {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n LocalStorageAdapter.set(LSKeys.VIEW_MODE, $scope.orientationViewMode);\n fixSizesOnHorizontalViewModeSwitch();\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 deleteCachedSparqlResults(foo, params) {\n if (params.newRepo) {\n $scope.tabsData = LocalStorageAdapter.get(LSKeys.TABS_STATE);\n $scope.tabsData.forEach(function (item) {\n item.yasrData = undefined;\n item.queryType = undefined;\n item.resultsCount = 0;\n item.allResultsCount = 0;\n item.sizeDelta = undefined;\n });\n\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabsData);\n $scope.tabs = $scope.tabsData;\n\n // The repository is changed. Remove error messages as well, if any\n $scope.currentQuery = {};\n $scope.errorMessage = null;\n $scope.repositoryError = null;\n }\n }\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n window.onbeforeunload = function () {\n if ($scope.currentQuery) {\n $scope.saveTab($scope.currentQuery.id);\n }\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n };\n\n $scope.$on('$destroy', function () {\n if ($scope.currentQuery) {\n $scope.saveTab($scope.currentQuery.id);\n }\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n clearInterval(checkQueryIntervalId);\n });\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery ;\n if (explain) {\n if (!(window.editor.getQueryType() === 'SELECT' || window.editor.getQueryType() === 'CONSTRUCT')) {\n toastr.warning($translate.instant('query.editor.warning.msg'));\n return;\n }\n\n if ($repositories.isActiveRepoOntopType()) {\n toastr.warning($translate.instant('query.editor.virtual.repo.warning.msg'));\n return;\n }\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 $scope.lastRunQueryMode = window.editor.getQueryMode();\n\n if ($scope.lastRunQueryMode === 'update' && $repositories.isActiveRepoOntopType()) {\n toastr.warning($translate.instant('query.editor.virtual.repo.update.warning.msg'));\n return;\n }\n\n setLoader(true, $scope.lastRunQueryMode === 'update' ? 'Executing update' : 'Evaluating query');\n if ($scope.viewMode !== 'none') {\n $scope.viewMode = 'none';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch();\n }\n const timer = $timeout(window.editor.query, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n } else {\n window.editor.query();\n }\n }\n }\n\n function abortCurrentQuery() {\n MonitoringRestService.abortQueryByAlias($scope.currentTrackAlias)\n .success(function () {\n $scope.abortRequested = true;\n });\n }\n\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, $translate.instant('common.refreshing.namespaces'), $translate.instant('common.extra.message'));\n $scope.namespacesLoading = true;\n\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 $scope.namespacesLoading = false;\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n $scope.$on(\"$destroy\", function () {\n clearInterval(checkQueryIntervalId);\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n $scope.showSampleQueries = !$scope.showSampleQueries;\n if ($scope.showSampleQueries) {\n SparqlRestService.getSavedQueries()\n .success(function (data) {\n $scope.sampleQueries = data;\n $('#sampleQueriesCollapse').collapse('show').width('300px');\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('query.editor.get.saved.queries.error'));\n });\n } else {\n $('#sampleQueriesCollapse').collapse('hide');\n }\n }\n\n // Hide the sample queries when the user clicks somewhere else in the UI.\n $(document).mouseup(function (event) {\n const container = $('#sampleQueriesCollapse');\n if (!container.is(event.target) // if the target of the click isn't the container..\n && container.has(event.target).length === 0 //... nor a descendant of the container\n && $scope.showSampleQueries) {\n toggleSampleQueries();\n }\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, $translate.instant('common.add.known.prefixes.error'));\n return true;\n });\n }\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n\n if ($scope.isTabChangeOk(false)) {\n $scope.highlightNextTabChange = true;\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n $scope.tabsData.forEach(function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n return existingTabId;\n }\n\n function editQuery(query) {\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/core/directives/queryeditor/templates/query-sample.html',\n controller: 'QuerySampleModalCtrl',\n resolve: {\n data: function () {\n return {\n title: $translate.instant('query.editor.edit.saved.query', {name: query.name}),\n query: query,\n edit: true,\n okButtonText: $translate.instant('common.save.btn')\n };\n }\n }\n });\n\n modalInstance.result.then(function (queryModal) {\n const data = {\n name: queryModal.name,\n body: queryModal.body,\n shared: queryModal.shared\n };\n if (query.name !== queryModal.name) {\n SparqlRestService.addNewSavedQuery(data)\n .success(function () {\n $scope.deleteQueryHttp(query.name, true);\n })\n .error(function (error) {\n const msg = getError(error);\n toastr.error(msg, $translate.instant('query.editor.edit.saved.query.error'));\n });\n } else {\n SparqlRestService.editSavedQuery(data)\n .success(function () {\n $('#editQueryContainer').modal('hide');\n $scope.toggleSampleQueries();\n toastr.success($translate.instant('query.editor.edit.saved.query.success.msg', {name: query.name}));\n })\n .error(function (error) {\n const msg = getError(error);\n toastr.error(msg, $translate.instant('query.editor.edit.saved.query.error'));\n });\n }\n });\n }\n\n function deleteQueryHttp(savedQueryName, edit) {\n SparqlRestService.deleteSavedQuery(savedQueryName)\n .success(function () {\n $scope.toggleSampleQueries();\n if (!edit) {\n toastr.success($translate.instant('query.editor.delete.saved.query.success.msg', {savedQueryName: savedQueryName}));\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('query.editor.delete.saved.query.error'));\n });\n }\n\n function deleteQuery(savedQueryName) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('query.editor.delete.saved.query.warning.msg', {savedQueryName: savedQueryName}),\n warning: true\n }).result\n .then(function () {\n $scope.deleteQueryHttp(savedQueryName);\n });\n }\n\n function saveQueryHttp(query) {\n SparqlRestService.addNewSavedQuery(query)\n .success(function () {\n toastr.success($translate.instant('query.editor.save.saved.query.success.msg', {name: query.name}));\n })\n .error(function (data) {\n let msg = getError(data);\n toastr.error(msg, $translate.instant('query.editor.create.saved.query.error'));\n // TODO: This condition will always be true\n if (msg = \"Query '\" + query.name + \"' already exists!\") {\n query.query = query.body;\n const queryExists = true;\n $scope.saveQuery(query, queryExists);\n }\n });\n }\n\n function saveQuery(query, queryExists) {\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/core/directives/queryeditor/templates/query-sample.html',\n controller: 'QuerySampleModalCtrl',\n resolve: {\n data: function () {\n return {\n title: $translate.instant('query.editor.create.saved.query.msg'),\n query: {name: query.name, body: query.query, shared: query.shared},\n edit: false,\n okButtonText: $translate.instant('common.create.btn'),\n queryExists: queryExists,\n existingQueryErrMsg: decodeHTML($translate.instant('query.sample.existing.query.warning', {name: query.name}))\n };\n }\n }\n });\n\n modalInstance.result.then(function (query) {\n $scope.saveQueryHttp(query);\n }, function () {\n });\n }\n\n // end of query operations\n\n function showModal(modalSelector) {\n return function (name, query, shared) {\n $scope.savedQuery = {\n name: name,\n query: query || window.editor.getValue(),\n shared: shared\n };\n $(modalSelector).modal('show');\n };\n }\n\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 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 let maxID = LocalStorageAdapter.get(LSKeys.TABS_STATE_MAXID) || 1;\n\n function addNewTab(callback, tabName, savedQuery) { // optional callback to call after tab has been added\n if (!isTabChangeOk(true)) {\n return;\n }\n let defaultTabConfig;\n if (tabName || savedQuery) {\n defaultTabConfig = {\n id: \"1\",\n name: tabName,\n query: savedQuery,\n inference: principal.appSettings.DEFAULT_INFERENCE,\n sameAs: principal.appSettings.DEFAULT_SAMEAS\n };\n } else {\n defaultTabConfig = {\n id: \"1\",\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: principal.appSettings.DEFAULT_INFERENCE,\n sameAs: principal.appSettings.DEFAULT_SAMEAS\n };\n }\n\n maxID++;\n const newID = '' + maxID;\n $scope.tabsData = $scope.tabs;\n\n const newTab = defaultTabConfig;\n newTab.id = newID;\n\n $scope.tabsData.push(newTab);\n\n LocalStorageAdapter.set(LSKeys.TABS_STATE_MAXID, maxID);\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabsData);\n const callbackArgs = Array.prototype.slice.call(arguments, 1); // skip one argument, i.e. the callback itself\n $timeout(function () {\n $scope.$apply();\n selectTab(newID);\n if (callback) {\n callback.apply(this, callbackArgs);\n }\n }, 0);\n $scope.tabs = $scope.tabsData;\n }\n\n function loadTab(id) {\n $scope.tabsData = LocalStorageAdapter.get(LSKeys.TABS_STATE) || [defaultTabConfig];\n\n // find available tab\n const idx = findTabIndexByID(id);\n const tab = $scope.tabsData[idx];\n\n if (tab.yasrData) {\n setLoader(true, $translate.instant('query.editor.render.results.msg'), null, true);\n }\n\n // set query in editor available on the current tab\n $timeout(function () {\n if ($scope.currentQuery.query === '') {\n $scope.currentQuery.query = \" \";\n }\n $timeout(function () {\n window.editor.setValue($scope.currentQuery.query);\n $scope.yasr.updateDownloadDropdown();\n $scope.$broadcast('tabLoaded', $scope.currentQuery.id);\n\n // set query results in query results sections after\n // previous query execution. Yasr response rendering depends on the\n // query type of window.editor!\n $scope.yasr.options.output = tab.outputType; // this may be undefined, that's fine!\n if (tab.yasrData) {\n if (tab.yasrData.customError) {\n // Our injected custom (not real HTTP) error\n $scope.yasr.results = {\n getException: function () {\n return tab.yasrData.customError;\n }\n };\n setLoader(false);\n } else {\n // Real YASR result\n $timeout(function () {\n $scope.setYasrResponse(tab.yasrData, tab.textStatus, tab.jqXhrOrErrorString);\n setLoader(false);\n if ($('.yasr_btnGroup li:nth-child(2)').hasClass(\"active\")) {\n $timeout(function () {\n $('.yasr_btnGroup li:nth-child(2) a').get(0).click();\n }, 0);\n }\n }, 0);\n }\n }\n }, 0);\n }, 0);\n\n\n // persist current tab id in local storage\n LocalStorageAdapter.set(LSKeys.TABS_STATE_CURRENT_ID, id);\n\n $scope.currentQuery = tab;\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.allResultsCountExact = tab.allResultsCountExact;\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.currentTabConfig.customUpdateMessage = tab.customUpdateMessage;\n $scope.currentTabConfig.errorMessage = tab.errorMessage;\n $scope.currentTabConfig.warningMessage = tab.warningMessage;\n\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 if (!checkQueryIntervalId) {\n checkQueryIntervalId = setInterval(showOrHideSaveAsDropDown, 200);\n }\n overrideSameAsInferenceAndNoCountIfNeeded();\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n function showOrHideSaveAsDropDown() {\n // If selected tab has results and query in editor controller is invalid save as\n // dropdown menu will be removed and on fixing query latter will be added\n if ($scope.currentTabConfig.resultsCount >= 0) {\n const $saveAsDropDown = $('.saveAsDropDown');\n if ($saveAsDropDown.length > 0 && !window.editor.queryValid) {\n yasr.header.find('.saveAsDropDown').remove();\n } else if ($saveAsDropDown.length === 0 && window.editor.queryValid) {\n yasr.updateDownloadDropdown();\n }\n }\n }\n\n function isTabChangeOk(isNew) {\n if ($scope.queryIsRunning && !$scope.namespacesLoading) {\n if (isNew) {\n toastr.info($translate.instant('query.editor.new.tab.running.query.warning.msg'));\n } else {\n toastr.info($translate.instant('query.editor.tab.switching.running.query.warning.msg'));\n }\n\n return false;\n }\n\n return true;\n }\n\n // Raise this flag to provide visual feedback to the user the next time a tab changes\n // (either manually or by the system). See GDB-1983.\n $scope.highlightNextTabChange = false;\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n // Cancel any highlight timer that might have been left by the last highlight\n $timeout.cancel(tabEvent.relatedTarget.timer);\n $(tabEvent.relatedTarget).css('color', '');\n\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n\n $scope.loadTab(getQueryID(tabEvent.target));\n\n // These arrays define how the tab change will be visually enhanced.\n // colors contains the colors to set to the tab name,\n // while times defines the times in milliseconds to keep each color.\n // Once we cycle through the arrays we restore the default color.\n const colors = ['#ED4F2F', '', '#ED4F2F'];\n const times = [400, 400, 400];\n if ($scope.highlightNextTabChange) {\n $scope.highlightNextTabChange = false;\n let index = 0;\n $(tabEvent.target).css('color', colors[index]);\n const highlightFun = function () {\n index++;\n if (index < colors.length) {\n $(tabEvent.target).css('color', colors[index]);\n tabEvent.target.timer = $timeout(highlightFun, times[index]);\n } else {\n $(tabEvent.target).css('color', '');\n }\n };\n $timeout(highlightFun, times[index]);\n }\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 = {};\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n $scope.editQueryModal = showModal('#editQueryContainer');\n $scope.deleteQueryModal = showModal('#confirmDeleteContainer');\n $scope.saveQueryModal = showModal('#saveQueryContainer');\n\n $scope.getResultsDescription = function () {\n let desc;\n if ($scope.currentTabConfig.resultsCount === 0) {\n desc = \"No results.\";\n } else {\n const currentPageEnd = ($scope.currentTabConfig.page - 1) * $scope.currentTabConfig.pageSize\n + Math.min($scope.currentTabConfig.resultsCount, $scope.currentTabConfig.pageSize);\n desc = $translate.instant('query.editor.showing.results.from.msg') + $filter('currency')($scope.currentTabConfig.offset, '', 0)\n + $translate.instant('query.editor.to') + $filter('currency')(currentPageEnd, '', 0);\n if ($scope.currentTabConfig.allResultsCount > 0) {\n // Unsure total results count \"of at least\" happens if counting timed out or\n // counting was disabled and we got at least $pageSize + 1 results for the current page.\n // It may reset become exact when we navigate and reach the end of results.\n desc += $translate.instant(($scope.currentTabConfig.allResultsCountExact\n ? 'query.editor.of' : 'query.editor.of.at.least'));\n desc += $filter('currency')($scope.currentTabConfig.allResultsCount, '', 0);\n }\n desc += \".\";\n }\n\n return desc;\n };\n\n $scope.getUpdateDescription = function () {\n if ($scope.currentTabConfig.customUpdateMessage) {\n return $scope.currentTabConfig.customUpdateMessage;\n } else if ($scope.currentTabConfig.sizeDelta === undefined) {\n return '';\n } else if ($scope.currentTabConfig.sizeDelta < 0) {\n return $translate.instant('yasr.removed.statements.result.msg', {sizeDelta: Math.abs($scope.currentTabConfig.sizeDelta)});\n } else if ($scope.currentTabConfig.sizeDelta > 0) {\n return $translate.instant('yasr.added.statements.result.msg', {sizeDelta: $scope.currentTabConfig.sizeDelta});\n } else {\n return $translate.instant('yasr.statements.no.change.msg');\n }\n };\n\n $scope.getStaleWarningMessage = function () {\n const secondsAgo = Math.round((Date.now() - $scope.currentTabConfig.timeFinished) / 60000) * 60;\n if (secondsAgo >= 3600) { // must be at least an hour\n return $translate.instant('yasr.stale.result.msg', {secondsAgo: $scope.getHumanReadableSeconds(secondsAgo)});\n }\n };\n\n const resize = function () {\n // $scope.fixSizesOnHorizontalViewModeSwitch();\n };\n\n angular.element($window).bind('resize', resize);\n\n $scope.$on('$destroy', function () {\n angular.element($window).unbind('resize', resize);\n });\n\n /**\n * In case of Ontop repository, sameAs, inference and nocount are\n * overridden to true and #sameAs and #inference buttons are disabled, In case of FedX repo nocount is overridden\n */\n function overrideSameAsInferenceAndNoCountIfNeeded() {\n const isOntop = $repositories.isActiveRepoOntopType();\n const isFedX = $repositories.isActiveRepoFedXType();\n handleSameAsAndInferenceBtns(isOntop);\n\n $scope.nocount = (isOntop || isFedX) ? true : !principal.appSettings.EXECUTE_COUNT;\n if (isOntop) {\n $scope.currentQuery.inference = true;\n $scope.currentQuery.sameAs = true;\n }\n }\n\n function handleSameAsAndInferenceBtns(isOntop) {\n const sameAsBtn = document.getElementById('sameAs');\n const inferenceBtn = document.getElementById('inference');\n\n if (sameAsBtn) {\n sameAsBtn.disabled = !!isOntop;\n }\n\n if (inferenceBtn) {\n inferenceBtn.disabled = !!isOntop;\n }\n }\n\n // The sameAs is meaningless without inference.\n // Set its value to false and disable button\n function shouldDisableSameAs() {\n // don't try to override sameAs if repository is Ontop type\n if ($repositories.isActiveRepoOntopType()) {\n return;\n }\n const sameAsBtn = document.getElementById('sameAs');\n if (sameAsBtn && !$scope.currentQuery.inference && !sameAsBtn.disabled) {\n sameAsBtn.disabled = true;\n $scope.currentQuery.sameAs = false;\n } else if ($scope.currentQuery.inference && sameAsBtn.disabled) {\n sameAsBtn.removeAttribute('disabled');\n $scope.currentQuery.sameAs = principal.appSettings.DEFAULT_SAMEAS;\n }\n }\n}\n\nQuerySampleModalCtrl.$inject = ['$scope', '$modalInstance', 'data', '$sce'];\n\nfunction QuerySampleModalCtrl($scope, $modalInstance, data, $sce) {\n if (data.queryExists) {\n $scope.queryExists = true;\n }\n $scope.query = angular.copy(data.query);\n $scope.title = data.title;\n $scope.edit = data.edit;\n $scope.okButtonText = data.okButtonText;\n $scope.existingQueryErrMsg = $sce.trustAsHtml(data.existingQueryErrMsg);\n $scope.ok = function () {\n if ($scope.form.$valid) {\n $modalInstance.close($scope.query);\n }\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\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', '$translate', function ($scope, $element, $rootScope, ModalService, toastr, $translate) {\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($translate.instant('sparql.tab.directive.close.last.warning'));\n return;\n }\n\n if (e.shiftKey) {\n $scope.state.selectedTabId = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('sparql.tab.directive.delete.all.tabs.warning'),\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: $translate.instant('common.confirm'),\n message: $translate.instant('sparql.tab.directive.close.tab.warning'),\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","import 'angular/core/services';\nimport 'angular/core/services/repositories.service';\nimport 'angular/rest/monitoring.rest.service';\nimport 'angular/utils/notifications';\n\n\nconst modules = [\n 'ui.bootstrap',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.rest.monitoring.service',\n 'toastr'\n];\n\nangular.module('graphdb.framework.jdbc.controllers', modules, [\n 'graphdb.framework.utils.notifications'\n])\n .controller('JdbcListCtrl', JdbcListCtrl)\n .controller('JdbcCreateCtrl', JdbcCreateCtrl);\n\nJdbcListCtrl.$inject = ['$scope', '$repositories', 'JdbcRestService', 'toastr', 'ModalService', '$translate'];\n\nfunction JdbcListCtrl($scope, $repositories, JdbcRestService, toastr, ModalService, $translate) {\n\n $scope.getSqlConfigurations = function () {\n // Only do this if there is an active repo that isn't an Ontop or FedX repo.\n // Ontop and FedX repos don't support JDBC.\n if ($repositories.getActiveRepository()\n && !$repositories.isActiveRepoOntopType()\n && !$repositories.isActiveRepoFedXType()) {\n JdbcRestService.getJdbcConfigurations().success(function (data) {\n $scope.jdbcConfigurations = data;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('jdbc.not.get.SQL.msg'));\n });\n } else {\n $scope.jdbcConfigurations = [];\n }\n };\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n $scope.getSqlConfigurations();\n });\n\n $scope.deleteConfiguration = function (name) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: $translate.instant('jdbc.delete.sql.table.warning.msg', {name: name}),\n warning: true\n }).result\n .then(function () {\n JdbcRestService.deleteJdbcConfiguration(name).success(function () {\n $scope.getSqlConfigurations();\n }).error(function(e) {\n toastr.error(getError(e), $translate.instant('jdbc.not.delete.sql.msg'));\n });\n });\n };\n}\n\nJdbcCreateCtrl.$inject = ['$scope', '$location', 'toastr', '$repositories', '$window', '$timeout', 'JdbcRestService', 'RDF4JRepositoriesRestService', 'SparqlRestService', 'ModalService', '$translate'];\n\nfunction JdbcCreateCtrl($scope, $location, toastr, $repositories, $window, $timeout, JdbcRestService, RDF4JRepositoriesRestService, SparqlRestService, ModalService, $translate) {\n\n $scope.name = $location.search().name || '';\n $scope.getNamespaces = getNamespaces;\n $scope.setLoader = setLoader;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.page = 1;\n $scope.noPadding = {paddingRight: 0, paddingLeft: 0};\n $scope.sqlTypes = ['string', 'iri', 'boolean', 'byte', 'short', 'int', 'long', 'float', 'double', 'decimal', 'date', 'time', 'timestamp', 'Get suggestion...'];\n $scope.currentTabConfig = {};\n // This property is obligatory in order to show YASQUE and YASR properly\n $scope.orientationViewMode = true;\n $scope.currentQuery = {};\n\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n $location.path('jdbc');\n }\n });\n\n let timer = null;\n $scope.goBack = function () {\n timer = $timeout(function () {\n $window.history.back();\n }, 1000);\n };\n\n const locationChangeListener = $scope.$on('$locationChangeStart', function (event) {\n confirmExit(event);\n });\n\n window.addEventListener('beforeunload', showBeforeunloadMessage);\n\n function showBeforeunloadMessage(event) {\n if (!$scope.currentQuery.isPristine) {\n event.returnValue = true;\n }\n }\n\n function confirmExit(event) {\n if (!$scope.currentQuery.isPristine) {\n if (!confirm($translate.instant('jdbc.warning.unsaved.changes'))) {\n event.preventDefault();\n } else {\n window.removeEventListener('beforeunload', showBeforeunloadMessage);\n locationChangeListener();\n $timeout.cancel(timer);\n }\n }\n }\n\n $scope.$on('$destroy', function (event) {\n window.removeEventListener('beforeunload', showBeforeunloadMessage);\n locationChangeListener();\n $timeout.cancel(timer);\n });\n\n const defaultTabConfig = {\n id: '1',\n name: '',\n query: 'PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\\n' +\n '\\n' +\n '# Selects two variables to use as columns\\n' +\n 'SELECT ?id ?label {\\n' +\n ' ?id rdfs:label ?label\\n' +\n ' # The following placeholder must be present in the query\\n' +\n ' #!filter\\n' +\n '}',\n inference: true,\n sameAs: true,\n isNewConfiguration: true,\n isPristine: true\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 // Hide YASR by default, show on success in callback when needed\n queryType: ''\n };\n };\n\n $scope.saveTab = function () {\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 if ($scope.name) {\n getJdbcConfiguration($scope.name);\n } else {\n setQueryFromTabConfig();\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, $translate.instant('common.refreshing.namespaces'), $translate.instant('common.extra.message'));\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n loadTab();\n });\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\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 loadTab() {\n $scope.tabsData = [$scope.currentQuery];\n\n const tab = $scope.currentQuery;\n\n if (!$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 if (!$scope.canWriteActiveRepo()) {\n window.editor.options.readOnly = true;\n }\n }\n\n $scope.goToPage = function (page) {\n $scope.page = page;\n const columns = $scope.currentQuery.columns;\n if (page === 2 && (!columns || columns.length === 0) && hasValidQuery()) {\n $scope.getColumnsSuggestions();\n }\n resetYasqeYasr();\n };\n\n function getJdbcConfiguration(name) {\n JdbcRestService.getJdbcConfiguration(name).success(function (config) {\n defaultTabConfig.query = config.query;\n defaultTabConfig.name = config.name;\n defaultTabConfig.columns = config.columns;\n\n defaultTabConfig.isNewConfiguration = !config.name;\n\n setQueryFromTabConfig();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('jdbc.not.get.sql.msg2'));\n });\n }\n\n function setQueryFromTabConfig() {\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n $scope.currentQuery = angular.copy(defaultTabConfig);\n\n resetYasqeYasr();\n\n if (window.editor) {\n $scope.setQuery($scope.currentQuery.query);\n loadTab();\n }\n\n $scope.$watch(function () {\n return $scope.currentQuery.query;\n }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n $scope.setDirty();\n }\n });\n }\n\n $scope.save = function () {\n if (!validateDefinition()) {\n return;\n }\n\n if (!$scope.currentQuery.name) {\n toastr.error($translate.instant('jdbc.required.configuration.name'));\n return;\n }\n\n if ($scope.currentQuery.isNewConfiguration) {\n JdbcRestService.createNewJdbcConfiguration($scope.currentQuery).success(function () {\n $scope.currentQuery.isPristine = true;\n $scope.currentQuery.isNewConfiguration = false;\n toastr.success($translate.instant('jdbc.saved.configuration'));\n $scope.goBack();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('jdbc.not.saved.configuration'));\n });\n } else {\n JdbcRestService.updateJdbcConfiguration($scope.currentQuery).success(function () {\n $scope.currentQuery.isPristine = true;\n $scope.currentQuery.isNewConfiguration = false;\n toastr.success($translate.instant('jdbc.configuration.updated'));\n $scope.goBack();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('jdbc.not.saved.configuration'));\n });\n }\n };\n\n $scope.hasPrecision = function (columnType) {\n return columnType === 'iri' || columnType === 'string' || columnType === 'decimal';\n };\n\n $scope.containsColumnsWithPrecision = function (columns) {\n return columns && columns.some((el) => $scope.hasPrecision(el.column_type));\n };\n\n $scope.hasScale = function (columnType) {\n return columnType === 'decimal';\n };\n\n $scope.containsColumnsWithScale = function (columns) {\n return columns && columns.some((el) => $scope.hasScale(el.column_type));\n };\n\n $scope.isLiteral = function (columnType) {\n return columnType !== 'iri' && columnType !== 'unknown';\n };\n\n $scope.containsNonLiteralColumnsOnly = function (columns) {\n return columns && columns.every((el) => !$scope.isLiteral(el.column_type));\n };\n\n $scope.containsUnknownColumns = function () {\n return $scope.currentQuery.columns && $scope.currentQuery.columns\n .find((el) => el.column_type === 'unknown');\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, $translate.instant('common.add.known.prefixes.error'));\n return true;\n });\n }\n\n $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n $scope.selectColumnType = function (columnName, prevColumnType) {\n const column = _.find($scope.currentQuery.columns, function (column) {\n return column.column_name === columnName;\n });\n\n if (column.column_type === 'Get suggestion...') {\n JdbcRestService.getColumnsTypeSuggestion($scope.currentQuery.query, [columnName]).success(function (columnSuggestion) {\n column.column_type = columnSuggestion[columnName].column_type;\n if (column.column_type === prevColumnType) {\n toastr.info($translate.instant('jdbc.same.suggested.sql.type', {type: column.column_type}),\n $translate.instant('jdbc.suggest.sql.type'), {allowHtml: true});\n } else {\n toastr.success($translate.instant('jdbc.suggested.sql.type', {type: column.column_type}),\n $translate.instant('jdbc.suggest.sql.type'), {allowHtml: true});\n }\n column.sparql_type = columnSuggestion[columnName].sparql_type;\n }).error(function(e) {\n toastr.error(getError(e), $translate.instant('jdbc.not.suggest.column.type'));\n });\n }\n $scope.setDirty();\n };\n\n $scope.getColumnsSuggestions = function () {\n if ($scope.currentQuery.columns && $scope.currentQuery.columns.length > 0) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: $translate.instant('jdbc.warning.column.type.msg'),\n warning: true\n }).result\n .then(function () {\n getSuggestions();\n });\n } else {\n getSuggestions();\n }\n };\n\n function getSuggestions() {\n if (!validateQuery()) {\n return;\n }\n\n JdbcRestService.getColumnNames($scope.currentQuery.query).success(function (columns) {\n JdbcRestService.getColumnsTypeSuggestion($scope.currentQuery.query, columns).success(function (columnTypes) {\n const suggestedColumns = [];\n _.forEach(columns, function (columnName) {\n suggestedColumns.push({\n column_name: columnName,\n column_type: columnTypes[columnName].column_type,\n nullable: true,\n sparql_type: columnTypes[columnName].sparql_type\n });\n });\n $scope.currentQuery.columns = suggestedColumns;\n $scope.setDirty();\n }).error(function (e) {\n toastr.error(getError(e), $translate.instant('jdbc.not.suggest.column.types'));\n });\n }).error(function (e) {\n toastr.error(getError(e), $translate.instant('jdbc.not.suggest.column.names'));\n });\n }\n\n $scope.deleteColumn = function (columnName, index) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: $translate.instant('jdbc.warning.delete.column.msg', {columnName: columnName}),\n warning: true\n }).result\n .then(function () {\n $scope.currentQuery.columns.splice(index, 1);\n $scope.setDirty();\n });\n };\n\n $scope.getPreview = function () {\n if (!validateDefinition()) {\n return;\n }\n\n $scope.executedQueryTab = $scope.currentQuery;\n\n if (!$scope.queryIsRunning) {\n $scope.currentQuery.outputType = 'table';\n $scope.resetCurrentTabConfig();\n\n setLoader(true, $translate.instant('jdbc.preview.first.rows', {name: $scope.name}),\n $translate.instant('common.extra.message'));\n\n const successCallback = function (data, textStatus, jqXhr) {\n setPreviewResult(data, jqXhr, textStatus);\n setLoader(false);\n };\n\n const failCallback = function (data) {\n setLoader(false);\n toastr.error(getError(data, 0, 100), $translate.instant('jdbc.not.show.preview'));\n };\n\n if ($scope.canWriteActiveRepo()) {\n const sqlView = JSON.stringify({\n name: $scope.currentQuery.name,\n query: $scope.currentQuery.query,\n columns: $scope.currentQuery.columns || []\n });\n JdbcRestService.getNewSqlTablePreview(sqlView)\n .done(successCallback).fail(failCallback);\n } else {\n JdbcRestService.getExistingSqlTablePreview($scope.currentQuery.name)\n .done(successCallback).fail(failCallback);\n }\n }\n };\n\n $scope.setDirty = function () {\n $scope.currentQuery.isPristine = false;\n };\n\n $scope.getTypeLabel = function (type) {\n switch (type) {\n case 'iri':\n return 'VARCHAR: IRI';\n case 'string':\n return 'VARCHAR: String';\n default:\n return type.indexOf(' ') > 0 ? type : type.toUpperCase();\n }\n };\n\n function resetYasqeYasr() {\n if ($scope.page === 2) {\n $scope.viewMode = 'editor';\n } else {\n $scope.viewMode = 'none';\n }\n }\n\n function getCellContentSQL(yasr, plugin, bindings, sparqlVar, context) {\n let value = bindings[sparqlVar].value;\n value = value.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n const entityHtml = \"<p class='nonUri' style='border: none; background-color: transparent; padding: 0; margin: 0'>\"\n + value + \"</p>\";\n return \"<div class = 'literal-cell'>\" + entityHtml + \"</div>\";\n }\n\n\n function setPreviewResult(data, jqXhr, textStatus) {\n if (!data.results || !data.results.bindings || !data.results.bindings.length) {\n // Hides YASR as it may contain previous results\n toastr.info($translate.instant('jdbc.table.definition'), $translate.instant('jdbc.preview.sql'));\n } else {\n // Custom content extractor that won't insert \" in SQL values (since we treat them as fake literals)\n window.yasr.plugins.table.options.getCellContent = getCellContentSQL;\n\n // Set query type so YASR shows the results\n $scope.currentTabConfig.queryType = 'SELECT';\n window.yasr.setResponse(jqXhr, textStatus, null);\n }\n }\n\n function hasValidQuery() {\n return window.editor && window.editor.getQueryType() === 'SELECT';\n }\n\n function validateDefinition() {\n return validateQuery() && validateColumns();\n }\n\n function validateQuery() {\n if (!hasValidQuery()) {\n toastr.error($translate.instant('jdbc.warning.invalid.query'), $translate.instant('jdbc.invalid.query)'));\n return false;\n }\n\n return true;\n }\n\n function validateColumns() {\n if (!$scope.currentQuery.columns || !$scope.currentQuery.columns.length) {\n toastr.error($translate.instant('jdbc.warning.one.column.msg'), $translate.instant('jdbc.invalid.columns'));\n return false;\n }\n\n if ($scope.containsUnknownColumns()) {\n toastr.error($translate.instant('jdbc.warning.all.column.msg'), $translate.instant('jdbc.invalid.columns'));\n return false;\n }\n\n return true;\n }\n}\n","angular\n .module('graphdb.framework.rest.jdbc.service', [])\n .factory('JdbcRestService', JdbcRestService);\n\nJdbcRestService.$inject = ['$http', '$repositories', '$translate'];\n\nconst JDBC_ENDPOINT = 'rest/sql-views';\n\nfunction JdbcRestService($http, $translate) {\n\n return {\n getJdbcConfigurations,\n getJdbcConfiguration,\n createNewJdbcConfiguration,\n updateJdbcConfiguration,\n deleteJdbcConfiguration,\n getColumnNames,\n getColumnsTypeSuggestion,\n getExistingSqlTablePreview,\n getNewSqlTablePreview\n };\n\n function getJdbcConfigurations() {\n return $http.get(`${JDBC_ENDPOINT}/tables`);\n }\n\n function getJdbcConfiguration(configuration) {\n return $http.get(`${JDBC_ENDPOINT}/tables/${configuration}`);\n }\n\n function createConfiguration(method, table, configuration) {\n return $http({\n method,\n url: `${JDBC_ENDPOINT}/tables/${table}`,\n noCancelOnRouteChange: true,\n data: {\n name: configuration.name,\n query: configuration.query,\n columns: configuration.columns || []\n }\n }\n );\n }\n\n function createNewJdbcConfiguration(configuration) {\n return createConfiguration('POST', '', configuration);\n }\n\n function updateJdbcConfiguration(configuration) {\n return createConfiguration('PUT', configuration.name, configuration);\n }\n\n function deleteJdbcConfiguration(name) {\n return $http.delete(`${JDBC_ENDPOINT}/tables/${name}`);\n }\n\n function getColumnNames(query) {\n const headers = {\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'text/plain'\n }\n };\n\n return $http.post(`${JDBC_ENDPOINT}/columns`, query, headers);\n }\n\n function getColumnsTypeSuggestion(query, columns) {\n if (!Array.isArray(columns)) {\n throw new Error($translate.instant('jdbc.column.names.constraint'));\n }\n\n return $http({\n method: 'POST',\n url: `${JDBC_ENDPOINT}/types`,\n data: {\n query: query,\n column_names: columns\n }\n }\n );\n }\n function getExistingSqlTablePreview(name, limit) {\n // Limit in preview is optional. On backend default value is set to 100\n return $.ajax({\n method: 'GET',\n url: `rest/sql-views/preview/${name}`,\n params: {\n limit\n }\n })\n }\n\n function getNewSqlTablePreview(sqlView, limit) {\n // Limit in preview is optional. On backend default value is set to 100\n return $.ajax({\n method: 'POST',\n url: \"rest/sql-views/preview\",\n contentType: \"application/json; charset=utf-8\",\n dataType: 'json',\n data: sqlView,\n params: {\n limit\n },\n headers: {Accept: 'application/sparql-results+json'}\n })\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[18,43,50,91,97,105],{124:function(e,t,r){"use strict";r.r(t);r(3),r(9),r(14),r(82),r(84),r(85),r(36),r(35),r(40);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"])},34:function(e,t){function r(e,t){return{showToastMessageWithDelay:function(r){return new Promise(n=>{e.success(t.instant(r)),setTimeout(n,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",r),r.$inject=["toastr","$translate"]},36: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","$translate",function(e,n,i,a,o,s){function c(e){return $(e).attr("data-id")}function u(e){$('a[data-id = "'+e+'"]').tab("show")}e.state={},$(n).on("shown.bs.tab",(function(e){i.$broadcast("tabAction",e)})),e.deleteTab=function(l){if(l.preventDefault(),l.stopPropagation(),e.tabs.length<2)return void o.warning(s.instant("sparql.tab.directive.close.last.warning"));l.shiftKey?(e.state.selectedTabId=c(n),a.openSimpleModal({title:s.instant("common.confirm"),message:s.instant("sparql.tab.directive.delete.all.tabs.warning"),warning:!0}).result.then((function(){var n;n=e.state.selectedTabId,e.tabs=e.tabs.filter((function(e){if(e.id===n)return e})),u(e.tabs[0].id),t.set(r.TABS_STATE,e.tabs),i.$broadcast("deleteAllexeptSelected",e.tabs)}))):(e.state.idForDelete=c(n),a.openSimpleModal({title:s.instant("common.confirm"),message:s.instant("sparql.tab.directive.close.tab.warning"),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&&u(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(c(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"]},82: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}})}}},84:function(e,t,r){"use strict";r.r(t);var n=r(222),i=r.n(n),a=r(0);function o(e,t,r,n,o,s,c,u,l,d,y,p){const g="http://www.ontotext.com/graphdb/similarity/",m="http://www.ontotext.com/graphdb/similarity/psi/",f=m+"any";e.pluginName="similarity",e.pluginIsActive=!0,e.setPluginIsActive=function(t){e.pluginIsActive=t};const h=function(e){return'"'+e+'"'},w=function(e){return void 0===e||e.startsWith("<<")&&e.endsWith(">>")?e:"<"+e+">"};function x(){return!e.getActiveRepository()||e.isActiveRepoFedXType()||e.isActiveRepoOntopType()}let b;function I(){o.isLicenseValid()&&(e.getAutocompletePromise=l.checkAutocompleteStatus())}e.info=d,e.getActiveRepository=function(){return n.getActiveRepository()},x()||u.getSearchQueries().success((function(t){e.searchQueries=t})).error((function(e){const t=getError(e);r.error(t,p.instant("similarity.could.not.get.search.queries.error"))})),e.encodeURIComponent=function(e){return encodeURIComponent(e)},e.getSimilarityIndexes=function(){!x()&&e.pluginIsActive&&u.getIndexes().success((function(t){e.similarityIndexes=t})).error((function(e){const t=getError(e);r.error(t,p.instant("similarity.could.not.get.indexes.error"))}))},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()&&o.isLicenseValid()&&e.pullList(),e.$watch((function(){return n.getActiveRepository()}),(function(){!e.getActiveRepository()||e.isActiveRepoOntopType()||e.isActiveRepoFedXType()||(e.getNamespacesPromise=y.getNamespaces(e.getActiveRepository()).success((function(t){I(),e.usedPrefixes={},t.results.bindings.forEach((function(t){e.usedPrefixes[t.prefix.value]=t.namespace.value})),b=i()(document.getElementById("yasr"),{getUsedPrefixes:e.usedPrefixes,persistency:!1,hideHeader:!0})})).error((function(e){r.error(getError(e),p.instant("get.namespaces.error.msg"))})))})),e.$on("autocompleteStatus",(function(){I()})),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 v=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){v(!0);let c=i;e.lastSearch={},e.lastSearch.type=a,"searchEntityPredicate"===a&&(c=e.psiSubject,e.lastSearch.predicate=i),c="searchTerm"===a?h(c):w(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:w("http://www.ontotext.com/graphdb/similarity/instance/"+t),$query:c,$searchType:w(("text"===e.selected.type?g:m)+("searchEntityPredicate"===a?"searchEntity":a)),$resultType:w("text"===e.selected.type?g+o:m+"entityResult"),$parameters:h(s)};"searchEntityPredicate"===a&&(l.$psiPredicate=e.lastSearch.predicate?w(e.lastSearch.predicate):w(f)),"searchAnalogical"===a&&(e.searchSubject=i,l.$givenSubject=w(e.analogicalSubject),l.$givenObject=w(e.analogicalObject),l.$searchSubject=w(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){v(!1),b.setResponse(e,t,r)})).fail((function(e){r.error(getError(e),p.instant("similarity.get.resource.error")),v(!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",h(e.searchParameters?e.searchParameters:"")).replace("?psiPredicate",e.lastSearch.predicate?w(e.lastSearch.predicate):w(f)).replace("?givenSubject",w(e.analogicalSubject)).replace("?givenObject",w(e.analogicalObject)).replace("?searchSubject",w(e.searchSubject));c.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return r}}})},e.deleteIndex=function(t){s.openSimpleModal({title:p.instant("common.confirm"),message:p.instant("similarity.delete.index.warning",{name:t.name}),warning:!0}).result.then((function(){u.deleteIndex(t).then((function(){e.getSimilarityIndexes()}),(function(e){r.error(getError(e))}))}))},e.viewCreateQuery=function(e){u.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){c.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),s.openSimpleModal({title:p.instant("common.confirm"),message:Object(a.decodeHTML)(p.instant("similarity.rebuild.index.warning",{name:t.name})),warning:!0}).result.then((function(){t.status="REBUILDING",u.rebuildIndex(t).then((function(e){}),(function(e){r.error(getError(e))}))}))},e.copyToClipboardResult=function(e){s.openCopyToClipboardModal(e)},e.trimIRI=function(e){return _.trim(e,"<>")}}angular.module("graphdb.framework.similarity.controllers.list",[]).controller("SimilarityCtrl",o),o.$inject=["$scope","$interval","toastr","$repositories","$licenseService","ModalService","$modal","SimilarityRestService","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService","$translate"]},85:function(e,t,r){"use strict";r.r(t);r(34),r(4);function n(e,t,r,n,i,a,o,s,c,u,l,d,y){const p=o.search().type;void 0===p||p.startsWith("text")?e.viewType="text":e.viewType=p;e.newIndex={},e.info=s,e.page=1;const g={id:"1",name:"",query:"",inference:!0,sameAs:!0};const m=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=x("-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=x("-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,y.instant("similarity.could.not.get.indexes.error"))})),e.samples=e.allSamples.predication,window.editor&&e.setQuery(e.samples.predication))}},f=new RegExp("^[a-zA-Z0-9-_]+$"),h=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(y.instant("similarity.index.select.queries.constraint")):(t.error(y.instant("similarity.empty.analogical.query.error")),!1):(t.error(y.instant("similarity.empty.search.query.error")),!1):(t.error(y.instant("similarity.empty.select.query.error")),!1):(e.invalidIndexName=y.instant("similarity.index.name.constraint"),!1):(e.invalidIndexName=y.instant("similarity.empty.index.name.error"),!1)},w=function(t,r){e.newIndex.options=e.newIndex.options+(""===e.newIndex.options?"":" ")+t+" "+r};function x(t){const r=e.newIndex.options.split(" ");for(let n=0;n<r.length;n++)if(r[n]===t&&n+1<r.length){const t=r[n+1];return delete r[n],delete r[n+1],e.newIndex.options=r.join(" "),t}}function b(e){}function I(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 v(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(){v(!0)}function Q(e){n((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function T(r,n){e.executedQueryTab=e.currentQuery,"SELECT"===window.editor.getQueryType()?n&&"SELECT"!==window.editor.getQueryType()?t.warning(y.instant("similarity.explain.select.queries.constraint")):"update"!==window.editor.getQueryMode()?(e.explainRequested=n,e.queryIsRunning||(r?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.viewMode="editor",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch(),I(!0,y.instant("evaluating.query.msg")),window.editor.query())):t.warning(y.instant("cannot.execute.update.error")):t.error(y.instant("similarity.indexes.select.queries.constraint"))}function q(){I(!0,y.instant("common.refreshing.namespaces"),y.instant("common.extra.message")),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(){I(!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,y.instant("common.add.known.prefixes.error")),!0}))}function E(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 A(){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 R(e){return $(e).attr("data-id")}i.getSearchQueries().success((function(t){e.searchQueries=t,i.getSamples().success((function(t){g.query=o.search().selectQuery?o.search().selectQuery:t.text.literals,g.inference=!("false"===o.search().infer),g.sameAs=!("false"===o.search().sameAs),e.tabsData=e.tabs=[g],e.currentQuery=angular.copy(g),e.allSamples=t,m()}))})).error((function(e){const r=getError(e);t.error(r,y.instant("similarity.could.not.get.search.queries.error"))})),e.$watch("viewType",(function(){m()})),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(){h()&&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),A(),e.notoolbar=1!==t,e.page=t},e.createIndex=function(){h()&&i.getIndexes().success((function(r){if(r.forEach((function(t){t.name===e.newIndex.name&&(e.invalidIndexName=y.instant("similarity.existing.index.name.error"))})),!e.invalidIndexName){let r=e.viewType;if(void 0!==e.literalIndexes){const t=e.newIndex.inputIndex;t!==e.literalIndexes[0]&&w("-input_index",t)}"true"===e.newIndex.isLiteralIndex&&(w("-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),y.instant("similarity.create.index.error"))})),o.url("similarity")}})).error((function(e){const r=getError(e);t.error(r,y.instant("similarity.could.not.get.indexes.error"))}))},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=[g],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=A,e.addNewTab=function(e,t,r){},e.runQuery=T,e.getNamespaces=q,e.changePagination=function(){T(!0,e.explainRequested)},e.toggleSampleQueries=function(){},e.addKnownPrefixes=C,e.getExistingTabId=E,e.querySelected=function(t){const r=E(t);e.toggleSampleQueries(),angular.isDefined(r)?Q(r):e.addNewTab(null,t.name,t.body)},e.saveQueryToLocal=b,e.setLoader=I,e.getLoaderMessage=function(){const t=(Date.now()-e.queryStartTime)/1e3,r=e.getHumanReadableSeconds(t);let n="";n=e.progressMessage?e.progressMessage+"... "+r:y.instant("common.running.operation",{timeHuman:r});e.extraMessage&&t>10&&(n+="\n"+e.extraMessage);return n},e.fixSizesOnHorizontalViewModeSwitch=v,e.changeViewMode=function(t){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,v(),$(".dataTables_filter").remove(),$(".resultsTable").remove(),n((function(){A(),Q(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()&&q(),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(R(r.relatedTarget)),e.loadTab(R(r.target))})),e.$on("deleteAllexeptSelected",(function(t,r){e.tabsData=r,e.tabs=r})),e.currentQuery=angular.copy(g),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(y.instant("similarity.index.select.queries.constraint"));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?"similarity.changed.search.query.msg":"similarity.changed.analogical.query.msg"),o.url("similarity")}),(function(e){t.error(getError(e),y.instant("similarity.change.query.error"))}))},e.getCloseBtnMsg=function(){let t=e.editSearchQuery?y.instant("similarity.query.edition.msg"):y.instant("similarity.index.creation.msg");return y.instant("similarity.close.btn.msg",{operation:t})}}angular.module("graphdb.framework.similarity.controllers.create",["graphdb.framework.utils.notifications","graphdb.framework.utils.localstorageadapter"]).controller("CreateSimilarityIdxCtrl",n),n.$inject=["$scope","toastr","$modal","$timeout","SimilarityRestService","SparqlRestService","$location","productInfo","Notifications","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys","$translate"]}}]);
2
- //# sourceMappingURL=18.bc2da9ff57be136ef082.bundle.js.map