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 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/sparql-template/app.js","webpack:///./src/js/angular/utils/uri-utils.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/rest/sparql-templates.rest.service.js","webpack:///./src/js/angular/sparql-template/controllers.js"],"names":["angular","module","iriRegExp","factory","isValidIri","iri","undefined","match","validateRdfUri","value","hasAngleBrackets","indexOf","noAngleBrackets","lastIndexOf","validProtocol","test","validPath","schemaSlashesIdx","substring","length","RegExp","e","Notifications","toastr","$translate","showToastMessageWithDelay","message","Promise","r","success","instant","setTimeout","$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","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","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","prefix","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","SparqlTemplatesRestService","SPARQL_TEMPLATES_ENDPOINT","$http","getSparqlTemplates","getSparqlTemplate","templateID","createSparqlTemplate","post","updateSparqlTemplate","put","headers","deleteSparqlTemplate","delete","SparqlTemplatesCtrl","$licenseService","pluginName","setPluginIsActive","isPluginActive","pluginIsActive","isLicenseValid","sparqlTemplateIds","deleteTemplate","SparqlTemplateCreateCtrl","$location","UriUtils","hash","search","templateExist","oldValue","path","goBack","history","back","locationChangeListener","isPristine","confirm","removeEventListener","showBeforeunloadMessage","confirmExit","returnValue","addEventListener","isNewTemplate","canWriteActiveRepo","readOnly","setQueryFromTabConfig","setQuery","setDirty","saveNewTemplate","templateContent","saveTemplate","validateQuery","isInvalidTemplateId","templateId","modalMsg"],"mappings":"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","file":"15.ba4fe6f57951d2f73adc.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/resources/controllers';\nimport 'angular/core/services/repositories.service';\nimport 'angular/sparql-template/controllers';\nimport 'angular/rest/sparql-templates.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';\nimport 'angular/utils/uri-utils';\n\nconst modules = [\n 'toastr',\n 'ui.bootstrap',\n 'graphdb.framework.sparql-template.controllers',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.rest.sparql-templates.service',\n 'graphdb.framework.core.directives.queryeditor.controllers',\n 'graphdb.framework.core.directives.queryeditor.sparqltab',\n 'graphdb.framework.core.directives.queryeditor.queryeditor',\n 'graphdb.framework.utils.uriutils'\n];\n\nangular.module('graphdb.framework.sparql-template', modules);\n\n","angular\n .module('graphdb.framework.utils.uriutils', [])\n .factory('UriUtils', UriUtils);\n\nlet iriRegExp;\ntry {\n // Real validation but it requires a relatively new browser\n iriRegExp = new RegExp(\"^[a-z](?:[-a-z0-9\\\\+\\\\.])*:(?:\\\\/\\\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:])*@)?(?:\\\\[(?:(?:(?:[0-9a-f]{1,4}:){6}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|::(?:[0-9a-f]{1,4}:){5}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4}:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|v[0-9a-f]+[-a-z0-9\\\\._~!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:]+)\\\\]|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}|(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=@])*)(?::[0-9]*)?(?:\\\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))*)*|\\\\/(?:(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))+)(?:\\\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))*)*)?|(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))+)(?:\\\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))*)*|(?!(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@])))(?:\\\\?(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@])|[\\\\u{E000}-\\\\u{F8FF}\\\\u{F0000}-\\\\u{FFFFD}\\\\u{100000}-\\\\u{10FFFD}\\\\/\\\\?])*)?(?:#(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@])|[\\\\/\\\\?])*)?$\", \"ui\");\n} catch (e) {\n // Fallback to simple validation, works in all browsers\n iriRegExp = new RegExp(\"^[a-z](?:[-a-z0-9\\\\+\\\\.])*:\", \"i\");\n}\n\nfunction UriUtils() {\n function validateRdfUri(value) {\n const hasAngleBrackets = value.indexOf(\"<\") >= 0 && value.indexOf(\">\") >= 0;\n const noAngleBrackets = value.indexOf(\"<\") === -1 && value.lastIndexOf(\">\") === -1;\n const validProtocol = /^<?(http|urn).*>?/.test(value) && (hasAngleBrackets || noAngleBrackets);\n let validPath = false;\n if (validProtocol) {\n if (value.indexOf(\"http\") >= 0) {\n const schemaSlashesIdx = value.indexOf('//');\n validPath = schemaSlashesIdx > 4\n && value.substring(schemaSlashesIdx + 2).length > 0;\n } else if (value.indexOf(\"urn\") >= 0) {\n validPath = value.substring(4).length > 0;\n }\n }\n return validProtocol && validPath;\n }\n\n function isValidIri(iri) {\n return iri !== undefined && !!iri.match(iriRegExp);\n }\n\n return {\n isValidIri: isValidIri,\n validateRdfUri: validateRdfUri\n };\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","angular\n .module('graphdb.framework.rest.sparql-templates.service', [])\n .factory('SparqlTemplatesRestService', SparqlTemplatesRestService);\n\nSparqlTemplatesRestService.$inject = ['$http'];\n\nconst SPARQL_TEMPLATES_ENDPOINT = 'rest/sparql-template';\n\nfunction SparqlTemplatesRestService($http) {\n return {\n getSparqlTemplates,\n getSparqlTemplate,\n createSparqlTemplate,\n updateSparqlTemplate,\n deleteSparqlTemplate\n };\n\n function getSparqlTemplates() {\n return $http.get(`${SPARQL_TEMPLATES_ENDPOINT}`);\n }\n\n function getSparqlTemplate(templateID) {\n return $http.get(`${SPARQL_TEMPLATES_ENDPOINT}/configuration`,\n {\n params : {\n 'templateID': templateID\n }\n });\n }\n\n function createSparqlTemplate(template) {\n return $http.post(`${SPARQL_TEMPLATES_ENDPOINT}/create`, {\n templateID: template.templateID,\n query: template.query\n });\n }\n\n function updateSparqlTemplate(template) {\n return $http.put(`${SPARQL_TEMPLATES_ENDPOINT}/edit`,\n template.query,\n {\n params : {\n 'templateID': template.templateID\n },\n headers: {\n 'Content-Type': 'text/html'\n }\n });\n }\n\n function deleteSparqlTemplate(templateID) {\n return $http.delete(`${SPARQL_TEMPLATES_ENDPOINT}/delete`,\n {\n params : {\n 'templateID': templateID\n }\n });\n }\n}\n","import 'angular/core/services';\nimport 'angular/core/services/repositories.service';\nimport 'angular/rest/monitoring.rest.service';\nimport 'angular/utils/notifications';\nimport 'angular/utils/uri-utils';\nimport {decodeHTML} from \"../../../app\";\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.sparql-template.controllers', modules, [\n 'graphdb.framework.utils.notifications'\n])\n .controller('SparqlTemplatesCtrl', SparqlTemplatesCtrl)\n .controller('SparqlTemplateCreateCtrl', SparqlTemplateCreateCtrl);\n\nSparqlTemplatesCtrl.$inject = ['$scope', '$repositories', 'SparqlTemplatesRestService', 'toastr', 'ModalService', '$licenseService', '$translate'];\n\nfunction SparqlTemplatesCtrl($scope, $repositories, SparqlTemplatesRestService, toastr, ModalService, $licenseService, $translate) {\n\n $scope.pluginName = 'sparql-template';\n\n $scope.setPluginIsActive = function (isPluginActive) {\n $scope.pluginIsActive = isPluginActive;\n }\n\n $scope.getSparqlTemplates = function () {\n // Only do this if there is an active repo that isn't an Ontop repo.\n // Ontop repos doesn't support update operations.\n if ($licenseService.isLicenseValid() &&\n $repositories.getActiveRepository()\n && !$repositories.isActiveRepoOntopType()\n && !$repositories.isActiveRepoFedXType()) {\n SparqlTemplatesRestService.getSparqlTemplates().success(function (data) {\n $scope.sparqlTemplateIds = data;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('sparql.template.get.templates.error'));\n });\n } else {\n $scope.sparqlTemplateIds = [];\n }\n };\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n $scope.getSparqlTemplates();\n });\n\n $scope.deleteTemplate = function (templateID) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: $translate.instant('sparql.template.delete.template.warning', {templateID: templateID}),\n warning: true\n }).result\n .then(function () {\n SparqlTemplatesRestService.deleteSparqlTemplate(templateID)\n .success(function () {\n toastr.success(templateID, $translate.instant('sparql.template.delete.template.success'));\n $scope.getSparqlTemplates();\n }).error(function (e) {\n toastr.error(getError(e), $translate.instant('sparql.template.delete.template.failure', {templateID: templateID}));\n });\n });\n };\n}\n\nSparqlTemplateCreateCtrl.$inject = ['$scope', '$location', 'toastr', '$repositories', '$window', '$timeout', 'SparqlTemplatesRestService', 'RDF4JRepositoriesRestService', 'SparqlRestService', 'UriUtils', 'ModalService', '$translate'];\n\nfunction SparqlTemplateCreateCtrl($scope, $location, toastr, $repositories, $window, $timeout, SparqlTemplatesRestService, RDF4JRepositoriesRestService, SparqlRestService, UriUtils, ModalService, $translate) {\n\n const hash = $location.hash() || '';\n $scope.templateID = ($location.search().templateID || '') + (hash ? (`#${hash}`) : '');\n $scope.title = ($scope.templateID ? $translate.instant('edit') : $translate.instant('common.create.btn')) + ' SPARQL Template';\n $scope.getNamespaces = getNamespaces;\n $scope.setLoader = setLoader;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.noPadding = {paddingRight: 0, paddingLeft: 0};\n $scope.currentTabConfig = {};\n // This property is obligatory in order to show YASQUE and YASR properly\n $scope.orientationViewMode = true;\n $scope.currentQuery = {};\n let templateExist = false;\n\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n $location.path('/sparql-templates');\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 templateID: '',\n query: 'PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\\n' +\n 'PREFIX ex: <http://example.com#>\\n' +\n 'DELETE {\\n' +\n ' ?subject ex:myPredicate ?oldValue .\\n' +\n '} INSERT {\\n' +\n ' ?subject ex:myPredicate ?newValue .\\n' +\n '} WHERE {\\n' +\n ' ?id rdf:type ex:MyType .\\n' +\n ' ?subject ex:isRelatedTo ?id .\\n' +\n '}\\n',\n inference: true,\n sameAs: true,\n isNewTemplate: true,\n isPristine: true\n };\n\n $scope.saveTab = function () {\n // Should have this empty function in this view\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.templateID) {\n getSparqlTemplate($scope.templateID);\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 function getSparqlTemplate(templateID) {\n SparqlTemplatesRestService.getSparqlTemplate(templateID).success(function (templateContent) {\n defaultTabConfig.query = templateContent;\n defaultTabConfig.templateID = templateID;\n\n defaultTabConfig.isNewTemplate = !templateID;\n\n setQueryFromTabConfig();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('sparql.template.get.template.error', {templateID: $scope.currentQuery.templateID}));\n $scope.repositoryError = msg;\n });\n }\n\n function setQueryFromTabConfig() {\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n $scope.currentQuery = angular.copy(defaultTabConfig);\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.saveTemplate = function () {\n if (!validateQuery()) {\n return;\n }\n\n if (!$scope.currentQuery.templateID) {\n toastr.error($translate.instant('sparql.template.iri.constraint'));\n return;\n } else {\n validateTemplateID();\n if ($scope.isInvalidTemplateId) {\n return;\n }\n }\n\n if ($scope.currentQuery.isNewTemplate) {\n checkIfTemplateExists()\n .then(() => {\n if (templateExist) {\n const modalMsg = decodeHTML($translate.instant('sparql.template.existing.template.error', {templateID: $scope.currentQuery.templateID}));\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.save'),\n message: modalMsg,\n warning: true\n }).result\n .then(function () {\n saveNewTemplate();\n });\n } else {\n saveNewTemplate();\n }\n });\n } else {\n if (!$scope.currentQuery.isPristine) {\n SparqlTemplatesRestService.updateSparqlTemplate($scope.currentQuery).success(function () {\n $scope.currentQuery.isPristine = true;\n $scope.currentQuery.isNewTemplate = false;\n toastr.success($scope.currentQuery.templateID, $translate.instant('update.sparql.template.success.msg'));\n $scope.goBack();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('save.sparql.template.failure.msg', {templateID: $scope.currentQuery.templateID}));\n });\n } else {\n // No changes to template query, go back to\n $scope.goBack();\n }\n }\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 $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n $scope.setDirty = function () {\n $scope.currentQuery.isPristine = false;\n };\n\n function hasValidQuery() {\n return window.editor && window.editor.getQueryMode() === 'update';\n }\n\n function validateQuery() {\n if (!hasValidQuery()) {\n toastr.error($translate.instant('sparql.template.query.constraint'), $translate.instant('jdbc.invalid.query'));\n return false;\n }\n\n return true;\n }\n\n function validateTemplateID() {\n $scope.isInvalidTemplateId = !UriUtils.isValidIri($scope.currentQuery.templateID);\n }\n\n function saveNewTemplate() {\n SparqlTemplatesRestService.createSparqlTemplate($scope.currentQuery).success(function () {\n $scope.currentQuery.isPristine = true;\n $scope.currentQuery.isNewTemplate = false;\n toastr.success($scope.currentQuery.templateID, $translate.instant('save.sparql.template.success.msg'));\n $scope.goBack();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('save.sparql.template.failure.msg', {templateID: $scope.currentQuery.templateID}));\n });\n }\n\n function checkIfTemplateExists() {\n return SparqlTemplatesRestService\n .getSparqlTemplates()\n .success(function (data) {\n templateExist = data.find((templateId) => templateId === $scope.currentQuery.templateID);\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('sparql.template.get.templates.error'));\n });\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[150],{211:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<div class="modal-header">\n <button type="button" class="close" ng-click="cancel()"></button>\n <h4 class="modal-title">{{\'update.file.content.header\' | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <div class="form-group">\n <textarea id="wb-repository-file-textarea" class="form-control" rows="10" ng-model="fileContent"\n placeholder="{{\'update.file.content.placeholder\' | translate}}"\n popover="{{\'update.file.content.tooltip\' | translate}}"\n popover-placement="bottom"\n popover-trigger="focus"></textarea>\n </div>\n</div>\n\n<div class="modal-footer">\n <div>\n <button type="button" ng-click="cancel()" class="btn btn-secondary">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-repository-saveFile" class="btn btn-primary" type="button"\n ng-click="ok()">{{\'common.save.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
2
- //# sourceMappingURL=150.6d8e3bb0cbc5774322d9.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/templates/modal/editRepoFile.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,w9BAGP,OAAOA","file":"150.6d8e3bb0cbc5774322d9.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<div class=\"modal-header\">\\n <button type=\"button\" class=\"close\" ng-click=\"cancel()\"></button>\\n <h4 class=\"modal-title\">{{\\'update.file.content.header\\' | translate}}</h4>\\n</div>\\n\\n<div class=\"modal-body\">\\n <div class=\"form-group\">\\n <textarea id=\"wb-repository-file-textarea\" class=\"form-control\" rows=\"10\" ng-model=\"fileContent\"\\n placeholder=\"{{\\'update.file.content.placeholder\\' | translate}}\"\\n popover=\"{{\\'update.file.content.tooltip\\' | translate}}\"\\n popover-placement=\"bottom\"\\n popover-trigger=\"focus\"></textarea>\\n </div>\\n</div>\\n\\n<div class=\"modal-footer\">\\n <div>\\n <button type=\"button\" ng-click=\"cancel()\" class=\"btn btn-secondary\">{{\\'common.cancel.btn\\' | translate}}</button>\\n <button id=\"wb-repository-saveFile\" class=\"btn btn-primary\" type=\"button\"\\n ng-click=\"ok()\">{{\\'common.save.btn\\' | translate}}</button>\\n </div>\\n</div>\\n';\n\n}\nreturn __p\n}"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[151],{212:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='\x3c!-- Start editLocation.html --\x3e\n\n<div class="modal-header">\n\t<button class="close" ng-click="cancel();" aria-hidden="true"></button>\n\t<h3 class="modal-title">{{\'upload.repo.config.header\' | translate}}</h3>\n</div>\n<div class="modal-body">\n\t<div class="btn btn-outline-primary btn-lg btn-block" ng-if="!editRepoPage">\n\t\t<a ngf-select ngf-change="upload($files)" ngf-multiple="false" class="selectFiles pointer clearfix"\n\t\t accept=".ttl" tooltip="{{\'select.repo.config.tooltip\' | translate}}" tooltip-trigger="mouseenter">\n\t\t\t<em class="icon-upload icon-lg pull-left" tooltip="Select files" tooltip-trigger="mouseenter" tooltip-append-to-body="true"></em>\n\t\t\t<div class="pull-left">\n\t\t\t\t<span>{{\'upload.ttl.file.btn\' | translate}}</span>\n\t\t\t\t<br>\n\t\t\t\t<small ng-hide="uploadFile" class="text-muted">{{\'no.file.selected.error\' | translate}}</small>\n\t\t\t\t<small ng-show="uploadFile" class="text-muted"\n translate="selected.file.msg"\n translate-value-name="{{uploadFile.name}}"></small>\n\t\t\t</div>\n\t\t\t<div ng-show="uploadFileLoader" onto-loader size="48" class="ot-loader pull-right"></div>\n\t\t</a>\n\t</div>\n</div>\n<div class="modal-footer">\n <button type="button" class="btn btn-secondary" ng-click="cancel()">{{\'common.cancel.btn\' | translate}}</button>\n <button class="btn btn-primary" ng-click="ok()">{{\'common.create.btn\' | translate}}</button>\n</div>\n\n\x3c!-- End editLocation.html --\x3e\n';return __p}}}]);
2
- //# sourceMappingURL=151.c752cbb4d5f9299df813.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/templates/modal/upload-repository-config.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,++CAGP,OAAOA","file":"151.c752cbb4d5f9299df813.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<!-- Start editLocation.html -->\\n\\n<div class=\"modal-header\">\\n\t<button class=\"close\" ng-click=\"cancel();\" aria-hidden=\"true\"></button>\\n\t<h3 class=\"modal-title\">{{\\'upload.repo.config.header\\' | translate}}</h3>\\n</div>\\n<div class=\"modal-body\">\\n\t<div class=\"btn btn-outline-primary btn-lg btn-block\" ng-if=\"!editRepoPage\">\\n\t\t<a ngf-select ngf-change=\"upload($files)\" ngf-multiple=\"false\" class=\"selectFiles pointer clearfix\"\\n\t\t accept=\".ttl\" tooltip=\"{{\\'select.repo.config.tooltip\\' | translate}}\" tooltip-trigger=\"mouseenter\">\\n\t\t\t<em class=\"icon-upload icon-lg pull-left\" tooltip=\"Select files\" tooltip-trigger=\"mouseenter\" tooltip-append-to-body=\"true\"></em>\\n\t\t\t<div class=\"pull-left\">\\n\t\t\t\t<span>{{\\'upload.ttl.file.btn\\' | translate}}</span>\\n\t\t\t\t<br>\\n\t\t\t\t<small ng-hide=\"uploadFile\" class=\"text-muted\">{{\\'no.file.selected.error\\' | translate}}</small>\\n\t\t\t\t<small ng-show=\"uploadFile\" class=\"text-muted\"\\n translate=\"selected.file.msg\"\\n translate-value-name=\"{{uploadFile.name}}\"></small>\\n\t\t\t</div>\\n\t\t\t<div ng-show=\"uploadFileLoader\" onto-loader size=\"48\" class=\"ot-loader pull-right\"></div>\\n\t\t</a>\\n\t</div>\\n</div>\\n<div class=\"modal-footer\">\\n <button type=\"button\" class=\"btn btn-secondary\" ng-click=\"cancel()\">{{\\'common.cancel.btn\\' | translate}}</button>\\n <button class=\"btn btn-primary\" ng-click=\"ok()\">{{\\'common.create.btn\\' | translate}}</button>\\n</div>\\n\\n<!-- End editLocation.html -->\\n';\n\n}\nreturn __p\n}"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[152],{213:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<div ng-init="getRepositorySize()" style="margin: -4px 0; padding: 10px">\n\t<div class="row">\n\t\t<label style="margin-right: 10px">{{\'type.label\' | translate}}</label>\n\t\t<span class="text-right pull-right">\n\t\t\t{{toHumanReadableType(popoverRepo.type)}}\n\t\t</span>\n\t</div>\n\t<div class="row mb-1">\n\t\t<label style="margin-right: 10px">{{\'access.label\' | translate}}</label>\n\t\t<span class="text-right pull-right">\n\t\t\t{{(popoverRepo.writable && canWriteRepoInActiveLocation(popoverRepo.id) && popoverRepo.type !== \'ontop\') ? \'read.write.label\' : \'read.only.label\' | translate}}\n\t\t</span>\n\t</div>\n\t<div ng-show="repositorySize.total >= 0">\n\t\t<div class="row" ng-show="repositorySize.total >= 0" style="margin-top: 0">\n\t\t\t\t<label style="margin-right: 10px">{{\'total.statements.label\' | translate}}</label>\n\t\t\t<span class="text-right pull-right">\n\t\t\t\t{{repositorySize.total | currency:\'\':0}}\n\t\t\t</span>\n\t\t</div>\n\t\t<div class="row" ng-show="repositorySize.explicit >= 0" style="margin-top: 0">\n\t\t\t\t<label style="margin-right: 10px">{{\'explicit.label\' | translate}}</label>\n\t\t\t<span class="text-right pull-right">\n\t\t\t\t{{repositorySize.explicit != 0 ? (repositorySize.explicit | currency:\'\':0) : 0}}\n\t\t\t</span>\n\t\t</div>\n\t\t<div class="row" ng-show="repositorySize.inferred >= 0" style="margin-top: 0">\n\t\t\t<label style="margin-right: 10px">{{\'inferred.label\' | translate}}</label>\n\t\t\t<span class="text-right pull-right">\n\t\t\t\t{{repositorySize.inferred | currency:\'\':0}}\n\t\t\t</span>\n\t\t</div>\n\t\t<div class="row" ng-show="repositorySize.explicit >= 0" style="margin-top: 0">\n\t\t\t\t<label style="margin-right: 10px">{{\'expansion.ratio.label\' | translate}}</label>\n\t\t\t<span class="text-right pull-right">\n\t\t\t\t{{repositorySize.explicit != 0 ? (repositorySize.total/repositorySize.explicit | currency:\'\') : \'-\'}}\n\t\t\t</span>\n\t\t</div>\n\t</div>\n\t<div class="row" ng-hide="repositorySize.loading || repositorySize.total >= 0">\n\t\t{{\'size.info.not.available\' | translate}}\n\t</div>\n\t<div class="row" class="row" ng-show="repositorySize.loading">\n\t\t{{\'common.loading\' | translate}}\n\t</div>\n</div>\n';return __p}}}]);
2
- //# sourceMappingURL=152.78d7840c4b8f93748bfe.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/templates/repositorySize.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,osEAGP,OAAOA","file":"152.78d7840c4b8f93748bfe.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<div ng-init=\"getRepositorySize()\" style=\"margin: -4px 0; padding: 10px\">\\n\t<div class=\"row\">\\n\t\t<label style=\"margin-right: 10px\">{{\\'type.label\\' | translate}}</label>\\n\t\t<span class=\"text-right pull-right\">\\n\t\t\t{{toHumanReadableType(popoverRepo.type)}}\\n\t\t</span>\\n\t</div>\\n\t<div class=\"row mb-1\">\\n\t\t<label style=\"margin-right: 10px\">{{\\'access.label\\' | translate}}</label>\\n\t\t<span class=\"text-right pull-right\">\\n\t\t\t{{(popoverRepo.writable && canWriteRepoInActiveLocation(popoverRepo.id) && popoverRepo.type !== \\'ontop\\') ? \\'read.write.label\\' : \\'read.only.label\\' | translate}}\\n\t\t</span>\\n\t</div>\\n\t<div ng-show=\"repositorySize.total >= 0\">\\n\t\t<div class=\"row\" ng-show=\"repositorySize.total >= 0\" style=\"margin-top: 0\">\\n\t\t\t\t<label style=\"margin-right: 10px\">{{\\'total.statements.label\\' | translate}}</label>\\n\t\t\t<span class=\"text-right pull-right\">\\n\t\t\t\t{{repositorySize.total | currency:\\'\\':0}}\\n\t\t\t</span>\\n\t\t</div>\\n\t\t<div class=\"row\" ng-show=\"repositorySize.explicit >= 0\" style=\"margin-top: 0\">\\n\t\t\t\t<label style=\"margin-right: 10px\">{{\\'explicit.label\\' | translate}}</label>\\n\t\t\t<span class=\"text-right pull-right\">\\n\t\t\t\t{{repositorySize.explicit != 0 ? (repositorySize.explicit | currency:\\'\\':0) : 0}}\\n\t\t\t</span>\\n\t\t</div>\\n\t\t<div class=\"row\" ng-show=\"repositorySize.inferred >= 0\" style=\"margin-top: 0\">\\n\t\t\t<label style=\"margin-right: 10px\">{{\\'inferred.label\\' | translate}}</label>\\n\t\t\t<span class=\"text-right pull-right\">\\n\t\t\t\t{{repositorySize.inferred | currency:\\'\\':0}}\\n\t\t\t</span>\\n\t\t</div>\\n\t\t<div class=\"row\" ng-show=\"repositorySize.explicit >= 0\" style=\"margin-top: 0\">\\n\t\t\t\t<label style=\"margin-right: 10px\">{{\\'expansion.ratio.label\\' | translate}}</label>\\n\t\t\t<span class=\"text-right pull-right\">\\n\t\t\t\t{{repositorySize.explicit != 0 ? (repositorySize.total/repositorySize.explicit | currency:\\'\\') : \\'-\\'}}\\n\t\t\t</span>\\n\t\t</div>\\n\t</div>\\n\t<div class=\"row\" ng-hide=\"repositorySize.loading || repositorySize.total >= 0\">\\n\t\t{{\\'size.info.not.available\\' | translate}}\\n\t</div>\\n\t<div class=\"row\" class=\"row\" ng-show=\"repositorySize.loading\">\\n\t\t{{\\'common.loading\\' | translate}}\\n\t</div>\\n</div>\\n';\n\n}\nreturn __p\n}"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/templates/titlePopoverTemplate.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,wIAGP,OAAOA","file":"153.ebc378a7a60222b69484.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<div class=\"help-info\">\\n <h4>{{title}}</h4>\\n <p ng-bind-html=\"helpInfo\">\\n <!--{{helpInfo}}-->\\n </p>\\n</div>';\n\n}\nreturn __p\n}"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[154],{206:function(p,a,d){p.exports=d.p+"img/graphdb-small.635110bdf15de2ad589b6e3fdaa75887.svg"}}]);
2
- //# sourceMappingURL=154.4452ad65074e44967389.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/templates/graphdb-small.svg"],"names":["module","exports"],"mappings":"+EAAAA,EAAOC,QAAU,IAA0B","file":"154.4452ad65074e44967389.bundle.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/graphdb-small.635110bdf15de2ad589b6e3fdaa75887.svg\";"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[155],{207:function(a,o,p){a.exports=p.p+"img/ot-loader.258a202708a014a48cfaa50891b58540.svg"}}]);
2
- //# sourceMappingURL=155.12819130f26753e109ad.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/templates/loader/ot-loader.svg"],"names":["module","exports"],"mappings":"+EAAAA,EAAOC,QAAU,IAA0B","file":"155.12819130f26753e109ad.bundle.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/ot-loader.258a202708a014a48cfaa50891b58540.svg\";"],"sourceRoot":""}
@@ -1,4 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[16,32,47,53,106],{229:function(e,t){
2
- /*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */
3
- !function(e,t){"use strict";!function(e){e.module("angucomplete-alt-onto",[]).directive("angucompleteAltOnto",["$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope",function(e,t,u,n,r,a,l,i){var o=40,F=39,s=38,c=37,d=27,g=13,p=9,f=3,h=524288,D=500,m=200,w="autocomplete-required",v="Searching...",b="No results found";function x(t,a,l,i){var x,y,S,C,$,I,R=a.find("input"),E=f,M=null,A=w,L=null,j=null,O=a[0].querySelector(".angucomplete-dropdown"),B=!1,X=null;function U(e,u){e&&("object"==typeof e?(t.uri=_(e),q({originalObject:e})):"string"==typeof e&&e.length>0?t.uri=e:console&&console.error&&console.error("Tried to set "+(u?"initial":"")+" value of angucomplete to",e,"which is an invalid value"),N(!0))}function k(e){X=null,t.hideResults(e),document.body.removeEventListener("click",k)}function z(e){return e.which?e.which:e.keyCode}function q(e){"function"==typeof t.selectedObject?t.selectedObject(e):t.selectedObject=e,N(!!e)}function _(e){return t.titleField.split(",").map((function(t){return H(e,t)})).join(" ")}function H(e,t){var u,n;if(t){u=t.split("."),n=e;for(var r=0;r<u.length;r++)n=n[u[r]]}else n=e;return n}function T(e,u){var r,a,l;if(l=new RegExp(u.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),e)return e.match&&e.replace||(e=e.toString()),r=(a=e.match(l))?e.replace(l,'<span class="'+t.matchClass+'">'+a[0]+"</span>"):e,n.trustAsHtml(r)}function N(e){t.notEmpty=e,L=t.uri,t.fieldRequired&&i&&t.inputName&&i[t.inputName].$setValidity(A,e)}function V(e){!t.overrideSuggestions||t.selectedObject&&t.selectedObject.originalObject===t.uri||(e&&e.preventDefault(),r.cancel(M),K(),q({originalObject:t.uri}),t.clearSelected&&(t.uri=null),ee())}function W(){return a[0].querySelectorAll(".angucomplete-row")[t.currentIndex]}function Y(e){O.scrollTop=O.scrollTop+e}function J(){var e=t.results[t.currentIndex];if(t.matchClass){var u=_(e.originalObject);u=u.replace(/<b>|<\/b>/g,""),R.val(u)}else R.val(e.title)}function P(e){return function(u,n,r,a){n||r||a||!u.data||(u=u.data),t.searching=!1,ne(H(y(u),t.remoteUrlDataField),e)}}function G(e,u,n,r){0!==u&&-1!==u&&(u||n||r||(u=e.status),t.remoteUrlErrorCallback?t.remoteUrlErrorCallback(e,u,n,r):console&&console.error&&console.error("http error"))}function K(){j&&j.resolve()}function Q(n){var r={},a=t.remoteUrl+encodeuriComponent(n);t.remoteUrlRequestFormatter&&(r={params:t.remoteUrlRequestFormatter(n)},a=t.remoteUrl),t.remoteUrlRequestWithCredentials&&(r.withCredentials=!0),K(),j=e.defer(),r.timeout=j.promise,u.get(a,r).success(P(n)).error(G)}function Z(u){K(),j=e.defer(),t.remoteApiHandler(u,j.promise).then(P(u)).catch(G)}function ee(){t.showDropdown=!1,t.results=[],O&&(O.scrollTop=0)}function te(){t.showDropdown=C,t.currentIndex=t.focusFirst?0:-1,t.results=[]}function ue(e){!e||e.length<E||(t.localData?t.$apply((function(){var u;u=void 0!==t.localSearch()?t.localSearch()(e):function(e){var u,n,r,a,l=t.searchFields.split(","),i=[];for(void 0!==t.parseInput()&&(e=t.parseInput()(e)),u=0;u<t.localData.length;u++){for(n=!1,r=0;r<l.length;r++)a=H(t.localData[u],l[r])||"",n=n||a.toString().toLowerCase().indexOf(e.toString().toLowerCase())>=0;n&&(i[i.length]=t.localData[u])}return i}(e),t.searching=!1,ne(u,e)})):t.remoteApiHandler?Z(e):Q(e))}function ne(e,u){var n,r,a,l,i,o;if(e&&e.length>0)for(t.results=[],n=0;n<e.length;n++)t.titleField&&""!==t.titleField&&(l=i=_(e[n])),r="",t.descriptionField&&(r=o=H(e[n],t.descriptionField)),a="",t.imageField&&(a=H(e[n],t.imageField)),t.matchClass&&(i=T(l,u),o=T(r,u)),t.results[t.results.length]={title:i,description:o,image:a,originalObject:e[n]};else t.results=[];t.autoMatch&&1===t.results.length&&function(e,u,n){if(!n)return!1;for(var r in u)if(u[r].toLowerCase()===n.toLowerCase())return t.selectResult(e),!0;return!1}(t.results[0],{title:l,desc:r||""},t.uri)?t.showDropdown=!1:0!==t.results.length||$?t.showDropdown=!0:t.showDropdown=!1}function re(){t.localData?ne(t.localData,""):t.remoteApiHandler?Z(""):Q("")}a.on("mousedown",(function(e){e.target.id?(X=e.target.id)===t.id+"_dropdown"&&document.body.addEventListener("click",k):X=e.target.className})),t.currentIndex=t.focusFirst?0:null,t.searching=!1,S=t.$watch("initialValue",(function(e){e&&(S(),U(e,!0))})),t.$watch("fieldRequired",(function(e,u){e!==u&&(e?L&&-1!==t.currentIndex?N(!0):N(!1):i[t.inputName].$setValidity(A,!0))})),t.$on("angucomplete-alt:clearInput",(function(e,u){u&&u!==t.id||(t.uri=null,q(),N(!1),ee())})),t.$on("angucomplete-alt:changeInput",(function(e,u,n){u&&u===t.id&&U(n)})),t.onFocusHandler=function(){t.focusIn&&t.focusIn(),0!==E||t.uri&&0!==t.uri.length||(t.currentIndex=t.focusFirst?0:t.currentIndex,t.showDropdown=!0,re())},t.hideResults=function(){X&&(X===t.id+"_dropdown"||X.indexOf("angucomplete")>=0)?X=null:(x=r((function(){ee(),t.$apply((function(){t.uri&&t.uri.length>0&&R.val(t.uri)}))}),m),K(),t.focusOut&&t.focusOut(),t.overrideSuggestions&&t.uri&&t.uri.length>0&&-1===t.currentIndex&&V())},t.resetHideResults=function(){x&&r.cancel(x)},t.hoverRow=function(e){t.currentIndex=e},t.selectResult=function(e){t.matchClass&&(e.title=_(e.originalObject),"string"==typeof e.title&&(e.title=e.title.replace(/<b>|<\/b>/g,"")),e.description=H(e.originalObject,t.descriptionField)),t.clearSelected?t.uri=null:t.uri=e.title,q(e),ee()},t.inputChangeHandler=function(e){return e.length<E?(K(),ee()):0===e.length&&0===E&&(t.searching=!1,re()),t.inputChanged&&(e=t.inputChanged(e)),e},t.fieldRequiredClass&&""!==t.fieldRequiredClass&&(A=t.fieldRequiredClass),t.minlength&&""!==t.minlength&&(E=parseInt(t.minlength,10)),t.pause||(t.pause=D),t.clearSelected||(t.clearSelected=!1),t.overrideSuggestions||(t.overrideSuggestions=!1),t.fieldRequired&&i&&(t.initialValue?N(!0):N(!1)),t.inputType=l.type?l.type:"text",t.textSearching=l.textSearching?l.textSearching:v,t.textNoResults=l.textNoResults?l.textNoResults:b,C="false"!==t.textSearching,$="false"!==t.textNoResults,t.maxlength=l.maxlength?l.maxlength:h,R.on("keydown",(function(e){var u=z(e),n=null,r=null;u===g&&t.results?(t.currentIndex>=0&&t.currentIndex<t.results.length?(e.preventDefault(),t.selectResult(t.results[t.currentIndex])):(V(e),ee()),t.$apply()):u===o&&t.results?(e.preventDefault(),t.currentIndex+1<t.results.length&&t.showDropdown&&(t.$apply((function(){t.currentIndex++,J()})),B&&(n=W(),O.getBoundingClientRect().top+parseInt(getComputedStyle(O).maxHeight,10)<n.getBoundingClientRect().bottom&&Y(function(e){var t=getComputedStyle(e);return e.offsetHeight+parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}(n))))):u===s&&t.results?(e.preventDefault(),t.currentIndex>=1?(t.$apply((function(){t.currentIndex--,J()})),B&&(r=W().getBoundingClientRect().top-(O.getBoundingClientRect().top+parseInt(getComputedStyle(O).paddingTop,10)))<0&&Y(r-1)):0===t.currentIndex&&t.$apply((function(){t.currentIndex=-1,R.val(t.uri)}))):u===p?t.results&&t.results.length>0&&t.showDropdown?-1===t.currentIndex&&t.overrideSuggestions?V():(-1===t.currentIndex&&(t.currentIndex=0),t.selectResult(t.results[t.currentIndex]),t.$digest()):t.uri&&t.uri.length>0&&V():u===d&&e.preventDefault()})),R.on("keyup",(function(e){var u=z(e);if(u!==c&&u!==F)if(u===s||u===g)e.preventDefault();else if(u===o)e.preventDefault(),!t.showDropdown&&t.uri&&t.uri.length>=E&&(te(),t.searching=!0,ue(t.uri));else if(u===d)ee(),t.$apply((function(){R.val(t.uri)}));else{if(0===E&&!t.uri)return;t.uri&&""!==t.uri?t.uri.length>=E&&(te(),M&&r.cancel(M),t.searching=!0,M=r((function(){ue(t.uri)}),t.pause)):t.showDropdown=!1,L&&L!==t.uri&&!t.clearSelected&&t.$apply((function(){q()}))}})),I="remoteUrlResponseFormatter",y=function(e){return t[I]?t[I](e):e},r((function(){var e=getComputedStyle(O);B=e.maxHeight&&"auto"===e.overflowY}))}return(a.put("/angucomplete-alt/index.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}"> <input id="{{id}}_value" name="{{inputName}}" tabindex="{{fieldTabindex}}" ng-class="{\'angucomplete-input-not-empty\': notEmpty}" ng-model="uri" ng-disabled="disableInput" type="{{inputType}}" placeholder="{{placeholder}}" maxlength="{{maxlength}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(uri)" style="overflow: hidden; padding-right: .5em;"/> <div id="{{id}}_dropdown" class="angucomplete-dropdown" ng-show="disableSuggestions && showDropdown"> <div class="angucomplete-searching" ng-show="searching" ng-bind="textSearching"></div> <div class="angucomplete-searching" ng-show="!searching && (!results || results.length == 0)" ng-bind="textNoResults"></div> <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}"> <div ng-if="imageField" class="angucomplete-image-holder"> <img ng-if="result.image && result.image != \'\'" ng-src="{{result.image}}" class="angucomplete-image"/> <div ng-if="!result.image && result.image != \'\'" class="angucomplete-image-default"></div> </div> <div class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></div> <div class="angucomplete-title" ng-if="!matchClass">{{ result.title }}</div> <div ng-if="matchClass && result.description && result.description != \'\'" class="angucomplete-description" ng-bind-html="result.description"></div> <div ng-if="!matchClass && result.description && result.description != \'\'" class="angucomplete-description">{{result.description}}</div> </div> </div></div>'),{restrict:"EA",require:"^?form",scope:{selectedObject:"=",disableInput:"=",disableSuggestions:"=",initialValue:"=",localData:"=",localSearch:"&",remoteUrlRequestFormatter:"=",remoteUrlRequestWithCredentials:"@",remoteUrlResponseFormatter:"=",remoteUrlErrorCallback:"=",remoteApiHandler:"=",id:"@",type:"@",placeholder:"@",remoteUrl:"@",remoteUrlDataField:"@",titleField:"@",descriptionField:"@",imageField:"@",inputClass:"@",pause:"@",searchFields:"@",minlength:"@",matchClass:"@",clearSelected:"@",overrideSuggestions:"@",fieldRequired:"=",fieldRequiredClass:"@",inputChanged:"=",autoMatch:"@",focusOut:"&",focusIn:"&",fieldTabindex:"@",inputName:"@",focusFirst:"@",parseInput:"&"},templateUrl:function(e,t){return t.templateUrl||"/angucomplete-alt/index.html"},compile:function(e){var t=l.startSymbol(),u=l.endSymbol();if("{{"!==t||"}}"!==u){var n=e.html().replace(/\{\{/g,t).replace(/\}\}/g,u);e.html(n)}return x}})}])}(window.angular)}()},33:function(e,t){let u;angular.module("graphdb.framework.utils.uriutils",[]).factory("UriUtils",(function(){return{isValidIri:function(e){return void 0!==e&&!!e.match(u)},validateRdfUri:function(e){const t=e.indexOf("<")>=0&&e.indexOf(">")>=0,u=-1===e.indexOf("<")&&-1===e.lastIndexOf(">"),n=/^<?(http|urn).*>?/.test(e)&&(t||u);let r=!1;if(n)if(e.indexOf("http")>=0){const t=e.indexOf("//");r=t>4&&e.substring(t+2).length>0}else e.indexOf("urn")>=0&&(r=e.substring(4).length>0);return n&&r}}}));try{u=new RegExp("^[a-z](?:[-a-z0-9\\+\\.])*:(?:\\/\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:])*@)?(?:\\[(?:(?:(?:[0-9a-f]{1,4}:){6}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|::(?:[0-9a-f]{1,4}:){5}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4}:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|v[0-9a-f]+[-a-z0-9\\._~!\\$&'\\(\\)\\*\\+,;=:]+)\\]|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}|(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=@])*)(?::[0-9]*)?(?:\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))*)*|\\/(?:(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))+)(?:\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))*)*)?|(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))+)(?:\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@]))*)*|(?!(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@])))(?:\\?(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@])|[\\u{E000}-\\u{F8FF}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}\\/\\?])*)?(?:#(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\._~\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}!\\$&'\\(\\)\\*\\+,;=:@])|[\\/\\?])*)?$","ui")}catch(e){u=new RegExp("^[a-z](?:[-a-z0-9\\+\\.])*:","i")}},50:function(e,t){function u(e){return{restrict:"A",scope:{min:"=",max:"="},link:function(t,u,n){const r={debounce:_.debounce,delay:100,loadDelay:10,compressor:1,min:n.fitTextMin||"inherit",max:n.fitTextMax||"inherit",calcSize:10,lines:1},a=u.parent(),l=u[0],i=l.style,o=window.getComputedStyle(u[0],null),F=u.children().length||r.lines,s="inherit"===r.min?o["font-size"]:r.min,c="inherit"===r.max?o["font-size"]:r.max,d=o["line-height"],g=o.display;let p;function f(){const e=r.calcSize*F/l.offsetWidth/F;return Math.max(Math.min(function(e){const t=parseFloat(getComputedStyle(a[0]).paddingLeft),u=parseFloat(getComputedStyle(a[0]).paddingRight);return(a[0].offsetWidth-(t+u))*e*r.compressor}(e),parseFloat(c)),parseFloat(s))}function h(){p&&e.cancel(p),p=e((function(){l.offsetHeight*l.offsetWidth!=0&&(i.fontSize=r.calcSize+"px",i.lineHeight="1",i.display="inline-block",i.fontSize=f()+"px",i.lineHeight=d,i.display=g)}),r.loadDelay)}t.$watch((function(){return[a[0].offsetWidth,u[0].offsetWidth].join("_")}),(function(){h()})),$(window).on("resize",r.debounce((function(){t.$apply(h)}),r.delay)),t.$on("$destroy",(function(){p&&e.cancel(p),$(window).off("resize")}))}}}angular.module("graphdb.framework.core.directives.fittext",[]).directive("fitText",u),u.$inject=["$timeout"]},51:function(e,t){function u(){return{transformToTrig:function(e){let t="";const u={};for(let t=0;t<e.length;t++){const n=e[t];if(void 0===n.context?n.context="":n.context=_.trim(n.context),angular.isUndefined(u[n.context])){const e=[];e.push(n),u[n.context]=e}else u[n.context].push(n)}const n=Object.keys(u);for(let e=0;e<n.length;e++){const r=n[e];t+=""===r?"\n{":"\n<"+r+"> {";const a=u[r];for(let e=0;e<a.length;e++){const u=a[e];t+="\n\t<"+u.subject+"> <"+u.predicate+"> ","uri"===u.object.type?t+="<"+u.object.value+"> .":t+='"'+u.object.value+'"'+(u.object.datatype?"^^<"+u.object.datatype+">":u.object.lang?"@"+u.object.lang:"")+" ."}t+="\n}"}return t},buildStatements:function(e,t){const u=[];if(!_.isEmpty(e.data)){const n=e.data[t],r=Object.keys(n);for(let e=0;e<r.length;e++){const a=r[e],l=n[a];for(let e=0;e<l.length;e++){const n=l[e];for(let e=0;e<n.graphs.length;e++){let r=n.graphs[e];"http://www.ontotext.com/explicit"===r&&(r=""),n.lang&&(n.datatype=""),n.datatype||(n.datatype=""),u.push({subject:t,predicate:a,object:{value:n.value,type:n.type,datatype:n.datatype,lang:n.lang},context:r})}}}}return u},getDatatypeOptions:function(){return[{value:"",label:"string"},{value:"http://www.w3.org/2001/XMLSchema#boolean",label:"boolean"},{value:"http://www.w3.org/2001/XMLSchema#decimal",label:"decimal"},{value:"http://www.w3.org/2001/XMLSchema#integer",label:"integer"},{value:"http://www.w3.org/2001/XMLSchema#double",label:"double"},{value:"http://www.w3.org/2001/XMLSchema#float",label:"float"},{value:"http://www.w3.org/2001/XMLSchema#date",label:"date"},{value:"http://www.w3.org/2001/XMLSchema#time",label:"time"},{value:"http://www.w3.org/2001/XMLSchema#dateTime",label:"date time"},{value:"http://www.w3.org/2001/XMLSchema#byte",label:"byte"},{value:"http://www.w3.org/2001/XMLSchema#short",label:"short"},{value:"http://www.w3.org/2001/XMLSchema#int",label:"int"},{value:"http://www.w3.org/2001/XMLSchema#long",label:"long"},{value:"http://www.w3.org/2001/XMLSchema#unsignedByte",label:"unsigned byte"},{value:"http://www.w3.org/2001/XMLSchema#unsignedShort",label:"unsigned short"},{value:"http://www.w3.org/2001/XMLSchema#unsignedInt",label:"unsigned int"},{value:"http://www.w3.org/2001/XMLSchema#unsignedLong",label:"unsigned long"},{value:"http://www.w3.org/2001/XMLSchema#positoveInteger",label:"positive integer"},{value:"http://www.w3.org/2001/XMLSchema#nonNegativeInteger",label:"non-negative integer"},{value:"http://www.w3.org/2001/XMLSchema#negativeInteger",label:"negative integer"},{value:"http://www.w3.org/2001/XMLSchema#nonPositiveInteger",label:"non-positive integer"},{value:"http://www.w3.org/2001/XMLSchema#gYear",label:"gYear"},{value:"http://www.w3.org/2001/XMLSchema#gMonth",label:"gMonth"},{value:"http://www.w3.org/2001/XMLSchema#gDay",label:"gDay"},{value:"http://www.w3.org/2001/XMLSchema#gYearMonth",label:"gYearMonth"},{value:"http://www.w3.org/2001/XMLSchema#gMonthDay",label:"gMonthDay"},{value:"http://www.w3.org/2001/XMLSchema#duration",label:"duration"},{value:"http://www.w3.org/2001/XMLSchema#hexBinary",label:"hex binary"},{value:"http://www.w3.org/2001/XMLSchema#base64Binary",label:"base64 binary"}]}}}angular.module("graphdb.framework.explore.services",[]).factory("StatementsService",u),u.$inject=[]},52:function(e,t,u){"use strict";u.r(t);u(33);angular.module("graphdb.framework.explore.directives",["graphdb.framework.utils.uriutils"]).directive("uri",["UriUtils",function(e){return{require:"ngModel",link:function(t,u,n,r){r.$parsers.unshift((function(t){if(!angular.isUndefined(t)&&t.length>0){const u=e.validateRdfUri(t);return r.$setValidity("searchStr",u),u?t:void 0}return r.$setValidity("searchStr",!0),t})),r.$formatters.unshift((function(t){return angular.isUndefined(t)||r.$setValidity("searchStr",e.validateRdfUri),t}))}}}])},95:function(e,t,u){"use strict";u.r(t);u(3),u(9),u(51),u(88),u(52),u(225),u(229),u(50);angular.module("graphdb.framework.explore",["ngRoute","toastr","xeditable","angucomplete-alt-onto","graphdb.framework.explore.services","graphdb.framework.explore.controllers","graphdb.framework.explore.directives","graphdb.framework.core.directives.fittext"])}}]);
4
- //# sourceMappingURL=16.a236b38d63123b1a3c61.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/lib/angucomplete-alt/angucomplete-alt-onto.min.js","webpack:///./src/js/angular/utils/uri-utils.js","webpack:///./src/js/angular/core/directives/fit-text.directive.js","webpack:///./src/js/angular/explore/statements.service.js","webpack:///./src/js/angular/explore/directives.js","webpack:///./src/js/angular/explore/app.js"],"names":["root","factory","angular","module","directive","$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope","KEY_DW","KEY_RT","KEY_UP","KEY_LF","KEY_ES","KEY_EN","KEY_TAB","MIN_LENGTH","MAX_LENGTH","PAUSE","BLUR_TIMEOUT","REQUIRED_CLASS","TEXT_SEARCHING","TEXT_NORESULTS","link","scope","elem","attrs","ctrl","hideTimer","responseFormatter","unbindInitialValue","displaySearching","displayNoResults","fn","inputField","find","minlength","searchTimer","requiredClassName","validState","httpCanceller","dd","querySelector","isScrollOn","mousedownOn","handleInputChange","newval","initial","uri","extractTitle","callOrAssign","originalObject","length","console","error","handleRequired","clickoutHandlerForDropdown","event","hideResults","document","body","removeEventListener","ie8EventNormalizer","which","keyCode","value","selectedObject","data","titleField","split","map","field","extractValue","join","obj","key","keys","result","i","findMatchString","target","str","matches","re","RegExp","replace","match","toString","matchClass","trustAsHtml","valid","notEmpty","fieldRequired","inputName","$setValidity","handleOverrideSuggestions","overrideSuggestions","preventDefault","cancel","cancelHttpRequest","clearSelected","clearResults","dropdownRow","querySelectorAll","currentIndex","dropdownScrollTopTo","offset","scrollTop","updateInputField","current","results","extractedTitle","val","title","httpSuccessCallbackGen","responseData","status","headers","config","searching","processResults","remoteUrlDataField","httpErrorCallback","errorRes","remoteUrlErrorCallback","resolve","getRemoteResults","params","url","remoteUrl","encodeuriComponent","remoteUrlRequestFormatter","remoteUrlRequestWithCredentials","withCredentials","defer","timeout","promise","get","success","getRemoteResultsWithCustomHandler","remoteApiHandler","then","catch","showDropdown","initResults","focusFirst","searchTimerComplete","localData","$apply","localSearch","s","searchFields","parseInput","toLowerCase","indexOf","getLocalResults","description","image","text","formattedText","formattedDesc","descriptionField","imageField","autoMatch","selectResult","checkExactMatch","desc","showAll","on","id","addEventListener","className","$watch","oldval","$on","elementId","onFocusHandler","focusIn","focusOut","resetHideResults","hoverRow","index","inputChangeHandler","inputChanged","fieldRequiredClass","parseInt","pause","initialValue","inputType","type","textSearching","textNoResults","maxlength","row","rowTop","getBoundingClientRect","top","getComputedStyle","maxHeight","bottom","css","offsetHeight","marginTop","marginBottom","dropdownRowOffsetHeight","paddingTop","$digest","overflowY","put","restrict","require","disableInput","disableSuggestions","remoteUrlResponseFormatter","placeholder","inputClass","fieldTabindex","templateUrl","element","compile","tElement","startSym","startSymbol","endSym","endSymbol","interpolatedHtml","html","window","iriRegExp","isValidIri","iri","undefined","validateRdfUri","hasAngleBrackets","noAngleBrackets","lastIndexOf","validProtocol","test","validPath","schemaSlashesIdx","substring","e","fitTextDirective","min","max","_","debounce","fitTextMin","fitTextMax","parent","domElem","domElemStyle","style","computed","newlines","children","lines","minFontSize","maxFontSize","lineHeight","display","resizePromise","calculate","ratio","calcSize","offsetWidth","Math","paddingLeft","parseFloat","paddingRight","compressor","getMaxFontSize","resizer","fontSize","loadDelay","$","delay","off","$inject","StatementsService","transformToTrig","statements","contexts","statement","context","trim","isUndefined","cstatement","push","ckeys","Object","j","subject","predicate","object","datatype","lang","buildStatements","res","isEmpty","graph","predicates","objects","k","graphs","getDatatypeOptions","label","UriUtils","attr","ngModel","$parsers","unshift","isValidUri","$formatters"],"mappings":"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","file":"16.a236b38d63123b1a3c61.bundle.js","sourcesContent":["/*\n * angucomplete-alt\n * Autocomplete directive for AngularJS\n * This is a fork of Daryl Rowland's angucomplete with some extra features.\n * By Hidenari Nozaki\n */\n\n/*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */\n\n(function (root, factory) {\n 'use strict';\n// if (typeof module !== 'undefined' && module.exports) {\n// // CommonJS\n// module.exports = factory(require('angular'));\n// } else if (typeof define === 'function' && define.amd) {\n// // AMD\n// define(['angular'], factory);\n// } else {\n// // Global Variables\n factory(root.angular);\n// }\n}(window, function (angular) {\n 'use strict';\n\n angular.module('angucomplete-alt-onto', []).directive('angucompleteAltOnto', ['$q', '$parse', '$http', '$sce', '$timeout', '$templateCache', '$interpolate', '$rootScope', function ($q, $parse, $http, $sce, $timeout, $templateCache, $interpolate, $rootScope) {\n // keyboard events\n var KEY_DW = 40;\n var KEY_RT = 39;\n var KEY_UP = 38;\n var KEY_LF = 37;\n var KEY_ES = 27;\n var KEY_EN = 13;\n var KEY_TAB = 9;\n\n var MIN_LENGTH = 3;\n var MAX_LENGTH = 524288; // the default max length per the html maxlength attribute\n var PAUSE = 500;\n var BLUR_TIMEOUT = 200;\n\n // string constants\n var REQUIRED_CLASS = 'autocomplete-required';\n var TEXT_SEARCHING = 'Searching...';\n var TEXT_NORESULTS = 'No results found';\n var TEMPLATE_URL = '/angucomplete-alt/index.html';\n\n // Set the default template for this directive\n $templateCache.put(TEMPLATE_URL,\n '<div class=\"angucomplete-holder\" ng-class=\"{\\'angucomplete-dropdown-visible\\': showDropdown}\">' +\n ' <input id=\"{{id}}_value\" name=\"{{inputName}}\" tabindex=\"{{fieldTabindex}}\" ng-class=\"{\\'angucomplete-input-not-empty\\': notEmpty}\" ng-model=\"uri\" ng-disabled=\"disableInput\" type=\"{{inputType}}\" placeholder=\"{{placeholder}}\" maxlength=\"{{maxlength}}\" ng-focus=\"onFocusHandler()\" class=\"{{inputClass}}\" ng-focus=\"resetHideResults()\" ng-blur=\"hideResults($event)\" autocapitalize=\"off\" autocorrect=\"off\" autocomplete=\"off\" ng-change=\"inputChangeHandler(uri)\" style=\"overflow: hidden; padding-right: .5em;\"/>' +\n ' <div id=\"{{id}}_dropdown\" class=\"angucomplete-dropdown\" ng-show=\"disableSuggestions && showDropdown\">' +\n ' <div class=\"angucomplete-searching\" ng-show=\"searching\" ng-bind=\"textSearching\"></div>' +\n ' <div class=\"angucomplete-searching\" ng-show=\"!searching && (!results || results.length == 0)\" ng-bind=\"textNoResults\"></div>' +\n ' <div class=\"angucomplete-row\" ng-repeat=\"result in results\" ng-click=\"selectResult(result)\" ng-mouseenter=\"hoverRow($index)\" ng-class=\"{\\'angucomplete-selected-row\\': $index == currentIndex}\">' +\n ' <div ng-if=\"imageField\" class=\"angucomplete-image-holder\">' +\n ' <img ng-if=\"result.image && result.image != \\'\\'\" ng-src=\"{{result.image}}\" class=\"angucomplete-image\"/>' +\n ' <div ng-if=\"!result.image && result.image != \\'\\'\" class=\"angucomplete-image-default\"></div>' +\n ' </div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"matchClass\" ng-bind-html=\"result.title\"></div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"!matchClass\">{{ result.title }}</div>' +\n ' <div ng-if=\"matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\" ng-bind-html=\"result.description\"></div>' +\n ' <div ng-if=\"!matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\">{{result.description}}</div>' +\n ' </div>' +\n ' </div>' +\n '</div>'\n );\n\n function link(scope, elem, attrs, ctrl) {\n var inputField = elem.find('input');\n var minlength = MIN_LENGTH;\n var searchTimer = null;\n var hideTimer;\n var requiredClassName = REQUIRED_CLASS;\n var responseFormatter;\n var validState = null;\n var httpCanceller = null;\n var dd = elem[0].querySelector('.angucomplete-dropdown');\n var isScrollOn = false;\n var mousedownOn = null;\n var unbindInitialValue;\n var displaySearching;\n var displayNoResults;\n\n\n elem.on('mousedown', function(event) {\n if (event.target.id) {\n mousedownOn = event.target.id;\n if (mousedownOn === scope.id + '_dropdown') {\n document.body.addEventListener('click', clickoutHandlerForDropdown);\n }\n }\n else {\n mousedownOn = event.target.className;\n }\n });\n\n scope.currentIndex = scope.focusFirst ? 0 : null;\n scope.searching = false;\n unbindInitialValue = scope.$watch('initialValue', function(newval) {\n if (newval) {\n // remove scope listener\n unbindInitialValue();\n // change input\n handleInputChange(newval, true);\n }\n });\n\n scope.$watch('fieldRequired', function(newval, oldval) {\n if (newval !== oldval) {\n if (!newval) {\n ctrl[scope.inputName].$setValidity(requiredClassName, true);\n }\n else if (!validState || scope.currentIndex === -1) {\n handleRequired(false);\n }\n else {\n handleRequired(true);\n }\n }\n });\n\n scope.$on('angucomplete-alt:clearInput', function (event, elementId) {\n if (!elementId || elementId === scope.id) {\n scope.uri = null;\n callOrAssign();\n handleRequired(false);\n clearResults();\n }\n });\n\n scope.$on('angucomplete-alt:changeInput', function (event, elementId, newval) {\n if (!!elementId && elementId === scope.id) {\n handleInputChange(newval);\n }\n });\n\n function handleInputChange(newval, initial) {\n if (newval) {\n if (typeof newval === 'object') {\n scope.uri = extractTitle(newval);\n callOrAssign({originalObject: newval});\n } else if (typeof newval === 'string' && newval.length > 0) {\n scope.uri = newval;\n } else {\n if (console && console.error) {\n console.error('Tried to set ' + (!!initial ? 'initial' : '') + ' value of angucomplete to', newval, 'which is an invalid value');\n }\n }\n\n handleRequired(true);\n }\n }\n\n // #194 dropdown list not consistent in collapsing (bug).\n function clickoutHandlerForDropdown(event) {\n mousedownOn = null;\n scope.hideResults(event);\n document.body.removeEventListener('click', clickoutHandlerForDropdown);\n }\n\n // for IE8 quirkiness about event.which\n function ie8EventNormalizer(event) {\n return event.which ? event.which : event.keyCode;\n }\n\n function callOrAssign(value) {\n if (typeof scope.selectedObject === 'function') {\n scope.selectedObject(value);\n }\n else {\n scope.selectedObject = value;\n }\n\n if (value) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n function callFunctionOrIdentity(fn) {\n return function(data) {\n return scope[fn] ? scope[fn](data) : data;\n };\n }\n\n function setInputString(str) {\n callOrAssign({originalObject: str});\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n clearResults();\n }\n\n function extractTitle(data) {\n // split title fields and run extractValue for each and join with ' '\n return scope.titleField.split(',')\n .map(function(field) {\n return extractValue(data, field);\n })\n .join(' ');\n }\n\n function extractValue(obj, key) {\n var keys, result;\n if (key) {\n keys= key.split('.');\n result = obj;\n for (var i = 0; i < keys.length; i++) {\n result = result[keys[i]];\n }\n }\n else {\n result = obj;\n }\n\n return result;\n }\n\n function findMatchString(target, str) {\n var result, matches, re;\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n // Escape user input to be treated as a literal string within a regular expression\n re = new RegExp(str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i');\n if (!target) { return; }\n if (!target.match || !target.replace) { target = target.toString(); }\n matches = target.match(re);\n if (matches) {\n result = target.replace(re,\n '<span class=\"'+ scope.matchClass +'\">'+ matches[0] +'</span>');\n }\n else {\n result = target;\n }\n return $sce.trustAsHtml(result);\n }\n\n function handleRequired(valid) {\n scope.notEmpty = valid;\n validState = scope.uri;\n if (scope.fieldRequired && ctrl && scope.inputName) {\n ctrl[scope.inputName].$setValidity(requiredClassName, valid);\n }\n }\n\n function keyupHandler(event) {\n var which = ie8EventNormalizer(event);\n if (which === KEY_LF || which === KEY_RT) {\n // do nothing\n return;\n }\n\n if (which === KEY_UP || which === KEY_EN) {\n event.preventDefault();\n }\n else if (which === KEY_DW) {\n event.preventDefault();\n if (!scope.showDropdown && scope.uri && scope.uri.length >= minlength) {\n initResults();\n scope.searching = true;\n searchTimerComplete(scope.uri);\n }\n }\n else if (which === KEY_ES) {\n clearResults();\n scope.$apply(function() {\n inputField.val(scope.uri);\n });\n }\n else {\n if (minlength === 0 && !scope.uri) {\n return;\n }\n\n if (!scope.uri || scope.uri === '') {\n scope.showDropdown = false;\n } else if (scope.uri.length >= minlength) {\n initResults();\n\n if (searchTimer) {\n $timeout.cancel(searchTimer);\n }\n\n scope.searching = true;\n\n searchTimer = $timeout(function() {\n searchTimerComplete(scope.uri);\n }, scope.pause);\n }\n\n if (validState && validState !== scope.uri && !scope.clearSelected) {\n scope.$apply(function() {\n callOrAssign();\n });\n }\n }\n }\n\n function handleOverrideSuggestions(event) {\n if (scope.overrideSuggestions &&\n !(scope.selectedObject && scope.selectedObject.originalObject === scope.uri)) {\n if (event) {\n event.preventDefault();\n }\n\n // cancel search timer\n $timeout.cancel(searchTimer);\n // cancel http request\n cancelHttpRequest();\n\n setInputString(scope.uri);\n }\n }\n\n function dropdownRowOffsetHeight(row) {\n var css = getComputedStyle(row);\n return row.offsetHeight +\n parseInt(css.marginTop, 10) + parseInt(css.marginBottom, 10);\n }\n\n function dropdownHeight() {\n return dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).maxHeight, 10);\n }\n\n function dropdownRow() {\n return elem[0].querySelectorAll('.angucomplete-row')[scope.currentIndex];\n }\n\n function dropdownRowTop() {\n return dropdownRow().getBoundingClientRect().top -\n (dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).paddingTop, 10));\n }\n\n function dropdownScrollTopTo(offset) {\n dd.scrollTop = dd.scrollTop + offset;\n }\n\n function updateInputField(){\n var current = scope.results[scope.currentIndex];\n if (scope.matchClass) {\n var extractedTitle = extractTitle(current.originalObject);\n extractedTitle = extractedTitle.replace(/<b>|<\\/b>/g, \"\");\n inputField.val(extractedTitle);\n }\n else {\n inputField.val(current.title);\n }\n }\n\n function keydownHandler(event) {\n var which = ie8EventNormalizer(event);\n var row = null;\n var rowTop = null;\n\n if (which === KEY_EN && scope.results) {\n if (scope.currentIndex >= 0 && scope.currentIndex < scope.results.length) {\n event.preventDefault();\n scope.selectResult(scope.results[scope.currentIndex]);\n } else {\n handleOverrideSuggestions(event);\n clearResults();\n }\n scope.$apply();\n } else if (which === KEY_DW && scope.results) {\n event.preventDefault();\n if ((scope.currentIndex + 1) < scope.results.length && scope.showDropdown) {\n scope.$apply(function() {\n scope.currentIndex ++;\n updateInputField();\n });\n\n if (isScrollOn) {\n row = dropdownRow();\n if (dropdownHeight() < row.getBoundingClientRect().bottom) {\n dropdownScrollTopTo(dropdownRowOffsetHeight(row));\n }\n }\n }\n } else if (which === KEY_UP && scope.results) {\n event.preventDefault();\n if (scope.currentIndex >= 1) {\n scope.$apply(function() {\n scope.currentIndex --;\n updateInputField();\n });\n\n if (isScrollOn) {\n rowTop = dropdownRowTop();\n if (rowTop < 0) {\n dropdownScrollTopTo(rowTop - 1);\n }\n }\n }\n else if (scope.currentIndex === 0) {\n scope.$apply(function() {\n scope.currentIndex = -1;\n inputField.val(scope.uri);\n });\n }\n } else if (which === KEY_TAB) {\n if (scope.results && scope.results.length > 0 && scope.showDropdown) {\n if (scope.currentIndex === -1 && scope.overrideSuggestions) {\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n handleOverrideSuggestions();\n }\n else {\n if (scope.currentIndex === -1) {\n scope.currentIndex = 0;\n }\n scope.selectResult(scope.results[scope.currentIndex]);\n scope.$digest();\n }\n }\n else {\n // no results\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n if (scope.uri && scope.uri.length > 0) {\n handleOverrideSuggestions();\n }\n }\n } else if (which === KEY_ES) {\n // This is very specific to IE10/11 #272\n // without this, IE clears the input text\n event.preventDefault();\n }\n }\n\n function httpSuccessCallbackGen(str) {\n return function(responseData, status, headers, config) {\n // normalize return obejct from promise\n if (!status && !headers && !config && responseData.data) {\n responseData = responseData.data;\n }\n scope.searching = false;\n processResults(extractValue(responseFormatter(responseData), scope.remoteUrlDataField), str);\n };\n }\n\n function httpErrorCallback(errorRes, status, headers, config) {\n // cancelled/aborted\n if (status === 0 || status === -1) { return; }\n\n // normalize return obejct from promise\n if (!status && !headers && !config) {\n status = errorRes.status;\n }\n if (scope.remoteUrlErrorCallback) {\n scope.remoteUrlErrorCallback(errorRes, status, headers, config);\n }\n else {\n if (console && console.error) {\n console.error('http error');\n }\n }\n }\n\n function cancelHttpRequest() {\n if (httpCanceller) {\n httpCanceller.resolve();\n }\n }\n\n function getRemoteResults(str) {\n var params = {},\n url = scope.remoteUrl + encodeuriComponent(str);\n if (scope.remoteUrlRequestFormatter) {\n params = {params: scope.remoteUrlRequestFormatter(str)};\n url = scope.remoteUrl;\n }\n if (!!scope.remoteUrlRequestWithCredentials) {\n params.withCredentials = true;\n }\n cancelHttpRequest();\n httpCanceller = $q.defer();\n params.timeout = httpCanceller.promise;\n $http.get(url, params)\n .success(httpSuccessCallbackGen(str))\n .error(httpErrorCallback);\n }\n\n function getRemoteResultsWithCustomHandler(str) {\n cancelHttpRequest();\n\n httpCanceller = $q.defer();\n\n scope.remoteApiHandler(str, httpCanceller.promise)\n .then(httpSuccessCallbackGen(str))\n .catch(httpErrorCallback);\n\n /* IE8 compatible\n scope.remoteApiHandler(str, httpCanceller.promise)\n ['then'](httpSuccessCallbackGen(str))\n ['catch'](httpErrorCallback);\n */\n }\n\n function clearResults() {\n scope.showDropdown = false;\n scope.results = [];\n if (dd) {\n dd.scrollTop = 0;\n }\n }\n\n function initResults() {\n scope.showDropdown = displaySearching;\n scope.currentIndex = scope.focusFirst ? 0 : -1;\n scope.results = [];\n }\n\n function getLocalResults(str) {\n var i, match, s, value,\n searchFields = scope.searchFields.split(','),\n matches = [];\n if (typeof scope.parseInput() !== 'undefined') {\n str = scope.parseInput()(str);\n }\n for (i = 0; i < scope.localData.length; i++) {\n match = false;\n\n for (s = 0; s < searchFields.length; s++) {\n value = extractValue(scope.localData[i], searchFields[s]) || '';\n match = match || (value.toString().toLowerCase().indexOf(str.toString().toLowerCase()) >= 0);\n }\n\n if (match) {\n matches[matches.length] = scope.localData[i];\n }\n }\n return matches;\n }\n\n function checkExactMatch(result, obj, str){\n if (!str) { return false; }\n for(var key in obj){\n if(obj[key].toLowerCase() === str.toLowerCase()){\n scope.selectResult(result);\n return true;\n }\n }\n return false;\n }\n\n function searchTimerComplete(str) {\n // Begin the search\n if (!str || str.length < minlength) {\n return;\n }\n if (scope.localData) {\n scope.$apply(function() {\n var matches;\n if (typeof scope.localSearch() !== 'undefined') {\n matches = scope.localSearch()(str);\n } else {\n matches = getLocalResults(str);\n }\n scope.searching = false;\n processResults(matches, str);\n });\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler(str);\n } else {\n getRemoteResults(str);\n }\n }\n\n function processResults(responseData, str) {\n var i, description, image, text, formattedText, formattedDesc;\n\n if (responseData && responseData.length > 0) {\n scope.results = [];\n\n for (i = 0; i < responseData.length; i++) {\n if (scope.titleField && scope.titleField !== '') {\n text = formattedText = extractTitle(responseData[i]);\n }\n\n description = '';\n if (scope.descriptionField) {\n description = formattedDesc = extractValue(responseData[i], scope.descriptionField);\n }\n\n image = '';\n if (scope.imageField) {\n image = extractValue(responseData[i], scope.imageField);\n }\n\n if (scope.matchClass) {\n formattedText = findMatchString(text, str);\n formattedDesc = findMatchString(description, str);\n }\n\n scope.results[scope.results.length] = {\n title: formattedText,\n description: formattedDesc,\n image: image,\n originalObject: responseData[i]\n };\n }\n\n } else {\n scope.results = [];\n }\n\n if (scope.autoMatch && scope.results.length === 1 &&\n checkExactMatch(scope.results[0],\n {title: text, desc: description || ''}, scope.uri)) {\n scope.showDropdown = false;\n } else if (scope.results.length === 0 && !displayNoResults) {\n scope.showDropdown = false;\n } else {\n scope.showDropdown = true;\n }\n }\n\n function showAll() {\n if (scope.localData) {\n processResults(scope.localData, '');\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler('');\n }\n else {\n getRemoteResults('');\n }\n }\n\n scope.onFocusHandler = function() {\n if (scope.focusIn) {\n scope.focusIn();\n }\n if (minlength === 0 && (!scope.uri || scope.uri.length === 0)) {\n scope.currentIndex = scope.focusFirst ? 0 : scope.currentIndex;\n scope.showDropdown = true;\n showAll();\n }\n };\n\n scope.hideResults = function() {\n if (mousedownOn &&\n (mousedownOn === scope.id + '_dropdown' ||\n mousedownOn.indexOf('angucomplete') >= 0)) {\n mousedownOn = null;\n }\n else {\n hideTimer = $timeout(function() {\n clearResults();\n scope.$apply(function() {\n if (scope.uri && scope.uri.length > 0) {\n inputField.val(scope.uri);\n }\n });\n }, BLUR_TIMEOUT);\n cancelHttpRequest();\n\n if (scope.focusOut) {\n scope.focusOut();\n }\n\n if (scope.overrideSuggestions) {\n if (scope.uri && scope.uri.length > 0 && scope.currentIndex === -1) {\n handleOverrideSuggestions();\n }\n }\n }\n };\n\n scope.resetHideResults = function() {\n if (hideTimer) {\n $timeout.cancel(hideTimer);\n }\n };\n\n scope.hoverRow = function(index) {\n scope.currentIndex = index;\n };\n\n scope.selectResult = function(result) {\n // Restore original values\n if (scope.matchClass) {\n result.title = extractTitle(result.originalObject);\n if (typeof result.title === \"string\") {\n result.title = result.title.replace(/<b>|<\\/b>/g, \"\");\n }\n result.description = extractValue(result.originalObject, scope.descriptionField);\n }\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n else {\n scope.uri = result.title;\n }\n callOrAssign(result);\n clearResults();\n };\n\n scope.inputChangeHandler = function(str) {\n if (str.length < minlength) {\n cancelHttpRequest();\n clearResults();\n }\n else if (str.length === 0 && minlength === 0) {\n scope.searching = false;\n showAll();\n }\n\n if (scope.inputChanged) {\n str = scope.inputChanged(str);\n }\n return str;\n };\n\n // check required\n if (scope.fieldRequiredClass && scope.fieldRequiredClass !== '') {\n requiredClassName = scope.fieldRequiredClass;\n }\n\n // check min length\n if (scope.minlength && scope.minlength !== '') {\n minlength = parseInt(scope.minlength, 10);\n }\n\n // check pause time\n if (!scope.pause) {\n scope.pause = PAUSE;\n }\n\n // check clearSelected\n if (!scope.clearSelected) {\n scope.clearSelected = false;\n }\n\n // check override suggestions\n if (!scope.overrideSuggestions) {\n scope.overrideSuggestions = false;\n }\n\n // check required field\n if (scope.fieldRequired && ctrl) {\n // check initial value, if given, set validitity to true\n if (scope.initialValue) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n scope.inputType = attrs.type ? attrs.type : 'text';\n\n // set strings for \"Searching...\" and \"No results\"\n scope.textSearching = attrs.textSearching ? attrs.textSearching : TEXT_SEARCHING;\n scope.textNoResults = attrs.textNoResults ? attrs.textNoResults : TEXT_NORESULTS;\n displaySearching = scope.textSearching === 'false' ? false : true;\n displayNoResults = scope.textNoResults === 'false' ? false : true;\n\n // set max length (default to maxlength deault from html\n scope.maxlength = attrs.maxlength ? attrs.maxlength : MAX_LENGTH;\n\n // register events\n inputField.on('keydown', keydownHandler);\n inputField.on('keyup', keyupHandler);\n\n // set response formatter\n responseFormatter = callFunctionOrIdentity('remoteUrlResponseFormatter');\n\n // set isScrollOn\n $timeout(function() {\n var css = getComputedStyle(dd);\n isScrollOn = css.maxHeight && css.overflowY === 'auto';\n });\n }\n\n return {\n restrict: 'EA',\n require: '^?form',\n scope: {\n selectedObject: '=',\n disableInput: '=',\n disableSuggestions: '=',\n initialValue: '=',\n localData: '=',\n localSearch: '&',\n remoteUrlRequestFormatter: '=',\n remoteUrlRequestWithCredentials: '@',\n remoteUrlResponseFormatter: '=',\n remoteUrlErrorCallback: '=',\n remoteApiHandler: '=',\n id: '@',\n type: '@',\n placeholder: '@',\n remoteUrl: '@',\n remoteUrlDataField: '@',\n titleField: '@',\n descriptionField: '@',\n imageField: '@',\n inputClass: '@',\n pause: '@',\n searchFields: '@',\n minlength: '@',\n matchClass: '@',\n clearSelected: '@',\n overrideSuggestions: '@',\n fieldRequired: '=',\n fieldRequiredClass: '@',\n inputChanged: '=',\n autoMatch: '@',\n focusOut: '&',\n focusIn: '&',\n fieldTabindex: '@',\n inputName: '@',\n focusFirst: '@',\n parseInput: '&'\n },\n templateUrl: function(element, attrs) {\n return attrs.templateUrl || TEMPLATE_URL;\n },\n compile: function(tElement) {\n var startSym = $interpolate.startSymbol();\n var endSym = $interpolate.endSymbol();\n if (!(startSym === '{{' && endSym === '}}')) {\n var interpolatedHtml = tElement.html()\n .replace(/\\{\\{/g, startSym)\n .replace(/\\}\\}/g, endSym);\n tElement.html(interpolatedHtml);\n }\n return link;\n }\n };\n }]);\n\n}));","angular\n .module('graphdb.framework.utils.uriutils', [])\n .factory('UriUtils', UriUtils);\n\nlet iriRegExp;\ntry {\n // Real validation but it requires a relatively new browser\n iriRegExp = new RegExp(\"^[a-z](?:[-a-z0-9\\\\+\\\\.])*:(?:\\\\/\\\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:])*@)?(?:\\\\[(?:(?:(?:[0-9a-f]{1,4}:){6}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|::(?:[0-9a-f]{1,4}:){5}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4}:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|v[0-9a-f]+[-a-z0-9\\\\._~!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:]+)\\\\]|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\\\\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}|(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=@])*)(?::[0-9]*)?(?:\\\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))*)*|\\\\/(?:(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))+)(?:\\\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))*)*)?|(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))+)(?:\\\\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@]))*)*|(?!(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@])))(?:\\\\?(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@])|[\\\\u{E000}-\\\\u{F8FF}\\\\u{F0000}-\\\\u{FFFFD}\\\\u{100000}-\\\\u{10FFFD}\\\\/\\\\?])*)?(?:#(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\\\\._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=:@])|[\\\\/\\\\?])*)?$\", \"ui\");\n} catch (e) {\n // Fallback to simple validation, works in all browsers\n iriRegExp = new RegExp(\"^[a-z](?:[-a-z0-9\\\\+\\\\.])*:\", \"i\");\n}\n\nfunction UriUtils() {\n function validateRdfUri(value) {\n const hasAngleBrackets = value.indexOf(\"<\") >= 0 && value.indexOf(\">\") >= 0;\n const noAngleBrackets = value.indexOf(\"<\") === -1 && value.lastIndexOf(\">\") === -1;\n const validProtocol = /^<?(http|urn).*>?/.test(value) && (hasAngleBrackets || noAngleBrackets);\n let validPath = false;\n if (validProtocol) {\n if (value.indexOf(\"http\") >= 0) {\n const schemaSlashesIdx = value.indexOf('//');\n validPath = schemaSlashesIdx > 4\n && value.substring(schemaSlashesIdx + 2).length > 0;\n } else if (value.indexOf(\"urn\") >= 0) {\n validPath = value.substring(4).length > 0;\n }\n }\n return validProtocol && validPath;\n }\n\n function isValidIri(iri) {\n return iri !== undefined && !!iri.match(iriRegExp);\n }\n\n return {\n isValidIri: isValidIri,\n validateRdfUri: validateRdfUri\n };\n}\n","// This is a rework of the ng-FitText.js which can be found here https://github.com/patrickmarabeas/ng-FitText.js\nangular\n .module('graphdb.framework.core.directives.fittext', [])\n .directive('fitText', fitTextDirective);\n\nfitTextDirective.$inject = ['$timeout'];\n\nfunction fitTextDirective($timeout) {\n return {\n restrict: 'A',\n scope: {\n min: '=',\n max: '='\n },\n link: function (scope, element, attrs) {\n\n const config = {\n 'debounce': _.debounce,\n 'delay': 100,\n 'loadDelay': 10,\n 'compressor': 1,\n 'min': attrs.fitTextMin || 'inherit',\n 'max': attrs.fitTextMax || 'inherit',\n 'calcSize': 10,\n 'lines': 1\n };\n\n const parent = element.parent();\n const domElem = element[0];\n const domElemStyle = domElem.style;\n const computed = window.getComputedStyle(element[0], null);\n const newlines = element.children().length || config.lines;\n const minFontSize = config.min === 'inherit' ? computed['font-size'] : config.min;\n const maxFontSize = config.max === 'inherit' ? computed['font-size'] : config.max;\n const lineHeight = computed['line-height'];\n const display = computed['display'];\n let resizePromise;\n\n function calculate() {\n const ratio = (config.calcSize * newlines) / domElem.offsetWidth / newlines;\n return Math.max(Math.min(getMaxFontSize(ratio), parseFloat(maxFontSize)), parseFloat(minFontSize));\n }\n\n function getMaxFontSize(ratio) {\n const paddingLeft = parseFloat(getComputedStyle(parent[0]).paddingLeft);\n const paddingRight = parseFloat(getComputedStyle(parent[0]).paddingRight);\n\n return (parent[0].offsetWidth - (paddingLeft + paddingRight)) * ratio * config.compressor;\n }\n\n function resize() {\n if (domElem.offsetHeight * domElem.offsetWidth === 0) {\n return;\n }\n\n // Preset standard values for making the size calculation\n domElemStyle.fontSize = config.calcSize + 'px';\n domElemStyle.lineHeight = '1';\n domElemStyle.display = 'inline-block';\n\n // Set usage values\n domElemStyle.fontSize = calculate() + 'px';\n domElemStyle.lineHeight = lineHeight;\n domElemStyle.display = display;\n }\n\n function resizer() {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n\n resizePromise = $timeout(function () {\n resize();\n }, config.loadDelay);\n }\n\n scope.$watch(function () {\n return [\n parent[0].offsetWidth,\n element[0].offsetWidth\n ].join('_');\n }, function () {\n resizer();\n });\n\n $(window).on('resize', config.debounce(function () {\n scope.$apply(resizer)\n }, config.delay));\n\n scope.$on('$destroy', function () {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n $(window).off('resize');\n });\n }\n };\n}\n","angular\n .module('graphdb.framework.explore.services', [])\n .factory('StatementsService', StatementsService);\n\nStatementsService.$inject = [];\n\nfunction StatementsService() {\n function transformToTrig(statements) {\n let data = '';\n const contexts = {};\n\n for (let i = 0; i < statements.length; i++) {\n const statement = statements[i];\n if (statement.context === undefined) {\n statement.context = '';\n } else {\n statement.context = _.trim(statement.context);\n }\n if (angular.isUndefined(contexts[statement.context])) {\n const cstatement = [];\n cstatement.push(statement);\n contexts[statement.context] = cstatement;\n } else {\n contexts[statement.context].push(statement);\n }\n }\n\n const ckeys = Object.keys(contexts);\n for (let i = 0; i < ckeys.length; i++) {\n const key = ckeys[i];\n if (key === '') {\n data += '\\n{';\n } else {\n data += '\\n<' + key + '> {';\n }\n\n const value = contexts[key];\n for (let j = 0; j < value.length; j++) {\n const statement = value[j];\n data += '\\n\\t<' + statement.subject + '> <' + statement.predicate + '> ';\n if (statement.object.type === 'uri') {\n data += '<' + statement.object.value + '> .';\n } else {\n data += '\"' + statement.object.value + '\"' + (statement.object.datatype ? '^^<' + statement.object.datatype + '>' : (statement.object.lang ? '@' + statement.object.lang : '')) + ' .';\n }\n }\n\n data += '\\n}';\n }\n\n return data;\n }\n\n function buildStatements(res, uri) {\n const statements = [];\n if (!_.isEmpty(res.data)) {\n const graph = res.data[uri];\n const predicates = Object.keys(graph);\n for (let i = 0; i < predicates.length; i++) {\n const predicate = predicates[i];\n const objects = graph[predicate];\n for (let j = 0; j < objects.length; j++) {\n const object = objects[j];\n for (let k = 0; k < object.graphs.length; k++) {\n let context = object.graphs[k];\n if (context === 'http://www.ontotext.com/explicit') {\n // Statements in the default context are special\n context = '';\n }\n if (object.lang) {\n object.datatype = '';\n }\n if (!object.datatype) {\n object.datatype = '';\n }\n statements.push({\n subject: uri,\n predicate: predicate,\n object: {\n value: object.value,\n type: object.type,\n datatype: object.datatype,\n lang: object.lang\n },\n context: context\n });\n }\n }\n }\n }\n return statements;\n }\n\n function getDatatypeOptions() {\n return [\n {\n value: '',\n label: 'string'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#boolean',\n label: 'boolean'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#decimal',\n label: 'decimal'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#integer',\n label: 'integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#double',\n label: 'double'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#float',\n label: 'float'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#date',\n label: 'date'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#time',\n label: 'time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#dateTime',\n label: 'date time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#byte',\n label: 'byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#short',\n label: 'short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#int',\n label: 'int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#long',\n label: 'long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedByte',\n label: 'unsigned byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedShort',\n label: 'unsigned short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedInt',\n label: 'unsigned int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedLong',\n label: 'unsigned long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#positoveInteger',\n label: 'positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n label: 'non-negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#negativeInteger',\n label: 'negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n label: 'non-positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYear',\n label: 'gYear'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonth',\n label: 'gMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gDay',\n label: 'gDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYearMonth',\n label: 'gYearMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonthDay',\n label: 'gMonthDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#duration',\n label: 'duration'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#hexBinary',\n label: 'hex binary'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#base64Binary',\n label: 'base64 binary'\n }\n ];\n }\n\n return {\n transformToTrig: transformToTrig,\n buildStatements: buildStatements,\n getDatatypeOptions: getDatatypeOptions\n };\n}\n","import 'angular/utils/uri-utils';\n\nconst exploreDirectives = angular.module('graphdb.framework.explore.directives', [\n 'graphdb.framework.utils.uriutils'\n]);\n\nexploreDirectives.directive('uri', ['UriUtils', function (UriUtils) {\n return {\n require: 'ngModel',\n link: function (scope, elem, attr, ngModel) {\n\n //For DOM -> model validation\n ngModel.$parsers.unshift(function (value) {\n if (!angular.isUndefined(value) && value.length > 0) {\n const isValidUri = UriUtils.validateRdfUri(value);\n ngModel.$setValidity('searchStr', isValidUri);\n return isValidUri ? value : undefined;\n } else {\n ngModel.$setValidity('searchStr', true);\n return value;\n }\n });\n\n //For model -> DOM validation\n ngModel.$formatters.unshift(function (value) {\n if (!angular.isUndefined(value)) {\n ngModel.$setValidity('searchStr', UriUtils.validateRdfUri);\n }\n return value;\n });\n }\n };\n}]);\n","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/explore/statements.service';\nimport 'angular/explore/controllers';\nimport 'angular/explore/directives';\nimport 'angular-xeditable/dist/js/xeditable.min';\nimport 'lib/angucomplete-alt/angucomplete-alt-onto.min';\nimport 'angular/core/directives/fit-text.directive';\n\nconst modules = [\n 'ngRoute',\n 'toastr',\n 'xeditable',\n 'angucomplete-alt-onto',\n 'graphdb.framework.explore.services',\n 'graphdb.framework.explore.controllers',\n 'graphdb.framework.explore.directives',\n 'graphdb.framework.core.directives.fittext'\n];\n\nangular.module('graphdb.framework.explore', modules);\n"],"sourceRoot":""}