graphdb-workbench 2.8.8-TR2 → 2.8.9-RC1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/dist/{10.5ddeb0c3a1fe59eae189.bundle.js → 10.d8d48ce0ca42085e7864.bundle.js} +1 -1
  2. package/dist/100.bf4a4f519b81c43fafc1.bundle.js +1 -0
  3. package/dist/{100.39911dc242bc083427b5.bundle.js → 101.444ee8c4ad450a80c227.bundle.js} +1 -1
  4. package/dist/{101.3c81e5463ac7bd87920b.bundle.js → 102.ec42287cf6022b9eb02f.bundle.js} +1 -1
  5. package/dist/{102.fe653ba57ff2b81cdf07.bundle.js → 103.82c4dfa967a6f2407f11.bundle.js} +1 -1
  6. package/dist/{103.663db6e061c3509a1f78.bundle.js → 104.cb138bb3b878e001e32f.bundle.js} +1 -1
  7. package/dist/{104.5bde157512536df59792.bundle.js → 105.8c2014a729e3e29b78ae.bundle.js} +1 -1
  8. package/dist/{105.af4d75298548559a6b91.bundle.js → 106.4aa823fde540a06e4083.bundle.js} +1 -1
  9. package/dist/{106.1c526cd8378b98858e06.bundle.js → 107.09c059b73119d06600c0.bundle.js} +1 -1
  10. package/dist/{107.4bf934d8a7d093ea4cd6.bundle.js → 108.3c5b6b3268b21218a7a5.bundle.js} +1 -1
  11. package/dist/{108.8ea1a51acbd345907740.bundle.js → 109.57128c0d6212e0a46ad3.bundle.js} +1 -1
  12. package/dist/{109.a71df4aa4e00b47f5616.bundle.js → 110.af42819ef3cf70e39b25.bundle.js} +1 -1
  13. package/dist/{110.94d5a65ffa5d8891406f.bundle.js → 111.f548b124aab10b4b1c9e.bundle.js} +1 -1
  14. package/dist/{111.a8212d3445aa614f99d9.bundle.js → 112.f754348fe5d0086f677e.bundle.js} +1 -1
  15. package/dist/{112.393b01f7630bb30617c9.bundle.js → 113.d7c1a18d18713eece29a.bundle.js} +1 -1
  16. package/dist/{113.cbdf7d68d2471ced1ef4.bundle.js → 114.f719039be05fc7b214c5.bundle.js} +1 -1
  17. package/dist/{114.85465110c4fbd79849c7.bundle.js → 115.8dab67853260483ced85.bundle.js} +1 -1
  18. package/dist/{115.a6c405de2fe018cc6033.bundle.js → 116.ed2bb3fba38737cd21a2.bundle.js} +1 -1
  19. package/dist/{116.227e24944ca1c987460c.bundle.js → 117.8dc1a253f70f4727c027.bundle.js} +1 -1
  20. package/dist/{117.125beedc641ab53f511f.bundle.js → 118.d197d3c97039ee68643d.bundle.js} +1 -1
  21. package/dist/{118.a6e09ae6273a9e7714ff.bundle.js → 119.ee1dd79fb171af44577c.bundle.js} +1 -1
  22. package/dist/{12.8078044ba9dc5aefb919.bundle.js → 12.ed4bc07d06db664a8a2c.bundle.js} +1 -1
  23. package/dist/{119.f672e5bd50a1a9476dcc.bundle.js → 120.e25b821b13d853a321b5.bundle.js} +1 -1
  24. package/dist/{120.8725206e84a9f2b1fc44.bundle.js → 121.45b40da06cc7a71ae79f.bundle.js} +1 -1
  25. package/dist/{121.787215b44b2f8f4d2850.bundle.js → 122.4e50eaaadaf3dd57b2b2.bundle.js} +1 -1
  26. package/dist/{122.39e92001e2f86ed551f4.bundle.js → 123.2cc29edc9b32fcc35a5c.bundle.js} +1 -1
  27. package/dist/{123.30b2e28436b10116e05a.bundle.js → 124.5bf5f52df172c58b05d0.bundle.js} +1 -1
  28. package/dist/{124.ff59b5de798cc188f089.bundle.js → 125.53a564a1540cfbe90d0a.bundle.js} +1 -1
  29. package/dist/{125.04369aedfa25c24c03cf.bundle.js → 126.dc613e6d7c178aa1f71d.bundle.js} +1 -1
  30. package/dist/{126.20cf9bbd99138d8275e9.bundle.js → 127.aef2e7fa7136b5fb20dc.bundle.js} +1 -1
  31. package/dist/{127.fa70afe0caa6a82a487d.bundle.js → 128.c47682ae8c6f4827775e.bundle.js} +1 -1
  32. package/dist/{128.d6242296779b40ceee78.bundle.js → 129.79a97fa0c54c52a26f86.bundle.js} +1 -1
  33. package/dist/{13.e28878c924d54fd6affc.bundle.js → 13.49bf149227b1a2f915a6.bundle.js} +1 -1
  34. package/dist/{136.7045cfc939cc42c457de.bundle.js → 136.3b7b30e23a57edaccaad.bundle.js} +1 -1
  35. package/dist/{140.20b791dd9206aec902c3.bundle.js → 140.0824cff78d35896e19a1.bundle.js} +1 -1
  36. package/dist/{146.725d89d31b4a9b742d3f.bundle.js → 146.a0a2b0a47fa6363c2be0.bundle.js} +1 -1
  37. package/dist/{15.7ee3e6ec073366903f69.bundle.js → 15.2eabfe524e0689eb26e9.bundle.js} +1 -1
  38. package/dist/{16.cfcb97f2798c0f998b6d.bundle.js → 16.0ead6802df331f763762.bundle.js} +1 -1
  39. package/dist/{160.09bb953d13e3d63eed4f.bundle.js → 160.9df03bd5ab91e27a7e3c.bundle.js} +1 -1
  40. package/dist/{17.330b4db61f4286346e1d.bundle.js → 17.bcc91ddb954e2e1ee5a2.bundle.js} +1 -1
  41. package/dist/{18.131accbaf7a1f9d61001.bundle.js → 18.a4b27592c1b39f2b754b.bundle.js} +1 -1
  42. package/dist/186.d2a7c6668b2f2198549a.bundle.js +1 -1
  43. package/dist/{19.417d4a0cb5047abff48e.bundle.js → 19.33b6dc6ba1cea3b94465.bundle.js} +1 -1
  44. package/dist/{192.2d6358f31811ab3464ba.bundle.js → 192.a238bb9bb9a833ef304b.bundle.js} +1 -1
  45. package/dist/{198.f34180ba04b8f2d651ab.bundle.js → 198.568088e342b26f534c8f.bundle.js} +1 -1
  46. package/dist/{2.6684bcc4e367bcb9e628.bundle.js → 2.3837bd63288e2a826720.bundle.js} +1 -1
  47. package/dist/{20.ee5088425c87c66ae8d0.bundle.js → 20.204efddc3b65e3417f98.bundle.js} +1 -1
  48. package/dist/{200.7ff10cae741e1382bcb3.bundle.js → 200.6eee537413665b02c23f.bundle.js} +1 -1
  49. package/dist/{206.750777aab552b2c97c68.bundle.js → 206.7f16c0fcd5d65d82f869.bundle.js} +1 -1
  50. package/dist/{21.7ad047ae5bb8c0a68163.bundle.js → 21.bf90c5dbc6751926b09f.bundle.js} +1 -1
  51. package/dist/{217.76f3e1cda60f9abe1701.bundle.js → 217.57a8407776a632ad45ff.bundle.js} +1 -1
  52. package/dist/{226.a3b6f063cd117f6809e5.bundle.js → 226.914d0a244a06d6eff230.bundle.js} +1 -1
  53. package/dist/{23.56301f1a97cc94310f2d.bundle.js → 23.b57e6b08f36eaa6cfa1c.bundle.js} +1 -1
  54. package/dist/{234.a223a40490dbaf451cd7.bundle.js → 234.d92bb857de797a88568d.bundle.js} +1 -1
  55. package/dist/{235.2d41cfd545adcebf23d1.bundle.js → 235.1182f064fb17ad3f55d1.bundle.js} +1 -1
  56. package/dist/{24.0fee5a7050aa01c43593.bundle.js → 24.77404fb1a29f7448cfa9.bundle.js} +1 -1
  57. package/dist/{25.42411835319827f4bfc1.bundle.js → 25.fd2151cfa79bb46e568e.bundle.js} +1 -1
  58. package/dist/{250.f20ba52ca6ed81d5d179.bundle.js → 250.ad498a8076662df1ed87.bundle.js} +1 -1
  59. package/dist/{26.68da73b9eb0e20ef6a04.bundle.js → 26.b4cf5132c870052d06f3.bundle.js} +1 -1
  60. package/dist/{261.bb146605dd28d704aa16.bundle.js → 261.01d68aa8402ef6ac3a38.bundle.js} +1 -1
  61. package/dist/{266.929c96d6372d56668ae0.bundle.js → 266.6b132ba2f789d8526651.bundle.js} +1 -1
  62. package/dist/{27.9170cfa5bc0b60e51d82.bundle.js → 27.af756f3e9a79334cb6f9.bundle.js} +1 -1
  63. package/dist/{271.f51d241774a8df3f20c7.bundle.js → 271.57cac2aa90c6b4409f51.bundle.js} +1 -1
  64. package/dist/{273.235fcf7e993aace5557d.bundle.js → 273.532af8c0707be80576a4.bundle.js} +1 -1
  65. package/dist/{274.4489e0c0b2b5457a3513.bundle.js → 274.9e29d76ce7a1be779fe2.bundle.js} +1 -1
  66. package/dist/{28.decaa67e47ac79ba59a3.bundle.js → 28.f64cabb9e00e2f08ed6a.bundle.js} +1 -1
  67. package/dist/{288.b263f48bcaa5db590821.bundle.js → 288.942d138e6c489a3ff6df.bundle.js} +1 -1
  68. package/dist/{29.8b089f6adfabb19d8073.bundle.js → 29.073b9b1176718648e438.bundle.js} +1 -1
  69. package/dist/{293.88a6655ca50918b1edc4.bundle.js → 293.35cf89ffdbbcab6c39de.bundle.js} +1 -1
  70. package/dist/{3.31747e6f9dde0db936ea.bundle.js → 3.f26cefadb24ee2836b8a.bundle.js} +1 -1
  71. package/dist/{30.9345c96cc253adab0ae0.bundle.js → 30.3530af7acf6dd4af07b4.bundle.js} +1 -1
  72. package/dist/{302.2a26c6c4f78a037c6d3e.bundle.js → 302.9e008d753a24f66797ac.bundle.js} +1 -1
  73. package/dist/{307.d188e735148ef48fbe80.bundle.js → 307.99dec37cee341acf70d6.bundle.js} +1 -1
  74. package/dist/{31.614dbf7498a1552e355c.bundle.js → 31.19f116ce71f83ce6c3df.bundle.js} +1 -1
  75. package/dist/{319.53ee0f1a2a998747c6bd.bundle.js → 319.6ee5e4d0efbb256ad040.bundle.js} +1 -1
  76. package/dist/{32.a52b26adcd7755172626.bundle.js → 32.3649b0fc7e7136790d43.bundle.js} +1 -1
  77. package/dist/{320.80795d19cc7aa6ccaa28.bundle.js → 320.5cb0f10abd3ca266298e.bundle.js} +1 -1
  78. package/dist/{328.e966458d8c8ceca910de.bundle.js → 328.b769a2c7965fcc07d289.bundle.js} +1 -1
  79. package/dist/{33.db577a77e1237b4997ef.bundle.js → 33.d4864cfbed6bb7c30c95.bundle.js} +1 -1
  80. package/dist/{330.38fcfd70d382ec90607d.bundle.js → 330.f66ff693ab2f86440650.bundle.js} +1 -1
  81. package/dist/{34.12bd97ec9f0f5411ede8.bundle.js → 34.4a17e8b0f3f203963d5e.bundle.js} +1 -1
  82. package/dist/342.cead059cad2a860fb1db.bundle.js +1 -0
  83. package/dist/348.b09b5350639beca8034e.bundle.js +1 -1
  84. package/dist/{35.e22a1a214303b341a46d.bundle.js → 35.2920265e8348ab78e718.bundle.js} +1 -1
  85. package/dist/354.474aa50f195477e48af9.bundle.js +1 -1
  86. package/dist/357.603fceaaeb0992019407.bundle.js +1 -1
  87. package/dist/358.5398b6635b1fc42b581a.bundle.js +1 -1
  88. package/dist/359.a2f8d884c46015ae98ed.bundle.js +1 -1
  89. package/dist/{36.1092cd7bf5d220bb9063.bundle.js → 36.99a2c4a2393ff13ec514.bundle.js} +1 -1
  90. package/dist/360.40b2c9f3610b0f8dea80.bundle.js +1 -1
  91. package/dist/361.91ac80c8c5586b0546a5.bundle.js +1 -1
  92. package/dist/37.d519cb3af9d6205f0015.bundle.js +1 -0
  93. package/dist/{38.fb2659cad2c86b5ec58d.bundle.js → 38.23f902df4ed8fbfc7fcf.bundle.js} +1 -1
  94. package/dist/{39.96fb293a7ae3ef7a5ad9.bundle.js → 39.171886987f5ef7d17208.bundle.js} +1 -1
  95. package/dist/391.45bf699afe7aba531cd9.bundle.js +1 -1
  96. package/dist/{40.159ef797572a6c14eab5.bundle.js → 40.0937e585f9f5a7eaab82.bundle.js} +1 -1
  97. package/dist/403.61a61ce1c12385533859.bundle.js +1 -1
  98. package/dist/404.b53dc0ad0aaedcf3f809.bundle.js +1 -1
  99. package/dist/405.eb8906e00f241da08275.bundle.js +1 -1
  100. package/dist/406.48298a2b9c49b99170f8.bundle.js +1 -1
  101. package/dist/407.56a20539c08f5d616640.bundle.js +1 -1
  102. package/dist/409.72d548b44e2f1c414a24.bundle.js +1 -1
  103. package/dist/{41.8a09e7ba27f7614de053.bundle.js → 41.3b2afebd8ef778234327.bundle.js} +1 -1
  104. package/dist/410.df9406357dc52e98d0c4.bundle.js +1 -1
  105. package/dist/411.3a8907f7c02b1e9581e2.bundle.js +1 -1
  106. package/dist/412.5feece7f4c5164d2eadb.bundle.js +1 -1
  107. package/dist/{42.68cf9fea9586d95c7ef2.bundle.js → 42.51a2b146401e3d3c44fd.bundle.js} +1 -1
  108. package/dist/43.c3b8fc48a5d69126ff55.bundle.js +1 -0
  109. package/dist/{44.582668c8e60673ee9a89.bundle.js → 44.0b6f6369f9c157f2243c.bundle.js} +1 -1
  110. package/dist/46.5baa02d0ce0f4e4bec79.bundle.js +1 -0
  111. package/dist/{47.a0af564fb81592c87a50.bundle.js → 47.c7898dbc38a6a6e9321b.bundle.js} +1 -1
  112. package/dist/{48.067da85ef40da92d258a.bundle.js → 48.4a5b02907ad2d1a2792f.bundle.js} +1 -1
  113. package/dist/{49.ca18c72cba3d68131fdb.bundle.js → 49.143329d875c1714aec89.bundle.js} +1 -1
  114. package/dist/{50.271eee82fbebc9d53f38.bundle.js → 50.385486fe0efbefd5dfa9.bundle.js} +1 -1
  115. package/dist/{51.4ac9662be57037924446.bundle.js → 51.9f3c96f8a93b54423852.bundle.js} +1 -1
  116. package/dist/{52.1470d5ed8b99f64d5ce2.bundle.js → 52.ff20925f8f7656382d7b.bundle.js} +1 -1
  117. package/dist/{53.f13a957ecbd28e1125c7.bundle.js → 53.e286cd8cfb636fcec996.bundle.js} +1 -1
  118. package/dist/{54.c875b7240154b221bebb.bundle.js → 54.326b8c0143c463fc8e2d.bundle.js} +1 -1
  119. package/dist/55.4009a0d60dea722c108d.bundle.js +1 -0
  120. package/dist/{55.49f77e42bc983dcbfacc.bundle.js → 56.a581f6f1ded6a4d3d08b.bundle.js} +1 -1
  121. package/dist/{56.5a4901fea60239d0b3e0.bundle.js → 57.aa39c7d23ece602d952f.bundle.js} +1 -1
  122. package/dist/{57.1bb4040e33a9a35f5b9f.bundle.js → 58.fad69b0e6153a06c83b7.bundle.js} +1 -1
  123. package/dist/{58.394c32af3b117b179610.bundle.js → 59.84e7285984168a313d36.bundle.js} +1 -1
  124. package/dist/{6.f8af74652bcab7953736.bundle.js → 6.73f6adae3ab11729ebf2.bundle.js} +1 -1
  125. package/dist/{59.e50dc5ce41dd02cf3b3d.bundle.js → 60.ad49b739e4b8f2cdbce7.bundle.js} +1 -1
  126. package/dist/{60.95c6753d580f3a716b22.bundle.js → 61.ee14d8cda3708fe9c287.bundle.js} +1 -1
  127. package/dist/{61.f553a4c10a25b9af3cd7.bundle.js → 62.092aacacd064526783c0.bundle.js} +1 -1
  128. package/dist/{62.48b219154c6345908a80.bundle.js → 63.9537a1fd0366d5518114.bundle.js} +1 -1
  129. package/dist/64.1dd28ef2f60fe1ba23a5.bundle.js +1 -0
  130. package/dist/{64.04c60a42b228c234e2ad.bundle.js → 65.4c0218d3ba1faae1f6ad.bundle.js} +1 -1
  131. package/dist/{65.bb26ca0693ef27c414a7.bundle.js → 66.2a2d9bf0e595ca627c78.bundle.js} +1 -1
  132. package/dist/{66.f19c0287fadf05c84858.bundle.js → 67.a4e87ab3032de83a0d71.bundle.js} +1 -1
  133. package/dist/{67.6b37a09a02d11c37bcaa.bundle.js → 68.66efe1b03756e3052e35.bundle.js} +1 -1
  134. package/dist/{68.9ebaf6d51e22177c8ba2.bundle.js → 69.fd10e482a3491294f900.bundle.js} +1 -1
  135. package/dist/{7.e59eae3aa5e9e0ea5a0e.bundle.js → 7.c7a405d7dc99c9ebee48.bundle.js} +1 -1
  136. package/dist/70.38ae428de620fbf7602d.bundle.js +1 -0
  137. package/dist/{69.f3be67c2243892d32055.bundle.js → 71.e18795e8eaed8f747ce5.bundle.js} +1 -1
  138. package/dist/{70.415393ee813d58975172.bundle.js → 72.a53c1a358c3335c3eaa1.bundle.js} +1 -1
  139. package/dist/{71.e89efd706a10aea2074e.bundle.js → 73.d442bfb6f448e72c5bce.bundle.js} +1 -1
  140. package/dist/{72.6f58ccfef39ec2ee9614.bundle.js → 74.05569d4f46a43d6d56e4.bundle.js} +1 -1
  141. package/dist/{73.53bbbd74f7de2913152b.bundle.js → 75.e226c0d22ed7ff1b57ee.bundle.js} +1 -1
  142. package/dist/{74.184ffc6fc6053f5c645d.bundle.js → 76.afa96077de497c981882.bundle.js} +1 -1
  143. package/dist/{75.441343592edbcf27a029.bundle.js → 77.9fa02265d836024fdf79.bundle.js} +1 -1
  144. package/dist/{76.055e216b311e1817484e.bundle.js → 78.9f81b2060ae650976ae7.bundle.js} +1 -1
  145. package/dist/{77.c75c1df7b8e2c4855b17.bundle.js → 79.3fc17aa270c5a6477e9c.bundle.js} +1 -1
  146. package/dist/{8.28f2c0d888f5e99cfbc9.bundle.js → 8.18ec3a5b3f95a7965e71.bundle.js} +1 -1
  147. package/dist/{78.bd5758f93518290f477f.bundle.js → 80.7de02802c242d6cf125c.bundle.js} +1 -1
  148. package/dist/{79.1d57915d970df0a37229.bundle.js → 81.66b9a961188d712b1d48.bundle.js} +1 -1
  149. package/dist/{80.c83c5d743d89a63e7437.bundle.js → 82.8c402a2cedd2441c3f3c.bundle.js} +1 -1
  150. package/dist/{81.d04604229fe4fdd02601.bundle.js → 83.15cd8f06607b23e5e901.bundle.js} +1 -1
  151. package/dist/{82.a8e009ab0c08b859d2ce.bundle.js → 84.825f8eaa43e71f73f25d.bundle.js} +1 -1
  152. package/dist/{83.80c0e99346b0e55b33a5.bundle.js → 85.00ce4d8f4433d87bf54e.bundle.js} +1 -1
  153. package/dist/{84.891be8b57abdab473123.bundle.js → 86.ffeb1acd50a34948e089.bundle.js} +1 -1
  154. package/dist/{86.33c18744f8b1ae858a66.bundle.js → 87.9ac37a1a4a11ef7dfbac.bundle.js} +1 -1
  155. package/dist/{87.a623d6e7d303f6f34851.bundle.js → 88.5b052707f2cd26eb7890.bundle.js} +1 -1
  156. package/dist/{88.11dcfbd80b70ce8140af.bundle.js → 89.76461444a1cb2b2e1114.bundle.js} +1 -1
  157. package/dist/{9.4b42fc29ab253cd7ad0d.bundle.js → 9.d57134d0b4eb2e6f4ee6.bundle.js} +1 -1
  158. package/dist/{89.2c22dfa2ddf7c65e8f07.bundle.js → 90.7934551daab93be805ba.bundle.js} +1 -1
  159. package/dist/{90.d64c9e9798606a8a2488.bundle.js → 91.de9fe730d2b00227b9d4.bundle.js} +1 -1
  160. package/dist/{91.53d392a817902243fd14.bundle.js → 92.f4a3984a912edbb06838.bundle.js} +1 -1
  161. package/dist/{92.4c7f6ae785e5c2726adf.bundle.js → 93.e22a88d63bd4fc5f616c.bundle.js} +1 -1
  162. package/dist/{93.44989fd952e4ee29a14d.bundle.js → 94.f731de3062bce3990e2f.bundle.js} +1 -1
  163. package/dist/{94.8f5fc9e6922907cdf8d0.bundle.js → 95.5fdf43bda2882304ace9.bundle.js} +1 -1
  164. package/dist/{95.7a98715e44233a65f0b6.bundle.js → 96.21c753d787869238e5ed.bundle.js} +1 -1
  165. package/dist/{96.b2a0154600564a0bf2c8.bundle.js → 97.13cd4feb8916c17b8b20.bundle.js} +1 -1
  166. package/dist/{97.19320ba399d9b0bc4a3d.bundle.js → 98.6379c1708e09a721cc36.bundle.js} +1 -1
  167. package/dist/{98.53c28cc4683594868437.bundle.js → 99.bfe2ea3e30bb6b0e9045.bundle.js} +1 -1
  168. package/dist/{bundle.8b5133c2bd45c3446e7b.bundle.js → bundle.f1f997c1b702d546a4e1.bundle.js} +5 -5
  169. package/dist/css/autocomplete.css +5 -0
  170. package/dist/css/rdf-class-hierarchy.css +1 -1
  171. package/dist/index.html +3 -3
  172. package/dist/js/angular/autocomplete/templates/modal/add-label.html +5 -2
  173. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  174. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  175. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  176. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  177. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  178. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  179. package/dist/js/angular/security/templates/user.html +1 -1
  180. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  181. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  182. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  183. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  184. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  185. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  186. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +1 -1
  187. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  188. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  189. package/dist/license-checker.json +2 -2
  190. package/dist/pages/aclmanagement.html +2 -2
  191. package/dist/pages/autocomplete.html +1 -1
  192. package/dist/pages/choose-repository-type.html +1 -1
  193. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  194. package/dist/pages/create-index.html +1 -1
  195. package/dist/pages/dependencies.html +1 -1
  196. package/dist/pages/domainRangeInfo.html +2 -2
  197. package/dist/pages/edit.html +1 -1
  198. package/dist/pages/explore.html +1 -1
  199. package/dist/pages/export.html +1 -1
  200. package/dist/pages/find.html +1 -1
  201. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  202. package/dist/pages/graphs-visualizations.html +7 -7
  203. package/dist/pages/guides.html +1 -1
  204. package/dist/pages/import.html +2 -2
  205. package/dist/pages/jdbc-create.html +1 -1
  206. package/dist/pages/monitor/backup-and-restore.html +1 -1
  207. package/dist/pages/monitor/queries.html +1 -1
  208. package/dist/pages/monitor/resources.html +1 -1
  209. package/dist/pages/namespaces.html +2 -2
  210. package/dist/pages/plugins.html +1 -1
  211. package/dist/pages/rdfClassHierarchyInfo.html +8 -10
  212. package/dist/pages/rdfrank.html +2 -2
  213. package/dist/pages/repositories.html +1 -1
  214. package/dist/pages/repository.html +1 -1
  215. package/dist/pages/similarity-indexes.html +1 -1
  216. package/dist/pages/sparql-editor.html +1 -1
  217. package/dist/pages/sparql-template-create.html +1 -1
  218. package/dist/pages/ux-test1.html +2 -2
  219. package/dist/pages/webapi.html +2 -2
  220. package/dist/res/swagger5/index.html +12 -12
  221. package/package.json +1 -1
  222. package/dist/129.e20705a1f5be2410d666.bundle.js +0 -1
  223. package/dist/342.ca94acdc8de22e22241a.bundle.js +0 -1
  224. package/dist/37.fbd78997b9e6a3530e15.bundle.js +0 -1
  225. package/dist/43.53bafbaf1332f99c7e74.bundle.js +0 -1
  226. package/dist/46.eb3af10b1fccbfa2f5bf.bundle.js +0 -1
  227. package/dist/63.9c60525f7eed7756e83e.bundle.js +0 -1
  228. package/dist/85.945ee0e14f628a4fa4a1.bundle.js +0 -1
  229. package/dist/99.bc85d568135caa51630f.bundle.js +0 -1
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[36,65,78,101,236,257,258,260,261],{125:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilaritySearchType",(function(){return r}));const r={SEARCH_TERM:"searchTerm",SEARCH_ANALOGICAL:"searchAnalogical",SEARCH_ENTITY:"searchEntity",SEARCH_ENTITY_PREDICATE:"searchEntityPredicate",SEARCH_DOCUMENT:"searchDocumentID",isSearchTermType:e=>r.SEARCH_TERM===e,isSearchAnalogicalType:e=>r.SEARCH_ANALOGICAL===e,isSearchEntityType:e=>r.SEARCH_ENTITY===e,isSearchEntityPredicateType:e=>r.SEARCH_ENTITY_PREDICATE===e,isSearchDocumentType:e=>r.SEARCH_DOCUMENT===e}},192:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilarityResultType",(function(){return r}));const r={TERM_RESULT:"termResult",DOCUMENT_RESULT:"documentResult",ENTITY_RESULT:"entityResult",isResultDocumentType:e=>r.DOCUMENT_RESULT===e,isResultTermType:e=>r.TERM_RESULT===e}},193:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilaritySearch",(function(){return a}));var r=i(125);class a{constructor(){this.type=r.SimilaritySearchType.SEARCH_TERM,this.predicate="",this.termOrSubject=""}isSearchAnalogicalType(){return r.SimilaritySearchType.isSearchAnalogicalType(this.type)}isSearchTermType(){return r.SimilaritySearchType.isSearchTermType(this.type)}isSearchEntityType(){return r.SimilaritySearchType.isSearchEntityType(this.type)}isSearchEntityPredicateType(){return r.SimilaritySearchType.isSearchEntityPredicateType(this.type)}isSearchDocumentType(){return r.SimilaritySearchType.isSearchDocumentType(this.type)}}},311:function(e,t,i){"use strict";i.r(t);i(23),i(47);var r=i(0),a=i(125),s=i(192),n=i(94),c=i(92),l=i(99),o=i(193),y=i(90),p=i(8);function u(e,t,i,u,S,d,T,m,h,I,E,R,x,g,A,b){const v="http://www.ontotext.com/graphdb/similarity/",L="http://www.ontotext.com/graphdb/similarity/psi/",Q=L+"any";e.pluginName="similarity",e.pluginIsActive=!0,e.isLoading=!1,e.selectedSimilarityIndex=void 0,e.similarityIndexStatus=n.SimilarityIndexStatus,e.similarityIndexType=c.SimilarityIndexType,e.similaritySearchType=a.SimilaritySearchType,e.searchType=a.SimilaritySearchType.SEARCH_TERM,e.similarityResultType=s.SimilarityResultType,e.resultType=s.SimilarityResultType.TERM_RESULT,e.info=E,e.isGraphDBRepository=void 0,e.canEditRepo=e.canWriteActiveRepo(),e.loadSimilarityIndexesTimer=void 0,e.loadSimilarityIndexes=()=>{e.isGraphDBRepository&&e.pluginIsActive&&h.getIndexes().success(t=>e.similarityIndexes=Object(l.mapIndexesResponseToSimilarityIndex)(t)).error(e=>i.error(getError(e),x.instant("similarity.could.not.get.indexes.error")))},e.reloadSimilarityIndexes=()=>{e.loadSimilarityIndexes(),e.loadSimilarityIndexesTimer||(e.loadSimilarityIndexesTimer=t((function(){e.$broadcast("checkIsActive"),"false"!==$("#indexes-table").attr("aria-expanded")&&e.loadSimilarityIndexes()}),5e3))},e.goToSimilarityIndex=t=>{(t.isBuiltStatus()||t.isOutdatedStatus()||t.isRebuildingStatus())&&(e.empty=!0,e.selectedSimilarityIndex!==t&&(e.lastSearch=void 0,e.selectedSimilarityIndex=t),t.isTextType()?e.searchType=a.SimilaritySearchType.SEARCH_TERM:t.isPredicationType()&&(e.searchType=a.SimilaritySearchType.SEARCH_ENTITY),(t.isTextType()||t.isPredicationType())&&$("#indexes-table").collapse("hide"))},e.performSearch=(t,r,a,s,n)=>{e.isLoading=!0,M(a,r);const c=B(t,r,a,s,n);g.getQueryResult(u.getActiveRepository(),c,"application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8").then(e=>q(e)).catch(e=>i.error(getError(e.data),x.instant("similarity.get.resource.error"))).finally(()=>e.isLoading=!1)},e.viewSearchQuery=()=>{let t;t=e.lastSearch.isSearchAnalogicalType()?e.selectedSimilarityIndex.analogicalQuery?e.selectedSimilarityIndex.analogicalQuery:e.searchQueries.analogical:e.selectedSimilarityIndex.searchQuery?e.selectedSimilarityIndex.searchQuery:e.searchQueries[e.selectedSimilarityIndex.type];let i=[],r="";i=t.match(/[a-zA-Z0-9-]+:<http:\/\/www.ontotext.com\/graphdb\/similarity\/instance\/>/),r=null==i?"similarity-index":i[0].substring(0,i[0].indexOf(":"));const s=t.replace("?index",r+":"+e.selectedSimilarityIndex.name).replace("?query",e.lastSearch.termOrSubject).replace("?searchType",(e.selectedSimilarityIndex.isTextType()?":":"psi:")+(e.lastSearch.isSearchEntityPredicateType()?a.SimilaritySearchType.SEARCH_ENTITY:e.lastSearch.type)).replace("?resultType",e.selectedSimilarityIndex.isTextType()?":"+e.resultType:"psi:entityResult").replace("?parameters",O(e.searchParameters?e.searchParameters:"")).replace("?psiPredicate",e.lastSearch.predicate?D(e.lastSearch.predicate):D(Q)).replace("?givenSubject",D(e.analogicalSubject)).replace("?givenObject",D(e.analogicalObject)).replace("?searchSubject",D(e.searchSubject));m.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:()=>s}})},e.deleteSimilarityIndex=t=>{T.openSimpleModal({title:x.instant("common.confirm"),message:x.instant("similarity.delete.index.warning",{name:t.name}),warning:!0}).result.then((function(){h.deleteIndex(t).then(()=>e.loadSimilarityIndexes()).catch(e=>i.error(getError(e)))}))},e.viewCreateQuery=e=>{h.getQuery({indexName:e.name,indexOptions:e.options,query:e.selectQuery,indexStopList:e.stopList,queryInference:e.infer,querySameAs:e.sameAs,viewType:e.type,indexAnalyzer:e.analyzer}).success(e=>{m.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:()=>e}})})},e.rebuildIndex=t=>{t.searchQuery||(t.searchQuery=t.type?e.searchQueries[t.type]:e.searchQueries.text),T.openSimpleModal({title:x.instant("common.confirm"),message:Object(r.decodeHTML)(x.instant("similarity.rebuild.index.warning",{name:t.name})),warning:!0}).result.then(()=>{t.status=n.SimilarityIndexStatus.REBUILDING,h.rebuildIndex(t).catch(e=>i.error(getError(e)))})},e.setPluginIsActive=t=>{e.pluginIsActive=t},e.encodeURIComponent=e=>encodeURIComponent(e),e.copyToClipboardResult=e=>{T.openCopyToClipboardModal(e)},e.trimIRI=e=>_.trim(e,"<>"),e.updateSearchType=t=>{e.searchType=t},e.updateResultType=t=>{e.resultType=t},e.editSimilarityIndex=e=>{w(e)},e.cloneSimilataryIndex=e=>{w(e,!0)},e.setPsiSubject=t=>{e.psiSubject=t},e.setAnalogicalSubject=t=>{e.analogicalSubject=t},e.setAnalogicalObject=t=>{e.analogicalObject=t};const w=(e,t=!1)=>{const i={selectQuery:e.selectQuery,options:e.options,name:e.name,editSearchQuery:!t,infer:e.infer,sameAs:e.sameAs,stopList:e.stopList,type:e.type,analyzer:e.analyzer,searchQuery:e.searchQuery?e.searchQuery:"",analogicalQuery:e.analogicalQuery?e.analogicalQuery:""};d.path("similarity/index/create").search(i)},C=()=>{const t=e.getActiveRepository();t&&e.activeRepository!==t&&(e.canEditRepo=e.canWriteActiveRepo(),e.activeRepository=t,e.isGraphDBRepository=N(),e.isGraphDBRepository&&(S.isLicenseValid()&&e.reloadSimilarityIndexes(),f()))},f=()=>{h.getSearchQueries().success(t=>e.searchQueries=t).error(e=>i.error(getError(e),x.instant("similarity.could.not.get.search.queries.error")))},O=e=>'"'+e+'"',D=e=>void 0===e||e.startsWith("<<")&&e.endsWith(">>")?e:"<"+e+">",N=()=>e.getActiveRepository()&&!e.isActiveRepoOntopType()&&!e.isActiveRepoFedXType(),U=[];U.push(e.$on("repositoryIsSet",C));e.$on("$destroy",()=>{j(),e.loadSimilarityIndexesTimer&&t.cancel(e.loadSimilarityIndexesTimer)});const j=()=>{U.forEach(e=>e())};U.push(A.onAutocompleteEnabledUpdated(t=>{e.isAutocompleteEnabled=t})),U.push(A.onSelectedRepositoryIdUpdated(t=>{t?b.getNamespaces(t).then(t=>{e.repositoryNamespaces=t}).catch(e=>{const t=getError(e);i.error(t,x.instant("error.getting.namespaces.for.repo"))}):e.repositoryNamespaces=new p.NamespacesListModel}));U.push(e.$watch("searchType",()=>{e.empty=!0}));const P=e.$watch(e.getActiveRepositoryObject,e=>{e&&(C(),P())}),B=(t,i,r,n,c)=>{const l={query:G(e.lastSearch.type),$index:D("http://www.ontotext.com/graphdb/similarity/instance/"+t.name),$query:e.lastSearch.termOrSubject,$searchType:D((e.selectedSimilarityIndex.isTextType()?v:L)+(a.SimilaritySearchType.isSearchEntityPredicateType(r)?a.SimilaritySearchType.SEARCH_ENTITY:r)),$resultType:D(e.selectedSimilarityIndex.isTextType()?v+n:L+s.SimilarityResultType.ENTITY_RESULT),$parameters:O(c)};return a.SimilaritySearchType.isSearchEntityPredicateType(r)&&(l.$psiPredicate=e.lastSearch.predicate?D(e.lastSearch.predicate):D(Q)),a.SimilaritySearchType.isSearchAnalogicalType(r)&&(e.searchSubject=i,l.$givenSubject=D(e.analogicalSubject),l.$givenObject=D(e.analogicalObject),l.$searchSubject=D(i)),l},M=(t,i)=>{e.lastSearch=new o.SimilaritySearch,e.lastSearch.type=t,a.SimilaritySearchType.isSearchEntityPredicateType(t)&&(e.lastSearch.predicate=i),e.lastSearch.termOrSubject=H(e.lastSearch.type,i,e.psiSubject)},G=t=>{let i;return i=a.SimilaritySearchType.isSearchAnalogicalType(t)?e.selectedSimilarityIndex.analogicalQuery?e.selectedSimilarityIndex.analogicalQuery:e.searchQueries.analogical:e.selectedSimilarityIndex.searchQuery?e.selectedSimilarityIndex.searchQuery:e.searchQueries[e.selectedSimilarityIndex.type],i},H=(e,t,i)=>{let r=t;return a.SimilaritySearchType.isSearchEntityPredicateType(e)&&(r=i),r=a.SimilaritySearchType.isSearchTermType(e)?O(r):D(r),r},q=t=>{e.yasguiConfig={showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showQueryButton:!1,downloadAsOn:!1,showResultInfo:!1,componentId:"similarity-list-component",maxPersistentResponseSize:0,render:y.RenderingMode.YASR,sparqlResponse:t.data}}}angular.module("graphdb.framework.similarity.controllers.list",["graphdb.core.services.workbench-context","graphdb.framework.core.services.rdf4j.repositories"]).controller("SimilarityCtrl",u),u.$inject=["$scope","$interval","toastr","$repositories","$licenseService","$location","ModalService","$uibModal","SimilarityRestService","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService","$translate","SparqlRestService","WorkbenchContextService","RDF4JRepositoriesService"]},90:function(e,t,i){"use strict";i.r(t),i.d(t,"RenderingMode",(function(){return r}));const r={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},92:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilarityIndexType",(function(){return r}));const r={TEXT:"text",TEXT_LITERAL:"textLiteral",PREDICATION:"predication",isTextType:e=>r.TEXT===e,isTextLiteralType:e=>r.TEXT_LITERAL===e,isPredicationType:e=>r.PREDICATION===e}},94:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilarityIndexStatus",(function(){return r}));const r={CREATING:"CREATING",BUILDING:"BUILDING",BUILT:"BUILT",REBUILDING:"REBUILDING",OUTDATED:"OUTDATED",INTERRUPTED:"INTERRUPTED",OBSOLETE:"OBSOLETE",FAILED:"FAILED",isCreatingStatus:e=>r.CREATING===e,isBuildingStatus:e=>r.BUILDING===e,isBuiltStatus:e=>r.BUILT===e,isRebuildingStatus:e=>r.REBUILDING===e,isOutdatedStatus:e=>r.OUTDATED===e,isInterruptedStatus:e=>r.INTERRUPTED===e,isObsoleteStatus:e=>r.OBSOLETE===e,isFailedStatus:e=>r.FAILED===e}},95:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilarityIndex",(function(){return s}));var r=i(92),a=i(94);class s{constructor(){this.analyzer="",this.infer=!0,this.options="",this.sameAs=!0,this.searchQuery="",this.selectQuery="",this.stopList=void 0,this.name="",this.type=r.SimilarityIndexType.TEXT,this.status=void 0,this.analogicalQuery=void 0,this.inputIndex=void 0,this.isLiteralIndex=""}isTextType(){return r.SimilarityIndexType.isTextType(this.type)}isTextLiteralType(){return r.SimilarityIndexType.isTextLiteralType(this.type)}isPredicationType(){return r.SimilarityIndexType.isPredicationType(this.type)}isCreatingStatus(){return a.SimilarityIndexStatus.isCreatingStatus(this.status)}isBuildingStatus(){return a.SimilarityIndexStatus.isBuildingStatus(this.status)}isBuiltStatus(){return a.SimilarityIndexStatus.isBuiltStatus(this.status)}isRebuildingStatus(){return a.SimilarityIndexStatus.isRebuildingStatus(this.status)}isOutdatedStatus(){return a.SimilarityIndexStatus.isOutdatedStatus(this.status)}isInterruptedStatus(){return a.SimilarityIndexStatus.isInterruptedStatus(this.status)}isObsoleteStatus(){return a.SimilarityIndexStatus.isObsoleteStatus(this.status)}isFailedStatus(){return a.SimilarityIndexStatus.isFailedStatus(this.status)}}},99:function(e,t,i){"use strict";i.r(t),i.d(t,"mapIndexesResponseToSimilarityIndex",(function(){return a}));var r=i(95);const a=e=>e.map(e=>{const t=new r.SimilarityIndex;return t.type=e.type,t.stopList=e.stopList,t.status=e.status,t.selectQuery=e.selectQuery,t.searchQuery=e.searchQuery,t.sameAs=e.sameAs,t.options=e.options,t.name=e.name,t.infer=e.infer,t.analyzer=e.analyzer,t.analogicalQuery=e.analogicalQuery,t})}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[36,66,80,102,236,257,258,260,261],{126:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilaritySearchType",(function(){return r}));const r={SEARCH_TERM:"searchTerm",SEARCH_ANALOGICAL:"searchAnalogical",SEARCH_ENTITY:"searchEntity",SEARCH_ENTITY_PREDICATE:"searchEntityPredicate",SEARCH_DOCUMENT:"searchDocumentID",isSearchTermType:e=>r.SEARCH_TERM===e,isSearchAnalogicalType:e=>r.SEARCH_ANALOGICAL===e,isSearchEntityType:e=>r.SEARCH_ENTITY===e,isSearchEntityPredicateType:e=>r.SEARCH_ENTITY_PREDICATE===e,isSearchDocumentType:e=>r.SEARCH_DOCUMENT===e}},192:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilarityResultType",(function(){return r}));const r={TERM_RESULT:"termResult",DOCUMENT_RESULT:"documentResult",ENTITY_RESULT:"entityResult",isResultDocumentType:e=>r.DOCUMENT_RESULT===e,isResultTermType:e=>r.TERM_RESULT===e}},193:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilaritySearch",(function(){return a}));var r=i(126);class a{constructor(){this.type=r.SimilaritySearchType.SEARCH_TERM,this.predicate="",this.termOrSubject=""}isSearchAnalogicalType(){return r.SimilaritySearchType.isSearchAnalogicalType(this.type)}isSearchTermType(){return r.SimilaritySearchType.isSearchTermType(this.type)}isSearchEntityType(){return r.SimilaritySearchType.isSearchEntityType(this.type)}isSearchEntityPredicateType(){return r.SimilaritySearchType.isSearchEntityPredicateType(this.type)}isSearchDocumentType(){return r.SimilaritySearchType.isSearchDocumentType(this.type)}}},311:function(e,t,i){"use strict";i.r(t);i(23),i(47);var r=i(0),a=i(126),s=i(192),n=i(94),c=i(92),l=i(99),o=i(193),y=i(90),p=i(8);function u(e,t,i,u,S,d,T,m,h,I,E,R,x,g,A,b){const v="http://www.ontotext.com/graphdb/similarity/",L="http://www.ontotext.com/graphdb/similarity/psi/",Q=L+"any";e.pluginName="similarity",e.pluginIsActive=!0,e.isLoading=!1,e.selectedSimilarityIndex=void 0,e.similarityIndexStatus=n.SimilarityIndexStatus,e.similarityIndexType=c.SimilarityIndexType,e.similaritySearchType=a.SimilaritySearchType,e.searchType=a.SimilaritySearchType.SEARCH_TERM,e.similarityResultType=s.SimilarityResultType,e.resultType=s.SimilarityResultType.TERM_RESULT,e.info=E,e.isGraphDBRepository=void 0,e.canEditRepo=e.canWriteActiveRepo(),e.loadSimilarityIndexesTimer=void 0,e.loadSimilarityIndexes=()=>{e.isGraphDBRepository&&e.pluginIsActive&&h.getIndexes().success(t=>e.similarityIndexes=Object(l.mapIndexesResponseToSimilarityIndex)(t)).error(e=>i.error(getError(e),x.instant("similarity.could.not.get.indexes.error")))},e.reloadSimilarityIndexes=()=>{e.loadSimilarityIndexes(),e.loadSimilarityIndexesTimer||(e.loadSimilarityIndexesTimer=t((function(){e.$broadcast("checkIsActive"),"false"!==$("#indexes-table").attr("aria-expanded")&&e.loadSimilarityIndexes()}),5e3))},e.goToSimilarityIndex=t=>{(t.isBuiltStatus()||t.isOutdatedStatus()||t.isRebuildingStatus())&&(e.empty=!0,e.selectedSimilarityIndex!==t&&(e.lastSearch=void 0,e.selectedSimilarityIndex=t),t.isTextType()?e.searchType=a.SimilaritySearchType.SEARCH_TERM:t.isPredicationType()&&(e.searchType=a.SimilaritySearchType.SEARCH_ENTITY),(t.isTextType()||t.isPredicationType())&&$("#indexes-table").collapse("hide"))},e.performSearch=(t,r,a,s,n)=>{e.isLoading=!0,M(a,r);const c=B(t,r,a,s,n);g.getQueryResult(u.getActiveRepository(),c,"application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8").then(e=>q(e)).catch(e=>i.error(getError(e.data),x.instant("similarity.get.resource.error"))).finally(()=>e.isLoading=!1)},e.viewSearchQuery=()=>{let t;t=e.lastSearch.isSearchAnalogicalType()?e.selectedSimilarityIndex.analogicalQuery?e.selectedSimilarityIndex.analogicalQuery:e.searchQueries.analogical:e.selectedSimilarityIndex.searchQuery?e.selectedSimilarityIndex.searchQuery:e.searchQueries[e.selectedSimilarityIndex.type];let i=[],r="";i=t.match(/[a-zA-Z0-9-]+:<http:\/\/www.ontotext.com\/graphdb\/similarity\/instance\/>/),r=null==i?"similarity-index":i[0].substring(0,i[0].indexOf(":"));const s=t.replace("?index",r+":"+e.selectedSimilarityIndex.name).replace("?query",e.lastSearch.termOrSubject).replace("?searchType",(e.selectedSimilarityIndex.isTextType()?":":"psi:")+(e.lastSearch.isSearchEntityPredicateType()?a.SimilaritySearchType.SEARCH_ENTITY:e.lastSearch.type)).replace("?resultType",e.selectedSimilarityIndex.isTextType()?":"+e.resultType:"psi:entityResult").replace("?parameters",O(e.searchParameters?e.searchParameters:"")).replace("?psiPredicate",e.lastSearch.predicate?D(e.lastSearch.predicate):D(Q)).replace("?givenSubject",D(e.analogicalSubject)).replace("?givenObject",D(e.analogicalObject)).replace("?searchSubject",D(e.searchSubject));m.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:()=>s}})},e.deleteSimilarityIndex=t=>{T.openSimpleModal({title:x.instant("common.confirm"),message:x.instant("similarity.delete.index.warning",{name:t.name}),warning:!0}).result.then((function(){h.deleteIndex(t).then(()=>e.loadSimilarityIndexes()).catch(e=>i.error(getError(e)))}))},e.viewCreateQuery=e=>{h.getQuery({indexName:e.name,indexOptions:e.options,query:e.selectQuery,indexStopList:e.stopList,queryInference:e.infer,querySameAs:e.sameAs,viewType:e.type,indexAnalyzer:e.analyzer}).success(e=>{m.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:()=>e}})})},e.rebuildIndex=t=>{t.searchQuery||(t.searchQuery=t.type?e.searchQueries[t.type]:e.searchQueries.text),T.openSimpleModal({title:x.instant("common.confirm"),message:Object(r.decodeHTML)(x.instant("similarity.rebuild.index.warning",{name:t.name})),warning:!0}).result.then(()=>{t.status=n.SimilarityIndexStatus.REBUILDING,h.rebuildIndex(t).catch(e=>i.error(getError(e)))})},e.setPluginIsActive=t=>{e.pluginIsActive=t},e.encodeURIComponent=e=>encodeURIComponent(e),e.copyToClipboardResult=e=>{T.openCopyToClipboardModal(e)},e.trimIRI=e=>_.trim(e,"<>"),e.updateSearchType=t=>{e.searchType=t},e.updateResultType=t=>{e.resultType=t},e.editSimilarityIndex=e=>{w(e)},e.cloneSimilataryIndex=e=>{w(e,!0)},e.setPsiSubject=t=>{e.psiSubject=t},e.setAnalogicalSubject=t=>{e.analogicalSubject=t},e.setAnalogicalObject=t=>{e.analogicalObject=t};const w=(e,t=!1)=>{const i={selectQuery:e.selectQuery,options:e.options,name:e.name,editSearchQuery:!t,infer:e.infer,sameAs:e.sameAs,stopList:e.stopList,type:e.type,analyzer:e.analyzer,searchQuery:e.searchQuery?e.searchQuery:"",analogicalQuery:e.analogicalQuery?e.analogicalQuery:""};d.path("similarity/index/create").search(i)},C=()=>{const t=e.getActiveRepository();t&&e.activeRepository!==t&&(e.canEditRepo=e.canWriteActiveRepo(),e.activeRepository=t,e.isGraphDBRepository=N(),e.isGraphDBRepository&&(S.isLicenseValid()&&e.reloadSimilarityIndexes(),f()))},f=()=>{h.getSearchQueries().success(t=>e.searchQueries=t).error(e=>i.error(getError(e),x.instant("similarity.could.not.get.search.queries.error")))},O=e=>'"'+e+'"',D=e=>void 0===e||e.startsWith("<<")&&e.endsWith(">>")?e:"<"+e+">",N=()=>e.getActiveRepository()&&!e.isActiveRepoOntopType()&&!e.isActiveRepoFedXType(),U=[];U.push(e.$on("repositoryIsSet",C));e.$on("$destroy",()=>{j(),e.loadSimilarityIndexesTimer&&t.cancel(e.loadSimilarityIndexesTimer)});const j=()=>{U.forEach(e=>e())};U.push(A.onAutocompleteEnabledUpdated(t=>{e.isAutocompleteEnabled=t})),U.push(A.onSelectedRepositoryIdUpdated(t=>{t?b.getNamespaces(t).then(t=>{e.repositoryNamespaces=t}).catch(e=>{const t=getError(e);i.error(t,x.instant("error.getting.namespaces.for.repo"))}):e.repositoryNamespaces=new p.NamespacesListModel}));U.push(e.$watch("searchType",()=>{e.empty=!0}));const P=e.$watch(e.getActiveRepositoryObject,e=>{e&&(C(),P())}),B=(t,i,r,n,c)=>{const l={query:G(e.lastSearch.type),$index:D("http://www.ontotext.com/graphdb/similarity/instance/"+t.name),$query:e.lastSearch.termOrSubject,$searchType:D((e.selectedSimilarityIndex.isTextType()?v:L)+(a.SimilaritySearchType.isSearchEntityPredicateType(r)?a.SimilaritySearchType.SEARCH_ENTITY:r)),$resultType:D(e.selectedSimilarityIndex.isTextType()?v+n:L+s.SimilarityResultType.ENTITY_RESULT),$parameters:O(c)};return a.SimilaritySearchType.isSearchEntityPredicateType(r)&&(l.$psiPredicate=e.lastSearch.predicate?D(e.lastSearch.predicate):D(Q)),a.SimilaritySearchType.isSearchAnalogicalType(r)&&(e.searchSubject=i,l.$givenSubject=D(e.analogicalSubject),l.$givenObject=D(e.analogicalObject),l.$searchSubject=D(i)),l},M=(t,i)=>{e.lastSearch=new o.SimilaritySearch,e.lastSearch.type=t,a.SimilaritySearchType.isSearchEntityPredicateType(t)&&(e.lastSearch.predicate=i),e.lastSearch.termOrSubject=H(e.lastSearch.type,i,e.psiSubject)},G=t=>{let i;return i=a.SimilaritySearchType.isSearchAnalogicalType(t)?e.selectedSimilarityIndex.analogicalQuery?e.selectedSimilarityIndex.analogicalQuery:e.searchQueries.analogical:e.selectedSimilarityIndex.searchQuery?e.selectedSimilarityIndex.searchQuery:e.searchQueries[e.selectedSimilarityIndex.type],i},H=(e,t,i)=>{let r=t;return a.SimilaritySearchType.isSearchEntityPredicateType(e)&&(r=i),r=a.SimilaritySearchType.isSearchTermType(e)?O(r):D(r),r},q=t=>{e.yasguiConfig={showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showQueryButton:!1,downloadAsOn:!1,showResultInfo:!1,componentId:"similarity-list-component",maxPersistentResponseSize:0,render:y.RenderingMode.YASR,sparqlResponse:t.data}}}angular.module("graphdb.framework.similarity.controllers.list",["graphdb.core.services.workbench-context","graphdb.framework.core.services.rdf4j.repositories"]).controller("SimilarityCtrl",u),u.$inject=["$scope","$interval","toastr","$repositories","$licenseService","$location","ModalService","$uibModal","SimilarityRestService","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService","$translate","SparqlRestService","WorkbenchContextService","RDF4JRepositoriesService"]},90:function(e,t,i){"use strict";i.r(t),i.d(t,"RenderingMode",(function(){return r}));const r={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},92:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilarityIndexType",(function(){return r}));const r={TEXT:"text",TEXT_LITERAL:"textLiteral",PREDICATION:"predication",isTextType:e=>r.TEXT===e,isTextLiteralType:e=>r.TEXT_LITERAL===e,isPredicationType:e=>r.PREDICATION===e}},94:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilarityIndexStatus",(function(){return r}));const r={CREATING:"CREATING",BUILDING:"BUILDING",BUILT:"BUILT",REBUILDING:"REBUILDING",OUTDATED:"OUTDATED",INTERRUPTED:"INTERRUPTED",OBSOLETE:"OBSOLETE",FAILED:"FAILED",isCreatingStatus:e=>r.CREATING===e,isBuildingStatus:e=>r.BUILDING===e,isBuiltStatus:e=>r.BUILT===e,isRebuildingStatus:e=>r.REBUILDING===e,isOutdatedStatus:e=>r.OUTDATED===e,isInterruptedStatus:e=>r.INTERRUPTED===e,isObsoleteStatus:e=>r.OBSOLETE===e,isFailedStatus:e=>r.FAILED===e}},95:function(e,t,i){"use strict";i.r(t),i.d(t,"SimilarityIndex",(function(){return s}));var r=i(92),a=i(94);class s{constructor(){this.analyzer="",this.infer=!0,this.options="",this.sameAs=!0,this.searchQuery="",this.selectQuery="",this.stopList=void 0,this.name="",this.type=r.SimilarityIndexType.TEXT,this.status=void 0,this.analogicalQuery=void 0,this.inputIndex=void 0,this.isLiteralIndex=""}isTextType(){return r.SimilarityIndexType.isTextType(this.type)}isTextLiteralType(){return r.SimilarityIndexType.isTextLiteralType(this.type)}isPredicationType(){return r.SimilarityIndexType.isPredicationType(this.type)}isCreatingStatus(){return a.SimilarityIndexStatus.isCreatingStatus(this.status)}isBuildingStatus(){return a.SimilarityIndexStatus.isBuildingStatus(this.status)}isBuiltStatus(){return a.SimilarityIndexStatus.isBuiltStatus(this.status)}isRebuildingStatus(){return a.SimilarityIndexStatus.isRebuildingStatus(this.status)}isOutdatedStatus(){return a.SimilarityIndexStatus.isOutdatedStatus(this.status)}isInterruptedStatus(){return a.SimilarityIndexStatus.isInterruptedStatus(this.status)}isObsoleteStatus(){return a.SimilarityIndexStatus.isObsoleteStatus(this.status)}isFailedStatus(){return a.SimilarityIndexStatus.isFailedStatus(this.status)}}},99:function(e,t,i){"use strict";i.r(t),i.d(t,"mapIndexesResponseToSimilarityIndex",(function(){return a}));var r=i(95);const a=e=>e.map(e=>{const t=new r.SimilarityIndex;return t.type=e.type,t.stopList=e.stopList,t.status=e.status,t.selectQuery=e.selectQuery,t.searchQuery=e.searchQuery,t.sameAs=e.sameAs,t.options=e.options,t.name=e.name,t.infer=e.infer,t.analyzer=e.analyzer,t.analogicalQuery=e.analogicalQuery,t})}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[360],{480:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<div class="cookie-consent-modal" ng-show="showCookieConsent">\n <div class="cookie-consent-content">\n <span>{{\'cookie.cookie_consent\' | translate}} <a href="#" class="btn btn-link p-0"\n ng-click="showCookiePolicy()">{{\'cookie.cookie_policy_url_label\' | translate}}</a>.</span>\n <button class="btn btn-primary" ng-click="acceptConsent()">{{\'common.ok.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[360],{480:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<div class="cookie-consent-modal" ng-show="showCookieConsent">\n <div class="cookie-consent-content">\n <span>{{\'cookie.cookie_consent\' | translate}} <a href="#" class="btn btn-link p-0"\n ng-click="showCookiePolicy()">{{\'cookie.cookie_policy_url_label\' | translate}}</a>.</span>\n <button class="btn btn-primary" ng-click="acceptConsent()">{{\'common.ok.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[361],{481:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<div class="cookie-policy-modal">\n <div class="title">{{\'cookie.policy.title\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.purpose_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.purpose_text\' | translate}}</div>\n <div class="text mt-1">{{\'cookie.policy.purpose_enterprise_text\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.privacy_commitment_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.privacy_commitment_text\' | translate}}</div>\n <ul>\n <li>{{\'cookie.policy.privacy_commitment_1\' | translate}}</li>\n <li>{{\'cookie.policy.privacy_commitment_2\' | translate}}</li>\n </ul>\n\n <div class="heading">{{\'cookie.policy.cookies_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.cookies_text\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.manage_cookies_heading\' | translate}}</div>\n <div id="statistic-consent" class="toggle-group">\n <label><strong>{{\'cookie.policy.statistic_cookies\' | translate}}</strong></label>\n <span gdb-tooltip="{{\'cookie.policy.statistic_tooltip\' | translate}}" tooltip-placement="top"\n ng-click="toggleConsent(ConsentTypes.STATISTIC)"\n class="switch">\n <input type="checkbox" class="switch" ng-checked="cookieConsent.getStatisticConsent()"/>\n <label for="statistic-consent"></label>\n </span>\n </div>\n <div class="text">{{\'cookie.policy.statistic_text\' | translate}}</div>\n\n <div id="third-party-consent" class="toggle-group mt-1">\n <label><strong>{{\'cookie.policy.third_party_cookies\' | translate}}</strong></label>\n <span gdb-tooltip="{{\'cookie.policy.third_party_tooltip\' | translate}}" tooltip-placement="top"\n ng-click="toggleConsent(ConsentTypes.THIRD_PARTY)"\n class="switch">\n <input type="checkbox" class="switch" ng-checked="cookieConsent.thirdParty"/>\n <label for="third-party-consent"></label>\n </span>\n </div>\n <div class="text">{{\'cookie.policy.third_party_cookies_text\' | translate}}</div>\n\n <div class="text mt-1"><span>{{\'cookie.policy.change_cookies\' | translate}} <i>{{\'menu.setup.label\' | translate}} > {{\'menu.my.settings.label\' | translate}} > {{\'security.user.settings\' | translate}} > {{\'cookie.policy.change_cookies_location4\' | translate}}</i></span></div>\n\n <div class="text-right">\n <button class="btn btn-primary" ng-click="close()">{{\'common.close.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[361],{481:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<div class="cookie-policy-modal">\n <div class="title">{{\'cookie.policy.title\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.purpose_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.purpose_text\' | translate}}</div>\n <div class="text mt-1">{{\'cookie.policy.purpose_enterprise_text\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.privacy_commitment_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.privacy_commitment_text\' | translate}}</div>\n <ul>\n <li>{{\'cookie.policy.privacy_commitment_1\' | translate}}</li>\n <li>{{\'cookie.policy.privacy_commitment_2\' | translate}}</li>\n </ul>\n\n <div class="heading">{{\'cookie.policy.cookies_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.cookies_text\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.manage_cookies_heading\' | translate}}</div>\n <div id="statistic-consent" class="toggle-group">\n <label><strong>{{\'cookie.policy.statistic_cookies\' | translate}}</strong></label>\n <span gdb-tooltip="{{\'cookie.policy.statistic_tooltip\' | translate}}" tooltip-placement="top"\n ng-click="toggleConsent(ConsentTypes.STATISTIC)"\n class="switch">\n <input type="checkbox" class="switch" ng-checked="cookieConsent.getStatisticConsent()"/>\n <label for="statistic-consent"></label>\n </span>\n </div>\n <div class="text">{{\'cookie.policy.statistic_text\' | translate}}</div>\n\n <div id="third-party-consent" class="toggle-group mt-1">\n <label><strong>{{\'cookie.policy.third_party_cookies\' | translate}}</strong></label>\n <span gdb-tooltip="{{\'cookie.policy.third_party_tooltip\' | translate}}" tooltip-placement="top"\n ng-click="toggleConsent(ConsentTypes.THIRD_PARTY)"\n class="switch">\n <input type="checkbox" class="switch" ng-checked="cookieConsent.thirdParty"/>\n <label for="third-party-consent"></label>\n </span>\n </div>\n <div class="text">{{\'cookie.policy.third_party_cookies_text\' | translate}}</div>\n\n <div class="text mt-1"><span>{{\'cookie.policy.change_cookies\' | translate}} <i>{{\'menu.setup.label\' | translate}} > {{\'menu.my.settings.label\' | translate}} > {{\'security.user.settings\' | translate}} > {{\'cookie.policy.change_cookies_location4\' | translate}}</i></span></div>\n\n <div class="text-right">\n <button class="btn btn-primary" ng-click="close()">{{\'common.close.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[37,46,236,244,263,264,303,326],{102:function(e,t){function r(e,t){return{showToastMessageWithDelay:function(r){return new Promise(a=>{e.success(t.instant(r)),setTimeout(a,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",r),r.$inject=["toastr","$translate"]},195:function(e,t,r){"use strict";r.r(t),r.d(t,"SparqlTemplateError",(function(){return a}));class a extends Error{}},196:function(e,t,r){"use strict";r.r(t),r.d(t,"DEFAULT_SPARQL_QUERY",(function(){return a})),r.d(t,"SparqlTemplateInfo",(function(){return n}));const a="PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\nPREFIX ex: <http://example.com#>\nDELETE {\n ?subject ex:myPredicate ?oldValue .\n} INSERT {\n ?subject ex:myPredicate ?newValue .\n} WHERE {\n ?id rdf:type ex:MyType .\n ?subject ex:isRelatedTo ?id .\n}\n";class n{constructor(e=a,t=!0,r){this.query=e,this.templateID=r,this.isNewTemplate=t,this.templateExist=!1,this.isValidTemplateId=!0,this.isValidQuery=!0,this.isValidQueryMode=!0}}},309:function(e,t){angular.module("graphdb.framework.rest.sparql-templates.service",[]).factory("SparqlTemplatesRestService",r),r.$inject=["$http"];function r(e){return{getSparqlTemplates:function(t){return e.get(`rest/repositories/${t}/sparql-templates`)},getSparqlTemplate:function(t,r){return e.get(`rest/repositories/${r}/sparql-templates/configuration`,{params:{templateID:t}})},createSparqlTemplate:function(t,r){return e.post(`rest/repositories/${r}/sparql-templates`,{templateID:t.templateID,query:t.query})},updateSparqlTemplate:function(t,r){return e.put(`rest/repositories/${r}/sparql-templates`,t.query,{params:{templateID:t.templateID},headers:{"Content-Type":"text/plain"}})},deleteSparqlTemplate:function(t,r){return e.delete(`rest/repositories/${r}/sparql-templates`,{params:{templateID:t}})}}}},313:function(e,t,r){"use strict";r.r(t);r(9),r(41),r(43),r(102),r(44),r(22);var a=r(0),n=r(196),s=r(195),i=r(97),o=r(90),l=r(19);function p(e,t,r,a,n,s,i){e.pluginName="sparql-template",e.setPluginIsActive=function(t){e.pluginIsActive=t},e.getSparqlTemplates=function(){s.isLicenseValid()&&t.getActiveRepository()&&!t.isActiveRepoOntopType()&&!t.isActiveRepoFedXType()?r.getSparqlTemplates(t.getActiveRepository()).success((function(t){e.sparqlTemplateIds=t})).error((function(e){const t=getError(e);a.error(t,i.instant("sparql.template.get.templates.error"))})):e.sparqlTemplateIds=[]},e.$watch((function(){return t.getActiveRepository()}),(function(){e.getSparqlTemplates()})),e.deleteTemplate=function(s){n.openSimpleModal({title:i.instant("common.warning"),message:i.instant("sparql.template.delete.template.warning",{templateID:s}),warning:!0}).result.then((function(){r.deleteSparqlTemplate(s,t.getActiveRepository()).success((function(){a.success(s,i.instant("sparql.template.delete.template.success")),e.getSparqlTemplates()})).error((function(e){a.error(getError(e),i.instant("sparql.template.delete.template.failure",{templateID:s}))}))}))}}function c(e,t,r,p,c,m,u,d,f,g,q,T,h,I,y,w){e.initialQuery=n.DEFAULT_SPARQL_QUERY,e.sparqlTemplateInfo=new n.SparqlTemplateInfo(e.initialQuery),e.title="",e.saveOrUpdateExecuted=!1,e.isDirty=!1,e.language=w.getLanguage(),e.canEditActiveRepo=!1;let v=!0;e.saveTemplate=function(){e.saveOrUpdateExecuted=!0,A()||U();const t=e.sparqlTemplateInfo.isNewTemplate?S:P;x(e.sparqlTemplateInfo).then(Q).then(R).then(k).then(t).then(M).catch(e=>{e instanceof s.SparqlTemplateError||console.log(e)})},e.isTemplateIdValid=e=>q.isValidIri(e,e.toString()),e.markDirty=()=>{e.isDirty=!0},e.markPristine=()=>{e.isDirty=!1};const E=(t,r=n.DEFAULT_SPARQL_QUERY)=>{e.sparqlTemplateInfo.query=r,e.sparqlTemplateInfo.templateID=V(),e.sparqlTemplateInfo.isNewTemplate=!e.sparqlTemplateInfo.templateID,j(),e.yasguiConfig={showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showYasqeActionButtons:!1,showYasqeResizer:!1,yasqeActionButtons:l.DISABLE_YASQE_BUTTONS_CONFIGURATION,showQueryButton:!1,initialQuery:e.sparqlTemplateInfo.query,componentId:"sparql-template",prefixes:t,render:o.RenderingMode.YASQE,maxPersistentResponseSize:0,yasqeMode:e.canEditActiveRepo?i.YasqeMode.WRITE:i.YasqeMode.READ}},S=e=>D(e).then($).then(b),D=t=>f.getSparqlTemplates(c.getActiveRepository()).then((function(r){return t.templateExist=r.data.find(t=>t===e.sparqlTemplateInfo.templateID),t})).catch((function(e){const t=getError(e);return p.error(t,h.instant("sparql.template.get.templates.error")),Promise.reject(new s.SparqlTemplateError("Failed to retrieve sparql templates."))})),R=e=>L().isQueryValid().then(t=>(e.isValidQuery=t,e.isValidQuery?e:Promise.reject(new s.SparqlTemplateError("Invalid query.")))),A=()=>e.sparqlTemplateInfo.isNewTemplate||e.isDirty,$=e=>new Promise((t,r)=>{if(e.templateExist){const n=Object(a.decodeHTML)(h.instant("sparql.template.existing.template.error",{templateID:e.templateID})),i=h.instant("common.confirm.save");C(i,n,()=>t(e),()=>r(new s.SparqlTemplateError("Save not confirmed.")))}else t(e)});function b(t){return f.createSparqlTemplate(t,c.getActiveRepository()).then((function(){return t.isNewTemplate=!1,e.markPristine(),p.success(t.templateID,h.instant("save.sparql.template.success.msg")),t})).catch((function(e){const r=getError(e);return p.error(r,h.instant("save.sparql.template.failure.msg",{templateID:t.templateID})),Promise.reject(new s.SparqlTemplateError("Failed to save the new template: "+t.templateID))}))}const P=t=>f.updateSparqlTemplate(t,c.getActiveRepository()).then((function(){return t.isNewTemplate=!1,e.markPristine(),p.success(e.sparqlTemplateInfo.templateID,h.instant("update.sparql.template.success.msg")),t})).catch((function(e){const r=getError(e);return p.error(r,h.instant("save.sparql.template.failure.msg",{templateID:t.templateID})),Promise.reject(new s.SparqlTemplateError("Failed to update the template: "+t.templateID))})),Q=e=>L().getQuery().then(t=>(e.query=t,e)),k=e=>L().getQueryMode().then(t=>(e.isValidQueryMode="update"===t,e.isValidQueryMode?e:Promise.reject(new s.SparqlTemplateError("Query mode is not valid.")))),x=t=>new Promise((r,a)=>{t.templateID?(t.isValidTemplateId=e.isTemplateIdValid(t.templateID),t.isValidTemplateId?r(t):a(new s.SparqlTemplateError("Template identifier is not valid."))):a(new s.SparqlTemplateError("A required template identifier is missing."))}),M=()=>{setTimeout((function(){U()}),1e3)},V=()=>{const e=r.hash()||"";return(r.search().templateID||"")+(e?"#"+e:"")},j=()=>{e.title=(e.sparqlTemplateInfo.templateID?h.instant("edit"):h.instant("common.create.btn"))+" "+h.instant("view.sparql.template.title")},U=()=>{r.url("/sparql-templates")},Y=(t,r)=>{e.queryIsRunning=t,e.loaderMessage=e.queryIsRunning?r:""},L=()=>l.YasguiComponentDirectiveUtil.getOntotextYasguiElement("#query-editor"),C=(e,t,r,a)=>{T.openSimpleModal({title:e,message:t,warning:!0}).result.then((function(){angular.isFunction(r)&&r()}),(function(){angular.isFunction(a)&&a()}))},F=()=>{window.removeEventListener("beforeunload",N),O.forEach(e=>e())},N=t=>{e.isDirty&&(t.returnValue=!0)},O=[];O.push(e.$on("queryChanged",(t,r)=>{r.dirty?e.markDirty():e.markPristine()})),O.push(t.$on("$translateChangeSuccess",()=>{e.language=w.getLanguage(),j()})),O.push(e.$on("$locationChangeStart",(t,a)=>{if(e.isDirty){t.preventDefault();const e=h.instant("common.confirm"),n=h.instant("jdbc.warning.unsaved.changes");C(e,n,()=>{F();const e=r.absUrl().length-r.url().length,t=a.substring(e);r.path(t)})}else F()})),O.push(y.subscribe("repositoryWillChangeEvent",t=>new Promise((function(r){if(e.sparqlTemplateInfo.isNewTemplate)return void r(t);const a=()=>{e.isDirty=!1,U(),r(t)};if(e.isDirty){const e=()=>{t.cancel=!0,r(t)},n=h.instant("common.confirm"),s=h.instant("jdbc.warning.unsaved.changes");C(n,s,a,e)}else a()})))),O.push(e.$on("$destroy",F)),window.addEventListener("beforeunload",N);const _=()=>{const t=`${h.instant("common.refreshing.namespaces")}. ${h.instant("common.extra.message")}`;Y(!0,t),e.sparqlTemplateInfo.templateID=V();const r=c.getActiveRepository();e.sparqlTemplateInfo.templateID?Promise.all([c.getPrefixes(r),f.getSparqlTemplate(e.sparqlTemplateInfo.templateID,r)]).then(([e,t])=>E(e,t.data)).finally(()=>Y(!1)):c.getPrefixes(r).then(e=>E(e)).finally(()=>Y(!1))};O.push(e.$watch(e.getActiveRepositoryObject,t=>{t&&(e.canEditActiveRepo=e.canWriteActiveRepo(),v?(_(),v=!1):U())}))}angular.module("graphdb.framework.sparql-template.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.monitoring.service","toastr","graphdb.framework.utils.event-emitter-service"],["graphdb.framework.utils.notifications"]).controller("SparqlTemplatesCtrl",p).controller("SparqlTemplateCreateCtrl",c),p.$inject=["$scope","$repositories","SparqlTemplatesRestService","toastr","ModalService","$licenseService","$translate"],c.$inject=["$scope","$rootScope","$location","toastr","$repositories","$window","$timeout","$interval","SparqlTemplatesRestService","RDF4JRepositoriesRestService","UriUtils","ModalService","$translate","$q","EventEmitterService","$languageService"]},402:function(e,t,r){"use strict";r.r(t);r(9),r(40),r(209),r(41),r(313),r(309),r(44),r(141);angular.module("graphdb.framework.sparql-template",["toastr","ui.bootstrap","graphdb.framework.sparql-template.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.rest.sparql-templates.service","graphdb.framework.utils.uriutils","graphdb.framework.core.directives.yasgui-component"])},90:function(e,t,r){"use strict";r.r(t),r.d(t,"RenderingMode",(function(){return a}));const a={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},97:function(e,t,r){"use strict";r.r(t),r.d(t,"YasqeMode",(function(){return a}));const a={WRITE:"WRITE",READ:"READ",PROTECTED:"PROTECTED"}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[38,65,78,199,257,258,302],{104:function(t,e){angular.module("graphdb.framework.rest.similarity.service",[]).factory("SimilarityRestService",i),i.$inject=["$http","$repositories"];function i(t){return{getIndexes:function(e,i){if(e)return t.get("rest/similarity",{headers:{"X-GraphDB-Repository":e,"X-GraphDB-Repository-Location":i}});return t.get("rest/similarity")},getSearchQueries:function(){return t.get("rest/similarity/config")},rebuildIndex:function(t){return e("PUT",t.name,t.options,t.selectQuery,t.searchQuery,t.analogicalQuery,t.stopList,t.infer,t.sameAs,t.type)},deleteIndex:function(e){return t.delete("rest/similarity?name="+e.name)},createIndex:e,getSamples:function(){return t.get("rest/similarity/samples")},getQuery:function(e){return t.get("rest/similarity/query",{params:{name:e.indexName,options:e.indexOptions,stopList:e.indexStopList,selectQuery:e.query,infer:e.queryInference,sameAs:e.querySameAs,type:e.viewType,analyzer:e.indexAnalyzer}})},saveSearchQuery:function(e){return t({method:"put",url:"rest/similarity/search-query",data:e})}};function e(e,i,s,a,r,n,u,l,o,d,c){return t({method:e,url:"rest/similarity",noCancelOnRouteChange:!0,data:{name:i,options:s,selectQuery:a,stopList:u,infer:l,sameAs:o,type:d,analyzer:c,searchQuery:r,analogicalQuery:n}})}}},106:function(t,e,i){"use strict";i.r(e);i(104);var s=i(99),a=i(93);function r(t){const e=(e,i)=>t.getIndexes(e,i).then(t=>Object(s.mapIndexesResponseToSimilarityIndex)(t.data));return{getIndexes:e,getIndexesAsMenuModel:(t,i)=>e(t,i).then(t=>t.map(t=>new a.SelectMenuOptionsModel({label:t.name,value:t.name})))}}angular.module("graphdb.framework.core.services.similarity",["graphdb.framework.rest.similarity.service"]).factory("SimilarityService",r),r.$inject=["SimilarityRestService"]},92:function(t,e,i){"use strict";i.r(e),i.d(e,"SimilarityIndexType",(function(){return s}));const s={TEXT:"text",TEXT_LITERAL:"textLiteral",PREDICATION:"predication",isTextType:t=>s.TEXT===t,isTextLiteralType:t=>s.TEXT_LITERAL===t,isPredicationType:t=>s.PREDICATION===t}},93:function(t,e,i){"use strict";i.r(e),i.d(e,"SelectMenuOptionsModel",(function(){return s})),i.d(e,"TextFieldModel",(function(){return a})),i.d(e,"NumericRangeModel",(function(){return r}));class s{constructor({label:t,value:e,selected:i=!1,data:s={}}){this._label=t,this._value=e,this._selected=i,this._data=s}get label(){return this._label}set label(t){this._label=t}get value(){return this._value}set value(t){this._value=t}get selected(){return this._selected}set selected(t){this._selected=t}get data(){return this._data}set data(t){this._data=t}}class a{constructor(t){this._value=t.value,this._minLength=t.minLength,this._maxLength=t.maxLength}get value(){return this._value}set value(t){this._value=t}get maxLength(){return this._maxLength}set maxLength(t){this._maxLength=t}get minLength(){return this._minLength}set minLength(t){this._minLength=t}}class r{constructor(t){this._value=t.value,this._minValue=t.minValue,this._maxValue=t.maxValue,this._step=t.step}get value(){return this._value}set value(t){this._value=t}get minValue(){return this._minValue}set minValue(t){this._minValue=t}get maxValue(){return this._maxValue}set maxValue(t){this._maxValue=t}get step(){return this._step}set step(t){this._step=t}}},94:function(t,e,i){"use strict";i.r(e),i.d(e,"SimilarityIndexStatus",(function(){return s}));const s={CREATING:"CREATING",BUILDING:"BUILDING",BUILT:"BUILT",REBUILDING:"REBUILDING",OUTDATED:"OUTDATED",INTERRUPTED:"INTERRUPTED",OBSOLETE:"OBSOLETE",FAILED:"FAILED",isCreatingStatus:t=>s.CREATING===t,isBuildingStatus:t=>s.BUILDING===t,isBuiltStatus:t=>s.BUILT===t,isRebuildingStatus:t=>s.REBUILDING===t,isOutdatedStatus:t=>s.OUTDATED===t,isInterruptedStatus:t=>s.INTERRUPTED===t,isObsoleteStatus:t=>s.OBSOLETE===t,isFailedStatus:t=>s.FAILED===t}},95:function(t,e,i){"use strict";i.r(e),i.d(e,"SimilarityIndex",(function(){return r}));var s=i(92),a=i(94);class r{constructor(){this.analyzer="",this.infer=!0,this.options="",this.sameAs=!0,this.searchQuery="",this.selectQuery="",this.stopList=void 0,this.name="",this.type=s.SimilarityIndexType.TEXT,this.status=void 0,this.analogicalQuery=void 0,this.inputIndex=void 0,this.isLiteralIndex=""}isTextType(){return s.SimilarityIndexType.isTextType(this.type)}isTextLiteralType(){return s.SimilarityIndexType.isTextLiteralType(this.type)}isPredicationType(){return s.SimilarityIndexType.isPredicationType(this.type)}isCreatingStatus(){return a.SimilarityIndexStatus.isCreatingStatus(this.status)}isBuildingStatus(){return a.SimilarityIndexStatus.isBuildingStatus(this.status)}isBuiltStatus(){return a.SimilarityIndexStatus.isBuiltStatus(this.status)}isRebuildingStatus(){return a.SimilarityIndexStatus.isRebuildingStatus(this.status)}isOutdatedStatus(){return a.SimilarityIndexStatus.isOutdatedStatus(this.status)}isInterruptedStatus(){return a.SimilarityIndexStatus.isInterruptedStatus(this.status)}isObsoleteStatus(){return a.SimilarityIndexStatus.isObsoleteStatus(this.status)}isFailedStatus(){return a.SimilarityIndexStatus.isFailedStatus(this.status)}}},99:function(t,e,i){"use strict";i.r(e),i.d(e,"mapIndexesResponseToSimilarityIndex",(function(){return a}));var s=i(95);const a=t=>t.map(t=>{const e=new s.SimilarityIndex;return e.type=t.type,e.stopList=t.stopList,e.status=t.status,e.selectQuery=t.selectQuery,e.searchQuery=t.searchQuery,e.sameAs=t.sameAs,e.options=t.options,e.name=t.name,e.infer=t.infer,e.analyzer=t.analyzer,e.analogicalQuery=t.analogicalQuery,e})}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[38,66,80,199,257,258,302],{105:function(t,e){angular.module("graphdb.framework.rest.similarity.service",[]).factory("SimilarityRestService",i),i.$inject=["$http","$repositories"];function i(t){return{getIndexes:function(e,i){if(e)return t.get("rest/similarity",{headers:{"X-GraphDB-Repository":e,"X-GraphDB-Repository-Location":i}});return t.get("rest/similarity")},getSearchQueries:function(){return t.get("rest/similarity/config")},rebuildIndex:function(t){return e("PUT",t.name,t.options,t.selectQuery,t.searchQuery,t.analogicalQuery,t.stopList,t.infer,t.sameAs,t.type)},deleteIndex:function(e){return t.delete("rest/similarity?name="+e.name)},createIndex:e,getSamples:function(){return t.get("rest/similarity/samples")},getQuery:function(e){return t.get("rest/similarity/query",{params:{name:e.indexName,options:e.indexOptions,stopList:e.indexStopList,selectQuery:e.query,infer:e.queryInference,sameAs:e.querySameAs,type:e.viewType,analyzer:e.indexAnalyzer}})},saveSearchQuery:function(e){return t({method:"put",url:"rest/similarity/search-query",data:e})}};function e(e,i,s,a,r,n,u,l,o,d,c){return t({method:e,url:"rest/similarity",noCancelOnRouteChange:!0,data:{name:i,options:s,selectQuery:a,stopList:u,infer:l,sameAs:o,type:d,analyzer:c,searchQuery:r,analogicalQuery:n}})}}},107:function(t,e,i){"use strict";i.r(e);i(105);var s=i(99),a=i(93);function r(t){const e=(e,i)=>t.getIndexes(e,i).then(t=>Object(s.mapIndexesResponseToSimilarityIndex)(t.data));return{getIndexes:e,getIndexesAsMenuModel:(t,i)=>e(t,i).then(t=>t.map(t=>new a.SelectMenuOptionsModel({label:t.name,value:t.name})))}}angular.module("graphdb.framework.core.services.similarity",["graphdb.framework.rest.similarity.service"]).factory("SimilarityService",r),r.$inject=["SimilarityRestService"]},92:function(t,e,i){"use strict";i.r(e),i.d(e,"SimilarityIndexType",(function(){return s}));const s={TEXT:"text",TEXT_LITERAL:"textLiteral",PREDICATION:"predication",isTextType:t=>s.TEXT===t,isTextLiteralType:t=>s.TEXT_LITERAL===t,isPredicationType:t=>s.PREDICATION===t}},93:function(t,e,i){"use strict";i.r(e),i.d(e,"SelectMenuOptionsModel",(function(){return s})),i.d(e,"TextFieldModel",(function(){return a})),i.d(e,"NumericRangeModel",(function(){return r}));class s{constructor({label:t,value:e,selected:i=!1,data:s={}}){this._label=t,this._value=e,this._selected=i,this._data=s}get label(){return this._label}set label(t){this._label=t}get value(){return this._value}set value(t){this._value=t}get selected(){return this._selected}set selected(t){this._selected=t}get data(){return this._data}set data(t){this._data=t}}class a{constructor(t){this._value=t.value,this._minLength=t.minLength,this._maxLength=t.maxLength}get value(){return this._value}set value(t){this._value=t}get maxLength(){return this._maxLength}set maxLength(t){this._maxLength=t}get minLength(){return this._minLength}set minLength(t){this._minLength=t}}class r{constructor(t){this._value=t.value,this._minValue=t.minValue,this._maxValue=t.maxValue,this._step=t.step}get value(){return this._value}set value(t){this._value=t}get minValue(){return this._minValue}set minValue(t){this._minValue=t}get maxValue(){return this._maxValue}set maxValue(t){this._maxValue=t}get step(){return this._step}set step(t){this._step=t}}},94:function(t,e,i){"use strict";i.r(e),i.d(e,"SimilarityIndexStatus",(function(){return s}));const s={CREATING:"CREATING",BUILDING:"BUILDING",BUILT:"BUILT",REBUILDING:"REBUILDING",OUTDATED:"OUTDATED",INTERRUPTED:"INTERRUPTED",OBSOLETE:"OBSOLETE",FAILED:"FAILED",isCreatingStatus:t=>s.CREATING===t,isBuildingStatus:t=>s.BUILDING===t,isBuiltStatus:t=>s.BUILT===t,isRebuildingStatus:t=>s.REBUILDING===t,isOutdatedStatus:t=>s.OUTDATED===t,isInterruptedStatus:t=>s.INTERRUPTED===t,isObsoleteStatus:t=>s.OBSOLETE===t,isFailedStatus:t=>s.FAILED===t}},95:function(t,e,i){"use strict";i.r(e),i.d(e,"SimilarityIndex",(function(){return r}));var s=i(92),a=i(94);class r{constructor(){this.analyzer="",this.infer=!0,this.options="",this.sameAs=!0,this.searchQuery="",this.selectQuery="",this.stopList=void 0,this.name="",this.type=s.SimilarityIndexType.TEXT,this.status=void 0,this.analogicalQuery=void 0,this.inputIndex=void 0,this.isLiteralIndex=""}isTextType(){return s.SimilarityIndexType.isTextType(this.type)}isTextLiteralType(){return s.SimilarityIndexType.isTextLiteralType(this.type)}isPredicationType(){return s.SimilarityIndexType.isPredicationType(this.type)}isCreatingStatus(){return a.SimilarityIndexStatus.isCreatingStatus(this.status)}isBuildingStatus(){return a.SimilarityIndexStatus.isBuildingStatus(this.status)}isBuiltStatus(){return a.SimilarityIndexStatus.isBuiltStatus(this.status)}isRebuildingStatus(){return a.SimilarityIndexStatus.isRebuildingStatus(this.status)}isOutdatedStatus(){return a.SimilarityIndexStatus.isOutdatedStatus(this.status)}isInterruptedStatus(){return a.SimilarityIndexStatus.isInterruptedStatus(this.status)}isObsoleteStatus(){return a.SimilarityIndexStatus.isObsoleteStatus(this.status)}isFailedStatus(){return a.SimilarityIndexStatus.isFailedStatus(this.status)}}},99:function(t,e,i){"use strict";i.r(e),i.d(e,"mapIndexesResponseToSimilarityIndex",(function(){return a}));var s=i(95);const a=t=>t.map(t=>{const e=new s.SimilarityIndex;return e.type=t.type,e.stopList=t.stopList,e.status=t.status,e.selectQuery=t.selectQuery,e.searchQuery=t.searchQuery,e.sameAs=t.sameAs,e.options=t.options,e.name=t.name,e.infer=t.infer,e.analyzer=t.analyzer,e.analogicalQuery=t.analogicalQuery,e})}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[39,210,211,212,236,244,326],{102:function(n,e){function t(n,e){return{showToastMessageWithDelay:function(t){return new Promise(o=>{n.success(e.instant(t)),setTimeout(o,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",t),t.$inject=["toastr","$translate"]},181:function(n,e,t){"use strict";t.r(e),t.d(e,"DEFAULT_SPARQL_QUERY",(function(){return o})),t.d(e,"JdbcConfigurationInfo",(function(){return i}));const o="PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n\n# Selects two variables to use as columns\nSELECT ?id ?label {\n ?id rdfs:label ?label\n # The following placeholder must be present in the query\n #!filter\n}";class i{constructor(n=o,e=!0,t){this.query=n,this.jdbcConfigurationName=t,this.isNewJdbcConfiguration=e,this.isValidQuery=!0,this.isValidQueryType=!0,this.hasUndefinedColumns=!1,this.isColumnsEmpty=!1,this.columns=[]}}},182:function(n,e,t){"use strict";t.r(e),t.d(e,"JdbcConfigurationError",(function(){return o}));class o extends Error{constructor(n,e){super(n),this.jdbcConfigurationInfo=e}}},183:function(n,e,t){"use strict";t.r(e),t.d(e,"JdbcColumn",(function(){return o})),t.d(e,"toJDBCColumns",(function(){return i})),t.d(e,"updateColumn",(function(){return r}));class o{constructor(){this.column_name="",this.column_type="",this.sparql_type="",this.nullable=!0}}const i=(n=[],e)=>n.map(n=>({column_name:n,column_type:e[n].column_type,nullable:!0,sparql_type:e[n].sparql_type})),r=(n,e)=>{n.column_type=e[n.column_name].column_type,n.sparql_type=e[n.column_name].sparql_type}},292:function(n,e,t){"use strict";t.r(e);t(41),t(43),t(102),t(9),t(22);var o=t(181),i=t(97),r=t(182),s=t(90),a=t(183),c=t(19),u=t(0);function l(n,e,t,o,i,r){n.getSqlConfigurations=function(){!e.getActiveRepository()||e.isActiveRepoOntopType()||e.isActiveRepoFedXType()?n.jdbcConfigurations=[]:t.getJdbcConfigurations().success((function(e){n.jdbcConfigurations=e})).error((function(n){const e=getError(n);o.error(e,r.instant("jdbc.not.get.SQL.msg"))}))},n.$watch((function(){return e.getActiveRepository()}),(function(){n.getSqlConfigurations()})),n.deleteConfiguration=function(e){i.openSimpleModal({title:r.instant("common.warning"),message:r.instant("jdbc.delete.sql.table.warning.msg",{name:e}),warning:!0}).result.then((function(){t.deleteJdbcConfiguration(e).success((function(){n.getSqlConfigurations()})).error((function(n){o.error(getError(n),r.instant("jdbc.not.delete.sql.msg"))}))}))}}function g(n,e,t,l,g,d,f,m,b,p,C,y,h,j,w,v){e.emptySparqlResponse='{"head": {"vars": []},"results": {"bindings": []}}',e.getSuggestionSqlType="",e.sqlTypes=[],e.activeTab=1,e.jdbcConfigurationInfo=new o.JdbcConfigurationInfo,e.jdbcConfigurationInfo.jdbcConfigurationName=l.search().name||"",e.saveOrUpdateExecuted=!1,e.jdbcConfigurationInfo.isNewJdbcConfiguration=!e.jdbcConfigurationInfo.jdbcConfigurationName,e.language=w.getLanguage(),e.isDirty=!1,e.prefixes=[],e.loadingControllerResources=!1,e.isQueryRunning=!1,e.canEditActiveRepo=!1;let E=!0;e.saveJdbcConfiguration=()=>{if(e.saveOrUpdateExecuted=!0,!e.jdbcConfigurationInfo.jdbcConfigurationName)return;if(!e.isDirty)return void V();const n=e.jdbcConfigurationInfo.isNewJdbcConfiguration?S:T;N(e.jdbcConfigurationInfo).then(_).then(D).then(M).then(n).catch(n=>{if(!(n instanceof r.JdbcConfigurationError)){const e=getError(n);g.error(e,j.instant("jdbc.not.saved.configuration"))}})},e.getPreview=()=>{e.activeTab=1,e.isQueryRunning=!0,N(e.jdbcConfigurationInfo).then(_).then(D).then(M).then(n=>(A({render:s.RenderingMode.YASQE,initialQuery:n.query}),n)).then(q).then(([n,e])=>{const t=n&&n.results.bindings&&n.results.bindings.length>0;let o=s.RenderingMode.YASGUI;t||(o=s.RenderingMode.YASQE,g.info(j.instant("jdbc.table.definition"),j.instant("jdbc.preview.sql"))),A({render:o,sparqlResponse:n,initialQuery:e.query})}).catch(n=>{n instanceof r.JdbcConfigurationError?n.jdbcConfigurationInfo&&(n.jdbcConfigurationInfo.isColumnsEmpty||n.jdbcConfigurationInfo.hasUndefinedColumns)&&(P(),e.activeTab=2):g.error(getError(n,0,100),j.instant("jdbc.not.show.preview"))}).finally(()=>{e.isQueryRunning=!1})},e.setActiveTab=n=>{e.activeTab=n;const t=e.jdbcConfigurationInfo.columns;2!==e.activeTab||t&&0!==t.length||N(e.jdbcConfigurationInfo).then(_).then(()=>{e.getColumnsSuggestions()})},e.setDirty=()=>{e.isDirty=!0},e.getTypeLabel=n=>{switch(n){case"iri":return"VARCHAR: IRI";case"string":return"VARCHAR: String";default:return n.indexOf(" ")>0?n:n.toUpperCase()}},e.selectColumnType=(n,t)=>{e.setDirty();const o=e.jdbcConfigurationInfo.columns.find(e=>e.column_name===n);o.column_type===e.getSuggestionSqlType&&M(e.jdbcConfigurationInfo).then(e=>p.getColumnsTypeSuggestion(e.query,[n])).then(n=>n.data).then(n=>{Object(a.updateColumn)(o,n),I(o.column_type,t)}).catch(n=>{g.error(getError(n),j.instant("jdbc.not.suggest.column.type"))})},e.deleteColumn=function(n,t){h.openSimpleModal({title:j.instant("common.warning"),message:j.instant("jdbc.warning.delete.column.msg",{columnName:n}),warning:!0}).result.then((function(){e.jdbcConfigurationInfo.columns.splice(t,1),e.setDirty()}))},e.getColumnsSuggestions=()=>{e.jdbcConfigurationInfo.columns&&e.jdbcConfigurationInfo.columns.length>0?h.openSimpleModal({title:j.instant("common.warning"),message:j.instant("jdbc.warning.column.type.msg"),warning:!0}).result.then((function(){P()})):P()},e.hasPrecision=n=>"iri"===n||"string"===n||"decimal"===n,e.containsColumnsWithPrecision=n=>n&&n.some(n=>e.hasPrecision(n.column_type)),e.containsColumnsWithScale=n=>n&&n.some(n=>L(n.column_type)),e.isLiteral=n=>"iri"!==n&&"unknown"!==n,e.containsNonLiteralColumnsOnly=n=>n&&n.every(n=>!e.isLiteral(n.column_type));const q=n=>{if(e.canWriteActiveRepo){const t=JSON.stringify({name:e.jdbcConfigurationInfo.jdbcConfigurationName,query:e.jdbcConfigurationInfo.query,columns:e.jdbcConfigurationInfo.columns||[]});return Promise.all([p.getNewSqlTablePreview(t).then(n=>n.data),Promise.resolve(n)])}return Promise.all([p.getExistingSqlTablePreview(e.jdbcConfigurationInfo.jdbcConfigurationName).then(n=>n.data),Promise.resolve(n)])},I=(n,e)=>{n===e?g.info(Object(u.decodeHTML)(j.instant("jdbc.same.suggested.sql.type",{type:n})),j.instant("jdbc.suggest.sql.type"),{allowHtml:!0}):g.success(Object(u.decodeHTML)(j.instant("jdbc.suggested.sql.type",{type:n})),j.instant("jdbc.suggest.sql.type"),{allowHtml:!0})},R=(n,t=new o.JdbcConfigurationInfo)=>{e.jdbcConfigurationInfo.columns=t.columns,e.jdbcConfigurationInfo.query=t.query,e.jdbcConfigurationInfo.jdbcConfigurationName=l.search().name||"",e.jdbcConfigurationInfo.isNewJdbcConfiguration=!e.jdbcConfigurationInfo.jdbcConfigurationName,e.prefixes=n,A(),x()},S=n=>{const t={name:n.jdbcConfigurationName,query:n.query,columns:n.columns};return p.createNewJdbcConfiguration(t).then(()=>{e.isDirty=!1,e.jdbcConfigurationInfo.isNewConfiguration=!1,g.success(j.instant("jdbc.saved.configuration")),k()})},T=n=>{const t={name:n.jdbcConfigurationName,query:n.query,columns:n.columns};return p.updateJdbcConfiguration(t).then(()=>{e.isDirty=!1,e.jdbcConfigurationInfo.isNewConfiguration=!1,g.success(j.instant("jdbc.configuration.updated")),k()})},A=(n={})=>{const t={};angular.extend(t,e.yasguiConfig||J(),n),e.yasguiConfig=t},J=()=>({showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showQueryButton:!1,showResultInfo:!1,downloadAsOn:!1,showYasqeResizer:!1,initialQuery:e.jdbcConfigurationInfo.query,componentId:"jdbc-component",prefixes:e.prefixes,maxPersistentResponseSize:0,render:s.RenderingMode.YASQE,getCellContent:U,sparqlResponse:e.emptySparqlResponse,yasqeActionButtons:c.DISABLE_YASQE_BUTTONS_CONFIGURATION,yasqeMode:e.canEditActiveRepo?i.YasqeMode.WRITE:i.YasqeMode.PROTECTED}),N=n=>O().getQueryType().then(e=>(n.isValidQueryType="SELECT"===e,n.isValidQueryType?n:Promise.reject(new r.JdbcConfigurationError("Query type is not valid.")))),_=n=>O().isQueryValid().then(e=>(n.isValidQuery=e,n.isValidQuery?n:Promise.reject(new r.JdbcConfigurationError("Invalid query.")))),D=n=>{if(!n.columns||0===n.columns.length)return n.isColumnsEmpty=!0,g.error(j.instant("jdbc.warning.one.column.msg")),Promise.reject(new r.JdbcConfigurationError("There are not defined columns.",n));return e.jdbcConfigurationInfo.columns&&e.jdbcConfigurationInfo.columns.find(n=>"unknown"===n.column_type)?(n.hasUndefinedColumns=!0,Promise.reject(new r.JdbcConfigurationError("There are columns without defined type.",n))):Promise.resolve(n)},P=()=>{N(e.jdbcConfigurationInfo).then(_).then(M).then(Q).then($).then(n=>e.jdbcConfigurationInfo=n).catch(n=>{console.log(n)})},Q=n=>p.getColumnNames(n.query).then(e=>[n,e.data]).catch((function(n){g.error(getError(n),j.instant("jdbc.not.suggest.column.names"))})),$=([n,t])=>p.getColumnsTypeSuggestion(n.query,t).then((function(o){return n.columns=Object(a.toJDBCColumns)(t,o.data),n.isColumnsEmpty=n.columns.length,e.setDirty(),n})).catch((function(n){g.error(getError(n),j.instant("jdbc.not.suggest.column.types"))})),O=()=>c.YasguiComponentDirectiveUtil.getOntotextYasguiElement("#query-editor"),M=n=>O().getQuery().then(e=>(n.query=e,n)),L=n=>"decimal"===n,U=(n,e)=>{let t=n.value;t=t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return"<div class = 'literal-cell'>"+("<p class='nonUri' style='border: none; background-color: transparent; padding: 0; margin: 0'>"+t+"</p>")+"</div>"},Y=(n,e,t,o)=>{h.openSimpleModal({title:n,message:e,warning:!0}).result.then((function(){angular.isFunction(t)&&t()}),(function(){angular.isFunction(o)&&o()}))},x=()=>{e.getSuggestionSqlType=j.instant("view.jdbc.create.get_suggestion_sql_type"),e.sqlTypes=["string","iri","boolean","byte","short","int","long","float","double","decimal","date","time","timestamp",e.getSuggestionSqlType]},k=()=>{setTimeout((function(){V()}),1e3)},V=()=>{l.url("/jdbc")},W=n=>{e.isDirty&&(n.returnValue=!0)},F=()=>{window.removeEventListener("beforeunload",W),B.forEach(n=>n())},B=[];B.push(t.$on("$translateChangeSuccess",()=>{e.language=w.getLanguage(),x()})),B.push(e.$on("$locationChangeStart",(n,t)=>{if(e.isDirty){n.preventDefault();const e=j.instant("common.confirm"),o=j.instant("jdbc.warning.unsaved.changes");Y(e,o,()=>{F();const n=l.absUrl().length-l.url().length,e=t.substring(n);l.path(e)})}else F()})),B.push(v.subscribe("repositoryWillChangeEvent",n=>new Promise((function(t){if(e.jdbcConfigurationInfo.isNewJdbcConfiguration)return void t(n);const o=()=>{e.isDirty=!1,V(),t(n)};if(e.isDirty){const e=()=>{n.cancel=!0,t(n)},i=j.instant("common.confirm"),r=j.instant("jdbc.warning.unsaved.changes");Y(i,r,o,e)}else o()})))),B.push(e.$on("$destroy",F)),window.addEventListener("beforeunload",W),B.push(e.$watch(e.getActiveRepositoryObject,n=>{n&&(e.canEditActiveRepo=e.canWriteActiveRepo(),E?((()=>{e.loadingControllerResources=!0;const n=d.getActiveRepository();e.jdbcConfigurationInfo.jdbcConfigurationName?Promise.all([d.getPrefixes(n),p.getJdbcConfiguration(e.jdbcConfigurationInfo.jdbcConfigurationName)]).then(([n,e])=>{R(n,e.data)}).finally(()=>e.loadingControllerResources=!1):d.getPrefixes(n).then(n=>R(n)).finally(()=>e.loadingControllerResources=!1)})(),E=!1):O().abortQuery().then(V))}))}angular.module("graphdb.framework.jdbc.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.monitoring.service","toastr","graphdb.framework.utils.event-emitter-service"],["graphdb.framework.utils.notifications"]).controller("JdbcListCtrl",l).controller("JdbcCreateCtrl",g),l.$inject=["$scope","$repositories","JdbcRestService","toastr","ModalService","$translate"],g.$inject=["$q","$scope","$rootScope","$location","toastr","$repositories","$window","$timeout","$interval","JdbcRestService","RDF4JRepositoriesRestService","SparqlRestService","ModalService","$translate","$languageService","EventEmitterService"]},90:function(n,e,t){"use strict";t.r(e),t.d(e,"RenderingMode",(function(){return o}));const o={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},97:function(n,e,t){"use strict";t.r(e),t.d(e,"YasqeMode",(function(){return o}));const o={WRITE:"WRITE",READ:"READ",PROTECTED:"PROTECTED"}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[39,210,211,212,236,244,326],{102:function(n,e){function t(n,e){return{showToastMessageWithDelay:function(t){return new Promise(o=>{n.success(e.instant(t)),setTimeout(o,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",t),t.$inject=["toastr","$translate"]},181:function(n,e,t){"use strict";t.r(e),t.d(e,"DEFAULT_SPARQL_QUERY",(function(){return o})),t.d(e,"JdbcConfigurationInfo",(function(){return i}));const o="PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n\n# Selects two variables to use as columns\nSELECT ?id ?label {\n ?id rdfs:label ?label\n # The following placeholder must be present in the query\n #!filter\n}";class i{constructor(n=o,e=!0,t){this.query=n,this.jdbcConfigurationName=t,this.isNewJdbcConfiguration=e,this.isValidQuery=!0,this.isValidQueryType=!0,this.hasUndefinedColumns=!1,this.isColumnsEmpty=!1,this.columns=[]}}},182:function(n,e,t){"use strict";t.r(e),t.d(e,"JdbcConfigurationError",(function(){return o}));class o extends Error{constructor(n,e){super(n),this.jdbcConfigurationInfo=e}}},183:function(n,e,t){"use strict";t.r(e),t.d(e,"JdbcColumn",(function(){return o})),t.d(e,"toJDBCColumns",(function(){return i})),t.d(e,"updateColumn",(function(){return r}));class o{constructor(){this.column_name="",this.column_type="",this.sparql_type="",this.nullable=!0}}const i=(n=[],e)=>n.map(n=>({column_name:n,column_type:e[n].column_type,nullable:!0,sparql_type:e[n].sparql_type})),r=(n,e)=>{n.column_type=e[n.column_name].column_type,n.sparql_type=e[n.column_name].sparql_type}},292:function(n,e,t){"use strict";t.r(e);t(41),t(43),t(102),t(9),t(22);var o=t(181),i=t(97),r=t(182),s=t(90),a=t(183),c=t(19),u=t(0);function l(n,e,t,o,i,r){n.getSqlConfigurations=function(){!e.getActiveRepository()||e.isActiveRepoOntopType()||e.isActiveRepoFedXType()?n.jdbcConfigurations=[]:t.getJdbcConfigurations().success((function(e){n.jdbcConfigurations=e})).error((function(n){const e=getError(n);o.error(e,r.instant("jdbc.not.get.SQL.msg"))}))},n.$watch((function(){return e.getActiveRepository()}),(function(){n.getSqlConfigurations()})),n.deleteConfiguration=function(e){i.openSimpleModal({title:r.instant("common.warning"),message:r.instant("jdbc.delete.sql.table.warning.msg",{name:e}),warning:!0}).result.then((function(){t.deleteJdbcConfiguration(e).success((function(){n.getSqlConfigurations()})).error((function(n){o.error(getError(n),r.instant("jdbc.not.delete.sql.msg"))}))}))}}function g(n,e,t,l,g,d,f,m,b,p,C,y,h,j,w,v){e.emptySparqlResponse='{"head": {"vars": []},"results": {"bindings": []}}',e.getSuggestionSqlType="",e.sqlTypes=[],e.activeTab=1,e.jdbcConfigurationInfo=new o.JdbcConfigurationInfo,e.jdbcConfigurationInfo.jdbcConfigurationName=l.search().name||"",e.saveOrUpdateExecuted=!1,e.jdbcConfigurationInfo.isNewJdbcConfiguration=!e.jdbcConfigurationInfo.jdbcConfigurationName,e.language=w.getLanguage(),e.isDirty=!1,e.prefixes=[],e.loadingControllerResources=!1,e.isQueryRunning=!1,e.canEditActiveRepo=!1;let q=!0;e.saveJdbcConfiguration=()=>{if(e.saveOrUpdateExecuted=!0,!e.jdbcConfigurationInfo.jdbcConfigurationName)return;if(!e.isDirty)return void V();const n=e.jdbcConfigurationInfo.isNewJdbcConfiguration?S:T;N(e.jdbcConfigurationInfo).then(_).then(D).then(O).then(n).catch(n=>{if(!(n instanceof r.JdbcConfigurationError)){const e=getError(n);g.error(e,j.instant("jdbc.not.saved.configuration"))}})},e.getPreview=()=>{e.activeTab=1,e.isQueryRunning=!0,N(e.jdbcConfigurationInfo).then(_).then(D).then(O).then(n=>(A({render:s.RenderingMode.YASQE,initialQuery:n.query}),n)).then(E).then(([n,e])=>{const t=n&&n.results.bindings&&n.results.bindings.length>0;let o=s.RenderingMode.YASGUI;t||(o=s.RenderingMode.YASQE,g.info(j.instant("jdbc.table.definition"),j.instant("jdbc.preview.sql"))),A({render:o,sparqlResponse:n,initialQuery:e.query})}).catch(n=>{n instanceof r.JdbcConfigurationError?n.jdbcConfigurationInfo&&(n.jdbcConfigurationInfo.isColumnsEmpty||n.jdbcConfigurationInfo.hasUndefinedColumns)&&(Q(),e.activeTab=2):g.error(getError(n,0,100),j.instant("jdbc.not.show.preview"))}).finally(()=>{e.isQueryRunning=!1})},e.setActiveTab=n=>{e.activeTab=n;const t=e.jdbcConfigurationInfo.columns;2!==e.activeTab||t&&0!==t.length||N(e.jdbcConfigurationInfo).then(_).then(()=>{e.getColumnsSuggestions()})},e.setDirty=()=>{e.isDirty=!0},e.getTypeLabel=n=>{switch(n){case"iri":return"VARCHAR: IRI";case"string":return"VARCHAR: String";default:return n.indexOf(" ")>0?n:n.toUpperCase()}},e.selectColumnType=(n,t)=>{e.setDirty();const o=e.jdbcConfigurationInfo.columns.find(e=>e.column_name===n);o.column_type===e.getSuggestionSqlType&&O(e.jdbcConfigurationInfo).then(e=>p.getColumnsTypeSuggestion(e.query,[n])).then(n=>n.data).then(n=>{Object(a.updateColumn)(o,n),I(o.column_type,t)}).catch(n=>{g.error(getError(n),j.instant("jdbc.not.suggest.column.type"))})},e.deleteColumn=function(n,t){h.openSimpleModal({title:j.instant("common.warning"),message:j.instant("jdbc.warning.delete.column.msg",{columnName:n}),warning:!0}).result.then((function(){e.jdbcConfigurationInfo.columns.splice(t,1),e.setDirty()}))},e.getColumnsSuggestions=()=>{e.jdbcConfigurationInfo.columns&&e.jdbcConfigurationInfo.columns.length>0?h.openSimpleModal({title:j.instant("common.warning"),message:j.instant("jdbc.warning.column.type.msg"),warning:!0}).result.then((function(){Q()})):Q()},e.hasPrecision=n=>"iri"===n||"string"===n||"decimal"===n,e.containsColumnsWithPrecision=n=>n&&n.some(n=>e.hasPrecision(n.column_type)),e.containsColumnsWithScale=n=>n&&n.some(n=>L(n.column_type)),e.isLiteral=n=>"iri"!==n&&"unknown"!==n,e.containsNonLiteralColumnsOnly=n=>n&&n.every(n=>!e.isLiteral(n.column_type));const E=n=>{if(e.canWriteActiveRepo){const t=JSON.stringify({name:e.jdbcConfigurationInfo.jdbcConfigurationName,query:e.jdbcConfigurationInfo.query,columns:e.jdbcConfigurationInfo.columns||[]});return Promise.all([p.getNewSqlTablePreview(t).then(n=>n.data),Promise.resolve(n)])}return Promise.all([p.getExistingSqlTablePreview(e.jdbcConfigurationInfo.jdbcConfigurationName).then(n=>n.data),Promise.resolve(n)])},I=(n,e)=>{n===e?g.info(Object(u.decodeHTML)(j.instant("jdbc.same.suggested.sql.type",{type:n})),j.instant("jdbc.suggest.sql.type"),{allowHtml:!0}):g.success(Object(u.decodeHTML)(j.instant("jdbc.suggested.sql.type",{type:n})),j.instant("jdbc.suggest.sql.type"),{allowHtml:!0})},R=(n,t=new o.JdbcConfigurationInfo)=>{e.jdbcConfigurationInfo.columns=t.columns,e.jdbcConfigurationInfo.query=t.query,e.jdbcConfigurationInfo.jdbcConfigurationName=l.search().name||"",e.jdbcConfigurationInfo.isNewJdbcConfiguration=!e.jdbcConfigurationInfo.jdbcConfigurationName,e.prefixes=n,A(),x()},S=n=>{const t={name:n.jdbcConfigurationName,query:n.query,columns:n.columns};return p.createNewJdbcConfiguration(t).then(()=>{e.isDirty=!1,e.jdbcConfigurationInfo.isNewConfiguration=!1,g.success(j.instant("jdbc.saved.configuration")),k()})},T=n=>{const t={name:n.jdbcConfigurationName,query:n.query,columns:n.columns};return p.updateJdbcConfiguration(t).then(()=>{e.isDirty=!1,e.jdbcConfigurationInfo.isNewConfiguration=!1,g.success(j.instant("jdbc.configuration.updated")),k()})},A=(n={})=>{const t={};angular.extend(t,e.yasguiConfig||J(),n),e.yasguiConfig=t},J=()=>({showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showQueryButton:!1,showResultInfo:!1,downloadAsOn:!1,showYasqeResizer:!1,initialQuery:e.jdbcConfigurationInfo.query,componentId:"jdbc-component",prefixes:e.prefixes,maxPersistentResponseSize:0,render:s.RenderingMode.YASQE,getCellContent:U,sparqlResponse:e.emptySparqlResponse,yasqeActionButtons:c.DISABLE_YASQE_BUTTONS_CONFIGURATION,yasqeMode:e.canEditActiveRepo?i.YasqeMode.WRITE:i.YasqeMode.READ}),N=n=>M().getQueryType().then(e=>(n.isValidQueryType="SELECT"===e,n.isValidQueryType?n:Promise.reject(new r.JdbcConfigurationError("Query type is not valid.")))),_=n=>M().isQueryValid().then(e=>(n.isValidQuery=e,n.isValidQuery?n:Promise.reject(new r.JdbcConfigurationError("Invalid query.")))),D=n=>{if(!n.columns||0===n.columns.length)return n.isColumnsEmpty=!0,g.error(j.instant("jdbc.warning.one.column.msg")),Promise.reject(new r.JdbcConfigurationError("There are not defined columns.",n));return e.jdbcConfigurationInfo.columns&&e.jdbcConfigurationInfo.columns.find(n=>"unknown"===n.column_type)?(n.hasUndefinedColumns=!0,Promise.reject(new r.JdbcConfigurationError("There are columns without defined type.",n))):Promise.resolve(n)},Q=()=>{N(e.jdbcConfigurationInfo).then(_).then(O).then(P).then($).then(n=>e.jdbcConfigurationInfo=n).catch(n=>{console.log(n)})},P=n=>p.getColumnNames(n.query).then(e=>[n,e.data]).catch((function(n){g.error(getError(n),j.instant("jdbc.not.suggest.column.names"))})),$=([n,t])=>p.getColumnsTypeSuggestion(n.query,t).then((function(o){return n.columns=Object(a.toJDBCColumns)(t,o.data),n.isColumnsEmpty=n.columns.length,e.setDirty(),n})).catch((function(n){g.error(getError(n),j.instant("jdbc.not.suggest.column.types"))})),M=()=>c.YasguiComponentDirectiveUtil.getOntotextYasguiElement("#query-editor"),O=n=>M().getQuery().then(e=>(n.query=e,n)),L=n=>"decimal"===n,U=(n,e)=>{let t=n.value;t=t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return"<div class = 'literal-cell'>"+("<p class='nonUri' style='border: none; background-color: transparent; padding: 0; margin: 0'>"+t+"</p>")+"</div>"},Y=(n,e,t,o)=>{h.openSimpleModal({title:n,message:e,warning:!0}).result.then((function(){angular.isFunction(t)&&t()}),(function(){angular.isFunction(o)&&o()}))},x=()=>{e.getSuggestionSqlType=j.instant("view.jdbc.create.get_suggestion_sql_type"),e.sqlTypes=["string","iri","boolean","byte","short","int","long","float","double","decimal","date","time","timestamp",e.getSuggestionSqlType]},k=()=>{setTimeout((function(){V()}),1e3)},V=()=>{l.url("/jdbc")},W=n=>{e.isDirty&&(n.returnValue=!0)},F=()=>{window.removeEventListener("beforeunload",W),B.forEach(n=>n())},B=[];B.push(t.$on("$translateChangeSuccess",()=>{e.language=w.getLanguage(),x()})),B.push(e.$on("$locationChangeStart",(n,t)=>{if(e.isDirty){n.preventDefault();const e=j.instant("common.confirm"),o=j.instant("jdbc.warning.unsaved.changes");Y(e,o,()=>{F();const n=l.absUrl().length-l.url().length,e=t.substring(n);l.path(e)})}else F()})),B.push(v.subscribe("repositoryWillChangeEvent",n=>new Promise((function(t){if(e.jdbcConfigurationInfo.isNewJdbcConfiguration)return void t(n);const o=()=>{e.isDirty=!1,V(),t(n)};if(e.isDirty){const e=()=>{n.cancel=!0,t(n)},i=j.instant("common.confirm"),r=j.instant("jdbc.warning.unsaved.changes");Y(i,r,o,e)}else o()})))),B.push(e.$on("$destroy",F)),window.addEventListener("beforeunload",W),B.push(e.$watch(e.getActiveRepositoryObject,n=>{n&&(e.canEditActiveRepo=e.canWriteActiveRepo(),q?((()=>{e.loadingControllerResources=!0;const n=d.getActiveRepository();e.jdbcConfigurationInfo.jdbcConfigurationName?Promise.all([d.getPrefixes(n),p.getJdbcConfiguration(e.jdbcConfigurationInfo.jdbcConfigurationName)]).then(([n,e])=>{R(n,e.data)}).finally(()=>e.loadingControllerResources=!1):d.getPrefixes(n).then(n=>R(n)).finally(()=>e.loadingControllerResources=!1)})(),q=!1):M().abortQuery().then(V))}))}angular.module("graphdb.framework.jdbc.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.monitoring.service","toastr","graphdb.framework.utils.event-emitter-service"],["graphdb.framework.utils.notifications"]).controller("JdbcListCtrl",l).controller("JdbcCreateCtrl",g),l.$inject=["$scope","$repositories","JdbcRestService","toastr","ModalService","$translate"],g.$inject=["$q","$scope","$rootScope","$location","toastr","$repositories","$window","$timeout","$interval","JdbcRestService","RDF4JRepositoriesRestService","SparqlRestService","ModalService","$translate","$languageService","EventEmitterService"]},90:function(n,e,t){"use strict";t.r(e),t.d(e,"RenderingMode",(function(){return o}));const o={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},97:function(n,e,t){"use strict";t.r(e),t.d(e,"YasqeMode",(function(){return o}));const o={WRITE:"WRITE",READ:"READ",PROTECTED:"PROTECTED"}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[391],{511:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<h1>\n {{pageTitle}}\n <page-info-tooltip></page-info-tooltip>\n</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n <label class="d-block" ng-if="showCookiePolicyLink">\n <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button>\n </label>\n\n </div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n add-on-paste="true"\n replace-spaces-with-dashes="false"\n paste-split-pattern="[\\s+]"\n on-tag-adding="isCustomRoleValid($tag)"\n on-tag-added="addCustomRole($tag)"\n ng-keydown="checkUserInput($event)"\n ng-cut="removeErrorOnCut()"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"\n custom-prefix-tags-input></tags-input>\n <div class="small" ng-hide="isRoleValid">\n <small>{{\'security.user.role.too.short\' | translate}}</small>\n </div>\n <div class="small prefix-warning" ng-if="form.customRoleTag.$warning">\n <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small>\n </div>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> &middot; {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[391],{511:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<h1>\n {{pageTitle}}\n <page-info-tooltip></page-info-tooltip>\n</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n <label class="d-block" ng-if="showCookiePolicyLink">\n <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button>\n </label>\n\n </div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n add-on-paste="true"\n replace-spaces-with-dashes="false"\n paste-split-pattern="[\\s+]"\n on-tag-adding="isCustomRoleValid($tag)"\n on-tag-added="addCustomRole($tag)"\n ng-keydown="checkUserInput($event)"\n ng-cut="removeErrorOnCut()"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"\n custom-prefix-tags-input></tags-input>\n <div class="small" ng-hide="isRoleValid">\n <small>{{\'security.user.role.too.short\' | translate}}</small>\n </div>\n <div class="small prefix-warning" ng-if="form.customRoleTag.$warning">\n <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small>\n </div>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> &middot; {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[40,100,217,218,219,220,221],{124:function(e,r,t){"use strict";t.r(r),t.d(r,"JdbcDriverType",(function(){return o}));const o={GENERIC:"generic",MY_SQL:"mySQL",POSTGRESS:"postgreSQL",ORACLE:"oracle",MS_SQL:"msSQL",DB2:"DB2",DREMIO:"dremio",DATABRICKS:"databricks",SNOWFLAKE:"snowflake"}},186:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopConnectionInformation",(function(){return o}));class o{constructor(e="generic"){this.driverType=e,this.hostName="",this.port=void 0,this.databaseName="",this.username="",this.password="",this.driverClass="",this.url="",this.urlUserInput=""}}},187:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopDriverData",(function(){return n}));var o=t(124);class n{constructor(){this.classAvailable=!1,this.downloadDriverUrl="",this.driverClass="",this.driverName="",this.driverType="",this.portRequired=!1,this.urlTemplate=""}static isGenericDriver(e){return e===o.JdbcDriverType.GENERIC}static isSnowflakeDriver(e){return e===o.JdbcDriverType.SNOWFLAKE}}},188:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopFileInfo",(function(){return o}));class o{constructor(e,r=!1){this.type=e,this.fileName="",this.loading=!1,this.required=r}}},189:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopFileType",(function(){return o}));const o={OBDA:"obdaFile",OWL:"owlFile",CONSTRAINT:"constraintFile",LENSES:"lensesFile",DB_METADATA:"dbMetadataFile"}},190:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopRepositoryError",(function(){return o}));class o extends Error{}},305:function(e,r,t){"use strict";t.r(r);var o=t(156),n=t(189),a=t(186),i=t(188),s=t(190),p=t(187),c=t(124);function l(e,r,t,l,d){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(m){m.isGenericDriver=!0,m.defaultUrlTemplate="jdbc:database://localhost:port/database_name",m.ontopProperiesLink="https://ontop-vkg.org/guide/advanced/configuration.html",m.ontopFileType=n.OntopFileType,m.selectedDriver=new p.OntopDriverData,m.supportedDriversData=[],m.formData={connectionInformation:new a.OntopConnectionInformation,settings:{additionalProperties:"",ontopFiles:[]}},m.selectDriver=e=>{m.selectedDriver=m.supportedDriversData.find(r=>r.driverType===e),m.isGenericDriver=p.OntopDriverData.isGenericDriver(m.selectedDriver.driverType),m.editRepoPage&&m.currentOntopRepoInfo&&m.currentOntopRepoInfo.connectionInformation.driverType===e?m.formData=_.cloneDeep(m.currentOntopRepoInfo):(w(),m.formData.connectionInformation.driverType=m.selectedDriver.driverType),m.formData.connectionInformation.driverClass=m.selectedDriver.driverClass,m.updateUrl()},m.getOntopFileInfo=e=>m.formData.settings.ontopFiles.find(r=>e===r.type),m.getHostNameLabel=()=>{const e=p.OntopDriverData.isSnowflakeDriver(m.selectedDriver.driverType)?"ontop.repo.database.snowflake.host_name":"ontop.repo.database.host_name";return d.instant(e)+"*"},m.getDatabaseNameLabel=()=>{let e="";switch(m.selectedDriver.driverType){case c.JdbcDriverType.SNOWFLAKE:e="ontop.repo.database.warehouse.database_name";break;case c.JdbcDriverType.DATABRICKS:e="ontop.repo.database.http_path.database_name";break;case c.JdbcDriverType.DREMIO:e="ontop.repo.database.schema.database_name";break;default:e="ontop.repo.database.database_name"}return d.instant(e)},m.updateUrl=()=>{const e=u()||"";m.formData.connectionInformation.url=e+m.formData.connectionInformation.urlUserInput},m.isTestConnectionDisabled=()=>{const e=m.formData.connectionInformation,r=m.selectedDriver;return!(e.driverClass&&e.url&&(!r.portRequired||e.port))||!(p.OntopDriverData.isGenericDriver(r.driverType)||e.hostName&&e.databaseName)},m.testConnection=()=>{b().then(R).then(O).then(g).then(N).then(h).then(()=>r.validateOntopPropertiesConnection(m.repositoryInfo)).then(()=>t.success(d.instant("ontop.repo.successful.connection.msg"))).catch(e=>{e instanceof s.OntopRepositoryError?t.error(e.message):I(d.instant("ontop.repo.failed.to.connect"),e)})},m.editFile=t=>{const n=m.repositoryInfo.params[t.type].label,a=d.instant("update.file.edit.content.header",{fileName:n});e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",windowClass:"update-ontop-repo-dialog",resolve:{file:()=>{const e=m.repositoryInfo.params[t.type];return e?e.value:""},dialogTitle:()=>a,location:()=>m.repositoryInfo.location}}).result.then(e=>{r.updateRepositoryFileContent(e.fileLocation,e.content,m.repositoryInfo.location).success(e=>{t.fileName=Object(o.getFileName)(e.fileLocation),m.repositoryInfo.params[t.type].value=e.fileLocation}).error(e=>{I(d.instant("common.error"),e)})})},m.uploadOntopFile=(e,r)=>{if(e&&e.length){const o=e[0];r.loading=!0;const n={url:"rest/repositories/file/upload",data:{file:o,location:m.repositoryInfo.location}};l.upload(n).success(e=>{e.success?(r.fileName=o.name,m.repositoryInfo.params[r.type].value=e.fileLocation):t.error(e.errorMessage)}).error(e=>{I(d.instant("common.error"),e),m.uploadFile=""}).finally(()=>{r.loading=!1})}},m.updateOntopRepo=()=>{const e=m.editRepoPage?m.editRepository:m.createRepo;T().then(b).then(R).then(O).then(g).then(N).then(F).then(h).then(e).catch(e=>{e instanceof s.OntopRepositoryError?t.error(e.message):console.log(e)})},m.onKeyDownInUrlInput=e=>{const r=e.keyCode;if(37===r||39===r||36===r||35===r)return;const t=u();if(!t)return;const o=e.ctrlKey||e.metaKey;if(o&&65===r||o&&67===r)return;const n=e.target.selectionStart;8===r&&n-1<t.length&&(e.preventDefault(),e.stopPropagation()),n<t.length&&(e.preventDefault(),e.stopPropagation())},m.onKeyUpInUrlInput=()=>{f()};const f=()=>{const e=u();e&&m.formData.connectionInformation.url.startsWith(e)?m.formData.connectionInformation.urlUserInput=m.formData.connectionInformation.url.substring(e.length):m.formData.connectionInformation.urlUserInput=m.formData.connectionInformation.url},u=()=>p.OntopDriverData.isSnowflakeDriver(m.selectedDriver.driverType)?D():v(),D=()=>{let e=m.selectedDriver.urlTemplate;const r=m.formData.connectionInformation;return r.hostName&&(e=e.replace("{identifier}",r.hostName)),r.port&&(e=e.replace(".snowflakecomputing.com/?",`.snowflakecomputing.com:${r.port}/?`)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},v=()=>{let e=m.selectedDriver.urlTemplate;const r=m.formData.connectionInformation;return r.hostName&&(e=r.port?e.replace("{hostport}",`${r.hostName}:${r.port}`):e.replace("{hostport}",""+r.hostName)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},y=e=>{m.formData.settings.ontopFiles.forEach(r=>{r.loading=e})},h=()=>{y(!0);const e=m.formData.connectionInformation,t={hostName:e.hostName,port:e.port,databaseName:e.databaseName,userName:e.username,password:e.password,driverClass:e.driverClass,url:e.url,additionalProperties:m.formData.settings.additionalProperties};return r.updatePropertiesFile(m.repositoryInfo.params.propertiesFile.value,t,m.repositoryInfo.location,m.selectedDriver.driverType).success(e=>{m.repositoryInfo.params.propertiesFile.value=e.fileLocation}).error(e=>{I(d.instant("common.error"),e)}).finally(()=>y(!1))},I=(e,r)=>{const o=getError(r);t.error(o,e)},b=()=>p.OntopDriverData.isGenericDriver(m.selectedDriver.driverType)||m.formData.connectionInformation.hostName?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.host_name")}))),O=()=>p.OntopDriverData.isGenericDriver(m.selectedDriver.driverType)||m.formData.connectionInformation.databaseName?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.database_name")}))),g=()=>m.formData.connectionInformation.driverClass?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.driver_class")}))),N=()=>m.formData.connectionInformation.url?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.url")}))),T=()=>m.repositoryInfo.id?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("empty.repoid.warning"))),F=()=>m.getOntopFileInfo(n.OntopFileType.OBDA).fileName?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("ontop.repo.missing.required.file",{fileName:m.repositoryInfo.params[n.OntopFileType.OBDA].label}))),R=()=>m.selectedDriver.portRequired&&!m.formData.connectionInformation.port?Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.port")}))):Promise.resolve(),w=()=>{m.formData={connectionInformation:new a.OntopConnectionInformation,settings:{additionalProperties:"",ontopFiles:[]}},Object.values(n.OntopFileType).forEach(e=>{const r=new i.OntopFileInfo(e);m.formData.settings.ontopFiles.push(r)}),m.getOntopFileInfo(n.OntopFileType.OBDA).required=!0};r.getSupportedDriversData(m.repositoryInfo).success(e=>{m.supportedDriversData=e}).error(e=>{I(d.instant("common.error"),e)}).then(()=>{m.editRepoPage?(y(!0),r.loadPropertiesFile(m.repositoryInfo.params.propertiesFile.value,m.repositoryInfo.location,m.selectedDriver.driverType).success(e=>{let r=m.supportedDriversData.find(r=>r.driverClass===e.driverClass);r&&e.hostName||(r=m.supportedDriversData.find(e=>p.OntopDriverData.isGenericDriver(e.driverType))),m.selectDriver(r.driverType),m.formData.connectionInformation.driverType=r.driverType,m.formData.connectionInformation.driverClass=e.driverClass,m.formData.connectionInformation.password=e.password,m.formData.connectionInformation.username=e.userName,m.formData.connectionInformation.url=e.url,m.formData.settings.additionalProperties=e.additionalProperties,p.OntopDriverData.isGenericDriver(r.driverType)||(m.formData.connectionInformation.hostName=e.hostName,m.formData.connectionInformation.databaseName=e.databaseName,m.formData.connectionInformation.port=e.port?parseInt(e.port,10):void 0),f(),m.updateUrl(),Object.values(n.OntopFileType).forEach(e=>{const r=m.repositoryInfo.params[e],t=m.getOntopFileInfo(e);r&&(t.fileName=Object(o.getFileName)(r.value))}),m.currentOntopRepoInfo=_.cloneDeep(m.formData)}).error(e=>{I(d.instant("common.error"),e)}).finally(()=>{y(!1)})):m.selectDriver(c.JdbcDriverType.GENERIC)})}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",l),l.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[40,101,217,218,219,220,221],{125:function(e,r,t){"use strict";t.r(r),t.d(r,"JdbcDriverType",(function(){return o}));const o={GENERIC:"generic",MY_SQL:"mySQL",POSTGRESS:"postgreSQL",ORACLE:"oracle",MS_SQL:"msSQL",DB2:"DB2",DREMIO:"dremio",DATABRICKS:"databricks",SNOWFLAKE:"snowflake"}},186:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopConnectionInformation",(function(){return o}));class o{constructor(e="generic"){this.driverType=e,this.hostName="",this.port=void 0,this.databaseName="",this.username="",this.password="",this.driverClass="",this.url="",this.urlUserInput=""}}},187:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopDriverData",(function(){return n}));var o=t(125);class n{constructor(){this.classAvailable=!1,this.downloadDriverUrl="",this.driverClass="",this.driverName="",this.driverType="",this.portRequired=!1,this.urlTemplate=""}static isGenericDriver(e){return e===o.JdbcDriverType.GENERIC}static isSnowflakeDriver(e){return e===o.JdbcDriverType.SNOWFLAKE}}},188:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopFileInfo",(function(){return o}));class o{constructor(e,r=!1){this.type=e,this.fileName="",this.loading=!1,this.required=r}}},189:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopFileType",(function(){return o}));const o={OBDA:"obdaFile",OWL:"owlFile",CONSTRAINT:"constraintFile",LENSES:"lensesFile",DB_METADATA:"dbMetadataFile"}},190:function(e,r,t){"use strict";t.r(r),t.d(r,"OntopRepositoryError",(function(){return o}));class o extends Error{}},305:function(e,r,t){"use strict";t.r(r);var o=t(156),n=t(189),a=t(186),i=t(188),s=t(190),p=t(187),c=t(125);function l(e,r,t,l,d){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(m){m.isGenericDriver=!0,m.defaultUrlTemplate="jdbc:database://localhost:port/database_name",m.ontopProperiesLink="https://ontop-vkg.org/guide/advanced/configuration.html",m.ontopFileType=n.OntopFileType,m.selectedDriver=new p.OntopDriverData,m.supportedDriversData=[],m.formData={connectionInformation:new a.OntopConnectionInformation,settings:{additionalProperties:"",ontopFiles:[]}},m.selectDriver=e=>{m.selectedDriver=m.supportedDriversData.find(r=>r.driverType===e),m.isGenericDriver=p.OntopDriverData.isGenericDriver(m.selectedDriver.driverType),m.editRepoPage&&m.currentOntopRepoInfo&&m.currentOntopRepoInfo.connectionInformation.driverType===e?m.formData=_.cloneDeep(m.currentOntopRepoInfo):(w(),m.formData.connectionInformation.driverType=m.selectedDriver.driverType),m.formData.connectionInformation.driverClass=m.selectedDriver.driverClass,m.updateUrl()},m.getOntopFileInfo=e=>m.formData.settings.ontopFiles.find(r=>e===r.type),m.getHostNameLabel=()=>{const e=p.OntopDriverData.isSnowflakeDriver(m.selectedDriver.driverType)?"ontop.repo.database.snowflake.host_name":"ontop.repo.database.host_name";return d.instant(e)+"*"},m.getDatabaseNameLabel=()=>{let e="";switch(m.selectedDriver.driverType){case c.JdbcDriverType.SNOWFLAKE:e="ontop.repo.database.warehouse.database_name";break;case c.JdbcDriverType.DATABRICKS:e="ontop.repo.database.http_path.database_name";break;case c.JdbcDriverType.DREMIO:e="ontop.repo.database.schema.database_name";break;default:e="ontop.repo.database.database_name"}return d.instant(e)},m.updateUrl=()=>{const e=u()||"";m.formData.connectionInformation.url=e+m.formData.connectionInformation.urlUserInput},m.isTestConnectionDisabled=()=>{const e=m.formData.connectionInformation,r=m.selectedDriver;return!(e.driverClass&&e.url&&(!r.portRequired||e.port))||!(p.OntopDriverData.isGenericDriver(r.driverType)||e.hostName&&e.databaseName)},m.testConnection=()=>{b().then(R).then(O).then(g).then(N).then(h).then(()=>r.validateOntopPropertiesConnection(m.repositoryInfo)).then(()=>t.success(d.instant("ontop.repo.successful.connection.msg"))).catch(e=>{e instanceof s.OntopRepositoryError?t.error(e.message):I(d.instant("ontop.repo.failed.to.connect"),e)})},m.editFile=t=>{const n=m.repositoryInfo.params[t.type].label,a=d.instant("update.file.edit.content.header",{fileName:n});e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",windowClass:"update-ontop-repo-dialog",resolve:{file:()=>{const e=m.repositoryInfo.params[t.type];return e?e.value:""},dialogTitle:()=>a,location:()=>m.repositoryInfo.location}}).result.then(e=>{r.updateRepositoryFileContent(e.fileLocation,e.content,m.repositoryInfo.location).success(e=>{t.fileName=Object(o.getFileName)(e.fileLocation),m.repositoryInfo.params[t.type].value=e.fileLocation}).error(e=>{I(d.instant("common.error"),e)})})},m.uploadOntopFile=(e,r)=>{if(e&&e.length){const o=e[0];r.loading=!0;const n={url:"rest/repositories/file/upload",data:{file:o,location:m.repositoryInfo.location}};l.upload(n).success(e=>{e.success?(r.fileName=o.name,m.repositoryInfo.params[r.type].value=e.fileLocation):t.error(e.errorMessage)}).error(e=>{I(d.instant("common.error"),e),m.uploadFile=""}).finally(()=>{r.loading=!1})}},m.updateOntopRepo=()=>{const e=m.editRepoPage?m.editRepository:m.createRepo;T().then(b).then(R).then(O).then(g).then(N).then(F).then(h).then(e).catch(e=>{e instanceof s.OntopRepositoryError?t.error(e.message):console.log(e)})},m.onKeyDownInUrlInput=e=>{const r=e.keyCode;if(37===r||39===r||36===r||35===r)return;const t=u();if(!t)return;const o=e.ctrlKey||e.metaKey;if(o&&65===r||o&&67===r)return;const n=e.target.selectionStart;8===r&&n-1<t.length&&(e.preventDefault(),e.stopPropagation()),n<t.length&&(e.preventDefault(),e.stopPropagation())},m.onKeyUpInUrlInput=()=>{f()};const f=()=>{const e=u();e&&m.formData.connectionInformation.url.startsWith(e)?m.formData.connectionInformation.urlUserInput=m.formData.connectionInformation.url.substring(e.length):m.formData.connectionInformation.urlUserInput=m.formData.connectionInformation.url},u=()=>p.OntopDriverData.isSnowflakeDriver(m.selectedDriver.driverType)?D():v(),D=()=>{let e=m.selectedDriver.urlTemplate;const r=m.formData.connectionInformation;return r.hostName&&(e=e.replace("{identifier}",r.hostName)),r.port&&(e=e.replace(".snowflakecomputing.com/?",`.snowflakecomputing.com:${r.port}/?`)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},v=()=>{let e=m.selectedDriver.urlTemplate;const r=m.formData.connectionInformation;return r.hostName&&(e=r.port?e.replace("{hostport}",`${r.hostName}:${r.port}`):e.replace("{hostport}",""+r.hostName)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},y=e=>{m.formData.settings.ontopFiles.forEach(r=>{r.loading=e})},h=()=>{y(!0);const e=m.formData.connectionInformation,t={hostName:e.hostName,port:e.port,databaseName:e.databaseName,userName:e.username,password:e.password,driverClass:e.driverClass,url:e.url,additionalProperties:m.formData.settings.additionalProperties};return r.updatePropertiesFile(m.repositoryInfo.params.propertiesFile.value,t,m.repositoryInfo.location,m.selectedDriver.driverType).success(e=>{m.repositoryInfo.params.propertiesFile.value=e.fileLocation}).error(e=>{I(d.instant("common.error"),e)}).finally(()=>y(!1))},I=(e,r)=>{const o=getError(r);t.error(o,e)},b=()=>p.OntopDriverData.isGenericDriver(m.selectedDriver.driverType)||m.formData.connectionInformation.hostName?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.host_name")}))),O=()=>p.OntopDriverData.isGenericDriver(m.selectedDriver.driverType)||m.formData.connectionInformation.databaseName?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.database_name")}))),g=()=>m.formData.connectionInformation.driverClass?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.driver_class")}))),N=()=>m.formData.connectionInformation.url?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.url")}))),T=()=>m.repositoryInfo.id?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("empty.repoid.warning"))),F=()=>m.getOntopFileInfo(n.OntopFileType.OBDA).fileName?Promise.resolve():Promise.reject(new s.OntopRepositoryError(d.instant("ontop.repo.missing.required.file",{fileName:m.repositoryInfo.params[n.OntopFileType.OBDA].label}))),R=()=>m.selectedDriver.portRequired&&!m.formData.connectionInformation.port?Promise.reject(new s.OntopRepositoryError(d.instant("missing.required.field",{fieldName:d.instant("ontop.repo.database.port")}))):Promise.resolve(),w=()=>{m.formData={connectionInformation:new a.OntopConnectionInformation,settings:{additionalProperties:"",ontopFiles:[]}},Object.values(n.OntopFileType).forEach(e=>{const r=new i.OntopFileInfo(e);m.formData.settings.ontopFiles.push(r)}),m.getOntopFileInfo(n.OntopFileType.OBDA).required=!0};r.getSupportedDriversData(m.repositoryInfo).success(e=>{m.supportedDriversData=e}).error(e=>{I(d.instant("common.error"),e)}).then(()=>{m.editRepoPage?(y(!0),r.loadPropertiesFile(m.repositoryInfo.params.propertiesFile.value,m.repositoryInfo.location,m.selectedDriver.driverType).success(e=>{let r=m.supportedDriversData.find(r=>r.driverClass===e.driverClass);r&&e.hostName||(r=m.supportedDriversData.find(e=>p.OntopDriverData.isGenericDriver(e.driverType))),m.selectDriver(r.driverType),m.formData.connectionInformation.driverType=r.driverType,m.formData.connectionInformation.driverClass=e.driverClass,m.formData.connectionInformation.password=e.password,m.formData.connectionInformation.username=e.userName,m.formData.connectionInformation.url=e.url,m.formData.settings.additionalProperties=e.additionalProperties,p.OntopDriverData.isGenericDriver(r.driverType)||(m.formData.connectionInformation.hostName=e.hostName,m.formData.connectionInformation.databaseName=e.databaseName,m.formData.connectionInformation.port=e.port?parseInt(e.port,10):void 0),f(),m.updateUrl(),Object.values(n.OntopFileType).forEach(e=>{const r=m.repositoryInfo.params[e],t=m.getOntopFileInfo(e);r&&(t.fileName=Object(o.getFileName)(r.value))}),m.currentOntopRepoInfo=_.cloneDeep(m.formData)}).error(e=>{I(d.instant("common.error"),e)}).finally(()=>{y(!1)})):m.selectDriver(c.JdbcDriverType.GENERIC)})}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",l),l.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[403],{525:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<div class="agent-list-component">\n <div class="agents-filter-dropdown btn-group" uib-dropdown>\n <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle">\n <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i>\n <span class="selected-filter">{{selectedAgentsFilter.label}}</span>\n <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i>\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="filterModel in agentListFilterModel">\n <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)"\n data-value="{{filterModel.label}}">\n {{filterModel.label}}\n </button>\n </li>\n </ul>\n </div>\n\n <div class="agent-list">\n <div ng-if="!agentList.agents.length" class="alert alert-warning">\n {{\'ttyg.agent.messages.no_agents\' | translate}}\n </div>\n\n <div ng-repeat="agent in agentList.filterableAgents">\n <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item"\n ng-class="{\'selected\': agent.id === selectedAgent.id}">\n <div class="agent-info">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n {{agent.repositoryId}}\n </div>\n </div>\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-agent-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openAgentActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right agent-actions-menu">\n <button class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)">\n <i class="fa fa-gear"></i>\n <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span>\n </button>\n <button class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)">\n <i class="fa fa-clone"></i>\n <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress"\n onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}"\n size="25"></div>\n </div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[403],{525:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<div class="agent-list-component">\n <div class="agents-filter-dropdown btn-group" uib-dropdown>\n <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle">\n <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i>\n <span class="selected-filter">{{selectedAgentsFilter.label}}</span>\n <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i>\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="filterModel in agentListFilterModel">\n <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)"\n data-value="{{filterModel.label}}">\n {{filterModel.label}}\n </button>\n </li>\n </ul>\n </div>\n\n <div class="agent-list">\n <div ng-if="!agentList.agents.length" class="alert alert-warning">\n {{\'ttyg.agent.messages.no_agents\' | translate}}\n </div>\n\n <div ng-repeat="agent in agentList.filterableAgents">\n <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item"\n ng-class="{\'selected\': agent.id === selectedAgent.id}">\n <div class="agent-info">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n {{agent.repositoryId}}\n </div>\n </div>\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-agent-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openAgentActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right agent-actions-menu">\n <button class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)">\n <i class="fa fa-gear"></i>\n <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span>\n </button>\n <button class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)">\n <i class="fa fa-clone"></i>\n <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress"\n onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}"\n size="25"></div>\n </div>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[404],{526:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<div class="btn-group agent-select-menu" uib-dropdown>\n <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle\n ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + \' &middot; \' + selectedAgent.repositoryId) : null}}">\n <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span>\n <div ng-if="selectedAgent && !selectedAgent.isDeleted" class="selected-agent-option">\n <span class="agent-name">{{selectedAgent.name}}</span> &middot;\n <i ng-if="!selectedAgent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="selectedAgent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{selectedAgent.repositoryId}}</span>\n </div>\n <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning">\n <i class="fa fa-triangle-exclamation"></i>\n {{\'ttyg.agent.agent_select_menu.deleted_agent\' | translate}}\n </span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="single-button">\n <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item"\n ng-class="{\'selected\': agentOption.selected}"\n ng-attr-title="{{agentOption.label}} &middot; {{agentOption.data.agent.repositoryId}}">\n <a href="#"\n class="agent-option"\n ng-click="onAgentSelected(agentOption.data.agent)">\n <span class="agent-name">{{agentOption.label}}</span> &middot;\n <i ng-if="!agentOption.data.agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agentOption.data.agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span>\n </a>\n </li>\n </ul>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[404],{526:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<div class="btn-group agent-select-menu" uib-dropdown>\n <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle\n ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + \' &middot; \' + selectedAgent.repositoryId) : null}}">\n <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span>\n <div ng-if="selectedAgent && !selectedAgent.isDeleted" class="selected-agent-option">\n <span class="agent-name">{{selectedAgent.name}}</span> &middot;\n <i ng-if="!selectedAgent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="selectedAgent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{selectedAgent.repositoryId}}</span>\n </div>\n <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning">\n <i class="fa fa-triangle-exclamation"></i>\n {{\'ttyg.agent.agent_select_menu.deleted_agent\' | translate}}\n </span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="single-button">\n <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item"\n ng-class="{\'selected\': agentOption.selected}"\n ng-attr-title="{{agentOption.label}} &middot; {{agentOption.data.agent.repositoryId}}">\n <a href="#"\n class="agent-option"\n ng-click="onAgentSelected(agentOption.data.agent)">\n <span class="agent-name">{{agentOption.label}}</span> &middot;\n <i ng-if="!agentOption.data.agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agentOption.data.agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span>\n </a>\n </li>\n </ul>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[405],{527:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-item-details.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<div class="chat-detail">\n <div class="user-message" ng-if="chatItemDetail.question">\n <div class="question alert-help"\n gdb-tooltip="{{ \'ttyg.chat_panel.labels.question_asked\' | translate : { date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n {{ chatItemDetail.question.message }}\n </div>\n </div>\n <div class="answers" ng-repeat="answer in chatItemDetail.answers">\n <div class="assistant">\n <div class="assistant-icon alert-help"\n gdb-tooltip="{{\'ttyg.chat_panel.labels.agent_name\' | translate : { agentName: agentNameByIdMap[chatItemDetail.agentId], date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n <i class="fa fa-lg fa-message-bot"></i>\n </div>\n <div class="assistant-message">\n <markdown-content class="answer" content="{{answer.message}}" options="markdownContentOptions"></markdown-content>\n <div class="actions" ng-class="{\'hidden-actions\': !explainResponseModel[answer.id].expanded && (!showActions || !$last)}">\n <button class="btn btn-link btn-sm regenerate-question-btn"\n ng-click="regenerateQuestion()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.regenerate.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_answer.tooltip"\n text-to-copy="{{answer.message}}"></copy-to-clipboard>\n <button class="btn btn-link btn-link-only-icons btn-sm explain-response-btn"\n ng-click="explainResponse(answer.id)"\n ng-disabled="disabled && !explainResponseModel[answer.id]"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.explain_response.tooltip\' | translate}}">\n <i class="fa fa-wand-magic-sparkles"></i>\n <i class="fa fa-chevron-up toggle-explain-response-icon"\n ng-class="{expanded: explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded}"></i>\n </button>\n </div>\n <div class="derived-answer-hint"\n ng-if="showActions && $last && explainResponseModel[answer.id].expanded">\n <div ng-bind-html="\'ttyg.chat_panel.btn.derive_answer.hint\' | translate | trustAsHtml"></div>\n <button class="btn btn-secondary deliver-answer-btn" ng-click="onAskHowAnswerWasDerived()">\n {{ \'ttyg.chat_panel.btn.derive_answer.label\' | translate }}\n </button>\n </div>\n <div ng-if="loadingExplainResponse[answer.id]" onto-loader-new size="40"></div>\n <div class="explain-responses" ng-if="explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded">\n <div ng-if="!explainResponseModel[answer.id].queryMethods.items.length"\n class="explain-response">\n {{ \'ttyg.chat_panel.labels.explain_no_methods\' | translate }}\n </div>\n <div ng-if="explainResponseModel[answer.id].queryMethods.items"\n class="explain-response"\n ng-repeat="queryMethod in explainResponseModel[answer.id].queryMethods.items">\n <div class="explain-call">\n <div class="header" gdb-tooltip="">\n <div class="label">\n <span class="query-method" ng-bind-html="\'ttyg.chat_panel.labels.called\' | translate:{name: queryMethod.name} | trustAsHtml">\n </span>{{ \'ttyg.chat_panel.query_colon\' | translate }}\n <span class="query-method-details" ng-bind="(\'ttyg.chat_panel.query_desc.\' + queryMethod.name) | translate">\n </span>\n </div>\n <div ng-if="queryMethod.query" class="actions">\n <open-in-sparql-editor\n ng-if="queryMethod.queryType === ExplainQueryType.SPARQL"\n execute-query="{{!queryMethod.errorMessage}}"\n repository-id="{{repositoryId}}"\n query="{{queryMethod.query}}">\n </open-in-sparql-editor>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_{{ queryMethod.queryType }}.tooltip"\n text-to-copy="{{queryMethod.query}}"></copy-to-clipboard>\n </div>\n </div>\n <div class="query">\n <div ng-if="!queryMethod.query" class="mb-1">{{ \'ttyg.chat_panel.labels.no_query\' | translate }}</code></div>\n <pre ng-if="queryMethod.query"><code>{{queryMethod.query}}</code></pre>\n </div>\n <div ng-if="showRawQuery(queryMethod)" class="raw-query">\n <span class="label">{{\'ttyg.chat_panel.labels.raw_query\' | translate}}:</span>\n <span class="content">{{queryMethod.rawQuery}}</span>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_raw_query.tooltip"\n text-to-copy="{{queryMethod.rawQuery}}"></copy-to-clipboard>\n </div>\n <div ng-if="queryMethod.errorMessage" class="alert no-icon alert-warning error-message">\n <div class="error-header">\n <div class="label">{{\'ttyg.chat_panel.labels.error_message\' | translate}}:</div>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_error_message.tooltip"\n text-to-copy="{{queryMethod.errorMessage}}"></copy-to-clipboard>\n </div>\n <div class="error-content">{{queryMethod.errorMessage}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div ng-if="asking" onto-loader-new size="40"></div>\n</div>\n\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[405],{527:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-item-details.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<div class="chat-detail">\n <div class="user-message" ng-if="chatItemDetail.question">\n <div class="question alert-help"\n gdb-tooltip="{{ \'ttyg.chat_panel.labels.question_asked\' | translate : { date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n {{ chatItemDetail.question.message }}\n </div>\n </div>\n <div class="answers" ng-repeat="answer in chatItemDetail.answers">\n <div class="assistant">\n <div class="assistant-icon alert-help"\n gdb-tooltip="{{\'ttyg.chat_panel.labels.agent_name\' | translate : { agentName: agentNameByIdMap[chatItemDetail.agentId], date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n <i class="fa fa-lg fa-message-bot"></i>\n </div>\n <div class="assistant-message">\n <markdown-content class="answer" content="{{answer.message}}" options="markdownContentOptions"></markdown-content>\n <div class="actions" ng-class="{\'hidden-actions\': !explainResponseModel[answer.id].expanded && (!showActions || !$last)}">\n <button class="btn btn-link btn-sm regenerate-question-btn"\n ng-click="regenerateQuestion()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.regenerate.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_answer.tooltip"\n text-to-copy="{{answer.message}}"></copy-to-clipboard>\n <button class="btn btn-link btn-link-only-icons btn-sm explain-response-btn"\n ng-click="explainResponse(answer.id)"\n ng-disabled="disabled && !explainResponseModel[answer.id]"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.explain_response.tooltip\' | translate}}">\n <i class="fa fa-wand-magic-sparkles"></i>\n <i class="fa fa-chevron-up toggle-explain-response-icon"\n ng-class="{expanded: explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded}"></i>\n </button>\n </div>\n <div class="derived-answer-hint"\n ng-if="showActions && $last && explainResponseModel[answer.id].expanded">\n <div ng-bind-html="\'ttyg.chat_panel.btn.derive_answer.hint\' | translate | trustAsHtml"></div>\n <button class="btn btn-secondary deliver-answer-btn" ng-click="onAskHowAnswerWasDerived()">\n {{ \'ttyg.chat_panel.btn.derive_answer.label\' | translate }}\n </button>\n </div>\n <div ng-if="loadingExplainResponse[answer.id]" onto-loader-new size="40"></div>\n <div class="explain-responses" ng-if="explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded">\n <div ng-if="!explainResponseModel[answer.id].queryMethods.items.length"\n class="explain-response">\n {{ \'ttyg.chat_panel.labels.explain_no_methods\' | translate }}\n </div>\n <div ng-if="explainResponseModel[answer.id].queryMethods.items"\n class="explain-response"\n ng-repeat="queryMethod in explainResponseModel[answer.id].queryMethods.items">\n <div class="explain-call">\n <div class="header" gdb-tooltip="">\n <div class="label">\n <span class="query-method" ng-bind-html="\'ttyg.chat_panel.labels.called\' | translate:{name: queryMethod.name} | trustAsHtml">\n </span>{{ \'ttyg.chat_panel.query_colon\' | translate }}\n <span class="query-method-details" ng-bind="(\'ttyg.chat_panel.query_desc.\' + queryMethod.name) | translate">\n </span>\n </div>\n <div ng-if="queryMethod.query" class="actions">\n <open-in-sparql-editor\n ng-if="queryMethod.queryType === ExplainQueryType.SPARQL"\n execute-query="{{!queryMethod.errorMessage}}"\n repository-id="{{repositoryId}}"\n query="{{queryMethod.query}}">\n </open-in-sparql-editor>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_{{ queryMethod.queryType }}.tooltip"\n text-to-copy="{{queryMethod.query}}"></copy-to-clipboard>\n </div>\n </div>\n <div class="query">\n <div ng-if="!queryMethod.query" class="mb-1">{{ \'ttyg.chat_panel.labels.no_query\' | translate }}</code></div>\n <pre ng-if="queryMethod.query"><code>{{queryMethod.query}}</code></pre>\n </div>\n <div ng-if="showRawQuery(queryMethod)" class="raw-query">\n <span class="label">{{\'ttyg.chat_panel.labels.raw_query\' | translate}}:</span>\n <span class="content">{{queryMethod.rawQuery}}</span>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_raw_query.tooltip"\n text-to-copy="{{queryMethod.rawQuery}}"></copy-to-clipboard>\n </div>\n <div ng-if="queryMethod.errorMessage" class="alert no-icon alert-warning error-message">\n <div class="error-header">\n <div class="label">{{\'ttyg.chat_panel.labels.error_message\' | translate}}:</div>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_error_message.tooltip"\n text-to-copy="{{queryMethod.errorMessage}}"></copy-to-clipboard>\n </div>\n <div class="error-content">{{queryMethod.errorMessage}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div ng-if="asking" onto-loader-new size="40"></div>\n</div>\n\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[406],{528:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<div class="chat-list-component">\n <div class="chat-list">\n <div ng-repeat="chatGroup in chatList.chatsByDay" class="chat-group">\n <label>{{ getHumanReadableChatGroupTimestamp(chatGroup.timestamp) }}</label>\n <ul>\n <li ng-repeat="chat in chatGroup.chats track by chat.hash" class="chat-item"\n ng-class="{\'selected\': chat.id === selectedChat.id, \'edited\': renamedChat && chat.id === renamedChat.id}">\n <div ng-if="!deletingChat || deletingChat.chatId !== chat.id" class="chat-detail">\n <div class="chat-name">\n <inline-editable-text\n field-name="name"\n source="chat"\n is-editing="chat.id && renamedChat && chat.id === renamedChat.id"\n on-save="onRenameChat(newText, source)"\n on-cancel="onCancelChatRenaming()"\n on-dblclick="onSelectChatForRenaming(chat)"\n on-click="onSelectChat(source)"\n title="{{chat.name}}"\n show-tooltip-on-overflow>\n </inline-editable-text>\n </div>\n <div ng-if="chat.id && (!renamedChat || chat.id !== renamedChat.id)" class="btn-group">\n <button class="btn btn-link secondary btn-sm open-chat-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openChatActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right chat-actions-menu">\n <button class="dropdown-item export-chat-btn" type="button" ng-click="onExportChat(chat)">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'ttyg.chat.btn.export_chat.label\' | translate}}</span>\n </button>\n <button class="dropdown-item rename-chat-btn" type="button" ng-click="onSelectChatForRenaming(chat)">\n <i class="fa fa-pen"></i>\n <span>{{\'ttyg.chat.btn.rename_chat.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-chat-btn" type="button" ng-click="onDeleteChat(chat)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.chat.btn.delete_chat.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-chat-loader" ng-if="deletingChat && deletingChat.chatId === chat.id && deletingChat.inProgress"\n onto-loader-fancy message="{{\'ttyg.chat.deleting_chat\' | translate}}"\n size="25"></div>\n </li>\n </ul>\n </div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[406],{528:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<div class="chat-list-component">\n <div class="chat-list">\n <div ng-repeat="chatGroup in chatList.chatsByDay" class="chat-group">\n <label>{{ getHumanReadableChatGroupTimestamp(chatGroup.timestamp) }}</label>\n <ul>\n <li ng-repeat="chat in chatGroup.chats track by chat.hash" class="chat-item"\n ng-class="{\'selected\': chat.id === selectedChat.id, \'edited\': renamedChat && chat.id === renamedChat.id}">\n <div ng-if="!deletingChat || deletingChat.chatId !== chat.id" class="chat-detail">\n <div class="chat-name">\n <inline-editable-text\n field-name="name"\n source="chat"\n is-editing="chat.id && renamedChat && chat.id === renamedChat.id"\n on-save="onRenameChat(newText, source)"\n on-cancel="onCancelChatRenaming()"\n on-dblclick="onSelectChatForRenaming(chat)"\n on-click="onSelectChat(source)"\n title="{{chat.name}}"\n show-tooltip-on-overflow>\n </inline-editable-text>\n </div>\n <div ng-if="chat.id && (!renamedChat || chat.id !== renamedChat.id)" class="btn-group">\n <button class="btn btn-link secondary btn-sm open-chat-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openChatActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right chat-actions-menu">\n <button class="dropdown-item export-chat-btn" type="button" ng-click="onExportChat(chat)">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'ttyg.chat.btn.export_chat.label\' | translate}}</span>\n </button>\n <button class="dropdown-item rename-chat-btn" type="button" ng-click="onSelectChatForRenaming(chat)">\n <i class="fa fa-pen"></i>\n <span>{{\'ttyg.chat.btn.rename_chat.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-chat-btn" type="button" ng-click="onDeleteChat(chat)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.chat.btn.delete_chat.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-chat-loader" ng-if="deletingChat && deletingChat.chatId === chat.id && deletingChat.inProgress"\n onto-loader-fancy message="{{\'ttyg.chat.deleting_chat\' | translate}}"\n size="25"></div>\n </li>\n </ul>\n </div>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[407],{529:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<div class="chat-panel h-100" ng-class="chat.chatHistory.isEmpty() && !askingChatItem ? \'no-content\' : \'\'">\n\n <div class="chat-loading" ng-if="loadingChat" onto-loader-new size="40"></div>\n\n <div class="chat-details" ng-class="{\'hidden\': !chat}" ng-if="!loadingChat && !chat.chatHistory.isEmpty() || askingChatItem">\n <div ng-repeat="chatItemDetail in chat.chatHistory.items">\n\n \x3c!-- Before the first chat item is displayed, show the agent change info if the agent of the first response is different from the selected agent. --\x3e\n \x3c!-- <div class="alert alert-info agent-changed-info" ng-if="$first && selectedAgent && chatItemDetail.agentId !== selectedAgent.id"--\x3e\n \x3c!-- ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | trnaslate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">--\x3e\n \x3c!-- </div>--\x3e\n\n \x3c!-- Before each chat item, except the first one, is displayed, show the agent change info if the currently used agent is different from the previous one. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="!$first && chatItemDetail.agentId !== chat.chatHistory.items[$index - 1].agentId"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">\n </div>\n\n <chat-item-detail\n chat-item-detail="chatItemDetail"\n show-actions="!waitingForLastMessage && $last"\n on-regenerate-question="regenerateQuestion(chatItem)"\n on-copy-answer-to-clipboard="copyAnswerToClipboard(chatItem)"\n on-ask-how-delivered-answer="onAskHowDeliveredAnswer(chatItem)"\n asking="!askingChatItem && waitingForLastMessage && $last"\n disabled="waitingForLastMessage">\n </chat-item-detail>\n </div>\n\n \x3c!-- After all chat items are displayed, show the agent change info if the selected agent is different from the one used in the last chat item. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="askingChatItem && selectedAgent && chat.chatHistory.items.length && chat.chatHistory.items[chat.chatHistory.items.length -1].agentId !== selectedAgent.id"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(selectedAgent.id)} | trustAsHtml">\n </div>\n <chat-item-detail ng-if="askingChatItem" chat-item-detail="askingChatItem"\n asking="!!askingChatItem"></chat-item-detail>\n </div>\n <div class="new-question mt-3 d-flex" ng-if="!loadingChat">\n <input class="form-control question-input" ng-model="chatItem.question.message" type="text"\n ng-disabled="waitingForLastMessage || loadingChat || !selectedAgent || selectedAgent.isDeleted"\n ng-keypress="onKeypressOnInput($event)">\n <button class="btn btn-primary ask-button"\n ng-disabled="!chatItem.question.message || !selectedAgent || selectedAgent.isDeleted || waitingForLastMessage || loadingChat"\n ng-click="ask()">\n <i class="fa fa-arrow-turn-left-up"></i>\n {{ \'ttyg.chat_panel.btn.ask.label \' | translate }}\n </button>\n </div>\n\n <div class="messages-hint text-muted" ng-if="!loadingChat && chat.chatHistory.isEmpty() && !waitingForLastMessage" ng-cloak>\n <div class="hint2" ng-bind="\'ttyg.chat_panel.hint2\' | translate"></div>\n <div class="hint1" ng-bind-html="\'ttyg.chat_panel.hint1\' | translate | trustAsHtml"></div>\n </div>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[407],{529:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<div class="chat-panel h-100" ng-class="chat.chatHistory.isEmpty() && !askingChatItem ? \'no-content\' : \'\'">\n\n <div class="chat-loading" ng-if="loadingChat" onto-loader-new size="40"></div>\n\n <div class="chat-details" ng-class="{\'hidden\': !chat}" ng-if="!loadingChat && !chat.chatHistory.isEmpty() || askingChatItem">\n <div ng-repeat="chatItemDetail in chat.chatHistory.items">\n\n \x3c!-- Before the first chat item is displayed, show the agent change info if the agent of the first response is different from the selected agent. --\x3e\n \x3c!-- <div class="alert alert-info agent-changed-info" ng-if="$first && selectedAgent && chatItemDetail.agentId !== selectedAgent.id"--\x3e\n \x3c!-- ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | trnaslate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">--\x3e\n \x3c!-- </div>--\x3e\n\n \x3c!-- Before each chat item, except the first one, is displayed, show the agent change info if the currently used agent is different from the previous one. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="!$first && chatItemDetail.agentId !== chat.chatHistory.items[$index - 1].agentId"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">\n </div>\n\n <chat-item-detail\n chat-item-detail="chatItemDetail"\n show-actions="!waitingForLastMessage && $last"\n on-regenerate-question="regenerateQuestion(chatItem)"\n on-copy-answer-to-clipboard="copyAnswerToClipboard(chatItem)"\n on-ask-how-delivered-answer="onAskHowDeliveredAnswer(chatItem)"\n asking="!askingChatItem && waitingForLastMessage && $last"\n disabled="waitingForLastMessage">\n </chat-item-detail>\n </div>\n\n \x3c!-- After all chat items are displayed, show the agent change info if the selected agent is different from the one used in the last chat item. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="askingChatItem && selectedAgent && chat.chatHistory.items.length && chat.chatHistory.items[chat.chatHistory.items.length -1].agentId !== selectedAgent.id"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(selectedAgent.id)} | trustAsHtml">\n </div>\n <chat-item-detail ng-if="askingChatItem" chat-item-detail="askingChatItem"\n asking="!!askingChatItem"></chat-item-detail>\n </div>\n <div class="new-question mt-3 d-flex" ng-if="!loadingChat">\n <input class="form-control question-input" ng-model="chatItem.question.message" type="text"\n ng-disabled="waitingForLastMessage || loadingChat || !selectedAgent || selectedAgent.isDeleted"\n ng-keypress="onKeypressOnInput($event)">\n <button class="btn btn-primary ask-button"\n ng-disabled="!chatItem.question.message || !selectedAgent || selectedAgent.isDeleted || waitingForLastMessage || loadingChat"\n ng-click="ask()">\n <i class="fa fa-arrow-turn-left-up"></i>\n {{ \'ttyg.chat_panel.btn.ask.label \' | translate }}\n </button>\n </div>\n\n <div class="messages-hint text-muted" ng-if="!loadingChat && chat.chatHistory.isEmpty() && !waitingForLastMessage" ng-cloak>\n <div class="hint2" ng-bind="\'ttyg.chat_panel.hint2\' | translate"></div>\n <div class="hint1" ng-bind-html="\'ttyg.chat_panel.hint1\' | translate | trustAsHtml"></div>\n </div>\n</div>\n';return __p}}}]);
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[409],{531:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-instructions-explain-modal.css?v=2.8.8-TR2" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{\'ttyg.agent.instructions_explain_modal.title\' | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <div class="instructions-explain">\n <div ng-repeat="instruction in agentInstructionsExplain" class="instruction" ng-class="{\'mb-2\': !$last}">\n <h5 class="instruction-title mb-0">\n <span\n uib-popover="{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.description\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.label\' | translate}}</span>\n </h5>\n <h7 class="text-muted d-block">({{instruction.size}} characters)</h7>\n <pre class="instruction-content">{{instruction.content}}</pre>\n </div>\n </div>\n</div>\n\n<div class="modal-footer">\n <button type="button" class="btn btn-secondary" ng-click="onCloseAgentInstructionsExplainModal()">\n {{\'ttyg.agent.instructions_explain_modal.btn.close.label\' | translate}}\n </button>\n</div>\n';return __p}}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[409],{531:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-instructions-explain-modal.css?v=2.8.9-RC1" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{\'ttyg.agent.instructions_explain_modal.title\' | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <div class="instructions-explain">\n <div ng-repeat="instruction in agentInstructionsExplain" class="instruction" ng-class="{\'mb-2\': !$last}">\n <h5 class="instruction-title mb-0">\n <span\n uib-popover="{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.description\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.label\' | translate}}</span>\n </h5>\n <h7 class="text-muted d-block">({{instruction.size}} characters)</h7>\n <pre class="instruction-content">{{instruction.content}}</pre>\n </div>\n </div>\n</div>\n\n<div class="modal-footer">\n <button type="button" class="btn btn-secondary" ng-click="onCloseAgentInstructionsExplainModal()">\n {{\'ttyg.agent.instructions_explain_modal.btn.close.label\' | translate}}\n </button>\n</div>\n';return __p}}}]);