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
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/explore/app.js","webpack:///./src/js/lib/angucomplete-alt/angucomplete-alt-onto.min.js","webpack:///./src/js/angular/core/directives/fit-text.directive.js","webpack:///./src/js/angular/explore/statements.service.js","webpack:///./src/js/angular/explore/directives.js"],"names":["angular","module","root","factory","directive","$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope","link","scope","elem","attrs","ctrl","hideTimer","responseFormatter","unbindInitialValue","displaySearching","displayNoResults","fn","inputField","find","minlength","searchTimer","requiredClassName","validState","httpCanceller","dd","querySelector","isScrollOn","mousedownOn","handleInputChange","newval","initial","uri","extractTitle","callOrAssign","originalObject","length","console","error","handleRequired","clickoutHandlerForDropdown","event","hideResults","document","body","removeEventListener","ie8EventNormalizer","which","keyCode","value","selectedObject","data","titleField","split","map","field","extractValue","join","obj","key","keys","result","i","findMatchString","target","str","matches","re","RegExp","replace","match","toString","matchClass","trustAsHtml","valid","notEmpty","fieldRequired","inputName","$setValidity","handleOverrideSuggestions","overrideSuggestions","preventDefault","cancel","cancelHttpRequest","clearSelected","clearResults","dropdownRow","querySelectorAll","currentIndex","dropdownScrollTopTo","offset","scrollTop","updateInputField","current","results","extractedTitle","val","title","httpSuccessCallbackGen","responseData","status","headers","config","searching","processResults","remoteUrlDataField","httpErrorCallback","errorRes","remoteUrlErrorCallback","resolve","getRemoteResults","params","url","remoteUrl","encodeuriComponent","remoteUrlRequestFormatter","remoteUrlRequestWithCredentials","withCredentials","defer","timeout","promise","get","success","getRemoteResultsWithCustomHandler","remoteApiHandler","then","catch","showDropdown","initResults","focusFirst","searchTimerComplete","localData","$apply","localSearch","s","searchFields","parseInput","toLowerCase","indexOf","getLocalResults","description","image","text","formattedText","formattedDesc","descriptionField","imageField","autoMatch","selectResult","checkExactMatch","desc","showAll","on","id","addEventListener","className","$watch","oldval","$on","elementId","onFocusHandler","focusIn","focusOut","resetHideResults","hoverRow","index","inputChangeHandler","inputChanged","fieldRequiredClass","parseInt","pause","initialValue","inputType","type","textSearching","textNoResults","maxlength","row","rowTop","getBoundingClientRect","top","getComputedStyle","maxHeight","bottom","css","offsetHeight","marginTop","marginBottom","dropdownRowOffsetHeight","paddingTop","$digest","overflowY","put","restrict","require","disableInput","disableSuggestions","remoteUrlResponseFormatter","placeholder","inputClass","fieldTabindex","templateUrl","element","compile","tElement","startSym","startSymbol","endSym","endSymbol","interpolatedHtml","html","window","fitTextDirective","min","max","_","debounce","fitTextMin","fitTextMax","parent","domElem","domElemStyle","style","computed","newlines","children","lines","minFontSize","maxFontSize","lineHeight","display","resizePromise","calculate","ratio","calcSize","offsetWidth","Math","paddingLeft","parseFloat","paddingRight","compressor","getMaxFontSize","resizer","fontSize","loadDelay","$","delay","off","$inject","StatementsService","transformToTrig","statements","contexts","statement","undefined","context","trim","isUndefined","cstatement","push","ckeys","Object","j","subject","predicate","object","datatype","lang","buildStatements","res","isEmpty","graph","predicates","objects","k","graphs","getDatatypeOptions","label","UriUtils","attr","ngModel","$parsers","unshift","isValidUri","validateRdfUri","$formatters"],"mappings":"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","file":"16.23e12f234078c8777ed0.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/explore/statements.service';\nimport 'angular/explore/controllers';\nimport 'angular/explore/directives';\nimport 'angular-xeditable/dist/js/xeditable.min';\nimport 'lib/angucomplete-alt/angucomplete-alt-onto.min';\nimport 'angular/core/directives/fit-text.directive';\n\nconst modules = [\n 'ngRoute',\n 'toastr',\n 'xeditable',\n 'angucomplete-alt-onto',\n 'graphdb.framework.explore.services',\n 'graphdb.framework.explore.controllers',\n 'graphdb.framework.explore.directives',\n 'graphdb.framework.core.directives.fittext'\n];\n\nangular.module('graphdb.framework.explore', modules);\n","/*\n * angucomplete-alt\n * Autocomplete directive for AngularJS\n * This is a fork of Daryl Rowland's angucomplete with some extra features.\n * By Hidenari Nozaki\n */\n\n/*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */\n\n(function (root, factory) {\n 'use strict';\n// if (typeof module !== 'undefined' && module.exports) {\n// // CommonJS\n// module.exports = factory(require('angular'));\n// } else if (typeof define === 'function' && define.amd) {\n// // AMD\n// define(['angular'], factory);\n// } else {\n// // Global Variables\n factory(root.angular);\n// }\n}(window, function (angular) {\n 'use strict';\n\n angular.module('angucomplete-alt-onto', []).directive('angucompleteAltOnto', ['$q', '$parse', '$http', '$sce', '$timeout', '$templateCache', '$interpolate', '$rootScope', function ($q, $parse, $http, $sce, $timeout, $templateCache, $interpolate, $rootScope) {\n // keyboard events\n var KEY_DW = 40;\n var KEY_RT = 39;\n var KEY_UP = 38;\n var KEY_LF = 37;\n var KEY_ES = 27;\n var KEY_EN = 13;\n var KEY_TAB = 9;\n\n var MIN_LENGTH = 3;\n var MAX_LENGTH = 524288; // the default max length per the html maxlength attribute\n var PAUSE = 500;\n var BLUR_TIMEOUT = 200;\n\n // string constants\n var REQUIRED_CLASS = 'autocomplete-required';\n var TEXT_SEARCHING = 'Searching...';\n var TEXT_NORESULTS = 'No results found';\n var TEMPLATE_URL = '/angucomplete-alt/index.html';\n\n // Set the default template for this directive\n $templateCache.put(TEMPLATE_URL,\n '<div class=\"angucomplete-holder\" ng-class=\"{\\'angucomplete-dropdown-visible\\': showDropdown}\">' +\n ' <input id=\"{{id}}_value\" name=\"{{inputName}}\" tabindex=\"{{fieldTabindex}}\" ng-class=\"{\\'angucomplete-input-not-empty\\': notEmpty}\" ng-model=\"uri\" ng-disabled=\"disableInput\" type=\"{{inputType}}\" placeholder=\"{{placeholder}}\" maxlength=\"{{maxlength}}\" ng-focus=\"onFocusHandler()\" class=\"{{inputClass}}\" ng-focus=\"resetHideResults()\" ng-blur=\"hideResults($event)\" autocapitalize=\"off\" autocorrect=\"off\" autocomplete=\"off\" ng-change=\"inputChangeHandler(uri)\" style=\"overflow: hidden; padding-right: .5em;\"/>' +\n ' <div id=\"{{id}}_dropdown\" class=\"angucomplete-dropdown\" ng-show=\"disableSuggestions && showDropdown\">' +\n ' <div class=\"angucomplete-searching\" ng-show=\"searching\" ng-bind=\"textSearching\"></div>' +\n ' <div class=\"angucomplete-searching\" ng-show=\"!searching && (!results || results.length == 0)\" ng-bind=\"textNoResults\"></div>' +\n ' <div class=\"angucomplete-row\" ng-repeat=\"result in results\" ng-click=\"selectResult(result)\" ng-mouseenter=\"hoverRow($index)\" ng-class=\"{\\'angucomplete-selected-row\\': $index == currentIndex}\">' +\n ' <div ng-if=\"imageField\" class=\"angucomplete-image-holder\">' +\n ' <img ng-if=\"result.image && result.image != \\'\\'\" ng-src=\"{{result.image}}\" class=\"angucomplete-image\"/>' +\n ' <div ng-if=\"!result.image && result.image != \\'\\'\" class=\"angucomplete-image-default\"></div>' +\n ' </div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"matchClass\" ng-bind-html=\"result.title\"></div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"!matchClass\">{{ result.title }}</div>' +\n ' <div ng-if=\"matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\" ng-bind-html=\"result.description\"></div>' +\n ' <div ng-if=\"!matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\">{{result.description}}</div>' +\n ' </div>' +\n ' </div>' +\n '</div>'\n );\n\n function link(scope, elem, attrs, ctrl) {\n var inputField = elem.find('input');\n var minlength = MIN_LENGTH;\n var searchTimer = null;\n var hideTimer;\n var requiredClassName = REQUIRED_CLASS;\n var responseFormatter;\n var validState = null;\n var httpCanceller = null;\n var dd = elem[0].querySelector('.angucomplete-dropdown');\n var isScrollOn = false;\n var mousedownOn = null;\n var unbindInitialValue;\n var displaySearching;\n var displayNoResults;\n\n\n elem.on('mousedown', function(event) {\n if (event.target.id) {\n mousedownOn = event.target.id;\n if (mousedownOn === scope.id + '_dropdown') {\n document.body.addEventListener('click', clickoutHandlerForDropdown);\n }\n }\n else {\n mousedownOn = event.target.className;\n }\n });\n\n scope.currentIndex = scope.focusFirst ? 0 : null;\n scope.searching = false;\n unbindInitialValue = scope.$watch('initialValue', function(newval) {\n if (newval) {\n // remove scope listener\n unbindInitialValue();\n // change input\n handleInputChange(newval, true);\n }\n });\n\n scope.$watch('fieldRequired', function(newval, oldval) {\n if (newval !== oldval) {\n if (!newval) {\n ctrl[scope.inputName].$setValidity(requiredClassName, true);\n }\n else if (!validState || scope.currentIndex === -1) {\n handleRequired(false);\n }\n else {\n handleRequired(true);\n }\n }\n });\n\n scope.$on('angucomplete-alt:clearInput', function (event, elementId) {\n if (!elementId || elementId === scope.id) {\n scope.uri = null;\n callOrAssign();\n handleRequired(false);\n clearResults();\n }\n });\n\n scope.$on('angucomplete-alt:changeInput', function (event, elementId, newval) {\n if (!!elementId && elementId === scope.id) {\n handleInputChange(newval);\n }\n });\n\n function handleInputChange(newval, initial) {\n if (newval) {\n if (typeof newval === 'object') {\n scope.uri = extractTitle(newval);\n callOrAssign({originalObject: newval});\n } else if (typeof newval === 'string' && newval.length > 0) {\n scope.uri = newval;\n } else {\n if (console && console.error) {\n console.error('Tried to set ' + (!!initial ? 'initial' : '') + ' value of angucomplete to', newval, 'which is an invalid value');\n }\n }\n\n handleRequired(true);\n }\n }\n\n // #194 dropdown list not consistent in collapsing (bug).\n function clickoutHandlerForDropdown(event) {\n mousedownOn = null;\n scope.hideResults(event);\n document.body.removeEventListener('click', clickoutHandlerForDropdown);\n }\n\n // for IE8 quirkiness about event.which\n function ie8EventNormalizer(event) {\n return event.which ? event.which : event.keyCode;\n }\n\n function callOrAssign(value) {\n if (typeof scope.selectedObject === 'function') {\n scope.selectedObject(value);\n }\n else {\n scope.selectedObject = value;\n }\n\n if (value) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n function callFunctionOrIdentity(fn) {\n return function(data) {\n return scope[fn] ? scope[fn](data) : data;\n };\n }\n\n function setInputString(str) {\n callOrAssign({originalObject: str});\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n clearResults();\n }\n\n function extractTitle(data) {\n // split title fields and run extractValue for each and join with ' '\n return scope.titleField.split(',')\n .map(function(field) {\n return extractValue(data, field);\n })\n .join(' ');\n }\n\n function extractValue(obj, key) {\n var keys, result;\n if (key) {\n keys= key.split('.');\n result = obj;\n for (var i = 0; i < keys.length; i++) {\n result = result[keys[i]];\n }\n }\n else {\n result = obj;\n }\n\n return result;\n }\n\n function findMatchString(target, str) {\n var result, matches, re;\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n // Escape user input to be treated as a literal string within a regular expression\n re = new RegExp(str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i');\n if (!target) { return; }\n if (!target.match || !target.replace) { target = target.toString(); }\n matches = target.match(re);\n if (matches) {\n result = target.replace(re,\n '<span class=\"'+ scope.matchClass +'\">'+ matches[0] +'</span>');\n }\n else {\n result = target;\n }\n return $sce.trustAsHtml(result);\n }\n\n function handleRequired(valid) {\n scope.notEmpty = valid;\n validState = scope.uri;\n if (scope.fieldRequired && ctrl && scope.inputName) {\n ctrl[scope.inputName].$setValidity(requiredClassName, valid);\n }\n }\n\n function keyupHandler(event) {\n var which = ie8EventNormalizer(event);\n if (which === KEY_LF || which === KEY_RT) {\n // do nothing\n return;\n }\n\n if (which === KEY_UP || which === KEY_EN) {\n event.preventDefault();\n }\n else if (which === KEY_DW) {\n event.preventDefault();\n if (!scope.showDropdown && scope.uri && scope.uri.length >= minlength) {\n initResults();\n scope.searching = true;\n searchTimerComplete(scope.uri);\n }\n }\n else if (which === KEY_ES) {\n clearResults();\n scope.$apply(function() {\n inputField.val(scope.uri);\n });\n }\n else {\n if (minlength === 0 && !scope.uri) {\n return;\n }\n\n if (!scope.uri || scope.uri === '') {\n scope.showDropdown = false;\n } else if (scope.uri.length >= minlength) {\n initResults();\n\n if (searchTimer) {\n $timeout.cancel(searchTimer);\n }\n\n scope.searching = true;\n\n searchTimer = $timeout(function() {\n searchTimerComplete(scope.uri);\n }, scope.pause);\n }\n\n if (validState && validState !== scope.uri && !scope.clearSelected) {\n scope.$apply(function() {\n callOrAssign();\n });\n }\n }\n }\n\n function handleOverrideSuggestions(event) {\n if (scope.overrideSuggestions &&\n !(scope.selectedObject && scope.selectedObject.originalObject === scope.uri)) {\n if (event) {\n event.preventDefault();\n }\n\n // cancel search timer\n $timeout.cancel(searchTimer);\n // cancel http request\n cancelHttpRequest();\n\n setInputString(scope.uri);\n }\n }\n\n function dropdownRowOffsetHeight(row) {\n var css = getComputedStyle(row);\n return row.offsetHeight +\n parseInt(css.marginTop, 10) + parseInt(css.marginBottom, 10);\n }\n\n function dropdownHeight() {\n return dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).maxHeight, 10);\n }\n\n function dropdownRow() {\n return elem[0].querySelectorAll('.angucomplete-row')[scope.currentIndex];\n }\n\n function dropdownRowTop() {\n return dropdownRow().getBoundingClientRect().top -\n (dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).paddingTop, 10));\n }\n\n function dropdownScrollTopTo(offset) {\n dd.scrollTop = dd.scrollTop + offset;\n }\n\n function updateInputField(){\n var current = scope.results[scope.currentIndex];\n if (scope.matchClass) {\n var extractedTitle = extractTitle(current.originalObject);\n extractedTitle = extractedTitle.replace(/<b>|<\\/b>/g, \"\");\n inputField.val(extractedTitle);\n }\n else {\n inputField.val(current.title);\n }\n }\n\n function keydownHandler(event) {\n var which = ie8EventNormalizer(event);\n var row = null;\n var rowTop = null;\n\n if (which === KEY_EN && scope.results) {\n if (scope.currentIndex >= 0 && scope.currentIndex < scope.results.length) {\n event.preventDefault();\n scope.selectResult(scope.results[scope.currentIndex]);\n } else {\n handleOverrideSuggestions(event);\n clearResults();\n }\n scope.$apply();\n } else if (which === KEY_DW && scope.results) {\n event.preventDefault();\n if ((scope.currentIndex + 1) < scope.results.length && scope.showDropdown) {\n scope.$apply(function() {\n scope.currentIndex ++;\n updateInputField();\n });\n\n if (isScrollOn) {\n row = dropdownRow();\n if (dropdownHeight() < row.getBoundingClientRect().bottom) {\n dropdownScrollTopTo(dropdownRowOffsetHeight(row));\n }\n }\n }\n } else if (which === KEY_UP && scope.results) {\n event.preventDefault();\n if (scope.currentIndex >= 1) {\n scope.$apply(function() {\n scope.currentIndex --;\n updateInputField();\n });\n\n if (isScrollOn) {\n rowTop = dropdownRowTop();\n if (rowTop < 0) {\n dropdownScrollTopTo(rowTop - 1);\n }\n }\n }\n else if (scope.currentIndex === 0) {\n scope.$apply(function() {\n scope.currentIndex = -1;\n inputField.val(scope.uri);\n });\n }\n } else if (which === KEY_TAB) {\n if (scope.results && scope.results.length > 0 && scope.showDropdown) {\n if (scope.currentIndex === -1 && scope.overrideSuggestions) {\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n handleOverrideSuggestions();\n }\n else {\n if (scope.currentIndex === -1) {\n scope.currentIndex = 0;\n }\n scope.selectResult(scope.results[scope.currentIndex]);\n scope.$digest();\n }\n }\n else {\n // no results\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n if (scope.uri && scope.uri.length > 0) {\n handleOverrideSuggestions();\n }\n }\n } else if (which === KEY_ES) {\n // This is very specific to IE10/11 #272\n // without this, IE clears the input text\n event.preventDefault();\n }\n }\n\n function httpSuccessCallbackGen(str) {\n return function(responseData, status, headers, config) {\n // normalize return obejct from promise\n if (!status && !headers && !config && responseData.data) {\n responseData = responseData.data;\n }\n scope.searching = false;\n processResults(extractValue(responseFormatter(responseData), scope.remoteUrlDataField), str);\n };\n }\n\n function httpErrorCallback(errorRes, status, headers, config) {\n // cancelled/aborted\n if (status === 0 || status === -1) { return; }\n\n // normalize return obejct from promise\n if (!status && !headers && !config) {\n status = errorRes.status;\n }\n if (scope.remoteUrlErrorCallback) {\n scope.remoteUrlErrorCallback(errorRes, status, headers, config);\n }\n else {\n if (console && console.error) {\n console.error('http error');\n }\n }\n }\n\n function cancelHttpRequest() {\n if (httpCanceller) {\n httpCanceller.resolve();\n }\n }\n\n function getRemoteResults(str) {\n var params = {},\n url = scope.remoteUrl + encodeuriComponent(str);\n if (scope.remoteUrlRequestFormatter) {\n params = {params: scope.remoteUrlRequestFormatter(str)};\n url = scope.remoteUrl;\n }\n if (!!scope.remoteUrlRequestWithCredentials) {\n params.withCredentials = true;\n }\n cancelHttpRequest();\n httpCanceller = $q.defer();\n params.timeout = httpCanceller.promise;\n $http.get(url, params)\n .success(httpSuccessCallbackGen(str))\n .error(httpErrorCallback);\n }\n\n function getRemoteResultsWithCustomHandler(str) {\n cancelHttpRequest();\n\n httpCanceller = $q.defer();\n\n scope.remoteApiHandler(str, httpCanceller.promise)\n .then(httpSuccessCallbackGen(str))\n .catch(httpErrorCallback);\n\n /* IE8 compatible\n scope.remoteApiHandler(str, httpCanceller.promise)\n ['then'](httpSuccessCallbackGen(str))\n ['catch'](httpErrorCallback);\n */\n }\n\n function clearResults() {\n scope.showDropdown = false;\n scope.results = [];\n if (dd) {\n dd.scrollTop = 0;\n }\n }\n\n function initResults() {\n scope.showDropdown = displaySearching;\n scope.currentIndex = scope.focusFirst ? 0 : -1;\n scope.results = [];\n }\n\n function getLocalResults(str) {\n var i, match, s, value,\n searchFields = scope.searchFields.split(','),\n matches = [];\n if (typeof scope.parseInput() !== 'undefined') {\n str = scope.parseInput()(str);\n }\n for (i = 0; i < scope.localData.length; i++) {\n match = false;\n\n for (s = 0; s < searchFields.length; s++) {\n value = extractValue(scope.localData[i], searchFields[s]) || '';\n match = match || (value.toString().toLowerCase().indexOf(str.toString().toLowerCase()) >= 0);\n }\n\n if (match) {\n matches[matches.length] = scope.localData[i];\n }\n }\n return matches;\n }\n\n function checkExactMatch(result, obj, str){\n if (!str) { return false; }\n for(var key in obj){\n if(obj[key].toLowerCase() === str.toLowerCase()){\n scope.selectResult(result);\n return true;\n }\n }\n return false;\n }\n\n function searchTimerComplete(str) {\n // Begin the search\n if (!str || str.length < minlength) {\n return;\n }\n if (scope.localData) {\n scope.$apply(function() {\n var matches;\n if (typeof scope.localSearch() !== 'undefined') {\n matches = scope.localSearch()(str);\n } else {\n matches = getLocalResults(str);\n }\n scope.searching = false;\n processResults(matches, str);\n });\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler(str);\n } else {\n getRemoteResults(str);\n }\n }\n\n function processResults(responseData, str) {\n var i, description, image, text, formattedText, formattedDesc;\n\n if (responseData && responseData.length > 0) {\n scope.results = [];\n\n for (i = 0; i < responseData.length; i++) {\n if (scope.titleField && scope.titleField !== '') {\n text = formattedText = extractTitle(responseData[i]);\n }\n\n description = '';\n if (scope.descriptionField) {\n description = formattedDesc = extractValue(responseData[i], scope.descriptionField);\n }\n\n image = '';\n if (scope.imageField) {\n image = extractValue(responseData[i], scope.imageField);\n }\n\n if (scope.matchClass) {\n formattedText = findMatchString(text, str);\n formattedDesc = findMatchString(description, str);\n }\n\n scope.results[scope.results.length] = {\n title: formattedText,\n description: formattedDesc,\n image: image,\n originalObject: responseData[i]\n };\n }\n\n } else {\n scope.results = [];\n }\n\n if (scope.autoMatch && scope.results.length === 1 &&\n checkExactMatch(scope.results[0],\n {title: text, desc: description || ''}, scope.uri)) {\n scope.showDropdown = false;\n } else if (scope.results.length === 0 && !displayNoResults) {\n scope.showDropdown = false;\n } else {\n scope.showDropdown = true;\n }\n }\n\n function showAll() {\n if (scope.localData) {\n processResults(scope.localData, '');\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler('');\n }\n else {\n getRemoteResults('');\n }\n }\n\n scope.onFocusHandler = function() {\n if (scope.focusIn) {\n scope.focusIn();\n }\n if (minlength === 0 && (!scope.uri || scope.uri.length === 0)) {\n scope.currentIndex = scope.focusFirst ? 0 : scope.currentIndex;\n scope.showDropdown = true;\n showAll();\n }\n };\n\n scope.hideResults = function() {\n if (mousedownOn &&\n (mousedownOn === scope.id + '_dropdown' ||\n mousedownOn.indexOf('angucomplete') >= 0)) {\n mousedownOn = null;\n }\n else {\n hideTimer = $timeout(function() {\n clearResults();\n scope.$apply(function() {\n if (scope.uri && scope.uri.length > 0) {\n inputField.val(scope.uri);\n }\n });\n }, BLUR_TIMEOUT);\n cancelHttpRequest();\n\n if (scope.focusOut) {\n scope.focusOut();\n }\n\n if (scope.overrideSuggestions) {\n if (scope.uri && scope.uri.length > 0 && scope.currentIndex === -1) {\n handleOverrideSuggestions();\n }\n }\n }\n };\n\n scope.resetHideResults = function() {\n if (hideTimer) {\n $timeout.cancel(hideTimer);\n }\n };\n\n scope.hoverRow = function(index) {\n scope.currentIndex = index;\n };\n\n scope.selectResult = function(result) {\n // Restore original values\n if (scope.matchClass) {\n result.title = extractTitle(result.originalObject);\n if (typeof result.title === \"string\") {\n result.title = result.title.replace(/<b>|<\\/b>/g, \"\");\n }\n result.description = extractValue(result.originalObject, scope.descriptionField);\n }\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n else {\n scope.uri = result.title;\n }\n callOrAssign(result);\n clearResults();\n };\n\n scope.inputChangeHandler = function(str) {\n if (str.length < minlength) {\n cancelHttpRequest();\n clearResults();\n }\n else if (str.length === 0 && minlength === 0) {\n scope.searching = false;\n showAll();\n }\n\n if (scope.inputChanged) {\n str = scope.inputChanged(str);\n }\n return str;\n };\n\n // check required\n if (scope.fieldRequiredClass && scope.fieldRequiredClass !== '') {\n requiredClassName = scope.fieldRequiredClass;\n }\n\n // check min length\n if (scope.minlength && scope.minlength !== '') {\n minlength = parseInt(scope.minlength, 10);\n }\n\n // check pause time\n if (!scope.pause) {\n scope.pause = PAUSE;\n }\n\n // check clearSelected\n if (!scope.clearSelected) {\n scope.clearSelected = false;\n }\n\n // check override suggestions\n if (!scope.overrideSuggestions) {\n scope.overrideSuggestions = false;\n }\n\n // check required field\n if (scope.fieldRequired && ctrl) {\n // check initial value, if given, set validitity to true\n if (scope.initialValue) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n scope.inputType = attrs.type ? attrs.type : 'text';\n\n // set strings for \"Searching...\" and \"No results\"\n scope.textSearching = attrs.textSearching ? attrs.textSearching : TEXT_SEARCHING;\n scope.textNoResults = attrs.textNoResults ? attrs.textNoResults : TEXT_NORESULTS;\n displaySearching = scope.textSearching === 'false' ? false : true;\n displayNoResults = scope.textNoResults === 'false' ? false : true;\n\n // set max length (default to maxlength deault from html\n scope.maxlength = attrs.maxlength ? attrs.maxlength : MAX_LENGTH;\n\n // register events\n inputField.on('keydown', keydownHandler);\n inputField.on('keyup', keyupHandler);\n\n // set response formatter\n responseFormatter = callFunctionOrIdentity('remoteUrlResponseFormatter');\n\n // set isScrollOn\n $timeout(function() {\n var css = getComputedStyle(dd);\n isScrollOn = css.maxHeight && css.overflowY === 'auto';\n });\n }\n\n return {\n restrict: 'EA',\n require: '^?form',\n scope: {\n selectedObject: '=',\n disableInput: '=',\n disableSuggestions: '=',\n initialValue: '=',\n localData: '=',\n localSearch: '&',\n remoteUrlRequestFormatter: '=',\n remoteUrlRequestWithCredentials: '@',\n remoteUrlResponseFormatter: '=',\n remoteUrlErrorCallback: '=',\n remoteApiHandler: '=',\n id: '@',\n type: '@',\n placeholder: '@',\n remoteUrl: '@',\n remoteUrlDataField: '@',\n titleField: '@',\n descriptionField: '@',\n imageField: '@',\n inputClass: '@',\n pause: '@',\n searchFields: '@',\n minlength: '@',\n matchClass: '@',\n clearSelected: '@',\n overrideSuggestions: '@',\n fieldRequired: '=',\n fieldRequiredClass: '@',\n inputChanged: '=',\n autoMatch: '@',\n focusOut: '&',\n focusIn: '&',\n fieldTabindex: '@',\n inputName: '@',\n focusFirst: '@',\n parseInput: '&'\n },\n templateUrl: function(element, attrs) {\n return attrs.templateUrl || TEMPLATE_URL;\n },\n compile: function(tElement) {\n var startSym = $interpolate.startSymbol();\n var endSym = $interpolate.endSymbol();\n if (!(startSym === '{{' && endSym === '}}')) {\n var interpolatedHtml = tElement.html()\n .replace(/\\{\\{/g, startSym)\n .replace(/\\}\\}/g, endSym);\n tElement.html(interpolatedHtml);\n }\n return link;\n }\n };\n }]);\n\n}));","// This is a rework of the ng-FitText.js which can be found here https://github.com/patrickmarabeas/ng-FitText.js\nangular\n .module('graphdb.framework.core.directives.fittext', [])\n .directive('fitText', fitTextDirective);\n\nfitTextDirective.$inject = ['$timeout'];\n\nfunction fitTextDirective($timeout) {\n return {\n restrict: 'A',\n scope: {\n min: '=',\n max: '='\n },\n link: function (scope, element, attrs) {\n\n const config = {\n 'debounce': _.debounce,\n 'delay': 100,\n 'loadDelay': 10,\n 'compressor': 1,\n 'min': attrs.fitTextMin || 'inherit',\n 'max': attrs.fitTextMax || 'inherit',\n 'calcSize': 10,\n 'lines': 1\n };\n\n const parent = element.parent();\n const domElem = element[0];\n const domElemStyle = domElem.style;\n const computed = window.getComputedStyle(element[0], null);\n const newlines = element.children().length || config.lines;\n const minFontSize = config.min === 'inherit' ? computed['font-size'] : config.min;\n const maxFontSize = config.max === 'inherit' ? computed['font-size'] : config.max;\n const lineHeight = computed['line-height'];\n const display = computed['display'];\n let resizePromise;\n\n function calculate() {\n const ratio = (config.calcSize * newlines) / domElem.offsetWidth / newlines;\n return Math.max(Math.min(getMaxFontSize(ratio), parseFloat(maxFontSize)), parseFloat(minFontSize));\n }\n\n function getMaxFontSize(ratio) {\n const paddingLeft = parseFloat(getComputedStyle(parent[0]).paddingLeft);\n const paddingRight = parseFloat(getComputedStyle(parent[0]).paddingRight);\n\n return (parent[0].offsetWidth - (paddingLeft + paddingRight)) * ratio * config.compressor;\n }\n\n function resize() {\n if (domElem.offsetHeight * domElem.offsetWidth === 0) {\n return;\n }\n\n // Preset standard values for making the size calculation\n domElemStyle.fontSize = config.calcSize + 'px';\n domElemStyle.lineHeight = '1';\n domElemStyle.display = 'inline-block';\n\n // Set usage values\n domElemStyle.fontSize = calculate() + 'px';\n domElemStyle.lineHeight = lineHeight;\n domElemStyle.display = display;\n }\n\n function resizer() {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n\n resizePromise = $timeout(function () {\n resize();\n }, config.loadDelay);\n }\n\n scope.$watch(function () {\n return [\n parent[0].offsetWidth,\n element[0].offsetWidth\n ].join('_');\n }, function () {\n resizer();\n });\n\n $(window).on('resize', config.debounce(function () {\n scope.$apply(resizer)\n }, config.delay));\n\n scope.$on('$destroy', function () {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n $(window).off('resize');\n });\n }\n };\n}\n","angular\n .module('graphdb.framework.explore.services', [])\n .factory('StatementsService', StatementsService);\n\nStatementsService.$inject = [];\n\nfunction StatementsService() {\n function transformToTrig(statements) {\n let data = '';\n const contexts = {};\n\n for (let i = 0; i < statements.length; i++) {\n const statement = statements[i];\n if (statement.context === undefined) {\n statement.context = '';\n } else {\n statement.context = _.trim(statement.context);\n }\n if (angular.isUndefined(contexts[statement.context])) {\n const cstatement = [];\n cstatement.push(statement);\n contexts[statement.context] = cstatement;\n } else {\n contexts[statement.context].push(statement);\n }\n }\n\n const ckeys = Object.keys(contexts);\n for (let i = 0; i < ckeys.length; i++) {\n const key = ckeys[i];\n if (key === '') {\n data += '\\n{';\n } else {\n data += '\\n<' + key + '> {';\n }\n\n const value = contexts[key];\n for (let j = 0; j < value.length; j++) {\n const statement = value[j];\n data += '\\n\\t<' + statement.subject + '> <' + statement.predicate + '> ';\n if (statement.object.type === 'uri') {\n data += '<' + statement.object.value + '> .';\n } else {\n data += '\"\"\"' + statement.object.value + '\"\"\"' + (statement.object.datatype ? '^^<' + statement.object.datatype + '>' : (statement.object.lang ? '@' + statement.object.lang : '')) + ' .';\n }\n }\n\n data += '\\n}';\n }\n\n return data;\n }\n\n function buildStatements(res, uri) {\n const statements = [];\n if (!_.isEmpty(res.data)) {\n const graph = res.data[uri];\n const predicates = Object.keys(graph);\n for (let i = 0; i < predicates.length; i++) {\n const predicate = predicates[i];\n const objects = graph[predicate];\n for (let j = 0; j < objects.length; j++) {\n const object = objects[j];\n for (let k = 0; k < object.graphs.length; k++) {\n let context = object.graphs[k];\n if (context === 'http://www.ontotext.com/explicit') {\n // Statements in the default context are special\n context = '';\n }\n if (object.lang) {\n object.datatype = '';\n }\n if (!object.datatype) {\n object.datatype = '';\n }\n statements.push({\n subject: uri,\n predicate: predicate,\n object: {\n value: object.value,\n type: object.type,\n datatype: object.datatype,\n lang: object.lang\n },\n context: context\n });\n }\n }\n }\n }\n return statements;\n }\n\n function getDatatypeOptions() {\n return [\n {\n value: '',\n label: 'string'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#boolean',\n label: 'boolean'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#decimal',\n label: 'decimal'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#integer',\n label: 'integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#double',\n label: 'double'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#float',\n label: 'float'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#date',\n label: 'date'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#time',\n label: 'time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#dateTime',\n label: 'date time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#byte',\n label: 'byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#short',\n label: 'short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#int',\n label: 'int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#long',\n label: 'long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedByte',\n label: 'unsigned byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedShort',\n label: 'unsigned short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedInt',\n label: 'unsigned int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedLong',\n label: 'unsigned long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#positoveInteger',\n label: 'positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n label: 'non-negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#negativeInteger',\n label: 'negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n label: 'non-positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYear',\n label: 'gYear'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonth',\n label: 'gMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gDay',\n label: 'gDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYearMonth',\n label: 'gYearMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonthDay',\n label: 'gMonthDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#duration',\n label: 'duration'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#hexBinary',\n label: 'hex binary'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#base64Binary',\n label: 'base64 binary'\n }\n ];\n }\n\n return {\n transformToTrig: transformToTrig,\n buildStatements: buildStatements,\n getDatatypeOptions: getDatatypeOptions\n };\n}\n","import 'angular/utils/uri-utils';\n\nconst exploreDirectives = angular.module('graphdb.framework.explore.directives', [\n 'graphdb.framework.utils.uriutils'\n]);\n\nexploreDirectives.directive('uri', ['UriUtils', function (UriUtils) {\n return {\n require: 'ngModel',\n link: function (scope, elem, attr, ngModel) {\n\n //For DOM -> model validation\n ngModel.$parsers.unshift(function (value) {\n if (!angular.isUndefined(value) && value.length > 0) {\n const isValidUri = UriUtils.validateRdfUri(value);\n ngModel.$setValidity('searchStr', isValidUri);\n return isValidUri ? value : undefined;\n } else {\n ngModel.$setValidity('searchStr', true);\n return value;\n }\n });\n\n //For model -> DOM validation\n ngModel.$formatters.unshift(function (value) {\n if (!angular.isUndefined(value)) {\n ngModel.$setValidity('searchStr', UriUtils.validateRdfUri);\n }\n return value;\n });\n }\n };\n}]);\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/explore/app.js","webpack:///./src/js/lib/angucomplete-alt/angucomplete-alt-onto.min.js","webpack:///./src/js/angular/core/directives/fit-text.directive.js","webpack:///./src/js/angular/explore/statements.service.js","webpack:///./src/js/angular/explore/directives.js"],"names":["angular","module","root","factory","directive","$q","$parse","$http","$sce","$timeout","$templateCache","$interpolate","$rootScope","link","scope","elem","attrs","ctrl","hideTimer","responseFormatter","unbindInitialValue","displaySearching","displayNoResults","fn","inputField","find","minlength","searchTimer","requiredClassName","validState","httpCanceller","dd","querySelector","isScrollOn","mousedownOn","handleInputChange","newval","initial","uri","extractTitle","callOrAssign","originalObject","length","console","error","handleRequired","clickoutHandlerForDropdown","event","hideResults","document","body","removeEventListener","ie8EventNormalizer","which","keyCode","value","selectedObject","data","titleField","split","map","field","extractValue","join","obj","key","keys","result","i","findMatchString","target","str","matches","re","RegExp","replace","match","toString","matchClass","trustAsHtml","valid","notEmpty","fieldRequired","inputName","$setValidity","handleOverrideSuggestions","overrideSuggestions","preventDefault","cancel","cancelHttpRequest","clearSelected","clearResults","dropdownRow","querySelectorAll","currentIndex","dropdownScrollTopTo","offset","scrollTop","updateInputField","current","results","extractedTitle","val","title","httpSuccessCallbackGen","responseData","status","headers","config","searching","processResults","remoteUrlDataField","httpErrorCallback","errorRes","remoteUrlErrorCallback","resolve","getRemoteResults","params","url","remoteUrl","encodeuriComponent","remoteUrlRequestFormatter","remoteUrlRequestWithCredentials","withCredentials","defer","timeout","promise","get","success","getRemoteResultsWithCustomHandler","remoteApiHandler","then","catch","showDropdown","initResults","focusFirst","searchTimerComplete","localData","$apply","localSearch","s","searchFields","parseInput","toLowerCase","indexOf","getLocalResults","description","image","text","formattedText","formattedDesc","descriptionField","imageField","autoMatch","selectResult","checkExactMatch","desc","showAll","on","id","addEventListener","className","$watch","oldval","$on","elementId","onFocusHandler","focusIn","focusOut","resetHideResults","hoverRow","index","inputChangeHandler","inputChanged","fieldRequiredClass","parseInt","pause","initialValue","inputType","type","textSearching","textNoResults","maxlength","row","rowTop","getBoundingClientRect","top","getComputedStyle","maxHeight","bottom","css","offsetHeight","marginTop","marginBottom","dropdownRowOffsetHeight","paddingTop","$digest","overflowY","put","restrict","require","disableInput","disableSuggestions","remoteUrlResponseFormatter","placeholder","inputClass","fieldTabindex","templateUrl","element","compile","tElement","startSym","startSymbol","endSym","endSymbol","interpolatedHtml","html","window","fitTextDirective","min","max","_","debounce","fitTextMin","fitTextMax","parent","domElem","domElemStyle","style","computed","newlines","children","lines","minFontSize","maxFontSize","lineHeight","display","resizePromise","calculate","ratio","calcSize","offsetWidth","Math","paddingLeft","parseFloat","paddingRight","compressor","getMaxFontSize","resizer","fontSize","loadDelay","$","delay","off","$inject","StatementsService","transformToTrig","statements","contexts","statement","undefined","context","trim","isUndefined","cstatement","push","ckeys","Object","j","subject","predicate","object","datatype","lang","buildStatements","res","isEmpty","graph","predicates","objects","k","graphs","getDatatypeOptions","label","UriUtils","attr","ngModel","$parsers","unshift","isValidUri","validateRdfUri","$formatters"],"mappings":"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","file":"16.3b52e17f123523d84054.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/explore/statements.service';\nimport 'angular/explore/controllers';\nimport 'angular/explore/directives';\nimport 'angular-xeditable/dist/js/xeditable.min';\nimport 'lib/angucomplete-alt/angucomplete-alt-onto.min';\nimport 'angular/core/directives/fit-text.directive';\n\nconst modules = [\n 'ngRoute',\n 'toastr',\n 'xeditable',\n 'angucomplete-alt-onto',\n 'graphdb.framework.explore.services',\n 'graphdb.framework.explore.controllers',\n 'graphdb.framework.explore.directives',\n 'graphdb.framework.core.directives.fittext'\n];\n\nangular.module('graphdb.framework.explore', modules);\n","/*\n * angucomplete-alt\n * Autocomplete directive for AngularJS\n * This is a fork of Daryl Rowland's angucomplete with some extra features.\n * By Hidenari Nozaki\n */\n\n/*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */\n\n(function (root, factory) {\n 'use strict';\n// if (typeof module !== 'undefined' && module.exports) {\n// // CommonJS\n// module.exports = factory(require('angular'));\n// } else if (typeof define === 'function' && define.amd) {\n// // AMD\n// define(['angular'], factory);\n// } else {\n// // Global Variables\n factory(root.angular);\n// }\n}(window, function (angular) {\n 'use strict';\n\n angular.module('angucomplete-alt-onto', []).directive('angucompleteAltOnto', ['$q', '$parse', '$http', '$sce', '$timeout', '$templateCache', '$interpolate', '$rootScope', function ($q, $parse, $http, $sce, $timeout, $templateCache, $interpolate, $rootScope) {\n // keyboard events\n var KEY_DW = 40;\n var KEY_RT = 39;\n var KEY_UP = 38;\n var KEY_LF = 37;\n var KEY_ES = 27;\n var KEY_EN = 13;\n var KEY_TAB = 9;\n\n var MIN_LENGTH = 3;\n var MAX_LENGTH = 524288; // the default max length per the html maxlength attribute\n var PAUSE = 500;\n var BLUR_TIMEOUT = 200;\n\n // string constants\n var REQUIRED_CLASS = 'autocomplete-required';\n var TEXT_SEARCHING = 'Searching...';\n var TEXT_NORESULTS = 'No results found';\n var TEMPLATE_URL = '/angucomplete-alt/index.html';\n\n // Set the default template for this directive\n $templateCache.put(TEMPLATE_URL,\n '<div class=\"angucomplete-holder\" ng-class=\"{\\'angucomplete-dropdown-visible\\': showDropdown}\">' +\n ' <input id=\"{{id}}_value\" name=\"{{inputName}}\" tabindex=\"{{fieldTabindex}}\" ng-class=\"{\\'angucomplete-input-not-empty\\': notEmpty}\" ng-model=\"uri\" ng-disabled=\"disableInput\" type=\"{{inputType}}\" placeholder=\"{{placeholder}}\" maxlength=\"{{maxlength}}\" ng-focus=\"onFocusHandler()\" class=\"{{inputClass}}\" ng-focus=\"resetHideResults()\" ng-blur=\"hideResults($event)\" autocapitalize=\"off\" autocorrect=\"off\" autocomplete=\"off\" ng-change=\"inputChangeHandler(uri)\" style=\"overflow: hidden; padding-right: .5em;\"/>' +\n ' <div id=\"{{id}}_dropdown\" class=\"angucomplete-dropdown\" ng-show=\"disableSuggestions && showDropdown\">' +\n ' <div class=\"angucomplete-searching\" ng-show=\"searching\" ng-bind=\"textSearching\"></div>' +\n ' <div class=\"angucomplete-searching\" ng-show=\"!searching && (!results || results.length == 0)\" ng-bind=\"textNoResults\"></div>' +\n ' <div class=\"angucomplete-row\" ng-repeat=\"result in results\" ng-click=\"selectResult(result)\" ng-mouseenter=\"hoverRow($index)\" ng-class=\"{\\'angucomplete-selected-row\\': $index == currentIndex}\">' +\n ' <div ng-if=\"imageField\" class=\"angucomplete-image-holder\">' +\n ' <img ng-if=\"result.image && result.image != \\'\\'\" ng-src=\"{{result.image}}\" class=\"angucomplete-image\"/>' +\n ' <div ng-if=\"!result.image && result.image != \\'\\'\" class=\"angucomplete-image-default\"></div>' +\n ' </div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"matchClass\" ng-bind-html=\"result.title\"></div>' +\n ' <div class=\"angucomplete-title\" ng-if=\"!matchClass\">{{ result.title }}</div>' +\n ' <div ng-if=\"matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\" ng-bind-html=\"result.description\"></div>' +\n ' <div ng-if=\"!matchClass && result.description && result.description != \\'\\'\" class=\"angucomplete-description\">{{result.description}}</div>' +\n ' </div>' +\n ' </div>' +\n '</div>'\n );\n\n function link(scope, elem, attrs, ctrl) {\n var inputField = elem.find('input');\n var minlength = MIN_LENGTH;\n var searchTimer = null;\n var hideTimer;\n var requiredClassName = REQUIRED_CLASS;\n var responseFormatter;\n var validState = null;\n var httpCanceller = null;\n var dd = elem[0].querySelector('.angucomplete-dropdown');\n var isScrollOn = false;\n var mousedownOn = null;\n var unbindInitialValue;\n var displaySearching;\n var displayNoResults;\n\n\n elem.on('mousedown', function(event) {\n if (event.target.id) {\n mousedownOn = event.target.id;\n if (mousedownOn === scope.id + '_dropdown') {\n document.body.addEventListener('click', clickoutHandlerForDropdown);\n }\n }\n else {\n mousedownOn = event.target.className;\n }\n });\n\n scope.currentIndex = scope.focusFirst ? 0 : null;\n scope.searching = false;\n unbindInitialValue = scope.$watch('initialValue', function(newval) {\n if (newval) {\n // remove scope listener\n unbindInitialValue();\n // change input\n handleInputChange(newval, true);\n }\n });\n\n scope.$watch('fieldRequired', function(newval, oldval) {\n if (newval !== oldval) {\n if (!newval) {\n ctrl[scope.inputName].$setValidity(requiredClassName, true);\n }\n else if (!validState || scope.currentIndex === -1) {\n handleRequired(false);\n }\n else {\n handleRequired(true);\n }\n }\n });\n\n scope.$on('angucomplete-alt:clearInput', function (event, elementId) {\n if (!elementId || elementId === scope.id) {\n scope.uri = null;\n callOrAssign();\n handleRequired(false);\n clearResults();\n }\n });\n\n scope.$on('angucomplete-alt:changeInput', function (event, elementId, newval) {\n if (!!elementId && elementId === scope.id) {\n handleInputChange(newval);\n }\n });\n\n function handleInputChange(newval, initial) {\n if (newval) {\n if (typeof newval === 'object') {\n scope.uri = extractTitle(newval);\n callOrAssign({originalObject: newval});\n } else if (typeof newval === 'string' && newval.length > 0) {\n scope.uri = newval;\n } else {\n if (console && console.error) {\n console.error('Tried to set ' + (!!initial ? 'initial' : '') + ' value of angucomplete to', newval, 'which is an invalid value');\n }\n }\n\n handleRequired(true);\n }\n }\n\n // #194 dropdown list not consistent in collapsing (bug).\n function clickoutHandlerForDropdown(event) {\n mousedownOn = null;\n scope.hideResults(event);\n document.body.removeEventListener('click', clickoutHandlerForDropdown);\n }\n\n // for IE8 quirkiness about event.which\n function ie8EventNormalizer(event) {\n return event.which ? event.which : event.keyCode;\n }\n\n function callOrAssign(value) {\n if (typeof scope.selectedObject === 'function') {\n scope.selectedObject(value);\n }\n else {\n scope.selectedObject = value;\n }\n\n if (value) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n function callFunctionOrIdentity(fn) {\n return function(data) {\n return scope[fn] ? scope[fn](data) : data;\n };\n }\n\n function setInputString(str) {\n callOrAssign({originalObject: str});\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n clearResults();\n }\n\n function extractTitle(data) {\n // split title fields and run extractValue for each and join with ' '\n return scope.titleField.split(',')\n .map(function(field) {\n return extractValue(data, field);\n })\n .join(' ');\n }\n\n function extractValue(obj, key) {\n var keys, result;\n if (key) {\n keys= key.split('.');\n result = obj;\n for (var i = 0; i < keys.length; i++) {\n result = result[keys[i]];\n }\n }\n else {\n result = obj;\n }\n\n return result;\n }\n\n function findMatchString(target, str) {\n var result, matches, re;\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n // Escape user input to be treated as a literal string within a regular expression\n re = new RegExp(str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i');\n if (!target) { return; }\n if (!target.match || !target.replace) { target = target.toString(); }\n matches = target.match(re);\n if (matches) {\n result = target.replace(re,\n '<span class=\"'+ scope.matchClass +'\">'+ matches[0] +'</span>');\n }\n else {\n result = target;\n }\n return $sce.trustAsHtml(result);\n }\n\n function handleRequired(valid) {\n scope.notEmpty = valid;\n validState = scope.uri;\n if (scope.fieldRequired && ctrl && scope.inputName) {\n ctrl[scope.inputName].$setValidity(requiredClassName, valid);\n }\n }\n\n function keyupHandler(event) {\n var which = ie8EventNormalizer(event);\n if (which === KEY_LF || which === KEY_RT) {\n // do nothing\n return;\n }\n\n if (which === KEY_UP || which === KEY_EN) {\n event.preventDefault();\n }\n else if (which === KEY_DW) {\n event.preventDefault();\n if (!scope.showDropdown && scope.uri && scope.uri.length >= minlength) {\n initResults();\n scope.searching = true;\n searchTimerComplete(scope.uri);\n }\n }\n else if (which === KEY_ES) {\n clearResults();\n scope.$apply(function() {\n inputField.val(scope.uri);\n });\n }\n else {\n if (minlength === 0 && !scope.uri) {\n return;\n }\n\n if (!scope.uri || scope.uri === '') {\n scope.showDropdown = false;\n } else if (scope.uri.length >= minlength) {\n initResults();\n\n if (searchTimer) {\n $timeout.cancel(searchTimer);\n }\n\n scope.searching = true;\n\n searchTimer = $timeout(function() {\n searchTimerComplete(scope.uri);\n }, scope.pause);\n }\n\n if (validState && validState !== scope.uri && !scope.clearSelected) {\n scope.$apply(function() {\n callOrAssign();\n });\n }\n }\n }\n\n function handleOverrideSuggestions(event) {\n if (scope.overrideSuggestions &&\n !(scope.selectedObject && scope.selectedObject.originalObject === scope.uri)) {\n if (event) {\n event.preventDefault();\n }\n\n // cancel search timer\n $timeout.cancel(searchTimer);\n // cancel http request\n cancelHttpRequest();\n\n setInputString(scope.uri);\n }\n }\n\n function dropdownRowOffsetHeight(row) {\n var css = getComputedStyle(row);\n return row.offsetHeight +\n parseInt(css.marginTop, 10) + parseInt(css.marginBottom, 10);\n }\n\n function dropdownHeight() {\n return dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).maxHeight, 10);\n }\n\n function dropdownRow() {\n return elem[0].querySelectorAll('.angucomplete-row')[scope.currentIndex];\n }\n\n function dropdownRowTop() {\n return dropdownRow().getBoundingClientRect().top -\n (dd.getBoundingClientRect().top +\n parseInt(getComputedStyle(dd).paddingTop, 10));\n }\n\n function dropdownScrollTopTo(offset) {\n dd.scrollTop = dd.scrollTop + offset;\n }\n\n function updateInputField(){\n var current = scope.results[scope.currentIndex];\n if (scope.matchClass) {\n var extractedTitle = extractTitle(current.originalObject);\n extractedTitle = extractedTitle.replace(/<b>|<\\/b>/g, \"\");\n inputField.val(extractedTitle);\n }\n else {\n inputField.val(current.title);\n }\n }\n\n function keydownHandler(event) {\n var which = ie8EventNormalizer(event);\n var row = null;\n var rowTop = null;\n\n if (which === KEY_EN && scope.results) {\n if (scope.currentIndex >= 0 && scope.currentIndex < scope.results.length) {\n event.preventDefault();\n scope.selectResult(scope.results[scope.currentIndex]);\n } else {\n handleOverrideSuggestions(event);\n clearResults();\n }\n scope.$apply();\n } else if (which === KEY_DW && scope.results) {\n event.preventDefault();\n if ((scope.currentIndex + 1) < scope.results.length && scope.showDropdown) {\n scope.$apply(function() {\n scope.currentIndex ++;\n updateInputField();\n });\n\n if (isScrollOn) {\n row = dropdownRow();\n if (dropdownHeight() < row.getBoundingClientRect().bottom) {\n dropdownScrollTopTo(dropdownRowOffsetHeight(row));\n }\n }\n }\n } else if (which === KEY_UP && scope.results) {\n event.preventDefault();\n if (scope.currentIndex >= 1) {\n scope.$apply(function() {\n scope.currentIndex --;\n updateInputField();\n });\n\n if (isScrollOn) {\n rowTop = dropdownRowTop();\n if (rowTop < 0) {\n dropdownScrollTopTo(rowTop - 1);\n }\n }\n }\n else if (scope.currentIndex === 0) {\n scope.$apply(function() {\n scope.currentIndex = -1;\n inputField.val(scope.uri);\n });\n }\n } else if (which === KEY_TAB) {\n if (scope.results && scope.results.length > 0 && scope.showDropdown) {\n if (scope.currentIndex === -1 && scope.overrideSuggestions) {\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n handleOverrideSuggestions();\n }\n else {\n if (scope.currentIndex === -1) {\n scope.currentIndex = 0;\n }\n scope.selectResult(scope.results[scope.currentIndex]);\n scope.$digest();\n }\n }\n else {\n // no results\n // intentionally not sending event so that it does not\n // prevent default tab behavior\n if (scope.uri && scope.uri.length > 0) {\n handleOverrideSuggestions();\n }\n }\n } else if (which === KEY_ES) {\n // This is very specific to IE10/11 #272\n // without this, IE clears the input text\n event.preventDefault();\n }\n }\n\n function httpSuccessCallbackGen(str) {\n return function(responseData, status, headers, config) {\n // normalize return obejct from promise\n if (!status && !headers && !config && responseData.data) {\n responseData = responseData.data;\n }\n scope.searching = false;\n processResults(extractValue(responseFormatter(responseData), scope.remoteUrlDataField), str);\n };\n }\n\n function httpErrorCallback(errorRes, status, headers, config) {\n // cancelled/aborted\n if (status === 0 || status === -1) { return; }\n\n // normalize return obejct from promise\n if (!status && !headers && !config) {\n status = errorRes.status;\n }\n if (scope.remoteUrlErrorCallback) {\n scope.remoteUrlErrorCallback(errorRes, status, headers, config);\n }\n else {\n if (console && console.error) {\n console.error('http error');\n }\n }\n }\n\n function cancelHttpRequest() {\n if (httpCanceller) {\n httpCanceller.resolve();\n }\n }\n\n function getRemoteResults(str) {\n var params = {},\n url = scope.remoteUrl + encodeuriComponent(str);\n if (scope.remoteUrlRequestFormatter) {\n params = {params: scope.remoteUrlRequestFormatter(str)};\n url = scope.remoteUrl;\n }\n if (!!scope.remoteUrlRequestWithCredentials) {\n params.withCredentials = true;\n }\n cancelHttpRequest();\n httpCanceller = $q.defer();\n params.timeout = httpCanceller.promise;\n $http.get(url, params)\n .success(httpSuccessCallbackGen(str))\n .error(httpErrorCallback);\n }\n\n function getRemoteResultsWithCustomHandler(str) {\n cancelHttpRequest();\n\n httpCanceller = $q.defer();\n\n scope.remoteApiHandler(str, httpCanceller.promise)\n .then(httpSuccessCallbackGen(str))\n .catch(httpErrorCallback);\n\n /* IE8 compatible\n scope.remoteApiHandler(str, httpCanceller.promise)\n ['then'](httpSuccessCallbackGen(str))\n ['catch'](httpErrorCallback);\n */\n }\n\n function clearResults() {\n scope.showDropdown = false;\n scope.results = [];\n if (dd) {\n dd.scrollTop = 0;\n }\n }\n\n function initResults() {\n scope.showDropdown = displaySearching;\n scope.currentIndex = scope.focusFirst ? 0 : -1;\n scope.results = [];\n }\n\n function getLocalResults(str) {\n var i, match, s, value,\n searchFields = scope.searchFields.split(','),\n matches = [];\n if (typeof scope.parseInput() !== 'undefined') {\n str = scope.parseInput()(str);\n }\n for (i = 0; i < scope.localData.length; i++) {\n match = false;\n\n for (s = 0; s < searchFields.length; s++) {\n value = extractValue(scope.localData[i], searchFields[s]) || '';\n match = match || (value.toString().toLowerCase().indexOf(str.toString().toLowerCase()) >= 0);\n }\n\n if (match) {\n matches[matches.length] = scope.localData[i];\n }\n }\n return matches;\n }\n\n function checkExactMatch(result, obj, str){\n if (!str) { return false; }\n for(var key in obj){\n if(obj[key].toLowerCase() === str.toLowerCase()){\n scope.selectResult(result);\n return true;\n }\n }\n return false;\n }\n\n function searchTimerComplete(str) {\n // Begin the search\n if (!str || str.length < minlength) {\n return;\n }\n if (scope.localData) {\n scope.$apply(function() {\n var matches;\n if (typeof scope.localSearch() !== 'undefined') {\n matches = scope.localSearch()(str);\n } else {\n matches = getLocalResults(str);\n }\n scope.searching = false;\n processResults(matches, str);\n });\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler(str);\n } else {\n getRemoteResults(str);\n }\n }\n\n function processResults(responseData, str) {\n var i, description, image, text, formattedText, formattedDesc;\n\n if (responseData && responseData.length > 0) {\n scope.results = [];\n\n for (i = 0; i < responseData.length; i++) {\n if (scope.titleField && scope.titleField !== '') {\n text = formattedText = extractTitle(responseData[i]);\n }\n\n description = '';\n if (scope.descriptionField) {\n description = formattedDesc = extractValue(responseData[i], scope.descriptionField);\n }\n\n image = '';\n if (scope.imageField) {\n image = extractValue(responseData[i], scope.imageField);\n }\n\n if (scope.matchClass) {\n formattedText = findMatchString(text, str);\n formattedDesc = findMatchString(description, str);\n }\n\n scope.results[scope.results.length] = {\n title: formattedText,\n description: formattedDesc,\n image: image,\n originalObject: responseData[i]\n };\n }\n\n } else {\n scope.results = [];\n }\n\n if (scope.autoMatch && scope.results.length === 1 &&\n checkExactMatch(scope.results[0],\n {title: text, desc: description || ''}, scope.uri)) {\n scope.showDropdown = false;\n } else if (scope.results.length === 0 && !displayNoResults) {\n scope.showDropdown = false;\n } else {\n scope.showDropdown = true;\n }\n }\n\n function showAll() {\n if (scope.localData) {\n processResults(scope.localData, '');\n }\n else if (scope.remoteApiHandler) {\n getRemoteResultsWithCustomHandler('');\n }\n else {\n getRemoteResults('');\n }\n }\n\n scope.onFocusHandler = function() {\n if (scope.focusIn) {\n scope.focusIn();\n }\n if (minlength === 0 && (!scope.uri || scope.uri.length === 0)) {\n scope.currentIndex = scope.focusFirst ? 0 : scope.currentIndex;\n scope.showDropdown = true;\n showAll();\n }\n };\n\n scope.hideResults = function() {\n if (mousedownOn &&\n (mousedownOn === scope.id + '_dropdown' ||\n mousedownOn.indexOf('angucomplete') >= 0)) {\n mousedownOn = null;\n }\n else {\n hideTimer = $timeout(function() {\n clearResults();\n scope.$apply(function() {\n if (scope.uri && scope.uri.length > 0) {\n inputField.val(scope.uri);\n }\n });\n }, BLUR_TIMEOUT);\n cancelHttpRequest();\n\n if (scope.focusOut) {\n scope.focusOut();\n }\n\n if (scope.overrideSuggestions) {\n if (scope.uri && scope.uri.length > 0 && scope.currentIndex === -1) {\n handleOverrideSuggestions();\n }\n }\n }\n };\n\n scope.resetHideResults = function() {\n if (hideTimer) {\n $timeout.cancel(hideTimer);\n }\n };\n\n scope.hoverRow = function(index) {\n scope.currentIndex = index;\n };\n\n scope.selectResult = function(result) {\n // Restore original values\n if (scope.matchClass) {\n result.title = extractTitle(result.originalObject);\n if (typeof result.title === \"string\") {\n result.title = result.title.replace(/<b>|<\\/b>/g, \"\");\n }\n result.description = extractValue(result.originalObject, scope.descriptionField);\n }\n\n if (scope.clearSelected) {\n scope.uri = null;\n }\n else {\n scope.uri = result.title;\n }\n callOrAssign(result);\n clearResults();\n };\n\n scope.inputChangeHandler = function(str) {\n if (str.length < minlength) {\n cancelHttpRequest();\n clearResults();\n }\n else if (str.length === 0 && minlength === 0) {\n scope.searching = false;\n showAll();\n }\n\n if (scope.inputChanged) {\n str = scope.inputChanged(str);\n }\n return str;\n };\n\n // check required\n if (scope.fieldRequiredClass && scope.fieldRequiredClass !== '') {\n requiredClassName = scope.fieldRequiredClass;\n }\n\n // check min length\n if (scope.minlength && scope.minlength !== '') {\n minlength = parseInt(scope.minlength, 10);\n }\n\n // check pause time\n if (!scope.pause) {\n scope.pause = PAUSE;\n }\n\n // check clearSelected\n if (!scope.clearSelected) {\n scope.clearSelected = false;\n }\n\n // check override suggestions\n if (!scope.overrideSuggestions) {\n scope.overrideSuggestions = false;\n }\n\n // check required field\n if (scope.fieldRequired && ctrl) {\n // check initial value, if given, set validitity to true\n if (scope.initialValue) {\n handleRequired(true);\n }\n else {\n handleRequired(false);\n }\n }\n\n scope.inputType = attrs.type ? attrs.type : 'text';\n\n // set strings for \"Searching...\" and \"No results\"\n scope.textSearching = attrs.textSearching ? attrs.textSearching : TEXT_SEARCHING;\n scope.textNoResults = attrs.textNoResults ? attrs.textNoResults : TEXT_NORESULTS;\n displaySearching = scope.textSearching === 'false' ? false : true;\n displayNoResults = scope.textNoResults === 'false' ? false : true;\n\n // set max length (default to maxlength deault from html\n scope.maxlength = attrs.maxlength ? attrs.maxlength : MAX_LENGTH;\n\n // register events\n inputField.on('keydown', keydownHandler);\n inputField.on('keyup', keyupHandler);\n\n // set response formatter\n responseFormatter = callFunctionOrIdentity('remoteUrlResponseFormatter');\n\n // set isScrollOn\n $timeout(function() {\n var css = getComputedStyle(dd);\n isScrollOn = css.maxHeight && css.overflowY === 'auto';\n });\n }\n\n return {\n restrict: 'EA',\n require: '^?form',\n scope: {\n selectedObject: '=',\n disableInput: '=',\n disableSuggestions: '=',\n initialValue: '=',\n localData: '=',\n localSearch: '&',\n remoteUrlRequestFormatter: '=',\n remoteUrlRequestWithCredentials: '@',\n remoteUrlResponseFormatter: '=',\n remoteUrlErrorCallback: '=',\n remoteApiHandler: '=',\n id: '@',\n type: '@',\n placeholder: '@',\n remoteUrl: '@',\n remoteUrlDataField: '@',\n titleField: '@',\n descriptionField: '@',\n imageField: '@',\n inputClass: '@',\n pause: '@',\n searchFields: '@',\n minlength: '@',\n matchClass: '@',\n clearSelected: '@',\n overrideSuggestions: '@',\n fieldRequired: '=',\n fieldRequiredClass: '@',\n inputChanged: '=',\n autoMatch: '@',\n focusOut: '&',\n focusIn: '&',\n fieldTabindex: '@',\n inputName: '@',\n focusFirst: '@',\n parseInput: '&'\n },\n templateUrl: function(element, attrs) {\n return attrs.templateUrl || TEMPLATE_URL;\n },\n compile: function(tElement) {\n var startSym = $interpolate.startSymbol();\n var endSym = $interpolate.endSymbol();\n if (!(startSym === '{{' && endSym === '}}')) {\n var interpolatedHtml = tElement.html()\n .replace(/\\{\\{/g, startSym)\n .replace(/\\}\\}/g, endSym);\n tElement.html(interpolatedHtml);\n }\n return link;\n }\n };\n }]);\n\n}));","// This is a rework of the ng-FitText.js which can be found here https://github.com/patrickmarabeas/ng-FitText.js\nangular\n .module('graphdb.framework.core.directives.fittext', [])\n .directive('fitText', fitTextDirective);\n\nfitTextDirective.$inject = ['$timeout'];\n\nfunction fitTextDirective($timeout) {\n return {\n restrict: 'A',\n scope: {\n min: '=',\n max: '='\n },\n link: function (scope, element, attrs) {\n\n const config = {\n 'debounce': _.debounce,\n 'delay': 100,\n 'loadDelay': 10,\n 'compressor': 1,\n 'min': attrs.fitTextMin || 'inherit',\n 'max': attrs.fitTextMax || 'inherit',\n 'calcSize': 10,\n 'lines': 1\n };\n\n const parent = element.parent();\n const domElem = element[0];\n const domElemStyle = domElem.style;\n const computed = window.getComputedStyle(element[0], null);\n const newlines = element.children().length || config.lines;\n const minFontSize = config.min === 'inherit' ? computed['font-size'] : config.min;\n const maxFontSize = config.max === 'inherit' ? computed['font-size'] : config.max;\n const lineHeight = computed['line-height'];\n const display = computed['display'];\n let resizePromise;\n\n function calculate() {\n const ratio = (config.calcSize * newlines) / domElem.offsetWidth / newlines;\n return Math.max(Math.min(getMaxFontSize(ratio), parseFloat(maxFontSize)), parseFloat(minFontSize));\n }\n\n function getMaxFontSize(ratio) {\n const paddingLeft = parseFloat(getComputedStyle(parent[0]).paddingLeft);\n const paddingRight = parseFloat(getComputedStyle(parent[0]).paddingRight);\n\n return (parent[0].offsetWidth - (paddingLeft + paddingRight)) * ratio * config.compressor;\n }\n\n function resize() {\n if (domElem.offsetHeight * domElem.offsetWidth === 0) {\n return;\n }\n\n // Preset standard values for making the size calculation\n domElemStyle.fontSize = config.calcSize + 'px';\n domElemStyle.lineHeight = '1';\n domElemStyle.display = 'inline-block';\n\n // Set usage values\n domElemStyle.fontSize = calculate() + 'px';\n domElemStyle.lineHeight = lineHeight;\n domElemStyle.display = display;\n }\n\n function resizer() {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n\n resizePromise = $timeout(function () {\n resize();\n }, config.loadDelay);\n }\n\n scope.$watch(function () {\n return [\n parent[0].offsetWidth,\n element[0].offsetWidth\n ].join('_');\n }, function () {\n resizer();\n });\n\n $(window).on('resize', config.debounce(function () {\n scope.$apply(resizer)\n }, config.delay));\n\n scope.$on('$destroy', function () {\n if (resizePromise) {\n $timeout.cancel(resizePromise);\n }\n $(window).off('resize');\n });\n }\n };\n}\n","angular\n .module('graphdb.framework.explore.services', [])\n .factory('StatementsService', StatementsService);\n\nStatementsService.$inject = [];\n\nfunction StatementsService() {\n function transformToTrig(statements) {\n let data = '';\n const contexts = {};\n\n for (let i = 0; i < statements.length; i++) {\n const statement = statements[i];\n if (statement.context === undefined) {\n statement.context = '';\n } else {\n statement.context = _.trim(statement.context);\n }\n if (angular.isUndefined(contexts[statement.context])) {\n const cstatement = [];\n cstatement.push(statement);\n contexts[statement.context] = cstatement;\n } else {\n contexts[statement.context].push(statement);\n }\n }\n\n const ckeys = Object.keys(contexts);\n for (let i = 0; i < ckeys.length; i++) {\n const key = ckeys[i];\n if (key === '') {\n data += '\\n{';\n } else {\n data += '\\n<' + key + '> {';\n }\n\n const value = contexts[key];\n for (let j = 0; j < value.length; j++) {\n const statement = value[j];\n data += '\\n\\t<' + statement.subject + '> <' + statement.predicate + '> ';\n if (statement.object.type === 'uri') {\n data += '<' + statement.object.value + '> .';\n } else {\n data += '\"\"\"' + statement.object.value + '\"\"\"' + (statement.object.datatype ? '^^<' + statement.object.datatype + '>' : (statement.object.lang ? '@' + statement.object.lang : '')) + ' .';\n }\n }\n\n data += '\\n}';\n }\n\n return data;\n }\n\n function buildStatements(res, uri) {\n const statements = [];\n if (!_.isEmpty(res.data)) {\n const graph = res.data[uri];\n const predicates = Object.keys(graph);\n for (let i = 0; i < predicates.length; i++) {\n const predicate = predicates[i];\n const objects = graph[predicate];\n for (let j = 0; j < objects.length; j++) {\n const object = objects[j];\n for (let k = 0; k < object.graphs.length; k++) {\n let context = object.graphs[k];\n if (context === 'http://www.ontotext.com/explicit') {\n // Statements in the default context are special\n context = '';\n }\n if (object.lang) {\n object.datatype = '';\n }\n if (!object.datatype) {\n object.datatype = '';\n }\n statements.push({\n subject: uri,\n predicate: predicate,\n object: {\n value: object.value,\n type: object.type,\n datatype: object.datatype,\n lang: object.lang\n },\n context: context\n });\n }\n }\n }\n }\n return statements;\n }\n\n function getDatatypeOptions() {\n return [\n {\n value: '',\n label: 'string'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#boolean',\n label: 'boolean'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#decimal',\n label: 'decimal'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#integer',\n label: 'integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#double',\n label: 'double'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#float',\n label: 'float'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#date',\n label: 'date'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#time',\n label: 'time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#dateTime',\n label: 'date time'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#byte',\n label: 'byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#short',\n label: 'short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#int',\n label: 'int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#long',\n label: 'long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedByte',\n label: 'unsigned byte'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedShort',\n label: 'unsigned short'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedInt',\n label: 'unsigned int'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#unsignedLong',\n label: 'unsigned long'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#positoveInteger',\n label: 'positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n label: 'non-negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#negativeInteger',\n label: 'negative integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n label: 'non-positive integer'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYear',\n label: 'gYear'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonth',\n label: 'gMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gDay',\n label: 'gDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gYearMonth',\n label: 'gYearMonth'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#gMonthDay',\n label: 'gMonthDay'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#duration',\n label: 'duration'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#hexBinary',\n label: 'hex binary'\n }, {\n value: 'http://www.w3.org/2001/XMLSchema#base64Binary',\n label: 'base64 binary'\n }\n ];\n }\n\n return {\n transformToTrig: transformToTrig,\n buildStatements: buildStatements,\n getDatatypeOptions: getDatatypeOptions\n };\n}\n","import 'angular/utils/uri-utils';\n\nconst exploreDirectives = angular.module('graphdb.framework.explore.directives', [\n 'graphdb.framework.utils.uriutils'\n]);\n\nexploreDirectives.directive('uri', ['UriUtils', function (UriUtils) {\n return {\n require: 'ngModel',\n link: function (scope, elem, attr, ngModel) {\n\n //For DOM -> model validation\n ngModel.$parsers.unshift(function (value) {\n if (!angular.isUndefined(value) && value.length > 0) {\n const isValidUri = UriUtils.validateRdfUri(value);\n ngModel.$setValidity('searchStr', isValidUri);\n return isValidUri ? value : undefined;\n } else {\n ngModel.$setValidity('searchStr', true);\n return value;\n }\n });\n\n //For model -> DOM validation\n ngModel.$formatters.unshift(function (value) {\n if (!angular.isUndefined(value)) {\n ngModel.$setValidity('searchStr', UriUtils.validateRdfUri);\n }\n return value;\n });\n }\n };\n}]);\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[17,38,52,105,122],{126:function(e,n,t){"use strict";t.r(n);t(4),t(11),t(52),t(10),t(80),t(81),t(42),t(43),t(44);angular.module("graphdb.framework.jdbc",["toastr","ui.bootstrap","graphdb.framework.jdbc.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.rest.jdbc.service","graphdb.framework.core.directives.queryeditor.controllers","graphdb.framework.core.directives.queryeditor.sparqltab","graphdb.framework.core.directives.queryeditor.queryeditor"])},38:function(e,n){function t(e,n){return{showToastMessageWithDelay:function(t){return new Promise(r=>{e.success(n.instant(t)),setTimeout(r,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",t),t.$inject=["toastr","$translate"]},42:function(e,n,t){"use strict";t.r(n);t(5);function r(e,n,t,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,o,i,s,a){function u(e){return $(e).attr("data-id")}function c(e){$('a[data-id = "'+e+'"]').tab("show")}e.state={},$(r).on("shown.bs.tab",(function(e){o.$broadcast("tabAction",e)})),e.deleteTab=function(l){if(l.preventDefault(),l.stopPropagation(),e.tabs.length<2)return void s.warning(a.instant("sparql.tab.directive.close.last.warning"));l.shiftKey?(e.state.selectedTabId=u(r),i.openSimpleModal({title:a.instant("common.confirm"),message:a.instant("sparql.tab.directive.delete.all.tabs.warning"),warning:!0}).result.then((function(){var r;r=e.state.selectedTabId,e.tabs=e.tabs.filter((function(e){if(e.id===r)return e})),c(e.tabs[0].id),n.set(t.TABS_STATE,e.tabs),o.$broadcast("deleteAllexeptSelected",e.tabs)}))):(e.state.idForDelete=u(r),i.openSimpleModal({title:a.instant("common.confirm"),message:a.instant("sparql.tab.directive.close.tab.warning"),warning:!0}).result.then((function(){!function(n){if(angular.isUndefined(n))throw"Delete by id was called with undefined id";const t=function(n){for(let t=0;t<e.tabs.length;t++){if(e.tabs[t].id===n)return t}}(n);e.tabs.splice(t,1),n===e.currentQuery.id&&e.tabs.length>0&&c(t>0?e.tabs[t-1].id:e.tabs[0].id)}(e.state.idForDelete)})));angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.editCurrentTab=function(){if(u(r)!==e.currentQuery.id)return;e.editCurrentlySelectedOnly.$show();const n=$(".editable-buttons");n.children(".btn.btn-primary").addClass("btn-sm"),n.children(".btn.btn-default").addClass("btn-sm"),$(".editable-controls .editable-input").addClass("form-control-sm").on("change",(function(n){e.currentQuery.name=n.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(n){n.preventDefault(),n.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"]},80:function(e,n,t){"use strict";t.r(n);t(4),t(10),t(14),t(38);function r(e,n,t,r,o,i){e.getSqlConfigurations=function(){!n.getActiveRepository()||n.isActiveRepoOntopType()||n.isActiveRepoFedXType()?e.jdbcConfigurations=[]:t.getJdbcConfigurations().success((function(n){e.jdbcConfigurations=n})).error((function(e){const n=getError(e);r.error(n,i.instant("jdbc.not.get.SQL.msg"))}))},e.$watch((function(){return n.getActiveRepository()}),(function(){e.getSqlConfigurations()})),e.deleteConfiguration=function(n){o.openSimpleModal({title:i.instant("common.warning"),message:i.instant("jdbc.delete.sql.table.warning.msg",{name:n}),warning:!0}).result.then((function(){t.deleteJdbcConfiguration(n).success((function(){e.getSqlConfigurations()})).error((function(e){r.error(getError(e),i.instant("jdbc.not.delete.sql.msg"))}))}))}}function o(e,n,t,r,o,i,s,a,u,c,l){e.name=n.search().name||"",e.getNamespaces=function(){b(!0,l.instant("common.refreshing.namespaces"),l.instant("common.extra.message")),a.getRepositoryNamespaces().success((function(n){const t={};n.results.bindings.forEach((function(e){t[e.prefix.value]=e.namespace.value})),e.namespaces=t})).error((function(n){e.repositoryError=getError(n)})).finally((function(){b(!1),y()}))},e.setLoader=b,e.addKnownPrefixes=h,e.page=1,e.noPadding={paddingRight:0,paddingLeft:0},e.sqlTypes=["string","iri","boolean","byte","short","int","long","float","double","decimal","date","time","timestamp","Get suggestion..."],e.currentTabConfig={},e.orientationViewMode=!0,e.currentQuery={},e.$watch((function(){return r.getActiveRepository()}),(function(e,t){e!==t&&n.path("jdbc")}));let d=null;e.goBack=function(){d=i((function(){o.history.back()}),1e3)};const g=e.$on("$locationChangeStart",(function(n){!function(n){e.currentQuery.isPristine||(confirm(l.instant("jdbc.warning.unsaved.changes"))?(window.removeEventListener("beforeunload",f),g(),i.cancel(d)):n.preventDefault())}(n)}));function f(n){e.currentQuery.isPristine||(n.returnValue=!0)}window.addEventListener("beforeunload",f),e.$on("$destroy",(function(e){window.removeEventListener("beforeunload",f),g(),i.cancel(d)}));const m={id:"1",name:"",query:"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n\n# Selects two variables to use as columns\nSELECT ?id ?label {\n ?id rdfs:label ?label\n # The following placeholder must be present in the query\n #!filter\n}",inference:!0,sameAs:!0,isNewConfiguration:!0,isPristine:!0};var p;function b(n,t,r){const o=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=n,n?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=t,e.extraMessage=r,o.addClass("hide")):(e.progressMessage="",e.extraMessage="",o.removeClass("hide")),null===e.$$phase&&e.$apply()}function y(){e.tabsData=[e.currentQuery];const n=e.currentQuery;e.currentQuery.query?window.editor.setValue(e.currentQuery.query):window.editor.setValue(" "),i((function(){e.currentTabConfig={},e.currentTabConfig.queryType=n.queryType,e.currentTabConfig.resultsCount=n.resultsCount,e.currentTabConfig.offset=n.offset,e.currentTabConfig.allResultsCount=n.allResultsCount,e.currentTabConfig.page=n.page,e.currentTabConfig.pageSize=n.pageSize,e.currentTabConfig.timeFinished=n.timeFinished,e.currentTabConfig.timeTook=n.timeTook,e.currentTabConfig.sizeDelta=n.sizeDelta,e.$apply()}),0),e.canWriteActiveRepo()||(window.editor.options.readOnly=!0)}function w(){e.tabsData=e.tabs=[m],e.currentQuery=angular.copy(m),v(),window.editor&&(e.setQuery(e.currentQuery.query),y()),e.$watch((function(){return e.currentQuery.query}),(function(n,t){n!==t&&e.setDirty()}))}function h(){u.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){const n=getError(e);return t.error(n,l.instant("common.add.known.prefixes.error")),!0}))}function C(){j()&&s.getColumnNames(e.currentQuery.query).success((function(n){s.getColumnsTypeSuggestion(e.currentQuery.query,n).success((function(t){const r=[];_.forEach(n,(function(e){r.push({column_name:e,column_type:t[e].column_type,nullable:!0,sparql_type:t[e].sparql_type})})),e.currentQuery.columns=r,e.setDirty()})).error((function(e){t.error(getError(e),l.instant("jdbc.not.suggest.column.types"))}))})).error((function(e){t.error(getError(e),l.instant("jdbc.not.suggest.column.names"))}))}function v(){2===e.page?e.viewMode="editor":e.viewMode="none"}function T(e,n,t,r,o){let i=t[r].value;i=i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return"<div class = 'literal-cell'>"+("<p class='nonUri' style='border: none; background-color: transparent; padding: 0; margin: 0'>"+i+"</p>")+"</div>"}function q(){return window.editor&&"SELECT"===window.editor.getQueryType()}function S(){return j()&&function(){if(!e.currentQuery.columns||!e.currentQuery.columns.length)return t.error(l.instant("jdbc.warning.one.column.msg"),l.instant("jdbc.invalid.columns")),!1;if(e.containsUnknownColumns())return t.error(l.instant("jdbc.warning.all.column.msg"),l.instant("jdbc.invalid.columns")),!1;return!0}()}function j(){return!!q()||(t.error(l.instant("jdbc.warning.invalid.query"),l.instant("jdbc.invalid.query)")),!1)}e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:100,page:1,allResultsCount:0,resultsCount:0,queryType:""}},e.saveTab=function(){},e.setQuery=function(e){window.editor.setValue(e||" ")},e.name?(p=e.name,s.getJdbcConfiguration(p).success((function(e){m.query=e.query,m.name=e.name,m.columns=e.columns,m.isNewConfiguration=!e.name,w()})).error((function(e){const n=getError(e);t.error(n,l.instant("jdbc.not.get.sql.msg2"))}))):w(),e.goToPage=function(n){e.page=n;const t=e.currentQuery.columns;2!==n||t&&0!==t.length||!q()||e.getColumnsSuggestions(),v()},e.save=function(){S()&&(e.currentQuery.name?e.currentQuery.isNewConfiguration?s.createNewJdbcConfiguration(e.currentQuery).success((function(){e.currentQuery.isPristine=!0,e.currentQuery.isNewConfiguration=!1,t.success(l.instant("jdbc.saved.configuration")),e.goBack()})).error((function(e){const n=getError(e);t.error(n,l.instant("jdbc.not.saved.configuration"))})):s.updateJdbcConfiguration(e.currentQuery).success((function(){e.currentQuery.isPristine=!0,e.currentQuery.isNewConfiguration=!1,t.success(l.instant("jdbc.configuration.updated")),e.goBack()})).error((function(e){const n=getError(e);t.error(n,l.instant("jdbc.not.saved.configuration"))})):t.error(l.instant("jdbc.required.configuration.name")))},e.hasPrecision=function(e){return"iri"===e||"string"===e||"decimal"===e},e.containsColumnsWithPrecision=function(n){return n&&n.some(n=>e.hasPrecision(n.column_type))},e.hasScale=function(e){return"decimal"===e},e.containsColumnsWithScale=function(n){return n&&n.some(n=>e.hasScale(n.column_type))},e.isLiteral=function(e){return"iri"!==e&&"unknown"!==e},e.containsNonLiteralColumnsOnly=function(n){return n&&n.every(n=>!e.isLiteral(n.column_type))},e.containsUnknownColumns=function(){return e.currentQuery.columns&&e.currentQuery.columns.find(e=>"unknown"===e.column_type)},$("textarea").on("paste",(function(){i((function(){h()}),0)})),e.selectColumnType=function(n,r){const o=_.find(e.currentQuery.columns,(function(e){return e.column_name===n}));"Get suggestion..."===o.column_type&&s.getColumnsTypeSuggestion(e.currentQuery.query,[n]).success((function(e){o.column_type=e[n].column_type,o.column_type===r?t.info(l.instant("jdbc.same.suggested.sql.type",{type:o.column_type}),l.instant("jdbc.suggest.sql.type"),{allowHtml:!0}):t.success(l.instant("jdbc.suggested.sql.type",{type:o.column_type}),l.instant("jdbc.suggest.sql.type"),{allowHtml:!0}),o.sparql_type=e[n].sparql_type})).error((function(e){t.error(getError(e),l.instant("jdbc.not.suggest.column.type"))})),e.setDirty()},e.getColumnsSuggestions=function(){e.currentQuery.columns&&e.currentQuery.columns.length>0?c.openSimpleModal({title:l.instant("common.warning"),message:l.instant("jdbc.warning.column.type.msg"),warning:!0}).result.then((function(){C()})):C()},e.deleteColumn=function(n,t){c.openSimpleModal({title:l.instant("common.warning"),message:l.instant("jdbc.warning.delete.column.msg",{columnName:n}),warning:!0}).result.then((function(){e.currentQuery.columns.splice(t,1),e.setDirty()}))},e.getPreview=function(){if(S()&&(e.executedQueryTab=e.currentQuery,!e.queryIsRunning)){e.currentQuery.outputType="table",e.resetCurrentTabConfig(),b(!0,l.instant("jdbc.preview.first.rows",{name:e.name}),l.instant("common.extra.message"));const n=function(n,r,o){!function(n,r,o){n.results&&n.results.bindings&&n.results.bindings.length?(window.yasr.plugins.table.options.getCellContent=T,e.currentTabConfig.queryType="SELECT",window.yasr.setResponse(r,o,null)):t.info(l.instant("jdbc.table.definition"),l.instant("jdbc.preview.sql"))}(n,o,r),b(!1)},r=function(e){b(!1),t.error(getError(e,0,100),l.instant("jdbc.not.show.preview"))};if(e.canWriteActiveRepo()){const t=JSON.stringify({name:e.currentQuery.name,query:e.currentQuery.query,columns:e.currentQuery.columns||[]});s.getNewSqlTablePreview(t).done(n).fail(r)}else s.getExistingSqlTablePreview(e.currentQuery.name).done(n).fail(r)}},e.setDirty=function(){e.currentQuery.isPristine=!1},e.getTypeLabel=function(e){switch(e){case"iri":return"VARCHAR: IRI";case"string":return"VARCHAR: String";default:return e.indexOf(" ")>0?e:e.toUpperCase()}}}angular.module("graphdb.framework.jdbc.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.monitoring.service","toastr"],["graphdb.framework.utils.notifications"]).controller("JdbcListCtrl",r).controller("JdbcCreateCtrl",o),r.$inject=["$scope","$repositories","JdbcRestService","toastr","ModalService","$translate"],o.$inject=["$scope","$location","toastr","$repositories","$window","$timeout","JdbcRestService","RDF4JRepositoriesRestService","SparqlRestService","ModalService","$translate"]},81:function(e,n){angular.module("graphdb.framework.rest.jdbc.service",[]).factory("JdbcRestService",t),t.$inject=["$http","$repositories","$translate"];function t(e,n){return{getJdbcConfigurations:function(){return e.get("rest/sql-views/tables")},getJdbcConfiguration:function(n){return e.get("rest/sql-views/tables/"+n)},createNewJdbcConfiguration:function(e){return t("POST","",e)},updateJdbcConfiguration:function(e){return t("PUT",e.name,e)},deleteJdbcConfiguration:function(n){return e.delete("rest/sql-views/tables/"+n)},getColumnNames:function(n){return e.post("rest/sql-views/columns",n,{headers:{Accept:"application/json","Content-Type":"text/plain"}})},getColumnsTypeSuggestion:function(t,r){if(!Array.isArray(r))throw new Error(n.instant("jdbc.column.names.constraint"));return e({method:"POST",url:"rest/sql-views/types",data:{query:t,column_names:r}})},getExistingSqlTablePreview:function(e,n){return $.ajax({method:"GET",url:"rest/sql-views/preview/"+e,params:{limit:n}})},getNewSqlTablePreview:function(e,n){return $.ajax({method:"POST",url:"rest/sql-views/preview",contentType:"application/json; charset=utf-8",dataType:"json",data:e,params:{limit:n},headers:{Accept:"application/sparql-results+json"}})}};function t(n,t,r){return e({method:n,url:"rest/sql-views/tables/"+t,noCancelOnRouteChange:!0,data:{name:r.name,query:r.query,columns:r.columns||[]}})}}}}]);
2
- //# sourceMappingURL=17.d1ac5f88f9ef9ee1c789.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[17,38,52,105,122],{127:function(e,n,t){"use strict";t.r(n);t(4),t(11),t(52),t(10),t(80),t(81),t(42),t(43),t(44);angular.module("graphdb.framework.jdbc",["toastr","ui.bootstrap","graphdb.framework.jdbc.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.rest.jdbc.service","graphdb.framework.core.directives.queryeditor.controllers","graphdb.framework.core.directives.queryeditor.sparqltab","graphdb.framework.core.directives.queryeditor.queryeditor"])},38:function(e,n){function t(e,n){return{showToastMessageWithDelay:function(t){return new Promise(r=>{e.success(n.instant(t)),setTimeout(r,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",t),t.$inject=["toastr","$translate"]},42:function(e,n,t){"use strict";t.r(n);t(5);function r(e,n,t,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,o,i,s,a){function u(e){return $(e).attr("data-id")}function c(e){$('a[data-id = "'+e+'"]').tab("show")}e.state={},$(r).on("shown.bs.tab",(function(e){o.$broadcast("tabAction",e)})),e.deleteTab=function(l){if(l.preventDefault(),l.stopPropagation(),e.tabs.length<2)return void s.warning(a.instant("sparql.tab.directive.close.last.warning"));l.shiftKey?(e.state.selectedTabId=u(r),i.openSimpleModal({title:a.instant("common.confirm"),message:a.instant("sparql.tab.directive.delete.all.tabs.warning"),warning:!0}).result.then((function(){var r;r=e.state.selectedTabId,e.tabs=e.tabs.filter((function(e){if(e.id===r)return e})),c(e.tabs[0].id),n.set(t.TABS_STATE,e.tabs),o.$broadcast("deleteAllexeptSelected",e.tabs)}))):(e.state.idForDelete=u(r),i.openSimpleModal({title:a.instant("common.confirm"),message:a.instant("sparql.tab.directive.close.tab.warning"),warning:!0}).result.then((function(){!function(n){if(angular.isUndefined(n))throw"Delete by id was called with undefined id";const t=function(n){for(let t=0;t<e.tabs.length;t++){if(e.tabs[t].id===n)return t}}(n);e.tabs.splice(t,1),n===e.currentQuery.id&&e.tabs.length>0&&c(t>0?e.tabs[t-1].id:e.tabs[0].id)}(e.state.idForDelete)})));angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.editCurrentTab=function(){if(u(r)!==e.currentQuery.id)return;e.editCurrentlySelectedOnly.$show();const n=$(".editable-buttons");n.children(".btn.btn-primary").addClass("btn-sm"),n.children(".btn.btn-default").addClass("btn-sm"),$(".editable-controls .editable-input").addClass("form-control-sm").on("change",(function(n){e.currentQuery.name=n.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(n){n.preventDefault(),n.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"]},80:function(e,n,t){"use strict";t.r(n);t(4),t(10),t(14),t(38);function r(e,n,t,r,o,i){e.getSqlConfigurations=function(){!n.getActiveRepository()||n.isActiveRepoOntopType()||n.isActiveRepoFedXType()?e.jdbcConfigurations=[]:t.getJdbcConfigurations().success((function(n){e.jdbcConfigurations=n})).error((function(e){const n=getError(e);r.error(n,i.instant("jdbc.not.get.SQL.msg"))}))},e.$watch((function(){return n.getActiveRepository()}),(function(){e.getSqlConfigurations()})),e.deleteConfiguration=function(n){o.openSimpleModal({title:i.instant("common.warning"),message:i.instant("jdbc.delete.sql.table.warning.msg",{name:n}),warning:!0}).result.then((function(){t.deleteJdbcConfiguration(n).success((function(){e.getSqlConfigurations()})).error((function(e){r.error(getError(e),i.instant("jdbc.not.delete.sql.msg"))}))}))}}function o(e,n,t,r,o,i,s,a,u,c,l){e.name=n.search().name||"",e.getNamespaces=function(){b(!0,l.instant("common.refreshing.namespaces"),l.instant("common.extra.message")),a.getRepositoryNamespaces().success((function(n){const t={};n.results.bindings.forEach((function(e){t[e.prefix.value]=e.namespace.value})),e.namespaces=t})).error((function(n){e.repositoryError=getError(n)})).finally((function(){b(!1),y()}))},e.setLoader=b,e.addKnownPrefixes=h,e.page=1,e.noPadding={paddingRight:0,paddingLeft:0},e.sqlTypes=["string","iri","boolean","byte","short","int","long","float","double","decimal","date","time","timestamp","Get suggestion..."],e.currentTabConfig={},e.orientationViewMode=!0,e.currentQuery={},e.$watch((function(){return r.getActiveRepository()}),(function(e,t){e!==t&&n.path("jdbc")}));let d=null;e.goBack=function(){d=i((function(){o.history.back()}),1e3)};const g=e.$on("$locationChangeStart",(function(n){!function(n){e.currentQuery.isPristine||(confirm(l.instant("jdbc.warning.unsaved.changes"))?(window.removeEventListener("beforeunload",f),g(),i.cancel(d)):n.preventDefault())}(n)}));function f(n){e.currentQuery.isPristine||(n.returnValue=!0)}window.addEventListener("beforeunload",f),e.$on("$destroy",(function(e){window.removeEventListener("beforeunload",f),g(),i.cancel(d)}));const m={id:"1",name:"",query:"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n\n# Selects two variables to use as columns\nSELECT ?id ?label {\n ?id rdfs:label ?label\n # The following placeholder must be present in the query\n #!filter\n}",inference:!0,sameAs:!0,isNewConfiguration:!0,isPristine:!0};var p;function b(n,t,r){const o=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=n,n?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=t,e.extraMessage=r,o.addClass("hide")):(e.progressMessage="",e.extraMessage="",o.removeClass("hide")),null===e.$$phase&&e.$apply()}function y(){e.tabsData=[e.currentQuery];const n=e.currentQuery;e.currentQuery.query?window.editor.setValue(e.currentQuery.query):window.editor.setValue(" "),i((function(){e.currentTabConfig={},e.currentTabConfig.queryType=n.queryType,e.currentTabConfig.resultsCount=n.resultsCount,e.currentTabConfig.offset=n.offset,e.currentTabConfig.allResultsCount=n.allResultsCount,e.currentTabConfig.page=n.page,e.currentTabConfig.pageSize=n.pageSize,e.currentTabConfig.timeFinished=n.timeFinished,e.currentTabConfig.timeTook=n.timeTook,e.currentTabConfig.sizeDelta=n.sizeDelta,e.$apply()}),0),e.canWriteActiveRepo()||(window.editor.options.readOnly=!0)}function w(){e.tabsData=e.tabs=[m],e.currentQuery=angular.copy(m),v(),window.editor&&(e.setQuery(e.currentQuery.query),y()),e.$watch((function(){return e.currentQuery.query}),(function(n,t){n!==t&&e.setDirty()}))}function h(){u.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){const n=getError(e);return t.error(n,l.instant("common.add.known.prefixes.error")),!0}))}function C(){j()&&s.getColumnNames(e.currentQuery.query).success((function(n){s.getColumnsTypeSuggestion(e.currentQuery.query,n).success((function(t){const r=[];_.forEach(n,(function(e){r.push({column_name:e,column_type:t[e].column_type,nullable:!0,sparql_type:t[e].sparql_type})})),e.currentQuery.columns=r,e.setDirty()})).error((function(e){t.error(getError(e),l.instant("jdbc.not.suggest.column.types"))}))})).error((function(e){t.error(getError(e),l.instant("jdbc.not.suggest.column.names"))}))}function v(){2===e.page?e.viewMode="editor":e.viewMode="none"}function T(e,n,t,r,o){let i=t[r].value;i=i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return"<div class = 'literal-cell'>"+("<p class='nonUri' style='border: none; background-color: transparent; padding: 0; margin: 0'>"+i+"</p>")+"</div>"}function q(){return window.editor&&"SELECT"===window.editor.getQueryType()}function S(){return j()&&function(){if(!e.currentQuery.columns||!e.currentQuery.columns.length)return t.error(l.instant("jdbc.warning.one.column.msg"),l.instant("jdbc.invalid.columns")),!1;if(e.containsUnknownColumns())return t.error(l.instant("jdbc.warning.all.column.msg"),l.instant("jdbc.invalid.columns")),!1;return!0}()}function j(){return!!q()||(t.error(l.instant("jdbc.warning.invalid.query"),l.instant("jdbc.invalid.query)")),!1)}e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:100,page:1,allResultsCount:0,resultsCount:0,queryType:""}},e.saveTab=function(){},e.setQuery=function(e){window.editor.setValue(e||" ")},e.name?(p=e.name,s.getJdbcConfiguration(p).success((function(e){m.query=e.query,m.name=e.name,m.columns=e.columns,m.isNewConfiguration=!e.name,w()})).error((function(e){const n=getError(e);t.error(n,l.instant("jdbc.not.get.sql.msg2"))}))):w(),e.goToPage=function(n){e.page=n;const t=e.currentQuery.columns;2!==n||t&&0!==t.length||!q()||e.getColumnsSuggestions(),v()},e.save=function(){S()&&(e.currentQuery.name?e.currentQuery.isNewConfiguration?s.createNewJdbcConfiguration(e.currentQuery).success((function(){e.currentQuery.isPristine=!0,e.currentQuery.isNewConfiguration=!1,t.success(l.instant("jdbc.saved.configuration")),e.goBack()})).error((function(e){const n=getError(e);t.error(n,l.instant("jdbc.not.saved.configuration"))})):s.updateJdbcConfiguration(e.currentQuery).success((function(){e.currentQuery.isPristine=!0,e.currentQuery.isNewConfiguration=!1,t.success(l.instant("jdbc.configuration.updated")),e.goBack()})).error((function(e){const n=getError(e);t.error(n,l.instant("jdbc.not.saved.configuration"))})):t.error(l.instant("jdbc.required.configuration.name")))},e.hasPrecision=function(e){return"iri"===e||"string"===e||"decimal"===e},e.containsColumnsWithPrecision=function(n){return n&&n.some(n=>e.hasPrecision(n.column_type))},e.hasScale=function(e){return"decimal"===e},e.containsColumnsWithScale=function(n){return n&&n.some(n=>e.hasScale(n.column_type))},e.isLiteral=function(e){return"iri"!==e&&"unknown"!==e},e.containsNonLiteralColumnsOnly=function(n){return n&&n.every(n=>!e.isLiteral(n.column_type))},e.containsUnknownColumns=function(){return e.currentQuery.columns&&e.currentQuery.columns.find(e=>"unknown"===e.column_type)},$("textarea").on("paste",(function(){i((function(){h()}),0)})),e.selectColumnType=function(n,r){const o=_.find(e.currentQuery.columns,(function(e){return e.column_name===n}));"Get suggestion..."===o.column_type&&s.getColumnsTypeSuggestion(e.currentQuery.query,[n]).success((function(e){o.column_type=e[n].column_type,o.column_type===r?t.info(l.instant("jdbc.same.suggested.sql.type",{type:o.column_type}),l.instant("jdbc.suggest.sql.type"),{allowHtml:!0}):t.success(l.instant("jdbc.suggested.sql.type",{type:o.column_type}),l.instant("jdbc.suggest.sql.type"),{allowHtml:!0}),o.sparql_type=e[n].sparql_type})).error((function(e){t.error(getError(e),l.instant("jdbc.not.suggest.column.type"))})),e.setDirty()},e.getColumnsSuggestions=function(){e.currentQuery.columns&&e.currentQuery.columns.length>0?c.openSimpleModal({title:l.instant("common.warning"),message:l.instant("jdbc.warning.column.type.msg"),warning:!0}).result.then((function(){C()})):C()},e.deleteColumn=function(n,t){c.openSimpleModal({title:l.instant("common.warning"),message:l.instant("jdbc.warning.delete.column.msg",{columnName:n}),warning:!0}).result.then((function(){e.currentQuery.columns.splice(t,1),e.setDirty()}))},e.getPreview=function(){if(S()&&(e.executedQueryTab=e.currentQuery,!e.queryIsRunning)){e.currentQuery.outputType="table",e.resetCurrentTabConfig(),b(!0,l.instant("jdbc.preview.first.rows",{name:e.name}),l.instant("common.extra.message"));const n=function(n,r,o){!function(n,r,o){n.results&&n.results.bindings&&n.results.bindings.length?(window.yasr.plugins.table.options.getCellContent=T,e.currentTabConfig.queryType="SELECT",window.yasr.setResponse(r,o,null)):t.info(l.instant("jdbc.table.definition"),l.instant("jdbc.preview.sql"))}(n,o,r),b(!1)},r=function(e){b(!1),t.error(getError(e,0,100),l.instant("jdbc.not.show.preview"))};if(e.canWriteActiveRepo()){const t=JSON.stringify({name:e.currentQuery.name,query:e.currentQuery.query,columns:e.currentQuery.columns||[]});s.getNewSqlTablePreview(t).done(n).fail(r)}else s.getExistingSqlTablePreview(e.currentQuery.name).done(n).fail(r)}},e.setDirty=function(){e.currentQuery.isPristine=!1},e.getTypeLabel=function(e){switch(e){case"iri":return"VARCHAR: IRI";case"string":return"VARCHAR: String";default:return e.indexOf(" ")>0?e:e.toUpperCase()}}}angular.module("graphdb.framework.jdbc.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.monitoring.service","toastr"],["graphdb.framework.utils.notifications"]).controller("JdbcListCtrl",r).controller("JdbcCreateCtrl",o),r.$inject=["$scope","$repositories","JdbcRestService","toastr","ModalService","$translate"],o.$inject=["$scope","$location","toastr","$repositories","$window","$timeout","JdbcRestService","RDF4JRepositoriesRestService","SparqlRestService","ModalService","$translate"]},81:function(e,n){angular.module("graphdb.framework.rest.jdbc.service",[]).factory("JdbcRestService",t),t.$inject=["$http","$repositories","$translate"];function t(e,n){return{getJdbcConfigurations:function(){return e.get("rest/sql-views/tables")},getJdbcConfiguration:function(n){return e.get("rest/sql-views/tables/"+n)},createNewJdbcConfiguration:function(e){return t("POST","",e)},updateJdbcConfiguration:function(e){return t("PUT",e.name,e)},deleteJdbcConfiguration:function(n){return e.delete("rest/sql-views/tables/"+n)},getColumnNames:function(n){return e.post("rest/sql-views/columns",n,{headers:{Accept:"application/json","Content-Type":"text/plain"}})},getColumnsTypeSuggestion:function(t,r){if(!Array.isArray(r))throw new Error(n.instant("jdbc.column.names.constraint"));return e({method:"POST",url:"rest/sql-views/types",data:{query:t,column_names:r}})},getExistingSqlTablePreview:function(e,n){return $.ajax({method:"GET",url:"rest/sql-views/preview/"+e,params:{limit:n}})},getNewSqlTablePreview:function(e,n){return $.ajax({method:"POST",url:"rest/sql-views/preview",contentType:"application/json; charset=utf-8",dataType:"json",data:e,params:{limit:n},headers:{Accept:"application/sparql-results+json"}})}};function t(n,t,r){return e({method:n,url:"rest/sql-views/tables/"+t,noCancelOnRouteChange:!0,data:{name:r.name,query:r.query,columns:r.columns||[]}})}}}}]);
2
+ //# sourceMappingURL=17.a417430fca1e34e80912.bundle.js.map