graphdb-workbench 2.1.2 → 2.1.3-TR1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/{0.1bd9b49fd9f95db7afda.bundle.js → 0.6f85dbec9122f837f5e7.bundle.js} +3 -3
  2. package/dist/0.6f85dbec9122f837f5e7.bundle.js.map +1 -0
  3. package/dist/{10.cabc799d9aabc46e7be7.bundle.js → 10.0d7e127640f8c0678145.bundle.js} +2 -2
  4. package/dist/{10.cabc799d9aabc46e7be7.bundle.js.map → 10.0d7e127640f8c0678145.bundle.js.map} +1 -1
  5. package/dist/{100.24bbc960b22ec8f26f68.bundle.js → 100.8a2c21d9df10d17f9291.bundle.js} +2 -2
  6. package/dist/{100.24bbc960b22ec8f26f68.bundle.js.map → 100.8a2c21d9df10d17f9291.bundle.js.map} +1 -1
  7. package/dist/{11.b2fd98471071348c3964.bundle.js → 11.c8ad938cfc97d57b4d9e.bundle.js} +2 -2
  8. package/dist/{11.b2fd98471071348c3964.bundle.js.map → 11.c8ad938cfc97d57b4d9e.bundle.js.map} +1 -1
  9. package/dist/{110.7419abdcd9b1e7b062ad.bundle.js → 110.4c6719423e79f089e594.bundle.js} +2 -2
  10. package/dist/{110.7419abdcd9b1e7b062ad.bundle.js.map → 110.4c6719423e79f089e594.bundle.js.map} +1 -1
  11. package/dist/{111.87635664a5306fc0c6bb.bundle.js → 111.93eb21f8bd85a9ef5d1b.bundle.js} +2 -2
  12. package/dist/{111.87635664a5306fc0c6bb.bundle.js.map → 111.93eb21f8bd85a9ef5d1b.bundle.js.map} +1 -1
  13. package/dist/{113.2a67bc73a80f0bbf6397.bundle.js → 113.b77f2a783cadc7a2d428.bundle.js} +2 -2
  14. package/dist/{113.2a67bc73a80f0bbf6397.bundle.js.map → 113.b77f2a783cadc7a2d428.bundle.js.map} +1 -1
  15. package/dist/114.db473421180e7bce6495.bundle.js +2 -0
  16. package/dist/114.db473421180e7bce6495.bundle.js.map +1 -0
  17. package/dist/{115.6751a154fb77d1efeec8.bundle.js → 115.00597ad4f535ccc61e03.bundle.js} +2 -2
  18. package/dist/{115.6751a154fb77d1efeec8.bundle.js.map → 115.00597ad4f535ccc61e03.bundle.js.map} +1 -1
  19. package/dist/{116.75f79d13526f131b61f0.bundle.js → 116.7a3c48b8b4348e54c7fd.bundle.js} +2 -2
  20. package/dist/{116.75f79d13526f131b61f0.bundle.js.map → 116.7a3c48b8b4348e54c7fd.bundle.js.map} +1 -1
  21. package/dist/{117.17c60bd040eada2f965d.bundle.js → 117.49b3141cc6594af99fbf.bundle.js} +2 -2
  22. package/dist/{117.17c60bd040eada2f965d.bundle.js.map → 117.49b3141cc6594af99fbf.bundle.js.map} +1 -1
  23. package/dist/{118.fc48834f75995ef9202f.bundle.js → 118.e1ebd5f3d7cf4f8e013a.bundle.js} +2 -2
  24. package/dist/{118.fc48834f75995ef9202f.bundle.js.map → 118.e1ebd5f3d7cf4f8e013a.bundle.js.map} +1 -1
  25. package/dist/{119.44cc6552449537efa8f5.bundle.js → 119.0427b867fee545388a66.bundle.js} +2 -2
  26. package/dist/{119.44cc6552449537efa8f5.bundle.js.map → 119.0427b867fee545388a66.bundle.js.map} +1 -1
  27. package/dist/{12.c008cc99a0d358fd58b7.bundle.js → 12.6bd2906fb955b8456713.bundle.js} +3 -3
  28. package/dist/{12.c008cc99a0d358fd58b7.bundle.js.map → 12.6bd2906fb955b8456713.bundle.js.map} +1 -1
  29. package/dist/{120.8f48d9b3f8071e4c42fd.bundle.js → 120.923b20db8c2c297742d8.bundle.js} +2 -2
  30. package/dist/{120.8f48d9b3f8071e4c42fd.bundle.js.map → 120.923b20db8c2c297742d8.bundle.js.map} +1 -1
  31. package/dist/13.d7290e4e69a54c71e974.bundle.js +3 -0
  32. package/dist/13.d7290e4e69a54c71e974.bundle.js.map +1 -0
  33. package/dist/136.3199d393576be61f53fd.bundle.js +1 -1
  34. package/dist/136.3199d393576be61f53fd.bundle.js.map +1 -1
  35. package/dist/14.638a884323fe9235b58f.bundle.js +2 -0
  36. package/dist/14.638a884323fe9235b58f.bundle.js.map +1 -0
  37. package/dist/{15.e870cbcf6346cc68bd66.bundle.js → 15.244542a39d9296cc4fd8.bundle.js} +2 -2
  38. package/dist/{15.e870cbcf6346cc68bd66.bundle.js.map → 15.244542a39d9296cc4fd8.bundle.js.map} +1 -1
  39. package/dist/{16.23e12f234078c8777ed0.bundle.js → 16.3b52e17f123523d84054.bundle.js} +2 -2
  40. package/dist/{16.23e12f234078c8777ed0.bundle.js.map → 16.3b52e17f123523d84054.bundle.js.map} +1 -1
  41. package/dist/{17.d1ac5f88f9ef9ee1c789.bundle.js → 17.a417430fca1e34e80912.bundle.js} +2 -2
  42. package/dist/{17.d1ac5f88f9ef9ee1c789.bundle.js.map → 17.a417430fca1e34e80912.bundle.js.map} +1 -1
  43. package/dist/{18.63478730d60e02069d90.bundle.js → 18.d6e541cf8e651a6d223e.bundle.js} +2 -2
  44. package/dist/{18.63478730d60e02069d90.bundle.js.map → 18.d6e541cf8e651a6d223e.bundle.js.map} +1 -1
  45. package/dist/19.b5b3699a309774176fc3.bundle.js +1 -1
  46. package/dist/19.b5b3699a309774176fc3.bundle.js.map +1 -1
  47. package/dist/{20.d707dfb57f695469ffaa.bundle.js → 20.a40b79082e0f2a9b3511.bundle.js} +2 -2
  48. package/dist/{20.d707dfb57f695469ffaa.bundle.js.map → 20.a40b79082e0f2a9b3511.bundle.js.map} +1 -1
  49. package/dist/{22.e1562d53daf95dd1fdca.bundle.js → 22.5f70a951e87768500861.bundle.js} +2 -2
  50. package/dist/{22.e1562d53daf95dd1fdca.bundle.js.map → 22.5f70a951e87768500861.bundle.js.map} +1 -1
  51. package/dist/{23.c1b822e6ccc61632355b.bundle.js → 23.3b94ee5770665e9f7ad6.bundle.js} +2 -2
  52. package/dist/{23.c1b822e6ccc61632355b.bundle.js.map → 23.3b94ee5770665e9f7ad6.bundle.js.map} +1 -1
  53. package/dist/{25.8c30b7bafb4875a3cc51.bundle.js → 25.7d9b6d389e1b3c30a2af.bundle.js} +2 -2
  54. package/dist/{25.8c30b7bafb4875a3cc51.bundle.js.map → 25.7d9b6d389e1b3c30a2af.bundle.js.map} +1 -1
  55. package/dist/26.176ffe2071a8d5d382b6.bundle.js +1 -1
  56. package/dist/26.176ffe2071a8d5d382b6.bundle.js.map +1 -1
  57. package/dist/{27.be71055c959c1ac75177.bundle.js → 27.5f249c88f0d56e478227.bundle.js} +2 -2
  58. package/dist/{27.be71055c959c1ac75177.bundle.js.map → 27.5f249c88f0d56e478227.bundle.js.map} +1 -1
  59. package/dist/{29.54cbff989a44a0f71dfd.bundle.js → 29.263746fd089adc12c9eb.bundle.js} +2 -2
  60. package/dist/{29.54cbff989a44a0f71dfd.bundle.js.map → 29.263746fd089adc12c9eb.bundle.js.map} +1 -1
  61. package/dist/31.4ecdb66b2c224a63525e.bundle.js +1 -1
  62. package/dist/31.4ecdb66b2c224a63525e.bundle.js.map +1 -1
  63. package/dist/{32.2582e2eccf29e8d5ec80.bundle.js → 32.31e5cd1ae5b1b26d0bc9.bundle.js} +2 -2
  64. package/dist/{32.2582e2eccf29e8d5ec80.bundle.js.map → 32.31e5cd1ae5b1b26d0bc9.bundle.js.map} +1 -1
  65. package/dist/34.024934549565ec56f905.bundle.js +2 -0
  66. package/dist/34.024934549565ec56f905.bundle.js.map +1 -0
  67. package/dist/{37.ef412d4cbc60967faa5e.bundle.js → 37.48944284f495dd519b6b.bundle.js} +2 -2
  68. package/dist/{37.ef412d4cbc60967faa5e.bundle.js.map → 37.48944284f495dd519b6b.bundle.js.map} +1 -1
  69. package/dist/{39.be2d8c75e4ab391ba984.bundle.js → 39.cd39b4ee76d8238325b0.bundle.js} +2 -2
  70. package/dist/{39.be2d8c75e4ab391ba984.bundle.js.map → 39.cd39b4ee76d8238325b0.bundle.js.map} +1 -1
  71. package/dist/{40.9272ebe1d2246ae3054f.bundle.js → 40.ba69b25514acd93c43c1.bundle.js} +2 -2
  72. package/dist/{40.9272ebe1d2246ae3054f.bundle.js.map → 40.ba69b25514acd93c43c1.bundle.js.map} +1 -1
  73. package/dist/{41.f69dd805b7e51756518f.bundle.js → 41.97280c0900f9b44ab8aa.bundle.js} +2 -2
  74. package/dist/{41.f69dd805b7e51756518f.bundle.js.map → 41.97280c0900f9b44ab8aa.bundle.js.map} +1 -1
  75. package/dist/43.166d4f55ba11d29b26ce.bundle.js +2 -0
  76. package/dist/43.166d4f55ba11d29b26ce.bundle.js.map +1 -0
  77. package/dist/46.c417c82de953a16f7489.bundle.js +2 -0
  78. package/dist/{46.a9d1c07290ab98930744.bundle.js.map → 46.c417c82de953a16f7489.bundle.js.map} +1 -1
  79. package/dist/{48.3c8d17c03f3fc081be89.bundle.js → 48.1c439f5ade00b986bb85.bundle.js} +2 -2
  80. package/dist/{48.3c8d17c03f3fc081be89.bundle.js.map → 48.1c439f5ade00b986bb85.bundle.js.map} +1 -1
  81. package/dist/{55.10bb020070b8c5910e4c.bundle.js → 55.80d6a899d8af7d382755.bundle.js} +2 -2
  82. package/dist/{55.10bb020070b8c5910e4c.bundle.js.map → 55.80d6a899d8af7d382755.bundle.js.map} +1 -1
  83. package/dist/{57.f432e4a7f6dbf5fa9e6e.bundle.js → 57.ff1a43af23df1c3e9eb6.bundle.js} +2 -2
  84. package/dist/{57.f432e4a7f6dbf5fa9e6e.bundle.js.map → 57.ff1a43af23df1c3e9eb6.bundle.js.map} +1 -1
  85. package/dist/{59.feebf4602360cb8257bb.bundle.js → 59.21763503ec43ce516ba9.bundle.js} +2 -2
  86. package/dist/{59.feebf4602360cb8257bb.bundle.js.map → 59.21763503ec43ce516ba9.bundle.js.map} +1 -1
  87. package/dist/{67.58d8539fcac19288b820.bundle.js → 67.d3301189c6f359502b7a.bundle.js} +2 -2
  88. package/dist/{67.58d8539fcac19288b820.bundle.js.map → 67.d3301189c6f359502b7a.bundle.js.map} +1 -1
  89. package/dist/{70.ede527b8438e19a67ebc.bundle.js → 70.bab18e599872f9ceb5bb.bundle.js} +2 -2
  90. package/dist/{70.ede527b8438e19a67ebc.bundle.js.map → 70.bab18e599872f9ceb5bb.bundle.js.map} +1 -1
  91. package/dist/{71.2ddcb945966fd051a3a1.bundle.js → 71.496a9c92cd02ea797086.bundle.js} +2 -2
  92. package/dist/{71.2ddcb945966fd051a3a1.bundle.js.map → 71.496a9c92cd02ea797086.bundle.js.map} +1 -1
  93. package/dist/{72.d2f8a53e83efcb8ab953.bundle.js → 72.e74783723284db9f1039.bundle.js} +2 -2
  94. package/dist/{72.d2f8a53e83efcb8ab953.bundle.js.map → 72.e74783723284db9f1039.bundle.js.map} +1 -1
  95. package/dist/{73.c29f06e5825684d56a9c.bundle.js → 73.c5ea427972a9d61d8bcf.bundle.js} +2 -2
  96. package/dist/{73.c29f06e5825684d56a9c.bundle.js.map → 73.c5ea427972a9d61d8bcf.bundle.js.map} +1 -1
  97. package/dist/{74.b50a23c1751e0fc30aec.bundle.js → 74.87400dce971708ada9bc.bundle.js} +2 -2
  98. package/dist/{74.b50a23c1751e0fc30aec.bundle.js.map → 74.87400dce971708ada9bc.bundle.js.map} +1 -1
  99. package/dist/{75.4f9197361b6427d97b6c.bundle.js → 75.f7026115ff4d35c53061.bundle.js} +2 -2
  100. package/dist/{75.4f9197361b6427d97b6c.bundle.js.map → 75.f7026115ff4d35c53061.bundle.js.map} +1 -1
  101. package/dist/{76.467d072ae323ab41fd3d.bundle.js → 76.7ed7e2f7802914105a2b.bundle.js} +2 -2
  102. package/dist/{76.467d072ae323ab41fd3d.bundle.js.map → 76.7ed7e2f7802914105a2b.bundle.js.map} +1 -1
  103. package/dist/{77.41a60a354d0fb3103b00.bundle.js → 77.8df8d6516be14b18a7c2.bundle.js} +2 -2
  104. package/dist/{77.41a60a354d0fb3103b00.bundle.js.map → 77.8df8d6516be14b18a7c2.bundle.js.map} +1 -1
  105. package/dist/{78.7de8a0f70f6dc1debd05.bundle.js → 78.3d0eba733bb5b528ee23.bundle.js} +2 -2
  106. package/dist/{78.7de8a0f70f6dc1debd05.bundle.js.map → 78.3d0eba733bb5b528ee23.bundle.js.map} +1 -1
  107. package/dist/{79.2f8b2ebcbd07d466c913.bundle.js → 79.f2adb62d49e1ff69c73d.bundle.js} +2 -2
  108. package/dist/{79.2f8b2ebcbd07d466c913.bundle.js.map → 79.f2adb62d49e1ff69c73d.bundle.js.map} +1 -1
  109. package/dist/{8.b21d6a5c1a9412deb34f.bundle.js → 8.fd2fec54b66b2afe1253.bundle.js} +2 -2
  110. package/dist/8.fd2fec54b66b2afe1253.bundle.js.map +1 -0
  111. package/dist/{80.8e71a1aaf3beb2320bf0.bundle.js → 80.40f6ab44b0f5a37f1f1b.bundle.js} +2 -2
  112. package/dist/{80.8e71a1aaf3beb2320bf0.bundle.js.map → 80.40f6ab44b0f5a37f1f1b.bundle.js.map} +1 -1
  113. package/dist/{81.2939c5d2b47cf48be6d5.bundle.js → 81.63bb784ce719c97dccc2.bundle.js} +2 -2
  114. package/dist/{81.2939c5d2b47cf48be6d5.bundle.js.map → 81.63bb784ce719c97dccc2.bundle.js.map} +1 -1
  115. package/dist/{82.69913e9f45a1dd96c6be.bundle.js → 82.f722c4f985e7c7375b7d.bundle.js} +2 -2
  116. package/dist/{82.69913e9f45a1dd96c6be.bundle.js.map → 82.f722c4f985e7c7375b7d.bundle.js.map} +1 -1
  117. package/dist/83.73515cde0a2215275d32.bundle.js +1 -1
  118. package/dist/83.73515cde0a2215275d32.bundle.js.map +1 -1
  119. package/dist/{84.5e89f3253c2c5885f662.bundle.js → 84.ed814bb2e6caa09eaf59.bundle.js} +2 -2
  120. package/dist/{84.5e89f3253c2c5885f662.bundle.js.map → 84.ed814bb2e6caa09eaf59.bundle.js.map} +1 -1
  121. package/dist/{85.f6ae072160876c4c5beb.bundle.js → 85.c1a85a647349f948774e.bundle.js} +2 -2
  122. package/dist/{85.f6ae072160876c4c5beb.bundle.js.map → 85.c1a85a647349f948774e.bundle.js.map} +1 -1
  123. package/dist/{88.4bfa7b74511d52c5c42f.bundle.js → 88.d3afc4e8e2613c803b60.bundle.js} +2 -2
  124. package/dist/{88.4bfa7b74511d52c5c42f.bundle.js.map → 88.d3afc4e8e2613c803b60.bundle.js.map} +1 -1
  125. package/dist/{89.6e767bc84921c435570c.bundle.js → 89.e206f700717532b86d4a.bundle.js} +2 -2
  126. package/dist/{89.6e767bc84921c435570c.bundle.js.map → 89.e206f700717532b86d4a.bundle.js.map} +1 -1
  127. package/dist/{90.5c5efc19e9053c029343.bundle.js → 90.192cdf37db2b7fe57457.bundle.js} +2 -2
  128. package/dist/{90.5c5efc19e9053c029343.bundle.js.map → 90.192cdf37db2b7fe57457.bundle.js.map} +1 -1
  129. package/dist/{92.b601c9bc8133fcf28163.bundle.js → 92.3adcb08e3ce3aa2196d9.bundle.js} +2 -2
  130. package/dist/{92.b601c9bc8133fcf28163.bundle.js.map → 92.3adcb08e3ce3aa2196d9.bundle.js.map} +1 -1
  131. package/dist/{94.4b1ada797602e279b977.bundle.js → 94.b7d4fbf7b903b58bbb9f.bundle.js} +2 -2
  132. package/dist/{94.4b1ada797602e279b977.bundle.js.map → 94.b7d4fbf7b903b58bbb9f.bundle.js.map} +1 -1
  133. package/dist/{95.95758068abd9eac4ed40.bundle.js → 95.4f4ec7e3bf1e54b69e22.bundle.js} +2 -2
  134. package/dist/{95.95758068abd9eac4ed40.bundle.js.map → 95.4f4ec7e3bf1e54b69e22.bundle.js.map} +1 -1
  135. package/dist/{98.8f1b6e94748a6049ed93.bundle.js → 98.46fcd4b9d0cee530a965.bundle.js} +2 -2
  136. package/dist/{98.8f1b6e94748a6049ed93.bundle.js.map → 98.46fcd4b9d0cee530a965.bundle.js.map} +1 -1
  137. package/dist/{bundle.595d7082ecc6c2683c9a.bundle.js → bundle.e02c0ceb3243288288de.bundle.js} +15 -15
  138. package/dist/bundle.e02c0ceb3243288288de.bundle.js.map +1 -0
  139. package/dist/css/yasr.custom.css +5 -1
  140. package/dist/index.html +4 -4
  141. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  142. package/dist/{main.96399f8393ca515638d2.bundle.js → main.e83e6336936d01c58d59.bundle.js} +2 -2
  143. package/dist/{main.96399f8393ca515638d2.bundle.js.map → main.e83e6336936d01c58d59.bundle.js.map} +1 -1
  144. package/dist/{main.c3519a595e24d0a69ccd.css → main.fa014240754b8b1655a9.css} +1 -1
  145. package/dist/pages/autocomplete.html +1 -1
  146. package/dist/pages/choose-repository-type.html +1 -1
  147. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  148. package/dist/pages/create-index.html +4 -4
  149. package/dist/pages/dependencies.html +1 -1
  150. package/dist/pages/domainRangeInfo.html +2 -2
  151. package/dist/pages/edit.html +1 -1
  152. package/dist/pages/explore.html +1 -1
  153. package/dist/pages/export.html +1 -1
  154. package/dist/pages/find.html +1 -1
  155. package/dist/pages/graph-config/saveGraphConfig.html +15 -15
  156. package/dist/pages/graphs-visualizations.html +14 -14
  157. package/dist/pages/guides.html +1 -1
  158. package/dist/pages/import.html +1 -1
  159. package/dist/pages/jdbc-create.html +5 -5
  160. package/dist/pages/monitor/queries.html +1 -1
  161. package/dist/pages/monitor/resources.html +2 -2
  162. package/dist/pages/namespaces.html +4 -4
  163. package/dist/pages/plugins.html +1 -1
  164. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  165. package/dist/pages/rdfrank.html +2 -2
  166. package/dist/pages/repositories.html +2 -2
  167. package/dist/pages/repository.html +2 -2
  168. package/dist/pages/similarity-indexes.html +1 -1
  169. package/dist/pages/sparql-template-create.html +5 -5
  170. package/dist/pages/sparql.html +3 -3
  171. package/dist/pages/webapi.html +2 -2
  172. package/dist/res/swagger/index.html +27 -27
  173. package/dist/{vendor.31cf390ca240d8cd1ef3.bundle.js → vendor.7492dbcfefe195da8d15.bundle.js} +6 -6
  174. package/dist/{vendor.31cf390ca240d8cd1ef3.bundle.js.map → vendor.7492dbcfefe195da8d15.bundle.js.map} +1 -1
  175. package/package.json +1 -1
  176. package/dist/0.1bd9b49fd9f95db7afda.bundle.js.map +0 -1
  177. package/dist/114.ed2c2d1606cd75dbd7c6.bundle.js +0 -2
  178. package/dist/114.ed2c2d1606cd75dbd7c6.bundle.js.map +0 -1
  179. package/dist/13.9b9388352980715b16bb.bundle.js +0 -3
  180. package/dist/13.9b9388352980715b16bb.bundle.js.map +0 -1
  181. package/dist/14.c512cd1282fe7dec36bf.bundle.js +0 -2
  182. package/dist/14.c512cd1282fe7dec36bf.bundle.js.map +0 -1
  183. package/dist/34.100b126b4d89e99d4ac4.bundle.js +0 -2
  184. package/dist/34.100b126b4d89e99d4ac4.bundle.js.map +0 -1
  185. package/dist/43.f76be157f75bc7b3ea68.bundle.js +0 -2
  186. package/dist/43.f76be157f75bc7b3ea68.bundle.js.map +0 -1
  187. package/dist/46.a9d1c07290ab98930744.bundle.js +0 -2
  188. package/dist/8.b21d6a5c1a9412deb34f.bundle.js.map +0 -1
  189. package/dist/bundle.595d7082ecc6c2683c9a.bundle.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/js/angular/similarity/app.js","webpack:///./src/js/angular/utils/notifications.js","webpack:///./src/js/angular/core/directives/queryeditor/sparql-tab.directive.js","webpack:///./src/js/angular/rest/similarity.rest.service.js","webpack:///./src/js/angular/similarity/controllers/similarity-list.controller.js","webpack:///./src/js/angular/similarity/controllers/create-index.controller.js"],"names":["angular","module","Notifications","toastr","$translate","showToastMessageWithDelay","message","Promise","r","success","instant","setTimeout","factory","$inject","sparqlTabDirective","$rootScope","LocalStorageAdapter","LSKeys","ModalService","restrict","template","replace","controller","$scope","$element","getQueryID","element","$","attr","selectTab","id","tab","state","on","e","$broadcast","deleteTab","preventDefault","stopPropagation","tabs","length","warning","shiftKey","selectedTabId","openSimpleModal","title","result","then","filter","obj","set","TABS_STATE","idForDelete","isUndefined","idx","i","findTabIndexByID","splice","currentQuery","deleteTabByID","document","find","focus","editCurrentTab","editCurrentlySelectedOnly","$show","$editableButtons","children","addClass","$el","name","currentTarget","$$currentValue","removeClass","selectThisTab","isTabChangeOk","directive","SimilarityRestService","$http","getIndexes","get","getSearchQueries","rebuildIndex","index","createIndex","options","selectQuery","searchQuery","analogicalQuery","stopList","infer","sameAs","type","deleteIndex","delete","getSamples","getQuery","data","params","indexName","indexOptions","indexStopList","query","queryInference","querySameAs","viewType","analyzer","indexAnalyzer","saveSearchQuery","method","url","noCancelOnRouteChange","SimilarityCtrl","$interval","$repositories","$licenseService","$modal","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService","PREFIX","PREFIX_PREDICATION","ANY_PREDICATE","pluginName","pluginIsActive","setPluginIsActive","isPluginActive","literalForQuery","literal","iriForQuery","iri","undefined","startsWith","endsWith","shouldSkipCall","getActiveRepository","isActiveRepoFedXType","isActiveRepoOntopType","yasr","checkAutocompleteStatus","isLicenseValid","getAutocompletePromise","info","searchQueries","error","msg","getError","encodeURIComponent","param","getSimilarityIndexes","similarityIndexes","pullList","timer","$on","cancel","$watch","getNamespacesPromise","getNamespaces","usedPrefixes","results","bindings","forEach","prefix","value","namespace","destroy","getElementById","getUsedPrefixes","persistency","hideHeader","pluginsOptions","getYasrConfiguration","loading","selected","searchType","resultType","empty","goToSimilarityIndex","status","lastSearch","collapse","toggleOntoLoader","showLoader","yasrInnerContainer","resultsLoader","performSearch","uri","parameters","termOrSubject","psiSubject","predicate","sparqlQuery","sendData","$index","$query","$searchType","$resultType","$parameters","$psiPredicate","searchSubject","$givenSubject","analogicalSubject","$givenObject","analogicalObject","$searchSubject","ajax","headers","Accept","done","textStatus","jqXhrOrErrorString","setResponse","fail","viewSearchQuery","queryTemplate","tokens","match","substring","indexOf","replacedQuery","searchParameters","open","templateUrl","resolve","err","viewCreateQuery","text","res","copyToClipboardResult","openCopyToClipboardModal","trimIRI","_","trim","CreateSimilarityIdxCtrl","$timeout","SparqlRestService","$location","indexType","search","newIndex","page","defaultTabConfig","inference","initForViewType","indexNameFromLocation","editSearchQuery","notoolbarInference","notoolbarSameAs","window","editor","setQuery","allSamples","samples","isLiteralIndex","getAndRemoveOption","literalIndexes","concat","map","inputIndex","desiredIdx","j","filenamePattern","RegExp","validateIndex","invalidIndexName","saveQueries","test","getQueryType","appendOption","option","key","optArr","split","join","saveQueryToLocal","currentQueryTab","setLoader","isRunning","progressMessage","extraMessage","queryIsRunning","queryStartTime","Date","now","countTimeouted","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalViewParam","visibleWindowHeight","innerHeight","documentElement","clientHeight","body","verticalView","orientationViewMode","viewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","container","resize","showHideEditor","runQuery","changePage","explain","executedQueryTab","getQueryMode","explainRequested","currentTabConfig","resultsCount","resetCurrentTabConfig","getRepositoryNamespaces","namespaces","repositoryError","finally","addKnownPrefixes","JSON","stringify","getValue","isDefined","setValue","getExistingTabId","existingTabId","tabsData","item","loadTab","queryType","offset","allResultsCount","pageSize","timeFinished","timeTook","sizeDelta","css","copy","helpHidden","HIDE_SIMILARITY_HELP","toggleHelp","viewQuery","isInvalidIndexName","isEmptyIndexName","goToPage","showEditor","notoolbar","xhr","abort","showPreview","outputType","queryExists","saveTab","addNewTab","callback","tabName","savedQuery","changePagination","toggleSampleQueries","querySelected","tabId","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","tabID","remove","focusQueryEditor","is","$watchCollection","tabEvent","relatedTarget","target","showSampleQueries","sampleQueries","getResultsDescription","getUpdateDescription","getStaleWarningMessage","changedQuery","isSearchQuery","async","response","getCloseBtnMsg","operationType","operation"],"mappings":"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","file":"14.638a884323fe9235b58f.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/controllers';\nimport 'angular/rest/similarity.rest.service';\nimport 'angular/similarity/controllers/similarity-list.controller';\nimport 'angular/similarity/controllers/create-index.controller';\nimport 'angular/core/directives/queryeditor/sparql-tab.directive';\nimport 'angular/core/directives/queryeditor/query-editor.controller';\nimport 'angular/core/directives/queryeditor/query-editor.directive';\n\nangular.module('graphdb.framework.similarity', [\n 'graphdb.framework.core.controllers',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.rest.similarity.service',\n 'graphdb.framework.similarity.controllers.create',\n 'graphdb.framework.similarity.controllers.list',\n 'graphdb.framework.core.directives.queryeditor.controllers',\n 'graphdb.framework.core.directives.queryeditor.sparqltab',\n 'graphdb.framework.core.directives.queryeditor.queryeditor'\n]);\n","angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr', '$translate'];\n\nfunction Notifications(toastr, $translate) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success($translate.instant(message));\n setTimeout(r, 200);\n });\n }\n}\n","import 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.core.directives.queryeditor.sparqltab', [\n 'graphdb.framework.core',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .directive('sparqlTab', sparqlTabDirective);\n\nsparqlTabDirective.$inject = ['$rootScope', 'LocalStorageAdapter', 'LSKeys', 'ModalService'];\n\nfunction sparqlTabDirective($rootScope, LocalStorageAdapter, LSKeys, ModalService) {\n const SparqlTabCtrl = ['$scope', '$element', '$rootScope', 'ModalService', 'toastr', '$translate', function ($scope, $element, $rootScope, ModalService, toastr, $translate) {\n $scope.state = {};\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabs.length; i++) {\n const tab = $scope.tabs[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $($element).on('shown.bs.tab', function (e) {\n $rootScope.$broadcast('tabAction', e);\n });\n\n $scope.deleteTab = deleteTab;\n $scope.editCurrentTab = editCurrentTab;\n $scope.selectThisTab = selectThisTab;\n\n function selectThisTab(e) {\n e.preventDefault();\n e.stopPropagation();\n if ($scope.isTabChangeOk(false)) {\n $($element).tab('show');\n }\n }\n\n function selectTab(id) {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }\n\n function deleteTab(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if ($scope.tabs.length < 2) {\n toastr.warning($translate.instant('sparql.tab.directive.close.last.warning'));\n return;\n }\n\n if (e.shiftKey) {\n $scope.state.selectedTabId = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('sparql.tab.directive.delete.all.tabs.warning'),\n warning: true\n }).result.then(function () {\n deleteAllTabsExceptSelected($scope.state.selectedTabId);\n });\n } else {\n $scope.state.idForDelete = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('sparql.tab.directive.close.tab.warning'),\n warning: true\n }).result.then(function () {\n deleteTabByID($scope.state.idForDelete);\n });\n }\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n\n function editCurrentTab() {\n if (getQueryID($element) !== $scope.currentQuery.id) {\n return;\n }\n $scope.editCurrentlySelectedOnly.$show();\n //fix for buttons for edit\n const $editableButtons = $(\".editable-buttons\");\n $editableButtons.children(\".btn.btn-primary\").addClass('btn-sm');\n $editableButtons.children(\".btn.btn-default\").addClass('btn-sm');\n $('.editable-controls .editable-input').addClass('form-control-sm').on('change', function ($el) {\n $scope.currentQuery.name = $el.currentTarget.$$currentValue;\n });\n //$('.editable-buttons').css('margin-top', '5px');\n //$('.editable-input.editable-has-buttons').css('width', '50%');\n $('.editable-buttons .glyphicon.glyphicon-ok')\n .removeClass('glyphicon glyphicon-ok')\n .addClass('fa fa-check');\n $('.editable-buttons .glyphicon.glyphicon-remove')\n .removeClass('glyphicon glyphicon-remove')\n .addClass('fa fa-close');\n }\n\n function deleteTabByID(id) {\n if (angular.isUndefined(id)) {\n throw 'Delete by id was called with undefined id';\n }\n const idx = findTabIndexByID(id);\n $scope.tabs.splice(idx, 1);\n\n if (id === $scope.currentQuery.id) {\n if ($scope.tabs.length > 0) {\n if (idx > 0) {\n // select previous tab if we deleted any but the first tab\n selectTab($scope.tabs[idx - 1].id);\n } else {\n // select first tab if we deleted the first tab\n selectTab($scope.tabs[0].id);\n }\n }\n }\n }\n\n function deleteAllTabsExceptSelected(id) {\n $scope.tabs = $scope.tabs.filter(function (obj) {\n if (obj.id === id) {\n return obj;\n }\n });\n selectTab($scope.tabs[0].id);\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n $rootScope.$broadcast('deleteAllexeptSelected', $scope.tabs);\n }\n }];\n\n return {\n restrict: 'AE',\n // for some reason when you extract this template in a file and use templateUrl it selects all tabs when editing the tab name, not only the currently selected one\n template: '<a class=\"nav-link\" role=\"tab\" data-toggle=\"tab\" blur=\"submit\" editable-text=\"tab.name\" e-form=\"editCurrentlySelectedOnly\" ng-click=\"selectThisTab($event)\" ng-dblclick=\"editCurrentTab()\" ><span ng-class=\"{\\'text-muted\\': !tab.name}\">{{ tab.name || \\'sparql.tab.directive.unnamed.tab.title\\' | translate}}</span><button type=\"button\" ng-click=\"deleteTab($event)\" class=\"btn btn-link btn-sm secondary delete-sparql-tab-btn\" title=\"Delete tab\"><i class=\"icon-close\"></i></button></a>',\n replace: true,\n controller: SparqlTabCtrl\n };\n}\n","angular\n .module('graphdb.framework.rest.similarity.service', [])\n .factory('SimilarityRestService', SimilarityRestService);\n\nSimilarityRestService.$inject = ['$http', '$repositories'];\n\nconst SIMILARITY_ENDPOINT = 'rest/similarity';\n\nfunction SimilarityRestService($http) {\n\n return {\n getIndexes,\n getSearchQueries,\n rebuildIndex,\n deleteIndex,\n createIndex,\n getSamples,\n getQuery,\n saveSearchQuery\n };\n\n function getIndexes() {\n return $http.get(SIMILARITY_ENDPOINT);\n }\n\n function getSamples() {\n return $http.get(`${SIMILARITY_ENDPOINT}/samples`);\n }\n\n function getSearchQueries() {\n return $http.get(`${SIMILARITY_ENDPOINT}/config`);\n }\n\n function createIndex(method, name, options, selectQuery, searchQuery, analogicalQuery, stopList, infer, sameAs, type, analyzer) {\n return $http({\n method,\n url: `${SIMILARITY_ENDPOINT}`,\n noCancelOnRouteChange: true,\n data: {\n name,\n options,\n selectQuery,\n stopList,\n infer,\n sameAs,\n type,\n analyzer,\n searchQuery,\n analogicalQuery\n }\n }\n );\n }\n\n function rebuildIndex(index) {\n return createIndex('PUT', index.name, index.options, index.selectQuery, index.searchQuery, index.analogicalQuery, index.stopList, index.infer, index.sameAs, index.type);\n }\n\n function deleteIndex(index) {\n return $http.delete(`${SIMILARITY_ENDPOINT}?name=${index.name}`);\n }\n\n function getQuery(data) {\n return $http.get('rest/similarity/query',\n {\n params: {\n name: data.indexName,\n options: data.indexOptions,\n stopList: data.indexStopList,\n selectQuery: data.query,\n infer: data.queryInference,\n sameAs: data.querySameAs,\n type: data.viewType,\n analyzer: data.indexAnalyzer\n }\n });\n }\n\n function saveSearchQuery(data) {\n return $http({\n method: 'put',\n url: 'rest/similarity/search-query',\n data\n });\n }\n}\n","import YASR from 'lib/yasr.bundled';\nimport {decodeHTML} from \"../../../../app\";\nimport {YasrUtils} from \"../../utils/yasr-utils\";\n\nangular\n .module('graphdb.framework.similarity.controllers.list', [])\n .controller('SimilarityCtrl', SimilarityCtrl);\n\nSimilarityCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', '$licenseService', 'ModalService', '$modal', 'SimilarityRestService', 'AutocompleteRestService', 'productInfo', 'RDF4JRepositoriesRestService', '$translate'];\n\nfunction SimilarityCtrl($scope, $interval, toastr, $repositories, $licenseService, ModalService, $modal, SimilarityRestService, AutocompleteRestService, productInfo, RDF4JRepositoriesRestService, $translate) {\n\n const PREFIX = 'http://www.ontotext.com/graphdb/similarity/';\n const PREFIX_PREDICATION = 'http://www.ontotext.com/graphdb/similarity/psi/';\n const PREFIX_INSTANCE = PREFIX + 'instance/';\n const ANY_PREDICATE = PREFIX_PREDICATION + 'any';\n $scope.pluginName = 'similarity';\n $scope.pluginIsActive = true;\n\n $scope.setPluginIsActive = function (isPluginActive) {\n $scope.pluginIsActive = isPluginActive;\n };\n\n const literalForQuery = function (literal) {\n return '\"' + literal + '\"';\n };\n\n // TODO: Fix cases when this function is called with undefined\n const iriForQuery = function (iri) {\n // Do not put brackets on nested triples\n if (iri === undefined || iri.startsWith(\"<<\") && iri.endsWith(\">>\")) {\n return iri;\n }\n return '<' + iri + '>';\n };\n\n $scope.info = productInfo;\n\n $scope.getActiveRepository = function () {\n return $repositories.getActiveRepository();\n };\n\n // Don't call functions if one of the following conditions are met\n function shouldSkipCall() {\n return !$scope.getActiveRepository() ||\n $scope.isActiveRepoFedXType() ||\n $scope.isActiveRepoOntopType();\n }\n\n if (!shouldSkipCall()) {\n SimilarityRestService.getSearchQueries().success(function (data) {\n $scope.searchQueries = data;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('similarity.could.not.get.search.queries.error'));\n });\n }\n\n $scope.encodeURIComponent = function (param) {\n return encodeURIComponent(param);\n };\n\n // get similarity indexes\n $scope.getSimilarityIndexes = function () {\n if (shouldSkipCall() || !$scope.pluginIsActive) {\n return;\n }\n SimilarityRestService.getIndexes()\n .success(function (data) {\n $scope.similarityIndexes = data;\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('similarity.could.not.get.indexes.error'));\n });\n };\n\n $scope.pullList = function () {\n $scope.getSimilarityIndexes();\n const timer = $interval(function () {\n $scope.$broadcast('checkIsActive');\n if ($('#indexes-table').attr('aria-expanded') !== 'false') {\n $scope.getSimilarityIndexes();\n }\n }, 5000);\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n };\n\n if ($scope.getActiveRepository()) {\n if ($licenseService.isLicenseValid()) {\n $scope.pullList();\n }\n }\n\n let yasr;\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n // Don't try to get namespaces for ontop or fedx repository\n if ($scope.getActiveRepository() && !$scope.isActiveRepoOntopType() && !$scope.isActiveRepoFedXType()) {\n $scope.getNamespacesPromise = RDF4JRepositoriesRestService.getNamespaces($scope.getActiveRepository())\n .success(function (data) {\n checkAutocompleteStatus();\n $scope.usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n $scope.usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.$on('$destroy', function () {\n if (yasr) {\n yasr.destroy();\n }\n });\n yasr = YASR(document.getElementById('yasr'), { // eslint-disable-line new-cap\n //this way, the URLs in the results are prettified using the defined prefixes\n getUsedPrefixes: $scope.usedPrefixes,\n persistency: false,\n hideHeader: true,\n pluginsOptions: YasrUtils.getYasrConfiguration()\n });\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('get.namespaces.error.msg'));\n });\n }\n });\n\n function checkAutocompleteStatus() {\n if ($licenseService.isLicenseValid()) {\n $scope.getAutocompletePromise = AutocompleteRestService.checkAutocompleteStatus();\n }\n }\n\n $scope.$on('autocompleteStatus', function() {\n checkAutocompleteStatus();\n });\n\n $scope.loading = false;\n\n $scope.selected = undefined;\n $scope.searchType = 'searchTerm';\n $scope.resultType = 'termResult';\n\n $scope.$watch('searchType', function () {\n $scope.empty = true;\n });\n\n $scope.goToSimilarityIndex = function (index) {\n if (!('BUILT' === index.status || 'OUTDATED' === index.status || 'REBUILDING' === index.status)) {\n return;\n }\n $scope.empty = true;\n if ($scope.selected !== index) {\n $scope.lastSearch = undefined;\n $scope.selected = index;\n }\n if (index.type === 'text') {\n $scope.searchType = 'searchTerm';\n } else if (index.type === 'predication') {\n $scope.searchType = 'searchEntity';\n }\n if (index.type === 'text' || index.type === 'predication') {\n $('#indexes-table').collapse('hide');\n }\n };\n\n const toggleOntoLoader = function (showLoader) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n const resultsLoader = angular.element(document.getElementById('results-loader'));\n /* Angular b**it. For some reason the loader behaved strangely with ng-show not always showing */\n if (showLoader) {\n $scope.loading = true;\n yasrInnerContainer.addClass('opacity-hide');\n resultsLoader.removeClass('opacity-hide');\n } else {\n $scope.loading = false;\n yasrInnerContainer.removeClass('opacity-hide');\n resultsLoader.addClass('opacity-hide');\n }\n };\n\n $scope.performSearch = function (index, uri, searchType, resultType, parameters) {\n\n toggleOntoLoader(true);\n\n // this is either the search term or the iri for the subject\n let termOrSubject = uri;\n\n $scope.lastSearch = {};\n $scope.lastSearch.type = searchType;\n\n if (searchType === 'searchEntityPredicate') {\n termOrSubject = $scope.psiSubject;\n $scope.lastSearch.predicate = uri;\n }\n\n if (searchType === 'searchTerm') {\n termOrSubject = literalForQuery(termOrSubject);\n } else {\n termOrSubject = iriForQuery(termOrSubject);\n }\n\n $scope.lastSearch.termOrSubject = termOrSubject;\n\n const headers = {Accept: 'application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8'};\n let sparqlQuery;\n if (searchType === 'searchAnalogical') {\n sparqlQuery = ($scope.selected.analogicalQuery) ? $scope.selected.analogicalQuery : $scope.searchQueries['analogical'];\n } else {\n sparqlQuery = ($scope.selected.searchQuery) ? $scope.selected.searchQuery : $scope.searchQueries[$scope.selected.type];\n }\n const sendData = {\n query: sparqlQuery,\n $index: iriForQuery(PREFIX_INSTANCE + index),\n $query: termOrSubject,\n $searchType: iriForQuery(($scope.selected.type === 'text' ? PREFIX : PREFIX_PREDICATION) + (searchType === 'searchEntityPredicate' ? 'searchEntity' : searchType)),\n $resultType: iriForQuery($scope.selected.type === 'text' ? PREFIX + resultType : PREFIX_PREDICATION + 'entityResult'),\n $parameters: literalForQuery(parameters)\n };\n\n if (searchType === 'searchEntityPredicate') {\n sendData.$psiPredicate = $scope.lastSearch.predicate ? iriForQuery($scope.lastSearch.predicate) : iriForQuery(ANY_PREDICATE);\n }\n\n if (searchType === 'searchAnalogical') {\n $scope.searchSubject = uri;\n sendData.$givenSubject = iriForQuery($scope.analogicalSubject);\n sendData.$givenObject = iriForQuery($scope.analogicalObject);\n sendData.$searchSubject = iriForQuery(uri);\n }\n\n $.ajax({\n method: 'GET',\n url: 'repositories/' + $repositories.getActiveRepository(),\n data: sendData,\n headers: headers\n }).done(function (data, textStatus, jqXhrOrErrorString) {\n toggleOntoLoader(false);\n yasr.setResponse(data, textStatus, jqXhrOrErrorString);\n }).fail(function (data) {\n toastr.error(getError(data), $translate.instant('similarity.get.resource.error'));\n toggleOntoLoader(false);\n });\n };\n\n $scope.viewSearchQuery = function () {\n let queryTemplate;\n if ($scope.lastSearch.type === 'searchAnalogical') {\n queryTemplate = ($scope.selected.analogicalQuery) ? $scope.selected.analogicalQuery : $scope.searchQueries['analogical'];\n } else {\n queryTemplate = ($scope.selected.searchQuery) ? $scope.selected.searchQuery : $scope.searchQueries[$scope.selected.type];\n }\n\n //replace template prefix for PREFIX_INSTANCE in the view mode with actual prefix from the query\n let tokens = [];\n let prefix = '';\n tokens = queryTemplate.match(/[a-zA-Z0-9-]+:<http:\\/\\/www.ontotext.com\\/graphdb\\/similarity\\/instance\\/>/);\n prefix = tokens == null ? \"similarity-index\" : tokens[0].substring(0, tokens[0].indexOf(':'));\n\n const replacedQuery = queryTemplate\n .replace('?index', prefix + ':' + $scope.selected.name)\n .replace('?query', $scope.lastSearch.termOrSubject)\n .replace('?searchType', ($scope.selected.type === 'text' ? ':' : 'psi:') + ($scope.lastSearch.type === 'searchEntityPredicate' ? 'searchEntity' : $scope.lastSearch.type))\n .replace('?resultType', $scope.selected.type === 'text' ? ':' + $scope.resultType : 'psi:entityResult')\n .replace('?parameters', literalForQuery((!$scope.searchParameters) ? '' : $scope.searchParameters))\n .replace('?psiPredicate', $scope.lastSearch.predicate ? iriForQuery($scope.lastSearch.predicate) : iriForQuery(ANY_PREDICATE))\n .replace('?givenSubject', iriForQuery($scope.analogicalSubject))\n .replace('?givenObject', iriForQuery($scope.analogicalObject))\n .replace('?searchSubject', iriForQuery($scope.searchSubject));\n\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return replacedQuery;\n }\n }\n });\n };\n\n\n $scope.deleteIndex = function (index) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('similarity.delete.index.warning', {name: index.name}),\n warning: true\n }).result\n .then(function () {\n SimilarityRestService.deleteIndex(index)\n .then(function () {\n $scope.getSimilarityIndexes();\n }, function (err) {\n toastr.error(getError(err));\n });\n });\n };\n\n $scope.viewCreateQuery = function (index) {\n SimilarityRestService.getQuery({\n indexName: index.name,\n indexOptions: index.options,\n query: index.selectQuery,\n indexStopList: index.stopList,\n queryInference: index.infer,\n querySameAs: index.sameAs,\n viewType: index.type,\n indexAnalyzer: index.analyzer\n }).success(function (query) {\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n });\n };\n\n $scope.rebuildIndex = function (index) {\n // Migration\n if (!index.searchQuery) {\n index.searchQuery = index.type ? $scope.searchQueries[index.type] : $scope.searchQueries.text;\n }\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: decodeHTML($translate.instant('similarity.rebuild.index.warning', {name: index.name})),\n warning: true\n }).result\n .then(function () {\n index.status = 'REBUILDING';\n SimilarityRestService.rebuildIndex(index)\n .then(function (res) {\n }, function (err) {\n toastr.error(getError(err));\n });\n });\n };\n\n $scope.copyToClipboardResult = function (uri) {\n ModalService.openCopyToClipboardModal(uri);\n };\n\n $scope.trimIRI = function (iri) {\n return _.trim(iri, \"<>\");\n };\n}\n","import 'angular/utils/notifications';\nimport 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.similarity.controllers.create', [\n 'graphdb.framework.utils.notifications',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .controller('CreateSimilarityIdxCtrl', CreateSimilarityIdxCtrl);\n\nCreateSimilarityIdxCtrl.$inject = ['$scope', 'toastr', '$modal', '$timeout', 'SimilarityRestService', 'SparqlRestService', '$location', 'productInfo', 'Notifications', 'RDF4JRepositoriesRestService', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction CreateSimilarityIdxCtrl($scope, toastr, $modal, $timeout, SimilarityRestService, SparqlRestService, $location, productInfo, Notifications, RDF4JRepositoriesRestService, LocalStorageAdapter, LSKeys, $translate) {\n\n const indexType = $location.search().type;\n if (indexType === undefined || indexType.startsWith('text')) {\n $scope.viewType = 'text';\n } else {\n $scope.viewType = indexType;\n }\n\n const textDefaultOptions = '-termweight idf';\n const predDefaultOptions = '';\n $scope.newIndex = {};\n\n $scope.info = productInfo;\n $scope.page = 1;\n\n const defaultTabConfig = {\n id: '1',\n name: '',\n query: '',\n inference: true,\n sameAs: true\n };\n\n let getNewIndexName = function (indexNameFromLocation) {\n if (indexNameFromLocation) {\n if ($scope.page !== 1) {\n return indexNameFromLocation;\n } else {\n return 'Copy_of_' + indexNameFromLocation;\n }\n }\n return '';\n };\n\n const initForViewType = function () {\n $scope.editSearchQuery = $location.search().editSearchQuery;\n $scope.page = $scope.editSearchQuery ? 2 : 1;\n $scope.newIndex.name = getNewIndexName($location.search().name);\n $scope.newIndex.options = ($location.search().options ? $location.search().options : ($scope.viewType === \"text\") ? textDefaultOptions : predDefaultOptions);\n\n if ($scope.searchQueries) {\n $scope.newIndex.searchQuery = $location.search().searchQuery ? $location.search().searchQuery : $scope.searchQueries[$scope.viewType];\n if ($scope.viewType === 'predication') {\n $scope.newIndex.analogicalQuery = $location.search().analogicalQuery ? $location.search().analogicalQuery : $scope.searchQueries['analogical'];\n }\n }\n\n if ($scope.editSearchQuery) {\n // Default will be opened search query tab for edition\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n $scope.notoolbarInference = true;\n $scope.notoolbarSameAs = true;\n if (window.editor) {\n $scope.setQuery($scope.newIndex.searchQuery);\n }\n } else {\n if ($scope.viewType === 'text' && $scope.allSamples) {\n $scope.samples = $scope.allSamples['text'];\n $scope.newIndex.stopList = ($location.search().stopList ? $location.search().stopList : undefined);\n $scope.newIndex.analyzer = ($location.search().analyzer ? $location.search().analyzer : 'org.apache.lucene.analysis.en.EnglishAnalyzer');\n const isLiteralIndex = getAndRemoveOption('-literal_index');\n if (isLiteralIndex !== undefined) {\n $scope.newIndex.isLiteralIndex = isLiteralIndex;\n }\n if (window.editor) {\n $scope.setQuery($scope.samples['literals']);\n }\n }\n if ($scope.viewType === 'predication' && $scope.allSamples) {\n SimilarityRestService.getIndexes()\n .success(function (data) {\n $scope.literalIndexes = ['no-index'].concat(data\n .filter(function (idx) {\n return idx.type === 'textLiteral' && (idx.status === 'BUILT' || idx.status === 'OUTDATED')\n })\n .map(function (idx) {\n return idx.name;\n }));\n\n if ($scope.newIndex.inputIndex === undefined) {\n const desiredIdx = getAndRemoveOption('-input_index');\n if (desiredIdx !== undefined) {\n for (let j = 0; j < $scope.literalIndexes.length; j++) {\n if (desiredIdx === $scope.literalIndexes[j]) {\n $scope.newIndex.inputIndex = $scope.literalIndexes[j];\n }\n }\n }\n }\n if ($scope.newIndex.inputIndex === undefined) {\n $scope.newIndex.inputIndex = $scope.literalIndexes[0];\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('similarity.could.not.get.indexes.error'));\n });\n\n $scope.samples = $scope.allSamples['predication'];\n if (window.editor) {\n $scope.setQuery($scope.samples['predication']);\n }\n }\n }\n };\n\n const filenamePattern = new RegExp('^[a-zA-Z0-9-_]+$');\n\n const validateIndex = function () {\n $scope.invalidIndexName = false;\n $scope.saveQueries();\n if (!$scope.newIndex.name) {\n $scope.invalidIndexName = $translate.instant('similarity.empty.index.name.error');\n return false;\n }\n if (!filenamePattern.test($scope.newIndex.name)) {\n $scope.invalidIndexName = $translate.instant('similarity.index.name.constraint');\n return false;\n }\n\n if (!$scope.newIndex.query) {\n toastr.error($translate.instant('similarity.empty.select.query.error'));\n return false;\n }\n\n if (!$scope.newIndex.searchQuery) {\n toastr.error($translate.instant('similarity.empty.search.query.error'));\n return false;\n }\n\n if ($scope.viewType === 'predication' && !$scope.newIndex.analogicalQuery) {\n toastr.error($translate.instant('similarity.empty.analogical.query.error'));\n return false;\n }\n\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error($translate.instant('similarity.index.select.queries.constraint'));\n return;\n }\n\n return true;\n };\n\n const appendOption = function (option, value) {\n $scope.newIndex.options = $scope.newIndex.options + ($scope.newIndex.options === '' ? '' : ' ') + option + ' ' + value;\n };\n\n SimilarityRestService.getSearchQueries().success(function (data) {\n $scope.searchQueries = data;\n SimilarityRestService.getSamples().success(function (samples) {\n defaultTabConfig.query = $location.search().selectQuery ? $location.search().selectQuery : samples['text']['literals'];\n defaultTabConfig.inference = !($location.search().infer === 'false');\n defaultTabConfig.sameAs = !($location.search().sameAs === 'false');\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n $scope.currentQuery = angular.copy(defaultTabConfig);\n $scope.allSamples = samples;\n initForViewType();\n });\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('similarity.could.not.get.search.queries.error'));\n });\n\n $scope.$watch('viewType', function () {\n initForViewType();\n });\n\n $scope.helpHidden = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP) === 1;\n $scope.toggleHelp = function (value) {\n if (value === undefined) {\n value = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP);\n }\n if (value !== 1) {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 1);\n $scope.helpHidden = true;\n } else {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 0);\n $scope.helpHidden = false;\n }\n };\n\n $scope.viewQuery = function () {\n if (!validateIndex()) {\n return;\n }\n\n SimilarityRestService.getQuery({\n indexName: $scope.newIndex.name,\n indexOptions: $scope.newIndex.options,\n query: $scope.currentQuery.query,\n indexStopList: $scope.newIndex.stopList,\n queryInference: $scope.currentQuery.inference,\n querySameAs: $scope.currentQuery.sameAs,\n viewType: $scope.viewType,\n indexAnalyzer: $scope.newIndex.analyzer\n }).success(function (query) {\n if (query) {\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n }\n }).error(function (error) {\n const msg = getError(error);\n toastr.error(msg);\n });;\n };\n\n $scope.$watch('newIndex.name', function () {\n $scope.isInvalidIndexName = false;\n $scope.isEmptyIndexName = false;\n });\n\n $scope.saveQueries = function () {\n // save the current query\n const query = window.editor.getValue().trim();\n if ($scope.page === 1) {\n $scope.newIndex.query = query;\n } else if ($scope.page === 2) {\n $scope.newIndex.searchQuery = query;\n } else if ($scope.page === 3) {\n $scope.newIndex.analogicalQuery = query;\n }\n };\n\n $scope.goToPage = function (page) {\n // ugly fix for GDB-3099\n if (page !== 1 && $scope.viewMode !== 'yasr') {\n $scope.showEditor();\n $timeout(function () {\n if (page === 2) {\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n }\n if (page === 3) {\n $scope.currentQuery.query = $scope.newIndex.analogicalQuery;\n }\n\n window.editor.setValue($scope.currentQuery.query || ' ');\n });\n }\n\n $scope.saveQueries();\n // get the saved query\n if (page === 1) {\n $scope.currentQuery.query = $scope.newIndex.query;\n } else if (page === 2) {\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n } else if (page === 3) {\n $scope.currentQuery.query = $scope.newIndex.analogicalQuery;\n }\n\n loadTab();\n $scope.notoolbar = page !== 1;\n\n $scope.page = page;\n };\n\n $scope.createIndex = function () {\n if (!validateIndex()) {\n return;\n }\n // Check existing indexes\n SimilarityRestService.getIndexes()\n .success(function (data) {\n data.forEach(function (index) {\n if (index.name === $scope.newIndex.name) {\n $scope.invalidIndexName = $translate.instant('similarity.existing.index.name.error');\n }\n });\n if (!$scope.invalidIndexName) {\n let indexType = $scope.viewType;\n\n if ($scope.literalIndexes !== undefined) {\n const inputIndex = $scope.newIndex.inputIndex;\n if (inputIndex !== $scope.literalIndexes[0]) {\n appendOption('-input_index', inputIndex);\n }\n }\n if ($scope.newIndex.isLiteralIndex === 'true') {\n appendOption('-literal_index', 'true');\n indexType = 'textLiteral';\n }\n\n SimilarityRestService.createIndex('POST',\n $scope.newIndex.name,\n $scope.newIndex.options,\n $scope.newIndex.query,\n $scope.newIndex.searchQuery,\n $scope.newIndex.analogicalQuery,\n $scope.newIndex.stopList,\n $scope.currentQuery.inference,\n $scope.currentQuery.sameAs,\n indexType,\n $scope.newIndex.analyzer)\n .error(function (err) {\n toastr.error(getError(err), $translate.instant('similarity.create.index.error'));\n });\n $location.url('similarity');\n }\n\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('similarity.could.not.get.indexes.error'));\n });\n };\n\n // Called when user clicks on a sample query\n $scope.setQuery = function (query) {\n // Hack for YASQE bug\n window.editor.setValue(query ? query : ' ');\n };\n\n // TODO don't copy paste each time, this is the same as in the graph config\n // DOWN HERE WE KEEP EVERYTHING PURELY QUERY EDITOR (MOSTLY BORROWED FROM query-editor.controller.js)\n\n $scope.showEditor = function () {\n if (window.editor.xhr) {\n window.editor.xhr.abort();\n }\n $scope.viewMode = 'yasr';\n };\n\n $scope.showPreview = function () {\n // For some reason YASR gets confused and sets this to rawResponse\n // if we execute a CONSTRUCT and then a SELECT. This makes sure it's always table.\n $scope.currentQuery.outputType = 'table';\n $scope.runQuery();\n };\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 100, // page limit 100 as this is only used for preview\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = true;\n\n // start of repository actions\n $scope.getActiveRepository();\n\n function getAndRemoveOption(key) {\n const optArr = $scope.newIndex.options.split(' ');\n for (let i = 0; i < optArr.length; i++) {\n if (optArr[i] === key && i + 1 < optArr.length) {\n const value = optArr[i + 1];\n\n delete optArr[i];\n delete optArr[i + 1];\n $scope.newIndex.options = optArr.join(' ');\n\n return value;\n }\n }\n return undefined;\n }\n\n function saveQueryToLocal(currentQueryTab) {\n }\n\n function setLoader(isRunning, progressMessage, extraMessage) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n yasrInnerContainer.addClass('hide');\n } else {\n $scope.progressMessage = '';\n $scope.extraMessage = '';\n yasrInnerContainer.removeClass('hide');\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n const timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n let message = '';\n\n if ($scope.progressMessage) {\n message = $scope.progressMessage + '... ' + timeHuman;\n } else {\n message = $translate.instant('common.running.operation', {timeHuman: timeHuman});\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += '\\n' + $scope.extraMessage;\n }\n\n return message;\n }\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalViewParam) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n const verticalView = verticalViewParam;\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector('.CodeMirror-wrap')) {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n //window.editor.refresh();\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView);\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n } else {\n $scope.noPadding = {};\n document.querySelector('.CodeMirror-wrap').style.height = '';\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode(tabID) {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n fixSizesOnHorizontalViewModeSwitch();\n $('.dataTables_filter').remove();\n $('.resultsTable').remove();\n $timeout(function () {\n loadTab();\n selectTab(tabID);\n }, 100);\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(':focus')) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n // end of query editor results orientation operations\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery;\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error($translate.instant('similarity.indexes.select.queries.constraint'));\n return;\n }\n if (explain && window.editor.getQueryType() !== 'SELECT') {\n toastr.warning($translate.instant('similarity.explain.select.queries.constraint'));\n return;\n }\n\n if (window.editor.getQueryMode() === 'update') {\n toastr.warning($translate.instant('cannot.execute.update.error'));\n return;\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n // Hides the editor and shows the yasr results\n $scope.viewMode = 'editor';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch();\n }\n\n setLoader(true, $translate.instant('evaluating.query.msg'));\n window.editor.query();\n }\n }\n\n // FIXME: this is copy-pasted in graphs-config.controller.js and query-editor.controller.js. Find a way to avoid duplications\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, $translate.instant('common.refreshing.namespaces'), $translate.instant('common.extra.message'));\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n if ($scope.getActiveRepository()) {\n getNamespaces();\n }\n\n $scope.$on('$destroy', function () {\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n }\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.add.known.prefixes.error'));\n return true;\n });\n }\n\n $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n angular.forEach($scope.tabsData, function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n\n return existingTabId;\n }\n\n\n // end of query operations\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function () {\n saveQueryToLocal($scope.currentQuery);\n });\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n //tab.query = window.editor.getValue();\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n function addNewTab(callback, tabName, savedQuery) {\n }\n\n function loadTab() {\n $scope.tabsData = [$scope.currentQuery];\n\n const tab = $scope.currentQuery;\n\n if ($scope.currentQuery.query === null || $scope.currentQuery.query === '') {\n // hack for YASQE bug\n window.editor.setValue(' ');\n } else {\n window.editor.setValue($scope.currentQuery.query || ' ');\n }\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.$apply();\n }, 0);\n\n //Remove paddign of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n $scope.loadTab(getQueryID(tabEvent.target));\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = angular.copy(defaultTabConfig);\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n\n $scope.getResultsDescription = function () {\n };\n\n $scope.getUpdateDescription = function () {\n };\n\n $scope.getStaleWarningMessage = function () {\n };\n\n $scope.saveSearchQuery = function () {\n // Should validate that query is SELECT\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error($translate.instant('similarity.index.select.queries.constraint'));\n return;\n }\n let data = {\n name: $scope.newIndex.name,\n changedQuery: $scope.currentQuery.query,\n isSearchQuery: $scope.page === 2\n };\n\n return SimilarityRestService.saveSearchQuery(JSON.stringify(data))\n .then(async function () {\n await Notifications.showToastMessageWithDelay($scope.page === 2 ? 'similarity.changed.search.query.msg' : 'similarity.changed.analogical.query.msg');\n $location.url('similarity');\n }, function (response) {\n toastr.error(getError(response), $translate.instant('similarity.change.query.error'));\n });\n };\n\n $scope.getCloseBtnMsg = function () {\n let operationType = $scope.editSearchQuery ? $translate.instant('similarity.query.edition.msg') : $translate.instant('similarity.index.creation.msg');\n return $translate.instant('similarity.close.btn.msg', {operation: operationType});\n }\n}\n"],"sourceRoot":""}
@@ -1,3 +1,3 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[15,52],{147:function(e,t,n){"use strict";n.r(t);n(4),n(11),n(12),n(10),n(17),n(42),n(44),n(43),n(253),n(247);function r(e){e.theme="bs3"}angular.module("graphdb.framework.sparql",["LocalStorageModule","xeditable","ngAnimate","ngRoute","toastr","graphdb.framework.core.directives","graphdb.framework.core.services.repositories","graphdb.framework.rest.sparql.service","graphdb.framework.core.directives.queryeditor.controllers","graphdb.framework.core.directives.queryeditor.sparqltab","graphdb.framework.core.directives.queryeditor.queryeditor"]).run(r),r.$inject=["editableOptions"]},247:function(e,t,n){var r,a=a||function(e){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),a=e.webkitRequestFileSystem,o=e.requestFileSystem||a||e.mozRequestFileSystem,i=function(t){(e.setImmediate||e.setTimeout)((function(){throw t}),0)},s=0,c=function(t){var r=function(){"string"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?r():setTimeout(r,500)},l=function(e,t,n){for(var r=(t=[].concat(t)).length;r--;){var a=e["on"+t[r]];if("function"==typeof a)try{a.call(e,n||e)}catch(e){i(e)}}},d=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},u=function(t,i){t=d(t);var u,f,b,p=this,m=t.type,g=!1,h=function(){l(p,"writestart progress write writeend".split(" "))},w=function(){(!g&&u||(u=n().createObjectURL(t)),f)?f.location.href=u:null==e.open(u,"_blank")&&"undefined"!=typeof safari&&(e.location.href=u);p.readyState=p.DONE,h(),c(u)},y=function(e){return function(){if(p.readyState!==p.DONE)return e.apply(this,arguments)}},v={create:!0,exclusive:!1};if(p.readyState=p.INIT,i||(i="download"),r)return u=n().createObjectURL(t),r.href=u,r.download=i,void setTimeout((function(){var e,t;e=r,t=new MouseEvent("click"),e.dispatchEvent(t),h(),c(u),p.readyState=p.DONE}));e.chrome&&m&&"application/octet-stream"!==m&&(b=t.slice||t.webkitSlice,t=b.call(t,0,t.size,"application/octet-stream"),g=!0),a&&"download"!==i&&(i+=".download"),("application/octet-stream"===m||a)&&(f=e),o?(s+=t.size,o(e.TEMPORARY,s,y((function(e){e.root.getDirectory("saved",v,y((function(e){var n=function(){e.getFile(i,v,y((function(e){e.createWriter(y((function(n){n.onwriteend=function(t){f.location.href=e.toURL(),p.readyState=p.DONE,l(p,"writeend",t),c(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&w()},"writestart progress write abort".split(" ").forEach((function(e){n["on"+e]=p["on"+e]})),n.write(t),p.abort=function(){n.abort(),p.readyState=p.DONE},p.readyState=p.WRITING})),w)})),w)};e.getFile(i,{create:!1},y((function(e){e.remove(),n()})),y((function(e){e.code===e.NOT_FOUND_ERR?n():w()})))})),w)})),w)):w()},f=u.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t){return navigator.msSaveOrOpenBlob(d(e),t)}:(f.abort=function(){this.readyState=this.DONE,l(this,"abort")},f.readyState=f.INIT=0,f.WRITING=1,f.DONE=2,f.error=f.onwritestart=f.onprogress=f.onwrite=f.onabort=f.onerror=f.onwriteend=null,function(e,t){return new u(e,t)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[15,52],{148:function(e,t,n){"use strict";n.r(t);n(4),n(11),n(12),n(10),n(17),n(42),n(44),n(43),n(253),n(247);function r(e){e.theme="bs3"}angular.module("graphdb.framework.sparql",["LocalStorageModule","xeditable","ngAnimate","ngRoute","toastr","graphdb.framework.core.directives","graphdb.framework.core.services.repositories","graphdb.framework.rest.sparql.service","graphdb.framework.core.directives.queryeditor.controllers","graphdb.framework.core.directives.queryeditor.sparqltab","graphdb.framework.core.directives.queryeditor.queryeditor"]).run(r),r.$inject=["editableOptions"]},247:function(e,t,n){var r,a=a||function(e){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),a=e.webkitRequestFileSystem,o=e.requestFileSystem||a||e.mozRequestFileSystem,i=function(t){(e.setImmediate||e.setTimeout)((function(){throw t}),0)},s=0,c=function(t){var r=function(){"string"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?r():setTimeout(r,500)},l=function(e,t,n){for(var r=(t=[].concat(t)).length;r--;){var a=e["on"+t[r]];if("function"==typeof a)try{a.call(e,n||e)}catch(e){i(e)}}},d=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},u=function(t,i){t=d(t);var u,f,b,p=this,m=t.type,g=!1,h=function(){l(p,"writestart progress write writeend".split(" "))},w=function(){(!g&&u||(u=n().createObjectURL(t)),f)?f.location.href=u:null==e.open(u,"_blank")&&"undefined"!=typeof safari&&(e.location.href=u);p.readyState=p.DONE,h(),c(u)},y=function(e){return function(){if(p.readyState!==p.DONE)return e.apply(this,arguments)}},v={create:!0,exclusive:!1};if(p.readyState=p.INIT,i||(i="download"),r)return u=n().createObjectURL(t),r.href=u,r.download=i,void setTimeout((function(){var e,t;e=r,t=new MouseEvent("click"),e.dispatchEvent(t),h(),c(u),p.readyState=p.DONE}));e.chrome&&m&&"application/octet-stream"!==m&&(b=t.slice||t.webkitSlice,t=b.call(t,0,t.size,"application/octet-stream"),g=!0),a&&"download"!==i&&(i+=".download"),("application/octet-stream"===m||a)&&(f=e),o?(s+=t.size,o(e.TEMPORARY,s,y((function(e){e.root.getDirectory("saved",v,y((function(e){var n=function(){e.getFile(i,v,y((function(e){e.createWriter(y((function(n){n.onwriteend=function(t){f.location.href=e.toURL(),p.readyState=p.DONE,l(p,"writeend",t),c(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&w()},"writestart progress write abort".split(" ").forEach((function(e){n["on"+e]=p["on"+e]})),n.write(t),p.abort=function(){n.abort(),p.readyState=p.DONE},p.readyState=p.WRITING})),w)})),w)};e.getFile(i,{create:!1},y((function(e){e.remove(),n()})),y((function(e){e.code===e.NOT_FOUND_ERR?n():w()})))})),w)})),w)):w()},f=u.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t){return navigator.msSaveOrOpenBlob(d(e),t)}:(f.abort=function(){this.readyState=this.DONE,l(this,"abort")},f.readyState=f.INIT=0,f.WRITING=1,f.DONE=2,f.error=f.onwritestart=f.onprogress=f.onwrite=f.onabort=f.onerror=f.onwriteend=null,function(e,t){return new u(e,t)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);
2
2
  /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */e.exports?e.exports.saveAs=a:null!==n(248)&&null!=n(249)&&(void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r))},248:function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},249:function(e,t){(function(t){e.exports=t}).call(this,{})},42:function(e,t,n){"use strict";n.r(t);n(5);function r(e,t,n,r){return{restrict:"AE",template:'<a class="nav-link" role="tab" data-toggle="tab" blur="submit" editable-text="tab.name" e-form="editCurrentlySelectedOnly" ng-click="selectThisTab($event)" ng-dblclick="editCurrentTab()" ><span ng-class="{\'text-muted\': !tab.name}">{{ tab.name || \'sparql.tab.directive.unnamed.tab.title\' | translate}}</span><button type="button" ng-click="deleteTab($event)" class="btn btn-link btn-sm secondary delete-sparql-tab-btn" title="Delete tab"><i class="icon-close"></i></button></a>',replace:!0,controller:["$scope","$element","$rootScope","ModalService","toastr","$translate",function(e,r,a,o,i,s){function c(e){return $(e).attr("data-id")}function l(e){$('a[data-id = "'+e+'"]').tab("show")}e.state={},$(r).on("shown.bs.tab",(function(e){a.$broadcast("tabAction",e)})),e.deleteTab=function(d){if(d.preventDefault(),d.stopPropagation(),e.tabs.length<2)return void i.warning(s.instant("sparql.tab.directive.close.last.warning"));d.shiftKey?(e.state.selectedTabId=c(r),o.openSimpleModal({title:s.instant("common.confirm"),message:s.instant("sparql.tab.directive.delete.all.tabs.warning"),warning:!0}).result.then((function(){var r;r=e.state.selectedTabId,e.tabs=e.tabs.filter((function(e){if(e.id===r)return e})),l(e.tabs[0].id),t.set(n.TABS_STATE,e.tabs),a.$broadcast("deleteAllexeptSelected",e.tabs)}))):(e.state.idForDelete=c(r),o.openSimpleModal({title:s.instant("common.confirm"),message:s.instant("sparql.tab.directive.close.tab.warning"),warning:!0}).result.then((function(){!function(t){if(angular.isUndefined(t))throw"Delete by id was called with undefined id";const n=function(t){for(let n=0;n<e.tabs.length;n++){if(e.tabs[n].id===t)return n}}(t);e.tabs.splice(n,1),t===e.currentQuery.id&&e.tabs.length>0&&l(n>0?e.tabs[n-1].id:e.tabs[0].id)}(e.state.idForDelete)})));angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.editCurrentTab=function(){if(c(r)!==e.currentQuery.id)return;e.editCurrentlySelectedOnly.$show();const t=$(".editable-buttons");t.children(".btn.btn-primary").addClass("btn-sm"),t.children(".btn.btn-default").addClass("btn-sm"),$(".editable-controls .editable-input").addClass("form-control-sm").on("change",(function(t){e.currentQuery.name=t.currentTarget.$$currentValue})),$(".editable-buttons .glyphicon.glyphicon-ok").removeClass("glyphicon glyphicon-ok").addClass("fa fa-check"),$(".editable-buttons .glyphicon.glyphicon-remove").removeClass("glyphicon glyphicon-remove").addClass("fa fa-close")},e.selectThisTab=function(t){t.preventDefault(),t.stopPropagation(),e.isTabChangeOk(!1)&&$(r).tab("show")}}]}}angular.module("graphdb.framework.core.directives.queryeditor.sparqltab",["graphdb.framework.core","graphdb.framework.utils.localstorageadapter"]).directive("sparqlTab",r),r.$inject=["$rootScope","LocalStorageAdapter","LSKeys","ModalService"]}}]);
3
- //# sourceMappingURL=15.e870cbcf6346cc68bd66.bundle.js.map
3
+ //# sourceMappingURL=15.244542a39d9296cc4fd8.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/sparql/app.js","webpack:///./src/js/lib/FileSaver-patch.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./src/js/angular/core/directives/queryeditor/sparql-tab.directive.js"],"names":["run","editableOptions","theme","angular","module","$inject","saveAs","view","navigator","test","userAgent","doc","document","get_URL","URL","webkitURL","save_link","createElementNS","webkit_req_fs","webkitRequestFileSystem","req_fs","requestFileSystem","mozRequestFileSystem","throw_outside","ex","setImmediate","setTimeout","fs_min_size","revoke","file","revoker","revokeObjectURL","remove","chrome","dispatch","filesaver","event_types","event","i","concat","length","listener","call","auto_bom","blob","type","Blob","FileSaver","name","object_url","target_view","slice","this","blob_changed","dispatch_all","split","fs_error","createObjectURL","location","href","undefined","open","safari","readyState","DONE","abortable","func","apply","arguments","create_if_not_found","create","exclusive","INIT","download","node","MouseEvent","dispatchEvent","webkitSlice","size","TEMPORARY","fs","root","getDirectory","dir","save","getFile","createWriter","writer","onwriteend","toURL","onerror","error","code","ABORT_ERR","forEach","write","abort","WRITING","NOT_FOUND_ERR","FS_proto","prototype","msSaveOrOpenBlob","onwritestart","onprogress","onwrite","onabort","self","window","content","exports","Error","__webpack_amd_options__","sparqlTabDirective","$rootScope","LocalStorageAdapter","LSKeys","ModalService","restrict","template","replace","controller","$scope","$element","toastr","$translate","getQueryID","element","$","attr","selectTab","id","tab","state","on","e","$broadcast","deleteTab","preventDefault","stopPropagation","tabs","warning","instant","shiftKey","selectedTabId","openSimpleModal","title","message","result","then","filter","obj","set","TABS_STATE","idForDelete","isUndefined","idx","findTabIndexByID","splice","currentQuery","deleteTabByID","find","focus","editCurrentTab","editCurrentlySelectedOnly","$show","$editableButtons","children","addClass","$el","currentTarget","$$currentValue","removeClass","selectThisTab","isTabChangeOk","directive"],"mappings":"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","file":"15.e870cbcf6346cc68bd66.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/core/services/repositories.service';\nimport 'angular/rest/sparql.rest.service';\nimport 'angular/core/directives/queryeditor/sparql-tab.directive';\nimport 'angular/core/directives/queryeditor/query-editor.directive';\nimport 'angular/core/directives/queryeditor/query-editor.controller';\nimport 'angular-xeditable/dist/js/xeditable.min';\nimport 'lib/FileSaver-patch';\n\nangular\n .module('graphdb.framework.sparql', [\n 'LocalStorageModule',\n 'xeditable',\n 'ngAnimate',\n 'ngRoute',\n 'toastr',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.rest.sparql.service',\n 'graphdb.framework.core.directives.queryeditor.controllers',\n 'graphdb.framework.core.directives.queryeditor.sparqltab',\n 'graphdb.framework.core.directives.queryeditor.queryeditor'\n ])\n .run(run);\n\nrun.$inject = ['editableOptions'];\n\nfunction run(editableOptions) {\n editableOptions.theme = 'bs3';\n}\n","/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 2015-05-07.2\n *\n * By Eli Grey, http://eligrey.com\n * License: X11/MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t doc = view.document\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, webkit_req_fs = view.webkitRequestFileSystem\n\t\t, req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t, fs_min_size = 0\n\t\t// See https://code.google.com/p/chromium/issues/detail?id=375297#c7 and\n\t\t// https://github.com/eligrey/FileSaver.js/commit/485930a#commitcomment-8768047\n\t\t// for the reasoning behind the timeout and revocation flow\n\t\t, arbitrary_revoke_timeout = 500 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (view.chrome) {\n\t\t\t\trevoker();\n\t\t\t} else {\n\t\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t\t}\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([\"\\ufeff\", blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name) {\n\t\t\tblob = auto_bom(blob);\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, blob_changed = false\n\t\t\t\t, object_url\n\t\t\t\t, target_view\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (blob_changed || !object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (target_view) {\n\t\t\t\t\t\ttarget_view.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar new_tab = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (new_tab == undefined && typeof safari !== \"undefined\") {\n\t\t\t\t\t\t\t//Apple do not allow window.open, see http://bit.ly/1kZffRI\n\t\t\t\t\t\t\tview.location.href = object_url\n\t\t\t\t\t\t} \n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t\t, abortable = function(func) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif (filesaver.readyState !== filesaver.DONE) {\n\t\t\t\t\t\t\treturn func.apply(this, arguments);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t, create_if_not_found = {create: true, exclusive: false}\n\t\t\t\t, slice\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\tif (!name) {\n\t\t\t\tname = \"download\";\n\t\t\t}\n\t\t\tif (save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t//window.open('data:attachment/csv;charset=utf-8,' + object_url);\n\t\t\t\tsave_link.href = object_url;\n\t\t\t\tsave_link.download = name;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Object and web filesystem URLs have a problem saving in Google Chrome when\n\t\t\t// viewed in a tab, so I force save with application/octet-stream\n\t\t\t// http://code.google.com/p/chromium/issues/detail?id=91158\n\t\t\t// Update: Google errantly closed 91158, I submitted it again:\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=389642\n\t\t\tif (view.chrome && type && type !== force_saveable_type) {\n\t\t\t\tslice = blob.slice || blob.webkitSlice;\n\t\t\t\tblob = slice.call(blob, 0, blob.size, force_saveable_type);\n\t\t\t\tblob_changed = true;\n\t\t\t}\n\t\t\t// Since I can't be sure that the guessed media type will trigger a download\n\t\t\t// in WebKit, I append .download to the filename.\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=65440\n\t\t\tif (webkit_req_fs && name !== \"download\") {\n\t\t\t\tname += \".download\";\n\t\t\t}\n\t\t\tif (type === force_saveable_type || webkit_req_fs) {\n\t\t\t\ttarget_view = view;\n\t\t\t}\n\t\t\tif (!req_fs) {\n\t\t\t\tfs_error();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfs_min_size += blob.size;\n\t\t\treq_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) {\n\t\t\t\tfs.root.getDirectory(\"saved\", create_if_not_found, abortable(function(dir) {\n\t\t\t\t\tvar save = function() {\n\t\t\t\t\t\tdir.getFile(name, create_if_not_found, abortable(function(file) {\n\t\t\t\t\t\t\tfile.createWriter(abortable(function(writer) {\n\t\t\t\t\t\t\t\twriter.onwriteend = function(event) {\n\t\t\t\t\t\t\t\t\ttarget_view.location.href = file.toURL();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t\tdispatch(filesaver, \"writeend\", event);\n\t\t\t\t\t\t\t\t\trevoke(file);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\twriter.onerror = function() {\n\t\t\t\t\t\t\t\t\tvar error = writer.error;\n\t\t\t\t\t\t\t\t\tif (error.code !== error.ABORT_ERR) {\n\t\t\t\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\"writestart progress write abort\".split(\" \").forEach(function(event) {\n\t\t\t\t\t\t\t\t\twriter[\"on\" + event] = filesaver[\"on\" + event];\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\twriter.write(blob);\n\t\t\t\t\t\t\t\tfilesaver.abort = function() {\n\t\t\t\t\t\t\t\t\twriter.abort();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.WRITING;\n\t\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t};\n\t\t\t\t\tdir.getFile(name, {create: false}, abortable(function(file) {\n\t\t\t\t\t\t// delete file if it already exists\n\t\t\t\t\t\tfile.remove();\n\t\t\t\t\t\tsave();\n\t\t\t\t\t}), abortable(function(ex) {\n\t\t\t\t\t\tif (ex.code === ex.NOT_FOUND_ERR) {\n\t\t\t\t\t\t\tsave();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}), fs_error);\n\t\t\t}), fs_error);\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name) {\n\t\t\treturn new FileSaver(blob, name);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name) {\n\t\t\treturn navigator.msSaveOrOpenBlob(auto_bom(blob), name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function() {\n\t\tvar filesaver = this;\n\t\tfilesaver.readyState = filesaver.DONE;\n\t\tdispatch(filesaver, \"abort\");\n\t};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd != null)) {\n define([], function() {\n return saveAs;\n });\n}","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","import 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.core.directives.queryeditor.sparqltab', [\n 'graphdb.framework.core',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .directive('sparqlTab', sparqlTabDirective);\n\nsparqlTabDirective.$inject = ['$rootScope', 'LocalStorageAdapter', 'LSKeys', 'ModalService'];\n\nfunction sparqlTabDirective($rootScope, LocalStorageAdapter, LSKeys, ModalService) {\n const SparqlTabCtrl = ['$scope', '$element', '$rootScope', 'ModalService', 'toastr', '$translate', function ($scope, $element, $rootScope, ModalService, toastr, $translate) {\n $scope.state = {};\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabs.length; i++) {\n const tab = $scope.tabs[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $($element).on('shown.bs.tab', function (e) {\n $rootScope.$broadcast('tabAction', e);\n });\n\n $scope.deleteTab = deleteTab;\n $scope.editCurrentTab = editCurrentTab;\n $scope.selectThisTab = selectThisTab;\n\n function selectThisTab(e) {\n e.preventDefault();\n e.stopPropagation();\n if ($scope.isTabChangeOk(false)) {\n $($element).tab('show');\n }\n }\n\n function selectTab(id) {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }\n\n function deleteTab(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if ($scope.tabs.length < 2) {\n toastr.warning($translate.instant('sparql.tab.directive.close.last.warning'));\n return;\n }\n\n if (e.shiftKey) {\n $scope.state.selectedTabId = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('sparql.tab.directive.delete.all.tabs.warning'),\n warning: true\n }).result.then(function () {\n deleteAllTabsExceptSelected($scope.state.selectedTabId);\n });\n } else {\n $scope.state.idForDelete = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('sparql.tab.directive.close.tab.warning'),\n warning: true\n }).result.then(function () {\n deleteTabByID($scope.state.idForDelete);\n });\n }\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n\n function editCurrentTab() {\n if (getQueryID($element) !== $scope.currentQuery.id) {\n return;\n }\n $scope.editCurrentlySelectedOnly.$show();\n //fix for buttons for edit\n const $editableButtons = $(\".editable-buttons\");\n $editableButtons.children(\".btn.btn-primary\").addClass('btn-sm');\n $editableButtons.children(\".btn.btn-default\").addClass('btn-sm');\n $('.editable-controls .editable-input').addClass('form-control-sm').on('change', function ($el) {\n $scope.currentQuery.name = $el.currentTarget.$$currentValue;\n });\n //$('.editable-buttons').css('margin-top', '5px');\n //$('.editable-input.editable-has-buttons').css('width', '50%');\n $('.editable-buttons .glyphicon.glyphicon-ok')\n .removeClass('glyphicon glyphicon-ok')\n .addClass('fa fa-check');\n $('.editable-buttons .glyphicon.glyphicon-remove')\n .removeClass('glyphicon glyphicon-remove')\n .addClass('fa fa-close');\n }\n\n function deleteTabByID(id) {\n if (angular.isUndefined(id)) {\n throw 'Delete by id was called with undefined id';\n }\n const idx = findTabIndexByID(id);\n $scope.tabs.splice(idx, 1);\n\n if (id === $scope.currentQuery.id) {\n if ($scope.tabs.length > 0) {\n if (idx > 0) {\n // select previous tab if we deleted any but the first tab\n selectTab($scope.tabs[idx - 1].id);\n } else {\n // select first tab if we deleted the first tab\n selectTab($scope.tabs[0].id);\n }\n }\n }\n }\n\n function deleteAllTabsExceptSelected(id) {\n $scope.tabs = $scope.tabs.filter(function (obj) {\n if (obj.id === id) {\n return obj;\n }\n });\n selectTab($scope.tabs[0].id);\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n $rootScope.$broadcast('deleteAllexeptSelected', $scope.tabs);\n }\n }];\n\n return {\n restrict: 'AE',\n // for some reason when you extract this template in a file and use templateUrl it selects all tabs when editing the tab name, not only the currently selected one\n template: '<a class=\"nav-link\" role=\"tab\" data-toggle=\"tab\" blur=\"submit\" editable-text=\"tab.name\" e-form=\"editCurrentlySelectedOnly\" ng-click=\"selectThisTab($event)\" ng-dblclick=\"editCurrentTab()\" ><span ng-class=\"{\\'text-muted\\': !tab.name}\">{{ tab.name || \\'sparql.tab.directive.unnamed.tab.title\\' | translate}}</span><button type=\"button\" ng-click=\"deleteTab($event)\" class=\"btn btn-link btn-sm secondary delete-sparql-tab-btn\" title=\"Delete tab\"><i class=\"icon-close\"></i></button></a>',\n replace: true,\n controller: SparqlTabCtrl\n };\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/sparql/app.js","webpack:///./src/js/lib/FileSaver-patch.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./src/js/angular/core/directives/queryeditor/sparql-tab.directive.js"],"names":["run","editableOptions","theme","angular","module","$inject","saveAs","view","navigator","test","userAgent","doc","document","get_URL","URL","webkitURL","save_link","createElementNS","webkit_req_fs","webkitRequestFileSystem","req_fs","requestFileSystem","mozRequestFileSystem","throw_outside","ex","setImmediate","setTimeout","fs_min_size","revoke","file","revoker","revokeObjectURL","remove","chrome","dispatch","filesaver","event_types","event","i","concat","length","listener","call","auto_bom","blob","type","Blob","FileSaver","name","object_url","target_view","slice","this","blob_changed","dispatch_all","split","fs_error","createObjectURL","location","href","undefined","open","safari","readyState","DONE","abortable","func","apply","arguments","create_if_not_found","create","exclusive","INIT","download","node","MouseEvent","dispatchEvent","webkitSlice","size","TEMPORARY","fs","root","getDirectory","dir","save","getFile","createWriter","writer","onwriteend","toURL","onerror","error","code","ABORT_ERR","forEach","write","abort","WRITING","NOT_FOUND_ERR","FS_proto","prototype","msSaveOrOpenBlob","onwritestart","onprogress","onwrite","onabort","self","window","content","exports","Error","__webpack_amd_options__","sparqlTabDirective","$rootScope","LocalStorageAdapter","LSKeys","ModalService","restrict","template","replace","controller","$scope","$element","toastr","$translate","getQueryID","element","$","attr","selectTab","id","tab","state","on","e","$broadcast","deleteTab","preventDefault","stopPropagation","tabs","warning","instant","shiftKey","selectedTabId","openSimpleModal","title","message","result","then","filter","obj","set","TABS_STATE","idForDelete","isUndefined","idx","findTabIndexByID","splice","currentQuery","deleteTabByID","find","focus","editCurrentTab","editCurrentlySelectedOnly","$show","$editableButtons","children","addClass","$el","currentTarget","$$currentValue","removeClass","selectThisTab","isTabChangeOk","directive"],"mappings":"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","file":"15.244542a39d9296cc4fd8.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/core/services/repositories.service';\nimport 'angular/rest/sparql.rest.service';\nimport 'angular/core/directives/queryeditor/sparql-tab.directive';\nimport 'angular/core/directives/queryeditor/query-editor.directive';\nimport 'angular/core/directives/queryeditor/query-editor.controller';\nimport 'angular-xeditable/dist/js/xeditable.min';\nimport 'lib/FileSaver-patch';\n\nangular\n .module('graphdb.framework.sparql', [\n 'LocalStorageModule',\n 'xeditable',\n 'ngAnimate',\n 'ngRoute',\n 'toastr',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.rest.sparql.service',\n 'graphdb.framework.core.directives.queryeditor.controllers',\n 'graphdb.framework.core.directives.queryeditor.sparqltab',\n 'graphdb.framework.core.directives.queryeditor.queryeditor'\n ])\n .run(run);\n\nrun.$inject = ['editableOptions'];\n\nfunction run(editableOptions) {\n editableOptions.theme = 'bs3';\n}\n","/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 2015-05-07.2\n *\n * By Eli Grey, http://eligrey.com\n * License: X11/MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t doc = view.document\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, webkit_req_fs = view.webkitRequestFileSystem\n\t\t, req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t, fs_min_size = 0\n\t\t// See https://code.google.com/p/chromium/issues/detail?id=375297#c7 and\n\t\t// https://github.com/eligrey/FileSaver.js/commit/485930a#commitcomment-8768047\n\t\t// for the reasoning behind the timeout and revocation flow\n\t\t, arbitrary_revoke_timeout = 500 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (view.chrome) {\n\t\t\t\trevoker();\n\t\t\t} else {\n\t\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t\t}\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([\"\\ufeff\", blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name) {\n\t\t\tblob = auto_bom(blob);\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, blob_changed = false\n\t\t\t\t, object_url\n\t\t\t\t, target_view\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (blob_changed || !object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (target_view) {\n\t\t\t\t\t\ttarget_view.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar new_tab = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (new_tab == undefined && typeof safari !== \"undefined\") {\n\t\t\t\t\t\t\t//Apple do not allow window.open, see http://bit.ly/1kZffRI\n\t\t\t\t\t\t\tview.location.href = object_url\n\t\t\t\t\t\t} \n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t\t, abortable = function(func) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif (filesaver.readyState !== filesaver.DONE) {\n\t\t\t\t\t\t\treturn func.apply(this, arguments);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t, create_if_not_found = {create: true, exclusive: false}\n\t\t\t\t, slice\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\tif (!name) {\n\t\t\t\tname = \"download\";\n\t\t\t}\n\t\t\tif (save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t//window.open('data:attachment/csv;charset=utf-8,' + object_url);\n\t\t\t\tsave_link.href = object_url;\n\t\t\t\tsave_link.download = name;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Object and web filesystem URLs have a problem saving in Google Chrome when\n\t\t\t// viewed in a tab, so I force save with application/octet-stream\n\t\t\t// http://code.google.com/p/chromium/issues/detail?id=91158\n\t\t\t// Update: Google errantly closed 91158, I submitted it again:\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=389642\n\t\t\tif (view.chrome && type && type !== force_saveable_type) {\n\t\t\t\tslice = blob.slice || blob.webkitSlice;\n\t\t\t\tblob = slice.call(blob, 0, blob.size, force_saveable_type);\n\t\t\t\tblob_changed = true;\n\t\t\t}\n\t\t\t// Since I can't be sure that the guessed media type will trigger a download\n\t\t\t// in WebKit, I append .download to the filename.\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=65440\n\t\t\tif (webkit_req_fs && name !== \"download\") {\n\t\t\t\tname += \".download\";\n\t\t\t}\n\t\t\tif (type === force_saveable_type || webkit_req_fs) {\n\t\t\t\ttarget_view = view;\n\t\t\t}\n\t\t\tif (!req_fs) {\n\t\t\t\tfs_error();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfs_min_size += blob.size;\n\t\t\treq_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) {\n\t\t\t\tfs.root.getDirectory(\"saved\", create_if_not_found, abortable(function(dir) {\n\t\t\t\t\tvar save = function() {\n\t\t\t\t\t\tdir.getFile(name, create_if_not_found, abortable(function(file) {\n\t\t\t\t\t\t\tfile.createWriter(abortable(function(writer) {\n\t\t\t\t\t\t\t\twriter.onwriteend = function(event) {\n\t\t\t\t\t\t\t\t\ttarget_view.location.href = file.toURL();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t\tdispatch(filesaver, \"writeend\", event);\n\t\t\t\t\t\t\t\t\trevoke(file);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\twriter.onerror = function() {\n\t\t\t\t\t\t\t\t\tvar error = writer.error;\n\t\t\t\t\t\t\t\t\tif (error.code !== error.ABORT_ERR) {\n\t\t\t\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\"writestart progress write abort\".split(\" \").forEach(function(event) {\n\t\t\t\t\t\t\t\t\twriter[\"on\" + event] = filesaver[\"on\" + event];\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\twriter.write(blob);\n\t\t\t\t\t\t\t\tfilesaver.abort = function() {\n\t\t\t\t\t\t\t\t\twriter.abort();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.WRITING;\n\t\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t};\n\t\t\t\t\tdir.getFile(name, {create: false}, abortable(function(file) {\n\t\t\t\t\t\t// delete file if it already exists\n\t\t\t\t\t\tfile.remove();\n\t\t\t\t\t\tsave();\n\t\t\t\t\t}), abortable(function(ex) {\n\t\t\t\t\t\tif (ex.code === ex.NOT_FOUND_ERR) {\n\t\t\t\t\t\t\tsave();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}), fs_error);\n\t\t\t}), fs_error);\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name) {\n\t\t\treturn new FileSaver(blob, name);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name) {\n\t\t\treturn navigator.msSaveOrOpenBlob(auto_bom(blob), name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function() {\n\t\tvar filesaver = this;\n\t\tfilesaver.readyState = filesaver.DONE;\n\t\tdispatch(filesaver, \"abort\");\n\t};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd != null)) {\n define([], function() {\n return saveAs;\n });\n}","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","import 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.core.directives.queryeditor.sparqltab', [\n 'graphdb.framework.core',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .directive('sparqlTab', sparqlTabDirective);\n\nsparqlTabDirective.$inject = ['$rootScope', 'LocalStorageAdapter', 'LSKeys', 'ModalService'];\n\nfunction sparqlTabDirective($rootScope, LocalStorageAdapter, LSKeys, ModalService) {\n const SparqlTabCtrl = ['$scope', '$element', '$rootScope', 'ModalService', 'toastr', '$translate', function ($scope, $element, $rootScope, ModalService, toastr, $translate) {\n $scope.state = {};\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabs.length; i++) {\n const tab = $scope.tabs[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $($element).on('shown.bs.tab', function (e) {\n $rootScope.$broadcast('tabAction', e);\n });\n\n $scope.deleteTab = deleteTab;\n $scope.editCurrentTab = editCurrentTab;\n $scope.selectThisTab = selectThisTab;\n\n function selectThisTab(e) {\n e.preventDefault();\n e.stopPropagation();\n if ($scope.isTabChangeOk(false)) {\n $($element).tab('show');\n }\n }\n\n function selectTab(id) {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }\n\n function deleteTab(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if ($scope.tabs.length < 2) {\n toastr.warning($translate.instant('sparql.tab.directive.close.last.warning'));\n return;\n }\n\n if (e.shiftKey) {\n $scope.state.selectedTabId = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('sparql.tab.directive.delete.all.tabs.warning'),\n warning: true\n }).result.then(function () {\n deleteAllTabsExceptSelected($scope.state.selectedTabId);\n });\n } else {\n $scope.state.idForDelete = getQueryID($element);\n\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('sparql.tab.directive.close.tab.warning'),\n warning: true\n }).result.then(function () {\n deleteTabByID($scope.state.idForDelete);\n });\n }\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n\n function editCurrentTab() {\n if (getQueryID($element) !== $scope.currentQuery.id) {\n return;\n }\n $scope.editCurrentlySelectedOnly.$show();\n //fix for buttons for edit\n const $editableButtons = $(\".editable-buttons\");\n $editableButtons.children(\".btn.btn-primary\").addClass('btn-sm');\n $editableButtons.children(\".btn.btn-default\").addClass('btn-sm');\n $('.editable-controls .editable-input').addClass('form-control-sm').on('change', function ($el) {\n $scope.currentQuery.name = $el.currentTarget.$$currentValue;\n });\n //$('.editable-buttons').css('margin-top', '5px');\n //$('.editable-input.editable-has-buttons').css('width', '50%');\n $('.editable-buttons .glyphicon.glyphicon-ok')\n .removeClass('glyphicon glyphicon-ok')\n .addClass('fa fa-check');\n $('.editable-buttons .glyphicon.glyphicon-remove')\n .removeClass('glyphicon glyphicon-remove')\n .addClass('fa fa-close');\n }\n\n function deleteTabByID(id) {\n if (angular.isUndefined(id)) {\n throw 'Delete by id was called with undefined id';\n }\n const idx = findTabIndexByID(id);\n $scope.tabs.splice(idx, 1);\n\n if (id === $scope.currentQuery.id) {\n if ($scope.tabs.length > 0) {\n if (idx > 0) {\n // select previous tab if we deleted any but the first tab\n selectTab($scope.tabs[idx - 1].id);\n } else {\n // select first tab if we deleted the first tab\n selectTab($scope.tabs[0].id);\n }\n }\n }\n }\n\n function deleteAllTabsExceptSelected(id) {\n $scope.tabs = $scope.tabs.filter(function (obj) {\n if (obj.id === id) {\n return obj;\n }\n });\n selectTab($scope.tabs[0].id);\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n $rootScope.$broadcast('deleteAllexeptSelected', $scope.tabs);\n }\n }];\n\n return {\n restrict: 'AE',\n // for some reason when you extract this template in a file and use templateUrl it selects all tabs when editing the tab name, not only the currently selected one\n template: '<a class=\"nav-link\" role=\"tab\" data-toggle=\"tab\" blur=\"submit\" editable-text=\"tab.name\" e-form=\"editCurrentlySelectedOnly\" ng-click=\"selectThisTab($event)\" ng-dblclick=\"editCurrentTab()\" ><span ng-class=\"{\\'text-muted\\': !tab.name}\">{{ tab.name || \\'sparql.tab.directive.unnamed.tab.title\\' | translate}}</span><button type=\"button\" ng-click=\"deleteTab($event)\" class=\"btn btn-link btn-sm secondary delete-sparql-tab-btn\" title=\"Delete tab\"><i class=\"icon-close\"></i></button></a>',\n replace: true,\n controller: SparqlTabCtrl\n };\n}\n"],"sourceRoot":""}
@@ -1,4 +1,4 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[16,49,54,56],{102:function(e,t,n){"use strict";n.r(t);n(4),n(11),n(58),n(95),n(59),n(253),n(258),n(57);angular.module("graphdb.framework.explore",["ngRoute","toastr","xeditable","angucomplete-alt-onto","graphdb.framework.explore.services","graphdb.framework.explore.controllers","graphdb.framework.explore.directives","graphdb.framework.core.directives.fittext"])},258:function(e,t){
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[16,49,54,56],{103:function(e,t,n){"use strict";n.r(t);n(4),n(11),n(58),n(96),n(59),n(253),n(258),n(57);angular.module("graphdb.framework.explore",["ngRoute","toastr","xeditable","angucomplete-alt-onto","graphdb.framework.explore.services","graphdb.framework.explore.controllers","graphdb.framework.explore.directives","graphdb.framework.core.directives.fittext"])},258:function(e,t){
2
2
  /*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */
3
3
  !function(e,t){"use strict";!function(e){e.module("angucomplete-alt-onto",[]).directive("angucompleteAltOnto",["$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope",function(e,t,n,r,l,i,o,a){function u(t,i,o,a){var u,s,c,d,g,p,h=i.find("input"),f=3,m=null,w="autocomplete-required",v=null,b=null,x=i[0].querySelector(".angucomplete-dropdown"),y=!1,S=null;function C(e,n){e&&("object"==typeof e?(t.uri=R(e),M({originalObject:e})):"string"==typeof e&&e.length>0?t.uri=e:console&&console.error&&console.error("Tried to set "+(n?"initial":"")+" value of angucomplete to",e,"which is an invalid value"),F(!0))}function I(e){S=null,t.hideResults(e),document.body.removeEventListener("click",I)}function $(e){return e.which?e.which:e.keyCode}function M(e){"function"==typeof t.selectedObject?t.selectedObject(e):t.selectedObject=e,F(!!e)}function R(e){return t.titleField.split(",").map((function(t){return L(e,t)})).join(" ")}function L(e,t){var n,r;if(t){n=t.split("."),r=e;for(var l=0;l<n.length;l++)r=r[n[l]]}else r=e;return r}function D(e,n){var l,i,o;if(o=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),e)return e.match&&e.replace||(e=e.toString()),l=(i=e.match(o))?e.replace(o,'<span class="'+t.matchClass+'">'+i[0]+"</span>"):e,r.trustAsHtml(l)}function F(e){t.notEmpty=e,v=t.uri,t.fieldRequired&&a&&t.inputName&&a[t.inputName].$setValidity(w,e)}function j(e){!t.overrideSuggestions||t.selectedObject&&t.selectedObject.originalObject===t.uri||(e&&e.preventDefault(),l.cancel(m),H(),M({originalObject:t.uri}),t.clearSelected&&(t.uri=null),z())}function X(){return i[0].querySelectorAll(".angucomplete-row")[t.currentIndex]}function k(e){x.scrollTop=x.scrollTop+e}function U(){var e=t.results[t.currentIndex];if(t.matchClass){var n=R(e.originalObject);n=n.replace(/<b>|<\/b>/g,""),h.val(n)}else h.val(e.title)}function O(e){return function(n,r,l,i){r||l||i||!n.data||(n=n.data),t.searching=!1,B(L(s(n),t.remoteUrlDataField),e)}}function q(e,n,r,l){0!==n&&-1!==n&&(n||r||l||(n=e.status),t.remoteUrlErrorCallback?t.remoteUrlErrorCallback(e,n,r,l):console&&console.error&&console.error("http error"))}function H(){b&&b.resolve()}function T(r){var l={},i=t.remoteUrl+encodeuriComponent(r);t.remoteUrlRequestFormatter&&(l={params:t.remoteUrlRequestFormatter(r)},i=t.remoteUrl),t.remoteUrlRequestWithCredentials&&(l.withCredentials=!0),H(),b=e.defer(),l.timeout=b.promise,n.get(i,l).success(O(r)).error(q)}function N(n){H(),b=e.defer(),t.remoteApiHandler(n,b.promise).then(O(n)).catch(q)}function z(){t.showDropdown=!1,t.results=[],x&&(x.scrollTop=0)}function E(){t.showDropdown=d,t.currentIndex=t.focusFirst?0:-1,t.results=[]}function A(e){!e||e.length<f||(t.localData?t.$apply((function(){var n;n=void 0!==t.localSearch()?t.localSearch()(e):function(e){var n,r,l,i,o=t.searchFields.split(","),a=[];for(void 0!==t.parseInput()&&(e=t.parseInput()(e)),n=0;n<t.localData.length;n++){for(r=!1,l=0;l<o.length;l++)i=L(t.localData[n],o[l])||"",r=r||i.toString().toLowerCase().indexOf(e.toString().toLowerCase())>=0;r&&(a[a.length]=t.localData[n])}return a}(e),t.searching=!1,B(n,e)})):t.remoteApiHandler?N(e):T(e))}function B(e,n){var r,l,i,o,a,u;if(e&&e.length>0)for(t.results=[],r=0;r<e.length;r++)t.titleField&&""!==t.titleField&&(o=a=R(e[r])),l="",t.descriptionField&&(l=u=L(e[r],t.descriptionField)),i="",t.imageField&&(i=L(e[r],t.imageField)),t.matchClass&&(a=D(o,n),u=D(l,n)),t.results[t.results.length]={title:a,description:u,image:i,originalObject:e[r]};else t.results=[];t.autoMatch&&1===t.results.length&&function(e,n,r){if(!r)return!1;for(var l in n)if(n[l].toLowerCase()===r.toLowerCase())return t.selectResult(e),!0;return!1}(t.results[0],{title:o,desc:l||""},t.uri)?t.showDropdown=!1:0!==t.results.length||g?t.showDropdown=!0:t.showDropdown=!1}function V(){t.localData?B(t.localData,""):t.remoteApiHandler?N(""):T("")}i.on("mousedown",(function(e){e.target.id?(S=e.target.id)===t.id+"_dropdown"&&document.body.addEventListener("click",I):S=e.target.className})),t.currentIndex=t.focusFirst?0:null,t.searching=!1,c=t.$watch("initialValue",(function(e){e&&(c(),C(e,!0))})),t.$watch("fieldRequired",(function(e,n){e!==n&&(e?v&&-1!==t.currentIndex?F(!0):F(!1):a[t.inputName].$setValidity(w,!0))})),t.$on("angucomplete-alt:clearInput",(function(e,n){n&&n!==t.id||(t.uri=null,M(),F(!1),z())})),t.$on("angucomplete-alt:changeInput",(function(e,n,r){n&&n===t.id&&C(r)})),t.onFocusHandler=function(){t.focusIn&&t.focusIn(),0!==f||t.uri&&0!==t.uri.length||(t.currentIndex=t.focusFirst?0:t.currentIndex,t.showDropdown=!0,V())},t.hideResults=function(){S&&(S===t.id+"_dropdown"||S.indexOf("angucomplete")>=0)?S=null:(u=l((function(){z(),t.$apply((function(){t.uri&&t.uri.length>0&&h.val(t.uri)}))}),200),H(),t.focusOut&&t.focusOut(),t.overrideSuggestions&&t.uri&&t.uri.length>0&&-1===t.currentIndex&&j())},t.resetHideResults=function(){u&&l.cancel(u)},t.hoverRow=function(e){t.currentIndex=e},t.selectResult=function(e){t.matchClass&&(e.title=R(e.originalObject),"string"==typeof e.title&&(e.title=e.title.replace(/<b>|<\/b>/g,"")),e.description=L(e.originalObject,t.descriptionField)),t.clearSelected?t.uri=null:t.uri=e.title,M(e),z()},t.inputChangeHandler=function(e){return e.length<f?(H(),z()):0===e.length&&0===f&&(t.searching=!1,V()),t.inputChanged&&(e=t.inputChanged(e)),e},t.fieldRequiredClass&&""!==t.fieldRequiredClass&&(w=t.fieldRequiredClass),t.minlength&&""!==t.minlength&&(f=parseInt(t.minlength,10)),t.pause||(t.pause=500),t.clearSelected||(t.clearSelected=!1),t.overrideSuggestions||(t.overrideSuggestions=!1),t.fieldRequired&&a&&(t.initialValue?F(!0):F(!1)),t.inputType=o.type?o.type:"text",t.textSearching=o.textSearching?o.textSearching:"Searching...",t.textNoResults=o.textNoResults?o.textNoResults:"No results found",d="false"!==t.textSearching,g="false"!==t.textNoResults,t.maxlength=o.maxlength?o.maxlength:524288,h.on("keydown",(function(e){var n=$(e),r=null,l=null;13===n&&t.results?(t.currentIndex>=0&&t.currentIndex<t.results.length?(e.preventDefault(),t.selectResult(t.results[t.currentIndex])):(j(e),z()),t.$apply()):40===n&&t.results?(e.preventDefault(),t.currentIndex+1<t.results.length&&t.showDropdown&&(t.$apply((function(){t.currentIndex++,U()})),y&&(r=X(),x.getBoundingClientRect().top+parseInt(getComputedStyle(x).maxHeight,10)<r.getBoundingClientRect().bottom&&k(function(e){var t=getComputedStyle(e);return e.offsetHeight+parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}(r))))):38===n&&t.results?(e.preventDefault(),t.currentIndex>=1?(t.$apply((function(){t.currentIndex--,U()})),y&&(l=X().getBoundingClientRect().top-(x.getBoundingClientRect().top+parseInt(getComputedStyle(x).paddingTop,10)))<0&&k(l-1)):0===t.currentIndex&&t.$apply((function(){t.currentIndex=-1,h.val(t.uri)}))):9===n?t.results&&t.results.length>0&&t.showDropdown?-1===t.currentIndex&&t.overrideSuggestions?j():(-1===t.currentIndex&&(t.currentIndex=0),t.selectResult(t.results[t.currentIndex]),t.$digest()):t.uri&&t.uri.length>0&&j():27===n&&e.preventDefault()})),h.on("keyup",(function(e){var n=$(e);if(37!==n&&39!==n)if(38===n||13===n)e.preventDefault();else if(40===n)e.preventDefault(),!t.showDropdown&&t.uri&&t.uri.length>=f&&(E(),t.searching=!0,A(t.uri));else if(27===n)z(),t.$apply((function(){h.val(t.uri)}));else{if(0===f&&!t.uri)return;t.uri&&""!==t.uri?t.uri.length>=f&&(E(),m&&l.cancel(m),t.searching=!0,m=l((function(){A(t.uri)}),t.pause)):t.showDropdown=!1,v&&v!==t.uri&&!t.clearSelected&&t.$apply((function(){M()}))}})),p="remoteUrlResponseFormatter",s=function(e){return t[p]?t[p](e):e},l((function(){var e=getComputedStyle(x);y=e.maxHeight&&"auto"===e.overflowY}))}return i.put("/angucomplete-alt/index.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}"> <input id="{{id}}_value" name="{{inputName}}" tabindex="{{fieldTabindex}}" ng-class="{\'angucomplete-input-not-empty\': notEmpty}" ng-model="uri" ng-disabled="disableInput" type="{{inputType}}" placeholder="{{placeholder}}" maxlength="{{maxlength}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(uri)" style="overflow: hidden; padding-right: .5em;"/> <div id="{{id}}_dropdown" class="angucomplete-dropdown" ng-show="disableSuggestions && showDropdown"> <div class="angucomplete-searching" ng-show="searching" ng-bind="textSearching"></div> <div class="angucomplete-searching" ng-show="!searching && (!results || results.length == 0)" ng-bind="textNoResults"></div> <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}"> <div ng-if="imageField" class="angucomplete-image-holder"> <img ng-if="result.image && result.image != \'\'" ng-src="{{result.image}}" class="angucomplete-image"/> <div ng-if="!result.image && result.image != \'\'" class="angucomplete-image-default"></div> </div> <div class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></div> <div class="angucomplete-title" ng-if="!matchClass">{{ result.title }}</div> <div ng-if="matchClass && result.description && result.description != \'\'" class="angucomplete-description" ng-bind-html="result.description"></div> <div ng-if="!matchClass && result.description && result.description != \'\'" class="angucomplete-description">{{result.description}}</div> </div> </div></div>'),{restrict:"EA",require:"^?form",scope:{selectedObject:"=",disableInput:"=",disableSuggestions:"=",initialValue:"=",localData:"=",localSearch:"&",remoteUrlRequestFormatter:"=",remoteUrlRequestWithCredentials:"@",remoteUrlResponseFormatter:"=",remoteUrlErrorCallback:"=",remoteApiHandler:"=",id:"@",type:"@",placeholder:"@",remoteUrl:"@",remoteUrlDataField:"@",titleField:"@",descriptionField:"@",imageField:"@",inputClass:"@",pause:"@",searchFields:"@",minlength:"@",matchClass:"@",clearSelected:"@",overrideSuggestions:"@",fieldRequired:"=",fieldRequiredClass:"@",inputChanged:"=",autoMatch:"@",focusOut:"&",focusIn:"&",fieldTabindex:"@",inputName:"@",focusFirst:"@",parseInput:"&"},templateUrl:function(e,t){return t.templateUrl||"/angucomplete-alt/index.html"},compile:function(e){var t=o.startSymbol(),n=o.endSymbol();if("{{"!==t||"}}"!==n){var r=e.html().replace(/\{\{/g,t).replace(/\}\}/g,n);e.html(r)}return u}}}])}(window.angular)}()},57:function(e,t){function n(e){return{restrict:"A",scope:{min:"=",max:"="},link:function(t,n,r){const l={debounce:_.debounce,delay:100,loadDelay:10,compressor:1,min:r.fitTextMin||"inherit",max:r.fitTextMax||"inherit",calcSize:10,lines:1},i=n.parent(),o=n[0],a=o.style,u=window.getComputedStyle(n[0],null),s=n.children().length||l.lines,c="inherit"===l.min?u["font-size"]:l.min,d="inherit"===l.max?u["font-size"]:l.max,g=u["line-height"],p=u.display;let h;function f(){const e=l.calcSize*s/o.offsetWidth/s;return Math.max(Math.min(function(e){const t=parseFloat(getComputedStyle(i[0]).paddingLeft),n=parseFloat(getComputedStyle(i[0]).paddingRight);return(i[0].offsetWidth-(t+n))*e*l.compressor}(e),parseFloat(d)),parseFloat(c))}function m(){h&&e.cancel(h),h=e((function(){o.offsetHeight*o.offsetWidth!=0&&(a.fontSize=l.calcSize+"px",a.lineHeight="1",a.display="inline-block",a.fontSize=f()+"px",a.lineHeight=g,a.display=p)}),l.loadDelay)}t.$watch((function(){return[i[0].offsetWidth,n[0].offsetWidth].join("_")}),(function(){m()})),$(window).on("resize",l.debounce((function(){t.$apply(m)}),l.delay)),t.$on("$destroy",(function(){h&&e.cancel(h),$(window).off("resize")}))}}}angular.module("graphdb.framework.core.directives.fittext",[]).directive("fitText",n),n.$inject=["$timeout"]},58:function(e,t){function n(){return{transformToTrig:function(e){let t="";const n={};for(let t=0;t<e.length;t++){const r=e[t];if(void 0===r.context?r.context="":r.context=_.trim(r.context),angular.isUndefined(n[r.context])){const e=[];e.push(r),n[r.context]=e}else n[r.context].push(r)}const r=Object.keys(n);for(let e=0;e<r.length;e++){const l=r[e];t+=""===l?"\n{":"\n<"+l+"> {";const i=n[l];for(let e=0;e<i.length;e++){const n=i[e];t+="\n\t<"+n.subject+"> <"+n.predicate+"> ","uri"===n.object.type?t+="<"+n.object.value+"> .":t+='"""'+n.object.value+'"""'+(n.object.datatype?"^^<"+n.object.datatype+">":n.object.lang?"@"+n.object.lang:"")+" ."}t+="\n}"}return t},buildStatements:function(e,t){const n=[];if(!_.isEmpty(e.data)){const r=e.data[t],l=Object.keys(r);for(let e=0;e<l.length;e++){const i=l[e],o=r[i];for(let e=0;e<o.length;e++){const r=o[e];for(let e=0;e<r.graphs.length;e++){let l=r.graphs[e];"http://www.ontotext.com/explicit"===l&&(l=""),r.lang&&(r.datatype=""),r.datatype||(r.datatype=""),n.push({subject:t,predicate:i,object:{value:r.value,type:r.type,datatype:r.datatype,lang:r.lang},context:l})}}}}return n},getDatatypeOptions:function(){return[{value:"",label:"string"},{value:"http://www.w3.org/2001/XMLSchema#boolean",label:"boolean"},{value:"http://www.w3.org/2001/XMLSchema#decimal",label:"decimal"},{value:"http://www.w3.org/2001/XMLSchema#integer",label:"integer"},{value:"http://www.w3.org/2001/XMLSchema#double",label:"double"},{value:"http://www.w3.org/2001/XMLSchema#float",label:"float"},{value:"http://www.w3.org/2001/XMLSchema#date",label:"date"},{value:"http://www.w3.org/2001/XMLSchema#time",label:"time"},{value:"http://www.w3.org/2001/XMLSchema#dateTime",label:"date time"},{value:"http://www.w3.org/2001/XMLSchema#byte",label:"byte"},{value:"http://www.w3.org/2001/XMLSchema#short",label:"short"},{value:"http://www.w3.org/2001/XMLSchema#int",label:"int"},{value:"http://www.w3.org/2001/XMLSchema#long",label:"long"},{value:"http://www.w3.org/2001/XMLSchema#unsignedByte",label:"unsigned byte"},{value:"http://www.w3.org/2001/XMLSchema#unsignedShort",label:"unsigned short"},{value:"http://www.w3.org/2001/XMLSchema#unsignedInt",label:"unsigned int"},{value:"http://www.w3.org/2001/XMLSchema#unsignedLong",label:"unsigned long"},{value:"http://www.w3.org/2001/XMLSchema#positoveInteger",label:"positive integer"},{value:"http://www.w3.org/2001/XMLSchema#nonNegativeInteger",label:"non-negative integer"},{value:"http://www.w3.org/2001/XMLSchema#negativeInteger",label:"negative integer"},{value:"http://www.w3.org/2001/XMLSchema#nonPositiveInteger",label:"non-positive integer"},{value:"http://www.w3.org/2001/XMLSchema#gYear",label:"gYear"},{value:"http://www.w3.org/2001/XMLSchema#gMonth",label:"gMonth"},{value:"http://www.w3.org/2001/XMLSchema#gDay",label:"gDay"},{value:"http://www.w3.org/2001/XMLSchema#gYearMonth",label:"gYearMonth"},{value:"http://www.w3.org/2001/XMLSchema#gMonthDay",label:"gMonthDay"},{value:"http://www.w3.org/2001/XMLSchema#duration",label:"duration"},{value:"http://www.w3.org/2001/XMLSchema#hexBinary",label:"hex binary"},{value:"http://www.w3.org/2001/XMLSchema#base64Binary",label:"base64 binary"}]}}}angular.module("graphdb.framework.explore.services",[]).factory("StatementsService",n),n.$inject=[]},59:function(e,t,n){"use strict";n.r(t);n(13);angular.module("graphdb.framework.explore.directives",["graphdb.framework.utils.uriutils"]).directive("uri",["UriUtils",function(e){return{require:"ngModel",link:function(t,n,r,l){l.$parsers.unshift((function(t){if(!angular.isUndefined(t)&&t.length>0){const n=e.validateRdfUri(t);return l.$setValidity("searchStr",n),n?t:void 0}return l.$setValidity("searchStr",!0),t})),l.$formatters.unshift((function(t){return angular.isUndefined(t)||l.$setValidity("searchStr",e.validateRdfUri),t}))}}}])}}]);
4
- //# sourceMappingURL=16.23e12f234078c8777ed0.bundle.js.map
4
+ //# sourceMappingURL=16.3b52e17f123523d84054.bundle.js.map