graphdb-workbench 3.1.1 → 3.2.0-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 (353) hide show
  1. package/README.md +45 -0
  2. package/dist/10142.f47cd2aec05492fce7ce.bundle.js +2 -0
  3. package/dist/10142.f47cd2aec05492fce7ce.bundle.js.map +1 -0
  4. package/dist/10406.52677950658780fd8859.bundle.js +2 -0
  5. package/dist/{10406.7fed4b667b0d2813b305.bundle.js.map → 10406.52677950658780fd8859.bundle.js.map} +1 -1
  6. package/dist/12358.2061f29dc113149946a3.bundle.js +3 -0
  7. package/dist/12358.2061f29dc113149946a3.bundle.js.map +1 -0
  8. package/dist/12396.4c26c8da50c790b0f39a.bundle.js +2 -0
  9. package/dist/12396.4c26c8da50c790b0f39a.bundle.js.map +1 -0
  10. package/dist/14874.d6973a34188c0335fa12.bundle.js +2 -0
  11. package/dist/14874.d6973a34188c0335fa12.bundle.js.map +1 -0
  12. package/dist/15535.ce8d657c04f3401b9539.bundle.js +2 -0
  13. package/dist/15535.ce8d657c04f3401b9539.bundle.js.map +1 -0
  14. package/dist/16162.8f482628d1b34d41d496.bundle.js +2 -0
  15. package/dist/16162.8f482628d1b34d41d496.bundle.js.map +1 -0
  16. package/dist/{18961.d83ba5fd0855f3cfa7d7.bundle.js → 18961.c6505525fb0491b48f8b.bundle.js} +2 -2
  17. package/dist/{18961.d83ba5fd0855f3cfa7d7.bundle.js.map → 18961.c6505525fb0491b48f8b.bundle.js.map} +1 -1
  18. package/dist/19968.fdb823f9a12e11a633ec.bundle.js +2 -0
  19. package/dist/19968.fdb823f9a12e11a633ec.bundle.js.map +1 -0
  20. package/dist/20287.c42f9d1d913c36e46931.bundle.js +2 -0
  21. package/dist/20287.c42f9d1d913c36e46931.bundle.js.map +1 -0
  22. package/dist/20694.70b6e390d6397249c72d.bundle.js.map +1 -1
  23. package/dist/21136.199caea09a1c9ad90393.bundle.js +2 -0
  24. package/dist/21136.199caea09a1c9ad90393.bundle.js.map +1 -0
  25. package/dist/21142.b690e00c8884fddb2bb3.bundle.js +2 -0
  26. package/dist/21142.b690e00c8884fddb2bb3.bundle.js.map +1 -0
  27. package/dist/21170.d5e3041241741d21080c.bundle.js +2 -0
  28. package/dist/21170.d5e3041241741d21080c.bundle.js.map +1 -0
  29. package/dist/21195.267abc9d42b711d0f17a.bundle.js +2 -0
  30. package/dist/21195.267abc9d42b711d0f17a.bundle.js.map +1 -0
  31. package/dist/25747.4e00941ec221c4d6ce8f.bundle.js +2 -0
  32. package/dist/25747.4e00941ec221c4d6ce8f.bundle.js.map +1 -0
  33. package/dist/27580.f71ebbc69dd1c7785ef3.bundle.js +2 -0
  34. package/dist/27580.f71ebbc69dd1c7785ef3.bundle.js.map +1 -0
  35. package/dist/28050.8ca1fa760c892bfc5466.bundle.js +2 -0
  36. package/dist/28050.8ca1fa760c892bfc5466.bundle.js.map +1 -0
  37. package/dist/31636.e34ccc2d6f2dec577446.bundle.js +2 -0
  38. package/dist/31636.e34ccc2d6f2dec577446.bundle.js.map +1 -0
  39. package/dist/32489.97fac2c3daa49b143d13.bundle.js +2 -0
  40. package/dist/32489.97fac2c3daa49b143d13.bundle.js.map +1 -0
  41. package/dist/32534.fb6ef715bfb44761ec63.bundle.js +2 -0
  42. package/dist/32534.fb6ef715bfb44761ec63.bundle.js.map +1 -0
  43. package/dist/34495.cfa15bda8009fa37c6ff.bundle.js +2 -0
  44. package/dist/34495.cfa15bda8009fa37c6ff.bundle.js.map +1 -0
  45. package/dist/{38360.437a12fa59878d1d43b9.bundle.js → 38360.0a90e77042876c86b279.bundle.js} +2 -2
  46. package/dist/38360.0a90e77042876c86b279.bundle.js.map +1 -0
  47. package/dist/38412.fa86361561ffa367709f.bundle.js +2 -0
  48. package/dist/38412.fa86361561ffa367709f.bundle.js.map +1 -0
  49. package/dist/38644.3a0954c798ec413a3810.bundle.js +2 -0
  50. package/dist/38644.3a0954c798ec413a3810.bundle.js.map +1 -0
  51. package/dist/38843.5ef7a063337524ce3bb2.bundle.js +2 -0
  52. package/dist/38843.5ef7a063337524ce3bb2.bundle.js.map +1 -0
  53. package/dist/39518.4199684f3273d29d9105.bundle.js +2 -0
  54. package/dist/{39518.0ee809a85c83dba1f56a.bundle.js.map → 39518.4199684f3273d29d9105.bundle.js.map} +1 -1
  55. package/dist/39539.c23e4878044d73f2505b.bundle.js +2 -0
  56. package/dist/39539.c23e4878044d73f2505b.bundle.js.map +1 -0
  57. package/dist/{39874.c2d7cab1a65e5a869e78.bundle.js → 39874.f94a5059e1ae4f4a87e9.bundle.js} +2 -2
  58. package/dist/39874.f94a5059e1ae4f4a87e9.bundle.js.map +1 -0
  59. package/dist/41453.8bb4c783da2c5077a6e9.bundle.js +2 -0
  60. package/dist/41453.8bb4c783da2c5077a6e9.bundle.js.map +1 -0
  61. package/dist/42129.f44b7b20f9cd376c6e59.bundle.js +2 -0
  62. package/dist/42129.f44b7b20f9cd376c6e59.bundle.js.map +1 -0
  63. package/dist/44444.ad66c8256bc5b653de1a.bundle.js +2 -0
  64. package/dist/44444.ad66c8256bc5b653de1a.bundle.js.map +1 -0
  65. package/dist/44874.5854c207bbe2c4f2438e.bundle.js +2 -0
  66. package/dist/44874.5854c207bbe2c4f2438e.bundle.js.map +1 -0
  67. package/dist/45149.2f77aa736bbfb13fd987.bundle.js +2 -0
  68. package/dist/45149.2f77aa736bbfb13fd987.bundle.js.map +1 -0
  69. package/dist/45758.6ceb731cbe0576149f31.bundle.js +2 -0
  70. package/dist/45758.6ceb731cbe0576149f31.bundle.js.map +1 -0
  71. package/dist/{46591.ac9d19fd699104a9ed9b.bundle.js → 46591.0b142aa76a8991a89848.bundle.js} +2 -2
  72. package/dist/46591.0b142aa76a8991a89848.bundle.js.map +1 -0
  73. package/dist/55862.1fb5abd075ba11a7e93c.bundle.js +2 -0
  74. package/dist/55862.1fb5abd075ba11a7e93c.bundle.js.map +1 -0
  75. package/dist/58306.ba9545cbaee021ebcbce.bundle.js +2 -0
  76. package/dist/58306.ba9545cbaee021ebcbce.bundle.js.map +1 -0
  77. package/dist/{60560.024578077d95b851beea.bundle.js → 60560.37740d97b418899a5d21.bundle.js} +2 -2
  78. package/dist/{60560.024578077d95b851beea.bundle.js.map → 60560.37740d97b418899a5d21.bundle.js.map} +1 -1
  79. package/dist/67232.e76f40f9d09e64ebb365.bundle.js.map +1 -1
  80. package/dist/67888.7d4966e0a22ba655f1b8.bundle.js +2 -0
  81. package/dist/67888.7d4966e0a22ba655f1b8.bundle.js.map +1 -0
  82. package/dist/72379.bac50d0011665a85b6cd.bundle.js +2 -0
  83. package/dist/72379.bac50d0011665a85b6cd.bundle.js.map +1 -0
  84. package/dist/73667.3dd4f377e7ef54fd8758.bundle.js +2 -0
  85. package/dist/73667.3dd4f377e7ef54fd8758.bundle.js.map +1 -0
  86. package/dist/73779.193df86f08e3a1d06d67.bundle.js +2 -0
  87. package/dist/73779.193df86f08e3a1d06d67.bundle.js.map +1 -0
  88. package/dist/73793.6d80d47c26ed60a587fd.bundle.js +2 -0
  89. package/dist/73793.6d80d47c26ed60a587fd.bundle.js.map +1 -0
  90. package/dist/75282.88819e851ed18720b275.bundle.js +2 -0
  91. package/dist/75282.88819e851ed18720b275.bundle.js.map +1 -0
  92. package/dist/75849.51ade15bf0074eab76f3.bundle.js +2 -0
  93. package/dist/75849.51ade15bf0074eab76f3.bundle.js.map +1 -0
  94. package/dist/78013.e32fade7ad42b64c8122.bundle.js +2 -0
  95. package/dist/78013.e32fade7ad42b64c8122.bundle.js.map +1 -0
  96. package/dist/78250.6db42146a120459280e4.bundle.js +2 -0
  97. package/dist/78250.6db42146a120459280e4.bundle.js.map +1 -0
  98. package/dist/{78681.e44a1eb1dce4a8a29f57.bundle.js → 78681.39694d37c0f75ea04df6.bundle.js} +2 -2
  99. package/dist/{78681.e44a1eb1dce4a8a29f57.bundle.js.map → 78681.39694d37c0f75ea04df6.bundle.js.map} +1 -1
  100. package/dist/79329.5a5cbfa466d1c62af915.bundle.js +2 -0
  101. package/dist/79329.5a5cbfa466d1c62af915.bundle.js.map +1 -0
  102. package/dist/82206.8ec983edcf675cfd4531.bundle.js +2 -0
  103. package/dist/82206.8ec983edcf675cfd4531.bundle.js.map +1 -0
  104. package/dist/82896.9aed45baf67510717c6f.bundle.js +2 -0
  105. package/dist/82896.9aed45baf67510717c6f.bundle.js.map +1 -0
  106. package/dist/{82926.f625cc022724426fb8fb.bundle.js → 82926.93dbf44f2bcccba34e9b.bundle.js} +2 -2
  107. package/dist/{82926.f625cc022724426fb8fb.bundle.js.map → 82926.93dbf44f2bcccba34e9b.bundle.js.map} +1 -1
  108. package/dist/85281.27b5a1eb8e7ac2cf8459.bundle.js +2 -0
  109. package/dist/85281.27b5a1eb8e7ac2cf8459.bundle.js.map +1 -0
  110. package/dist/{88206.fbbcf8ccd9460c579e87.bundle.js → 88206.28c337e2edbf17928836.bundle.js} +2 -2
  111. package/dist/88206.28c337e2edbf17928836.bundle.js.map +1 -0
  112. package/dist/9062.d9049833d076191d3e1a.bundle.js +2 -0
  113. package/dist/9062.d9049833d076191d3e1a.bundle.js.map +1 -0
  114. package/dist/99379.be6c85ef305af6667dc1.bundle.js +2 -0
  115. package/dist/99379.be6c85ef305af6667dc1.bundle.js.map +1 -0
  116. package/dist/99448.314018d0afb1af150ddf.bundle.js +2 -0
  117. package/dist/99448.314018d0afb1af150ddf.bundle.js.map +1 -0
  118. package/dist/api/error/error-base.d.ts +1 -1
  119. package/dist/api/ontotext-workbench-api.js +1 -1
  120. package/dist/api/ontotext-workbench-api.js.map +1 -1
  121. package/dist/i18n/locale-en.json +31 -0
  122. package/dist/i18n/locale-fr.json +31 -0
  123. package/dist/index.html +8 -8
  124. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  125. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  126. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  127. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  128. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  129. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  130. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  131. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  132. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  133. package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
  134. package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
  135. package/dist/js/angular/core/templates/search-resource-input.html +1 -1
  136. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +4 -3
  137. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  138. package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
  139. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  140. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  141. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  142. package/dist/js/angular/security/templates/user.html +2 -2
  143. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  144. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  145. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  146. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  147. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  148. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  149. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
  150. package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
  151. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  152. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  153. package/dist/legacyWorkbench.57fc12c172f6350ac4c5.js +3 -0
  154. package/dist/{legacyWorkbench.ad1d42d21ac42beabeb4.js.map → legacyWorkbench.57fc12c172f6350ac4c5.js.map} +1 -1
  155. package/dist/{main.400f2248f076a2d31d80.js → main.b9a83da68ffc43c91de0.js} +3 -3
  156. package/dist/{main.400f2248f076a2d31d80.js.map → main.b9a83da68ffc43c91de0.js.map} +1 -1
  157. package/dist/pages/aclmanagement.html +2 -2
  158. package/dist/pages/autocomplete.html +1 -1
  159. package/dist/pages/choose-repository-type.html +1 -1
  160. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  161. package/dist/pages/create-index.html +1 -1
  162. package/dist/pages/dependencies.html +1 -1
  163. package/dist/pages/domainRangeInfo.html +2 -2
  164. package/dist/pages/edit.html +1 -1
  165. package/dist/pages/explore.html +1 -1
  166. package/dist/pages/export.html +1 -1
  167. package/dist/pages/find.html +1 -1
  168. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  169. package/dist/pages/graphs-visualizations.html +7 -7
  170. package/dist/pages/guides.html +1 -1
  171. package/dist/pages/import.html +2 -2
  172. package/dist/pages/jdbc-create.html +1 -1
  173. package/dist/pages/login.html +1 -1
  174. package/dist/pages/monitor/backup-and-restore.html +1 -1
  175. package/dist/pages/monitor/queries.html +1 -1
  176. package/dist/pages/monitor/resources.html +1 -1
  177. package/dist/pages/namespaces.html +2 -2
  178. package/dist/pages/plugins.html +1 -1
  179. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  180. package/dist/pages/rdfrank.html +2 -2
  181. package/dist/pages/repositories.html +1 -1
  182. package/dist/pages/repository.html +1 -1
  183. package/dist/pages/similarity-indexes.html +1 -1
  184. package/dist/pages/sparql-editor.html +1 -1
  185. package/dist/pages/sparql-template-create.html +1 -1
  186. package/dist/pages/ux-test1.html +2 -2
  187. package/dist/pages/webapi.html +2 -2
  188. package/dist/plugins.js +1 -1
  189. package/dist/res/swagger5/css/onto-theme.css +1 -1
  190. package/dist/res/swagger5/index.html +11 -11
  191. package/dist/shared-components/cjs/onto-cookie-consent_2.cjs.entry.js +1 -1
  192. package/dist/shared-components/cjs/onto-dialog_2.cjs.entry.js +1 -1
  193. package/dist/shared-components/cjs/onto-dropdown.cjs.entry.js +1 -1
  194. package/dist/shared-components/cjs/onto-footer_6.cjs.entry.js +1 -1
  195. package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js +1 -1
  196. package/dist/shared-components/cjs/onto-layout.cjs.entry.js +1 -1
  197. package/dist/shared-components/cjs/translate-label.cjs.entry.js +1 -1
  198. package/dist/shared-components/collection/components/dialogs/onto-cookie-policy-dialog/onto-cookie-policy-dialog.js +1 -1
  199. package/dist/shared-components/collection/components/dialogs/onto-dialog.js +1 -1
  200. package/dist/shared-components/collection/components/onto-cookie-consent/onto-cookie-consent.js +1 -1
  201. package/dist/shared-components/collection/components/onto-dropdown/onto-dropdown.js +1 -1
  202. package/dist/shared-components/collection/components/onto-footer/onto-footer.js +1 -1
  203. package/dist/shared-components/collection/components/onto-header/onto-header.js +1 -1
  204. package/dist/shared-components/collection/components/onto-language-selector/onto-language-selector.js +1 -1
  205. package/dist/shared-components/collection/components/onto-layout/onto-layout.js +1 -1
  206. package/dist/shared-components/collection/components/onto-navbar/navbar-model.js +1 -1
  207. package/dist/shared-components/collection/components/onto-navbar/navbar-service.js +1 -1
  208. package/dist/shared-components/collection/components/onto-operations-notification/onto-operations-notification.js +1 -1
  209. package/dist/shared-components/collection/components/onto-rdf-search/onto-rdf-search.js +1 -1
  210. package/dist/shared-components/collection/components/onto-repository-selector/onto-repository-selector.js +1 -1
  211. package/dist/shared-components/collection/components/onto-search-icon/onto-search-icon.js +1 -1
  212. package/dist/shared-components/collection/components/onto-search-resource-input/onto-search-resource-input.js +1 -1
  213. package/dist/shared-components/collection/components/onto-toastr/onto-toastr.js +1 -1
  214. package/dist/shared-components/collection/components/onto-toggle-switch/onto-toggle-switch.js +1 -1
  215. package/dist/shared-components/collection/components/onto-tooltip/onto-tooltip.js +1 -1
  216. package/dist/shared-components/collection/components/translate-label/translate-label.js +1 -1
  217. package/dist/shared-components/esm/onto-cookie-consent_2.entry.js +1 -1
  218. package/dist/shared-components/esm/onto-dialog_2.entry.js +1 -1
  219. package/dist/shared-components/esm/onto-dropdown.entry.js +1 -1
  220. package/dist/shared-components/esm/onto-footer_6.entry.js +1 -1
  221. package/dist/shared-components/esm/onto-language-selector_9.entry.js +1 -1
  222. package/dist/shared-components/esm/onto-layout.entry.js +1 -1
  223. package/dist/shared-components/esm/translate-label.entry.js +1 -1
  224. package/dist/shared-components/shared-components/p-17bac1e3.entry.js +1 -0
  225. package/dist/shared-components/shared-components/p-1bc2ac8e.entry.js +1 -0
  226. package/dist/shared-components/shared-components/p-2433b25f.entry.js +1 -0
  227. package/dist/shared-components/shared-components/p-25fa0ee5.entry.js +1 -0
  228. package/dist/shared-components/shared-components/{p-a4e82a3f.entry.js → p-6266be98.entry.js} +1 -1
  229. package/dist/shared-components/shared-components/{p-eed8b067.entry.js → p-91ad7f7f.entry.js} +1 -1
  230. package/dist/shared-components/shared-components/p-aef0b970.entry.js +1 -0
  231. package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
  232. package/dist/shared-components/types/components/onto-dropdown/onto-dropdown.d.ts +2 -2
  233. package/dist/shared-components/types/components/onto-navbar/navbar-model.d.ts +4 -1
  234. package/dist/shared-components/types/components/onto-navbar/navbar-toggled-event.d.ts +1 -1
  235. package/dist/shared-components/types/components/onto-navbar/onto-navbar.d.ts +2 -2
  236. package/dist/shared-components/types/components/onto-test-context/onto-test-context.d.ts +23 -23
  237. package/dist/shared-components/types/components/onto-tooltip/models/onto-tooltip-configuration.d.ts +1 -2
  238. package/dist/shared-components/types/components.d.ts +4 -4
  239. package/dist/shared-components/types/models/component-event.d.ts +1 -1
  240. package/dist/shared-components/types/utils/function-utils.d.ts +1 -1
  241. package/dist/shared-components/types/utils/tooltip-util.d.ts +2 -2
  242. package/dist/workbench/workbench/workbenchApp.js +1 -1
  243. package/package.json +8 -2
  244. package/dist/10142.6a276ff32f58aa4d1b72.bundle.js +0 -2
  245. package/dist/10142.6a276ff32f58aa4d1b72.bundle.js.map +0 -1
  246. package/dist/10153.1532fddd43604bf408c3.bundle.js +0 -2
  247. package/dist/10153.1532fddd43604bf408c3.bundle.js.map +0 -1
  248. package/dist/10406.7fed4b667b0d2813b305.bundle.js +0 -2
  249. package/dist/12358.736ea9c178c92655de3a.bundle.js +0 -3
  250. package/dist/12358.736ea9c178c92655de3a.bundle.js.map +0 -1
  251. package/dist/12396.47201b3f37dcfe963353.bundle.js +0 -2
  252. package/dist/12396.47201b3f37dcfe963353.bundle.js.map +0 -1
  253. package/dist/14874.17bc671b6ff6123b9eb1.bundle.js +0 -2
  254. package/dist/14874.17bc671b6ff6123b9eb1.bundle.js.map +0 -1
  255. package/dist/15535.e3d3f8071a4cc462b5eb.bundle.js +0 -2
  256. package/dist/15535.e3d3f8071a4cc462b5eb.bundle.js.map +0 -1
  257. package/dist/16162.bc70365c3f546e70a3e9.bundle.js +0 -2
  258. package/dist/16162.bc70365c3f546e70a3e9.bundle.js.map +0 -1
  259. package/dist/20287.c3d0095a3a5f18cd0087.bundle.js +0 -2
  260. package/dist/20287.c3d0095a3a5f18cd0087.bundle.js.map +0 -1
  261. package/dist/21136.fb6d69cd9e6dd31a65b2.bundle.js +0 -2
  262. package/dist/21136.fb6d69cd9e6dd31a65b2.bundle.js.map +0 -1
  263. package/dist/21142.0589f58f1a3b49b4fcfa.bundle.js +0 -2
  264. package/dist/21142.0589f58f1a3b49b4fcfa.bundle.js.map +0 -1
  265. package/dist/21170.8126948c956555b4f9ff.bundle.js +0 -2
  266. package/dist/21170.8126948c956555b4f9ff.bundle.js.map +0 -1
  267. package/dist/21195.77df14ed68c1f286839a.bundle.js +0 -2
  268. package/dist/21195.77df14ed68c1f286839a.bundle.js.map +0 -1
  269. package/dist/25747.612b1bce6250300d137f.bundle.js +0 -2
  270. package/dist/25747.612b1bce6250300d137f.bundle.js.map +0 -1
  271. package/dist/27580.88bc1444d863327a3697.bundle.js +0 -2
  272. package/dist/27580.88bc1444d863327a3697.bundle.js.map +0 -1
  273. package/dist/28050.1359d262b2e2c497ad6d.bundle.js +0 -2
  274. package/dist/28050.1359d262b2e2c497ad6d.bundle.js.map +0 -1
  275. package/dist/31636.625df78d380dadd69c07.bundle.js +0 -2
  276. package/dist/31636.625df78d380dadd69c07.bundle.js.map +0 -1
  277. package/dist/32489.5f438460389d65300913.bundle.js +0 -2
  278. package/dist/32489.5f438460389d65300913.bundle.js.map +0 -1
  279. package/dist/32534.73081e468e918a03bd70.bundle.js +0 -2
  280. package/dist/32534.73081e468e918a03bd70.bundle.js.map +0 -1
  281. package/dist/32606.376e14770ba6e81b7159.bundle.js +0 -2
  282. package/dist/32606.376e14770ba6e81b7159.bundle.js.map +0 -1
  283. package/dist/34495.e0f8e26f32d7d8def627.bundle.js +0 -2
  284. package/dist/34495.e0f8e26f32d7d8def627.bundle.js.map +0 -1
  285. package/dist/38360.437a12fa59878d1d43b9.bundle.js.map +0 -1
  286. package/dist/38412.85b4c12f5ed5ffb6e4dd.bundle.js +0 -2
  287. package/dist/38412.85b4c12f5ed5ffb6e4dd.bundle.js.map +0 -1
  288. package/dist/38644.6e82d4276df028701834.bundle.js +0 -2
  289. package/dist/38644.6e82d4276df028701834.bundle.js.map +0 -1
  290. package/dist/38843.428e7caf2e6805840b83.bundle.js +0 -2
  291. package/dist/38843.428e7caf2e6805840b83.bundle.js.map +0 -1
  292. package/dist/39518.0ee809a85c83dba1f56a.bundle.js +0 -2
  293. package/dist/39539.2a03bf4161ee846817d3.bundle.js +0 -2
  294. package/dist/39539.2a03bf4161ee846817d3.bundle.js.map +0 -1
  295. package/dist/39874.c2d7cab1a65e5a869e78.bundle.js.map +0 -1
  296. package/dist/41453.5370acf9540ff5382268.bundle.js +0 -2
  297. package/dist/41453.5370acf9540ff5382268.bundle.js.map +0 -1
  298. package/dist/42129.02f0b477c276dceb732c.bundle.js +0 -2
  299. package/dist/42129.02f0b477c276dceb732c.bundle.js.map +0 -1
  300. package/dist/44444.57b74adca89db793b77c.bundle.js +0 -2
  301. package/dist/44444.57b74adca89db793b77c.bundle.js.map +0 -1
  302. package/dist/44874.60bab9adf89019b35654.bundle.js +0 -2
  303. package/dist/44874.60bab9adf89019b35654.bundle.js.map +0 -1
  304. package/dist/45758.4e363b98020c3460b4ff.bundle.js +0 -2
  305. package/dist/45758.4e363b98020c3460b4ff.bundle.js.map +0 -1
  306. package/dist/46591.ac9d19fd699104a9ed9b.bundle.js.map +0 -1
  307. package/dist/55862.81467f263f3c46d9d889.bundle.js +0 -2
  308. package/dist/55862.81467f263f3c46d9d889.bundle.js.map +0 -1
  309. package/dist/58163.747b20ea052b22b24bd0.bundle.js +0 -2
  310. package/dist/58163.747b20ea052b22b24bd0.bundle.js.map +0 -1
  311. package/dist/58306.0ca44cc562ab1135c44b.bundle.js +0 -2
  312. package/dist/58306.0ca44cc562ab1135c44b.bundle.js.map +0 -1
  313. package/dist/67888.cc78716f885f98366859.bundle.js +0 -2
  314. package/dist/67888.cc78716f885f98366859.bundle.js.map +0 -1
  315. package/dist/72379.4023fb8f5c0dd8f32faa.bundle.js +0 -2
  316. package/dist/72379.4023fb8f5c0dd8f32faa.bundle.js.map +0 -1
  317. package/dist/73667.6925315f2649c49bade2.bundle.js +0 -2
  318. package/dist/73667.6925315f2649c49bade2.bundle.js.map +0 -1
  319. package/dist/73779.c4608b73b63083cb3352.bundle.js +0 -2
  320. package/dist/73779.c4608b73b63083cb3352.bundle.js.map +0 -1
  321. package/dist/73793.0cd99844e3792d5beb8c.bundle.js +0 -2
  322. package/dist/73793.0cd99844e3792d5beb8c.bundle.js.map +0 -1
  323. package/dist/75282.1005c493f43b9d6dcc5a.bundle.js +0 -2
  324. package/dist/75282.1005c493f43b9d6dcc5a.bundle.js.map +0 -1
  325. package/dist/75849.39b30ee4eb2f1b35f762.bundle.js +0 -2
  326. package/dist/75849.39b30ee4eb2f1b35f762.bundle.js.map +0 -1
  327. package/dist/78250.8462f5662da1fd9ece0b.bundle.js +0 -2
  328. package/dist/78250.8462f5662da1fd9ece0b.bundle.js.map +0 -1
  329. package/dist/79329.cd81f51fd3aed8ca8359.bundle.js +0 -2
  330. package/dist/79329.cd81f51fd3aed8ca8359.bundle.js.map +0 -1
  331. package/dist/82206.b3b37c3e0cc1aa18148c.bundle.js +0 -2
  332. package/dist/82206.b3b37c3e0cc1aa18148c.bundle.js.map +0 -1
  333. package/dist/85281.049ddec87de0b8b07e79.bundle.js +0 -2
  334. package/dist/85281.049ddec87de0b8b07e79.bundle.js.map +0 -1
  335. package/dist/88206.fbbcf8ccd9460c579e87.bundle.js.map +0 -1
  336. package/dist/9062.2b577ad9fc05b48b64a3.bundle.js +0 -2
  337. package/dist/9062.2b577ad9fc05b48b64a3.bundle.js.map +0 -1
  338. package/dist/99379.d5dffb14dd46150e91f9.bundle.js +0 -2
  339. package/dist/99379.d5dffb14dd46150e91f9.bundle.js.map +0 -1
  340. package/dist/99448.98a68cbf8bf84857b615.bundle.js +0 -2
  341. package/dist/99448.98a68cbf8bf84857b615.bundle.js.map +0 -1
  342. package/dist/legacyWorkbench.ad1d42d21ac42beabeb4.js +0 -3
  343. package/dist/shared-components/shared-components/p-106d7df8.entry.js +0 -1
  344. package/dist/shared-components/shared-components/p-17ce51bb.entry.js +0 -1
  345. package/dist/shared-components/shared-components/p-306527cc.entry.js +0 -1
  346. package/dist/shared-components/shared-components/p-96e87635.entry.js +0 -1
  347. package/dist/shared-components/shared-components/p-af359495.entry.js +0 -1
  348. /package/dist/{12358.736ea9c178c92655de3a.bundle.js.LICENSE.txt → 12358.2061f29dc113149946a3.bundle.js.LICENSE.txt} +0 -0
  349. /package/dist/{legacyWorkbench.ad1d42d21ac42beabeb4.js.LICENSE.txt → legacyWorkbench.57fc12c172f6350ac4c5.js.LICENSE.txt} +0 -0
  350. /package/dist/{main.400f2248f076a2d31d80.js.LICENSE.txt → main.b9a83da68ffc43c91de0.js.LICENSE.txt} +0 -0
  351. /package/dist/shared-components/cjs/{tooltip-util-CmDLnWqH.js → tooltip-util-CnEXLMnw.js} +0 -0
  352. /package/dist/shared-components/esm/{tooltip-util-C1So-qrf.js → tooltip-util-BqOc8q8q.js} +0 -0
  353. /package/dist/shared-components/shared-components/{p-Bisudk7O.js → p-DzOPDgzQ.js} +0 -0
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=38644;export const __webpack_ids__=[38644];export const __webpack_modules__={38644:(t,e,r)=>{r.r(e);var a=r(88141),n=r(19935),o=(r(32150),r(93462));function s(t,e,r,s,c,i,l,d,p,u,f,g,h){return{restrict:"AE",template:'<div id="domain-range"></div>',scope:{showPredicatesInfoPanel:"=",selectedPredicate:"=",collapseEdges:"="},link:function(u){const f=d(function(){!function(u){var f=1200,y=f/18,x=f/110,m=x/2,v=f/90,k=1.2,b=o.select("#domain-range").append("svg").attr("viewBox","0 0 1200 600").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null),w=o.forceSimulation(),E=o.drag().subject(function(t){return t}).on("start",function(t,e){w.stop(),e.fx=t.x,e.fy=t.y,o.select(this).classed("selected",!0)}).on("end",function(t,e){e.fx=null,e.fy=null,o.select(this).classed("selected",!1),C?(w.alpha(.2).restart(),C=!1):w.restart()}).on("drag",function(t,e){C=!0,w.alphaTarget(0).restart(),e.fx=t.x,e.fy=t.y}),N=b.append("defs");N.append("marker").attrs({id:"arrow",viewBox:"0 -5 10 10",refX:10,refY:0,markerUnits:"strokeWidth",markerWidth:5,markerHeight:5,orient:"auto",fill:g}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),N.append("marker").attrs({id:"collapsed-arrow",viewBox:"0 -5 10 10",refX:9,refY:0,markerUnits:"strokeWidth",markerWidth:4,markerHeight:4,orient:"auto",fill:g}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),N.append("marker").attrs({id:"arrow-loop",viewBox:"0 -5 10 10",refX:7,refY:0,markerUnits:"strokeWidth",markerWidth:5,markerHeight:5,orient:"auto",fill:g}).append("path").attrs({d:"M0,-5L10,0L0,5",class:"arrowHead"}),o.select("#download-svg").on("mouseover",function(){var t=a.A.Export.getCSSRules("css/domain-range-graph.css?v=3.1.1");$("defs").append('<style type="text/css"><![CDATA['+t+"]]></style>");var e=a.A.Export.generateBase64ImageSource("#domain-range svg");o.select(this).attrs({href:e,download:"domain-range-graph-"+r.getActiveRepository()+".svg"})}),function(){var t=f/7,e=205.7142857142857,r=o.select(".legend-container").append("svg").attr("viewBox","0 0 "+t+" "+e).attr("preserveAspectRatio","xMidYMid meet");r.append("rect").attrs({width:t,height:e}).style("fill","rgba(235, 235, 235, 0.9)");var a=16,n=42.66666666666667,s=n+f/90,i=v/1.1,l=(r.append("circle").attrs({class:"legend-class-node",cx:29.333333333333336,cy:30,r:y/4.5}),30+f/370);r.append("text").attrs({x:s,y:l}).style("font-size",i+"px").text("main class node"),r.append("circle").attrs({class:"legend-object-node",cx:29.333333333333336,cy:70,r:8.727272727272727});var d=l+40;r.append("text").attrs({x:s,y:d}).style("font-size",i+"px").text("class node");var p=70+f/45;r.append("circle").attrs({class:"legend-datatype-node",cx:29.333333333333336,cy:p,r:m});var u=d+f/45;r.append("text").attrs({x:s,y:u}).style("font-size",i+"px").text("datatype node");var g=123.33333333333334;r.append("line").attrs({class:"property-arrow",x1:a,y1:g,x2:n,y2:g}).style("stroke-width",k).attr("marker-end","url("+c.absUrl()+"#arrow)"),r.append("text").attrs({x:s,y:126.57657657657658}).style("font-size",i+"px").text("explicit property");var h=150;r.append("line").attrs({class:"implicit-property-arrow",x1:a,y1:h,x2:n,y2:h}).style("stroke-width",k).attr("marker-end","url("+c.absUrl()+"#arrow)"),r.append("text").attrs({x:s,y:153.24324324324326}).style("font-size",i+"px").text("implicit property");var x=176.66666666666666;r.append("line").attrs({class:"collapsed-property-arrow",x1:a,y1:x,x2:n,y2:x}).style("stroke-width",2).attr("marker-end","url("+c.absUrl()+"#collapsed-arrow)"),r.append("text").attrs({x:s,y:179.9099099099099}).style("font-size",i+"px").text("collapsed property")}();var A=c.search().uri,R=c.search().name;const L=c.search().collapsed;(function(t,e){s.getDomainRangeData(t,e).success(function(t,e,r){u.domainRangeGraphData=t}).error(function(t){p.error("Request for "+R+" failed!")})})(A,L),$(window).on("popstate",function(){i.set(l.DOMAIN_RANGE_WENT_BACK,!0)}),e.onpopstate=function(e){e.state&&t.$broadcast("changeCollapsedEdgesState",e.state.collapsed)},u.$watch("collapseEdges",function(){angular.isUndefined(u.collapseEdges)||(i.set(l.DOMAIN_RANGE_COLLAPSE_EDGES,u.collapseEdges),"true"!==i.get(l.DOMAIN_RANGE_WENT_BACK)&&function(e){t.$broadcast("switchEdgeMode",{uri:A,name:R,collapsed:e})}(u.collapseEdges),i.remove(l.DOMAIN_RANGE_WENT_BACK))}),u.$watch("domainRangeGraphData",function(){if(u.domainRangeGraphData){var r=_.cloneDeep(u.domainRangeGraphData);const S=r.nodes,I=r.links;w.nodes(S).force("x",o.forceX(600)).force("y",o.forceY(300)).force("charge",o.forceManyBody().strength(-800)).force("link",o.forceLink(I).distance(f/3.5));var a=b.selectAll(".link").data(I).enter().append("g");function B(t){t.style("stroke",g),t.style("stroke-width",2),t.attr("marker-end","url("+c.absUrl()+"#collapsed-arrow)")}var s,i,l=0;a.each(function(t){if(t.objectPropNodeClassUri!==A)s=a.append("line").attrs({class:"link","marker-end":"url("+c.absUrl()+"#arrow)"}).style("stroke-width",k).each(function(t){switch(t.propertyType){case"objectLeft":t.targetRadius=y;break;case"objectRight":t.targetRadius=x;break;case"datatype":t.targetRadius=m;break;default:t.targetRadius=0}var e=o.select(this);t.targetNodeEdgeCount>1?B(e):t.implicit&&e.style("stroke-dasharray","3, 3")});else{if(angular.isUndefined(i)){var e=y/2;i=o.select(this).append("path").attrs({d:"M 0 0 A "+e+" "+e+" 0 1 1 0 "+e,class:"loop-link",fill:"none","marker-end":"url("+c.absUrl()+"#arrow-loop)"}).style("stroke-width",k)}(l+=t.targetNodeEdgeCount)>1&&B(o.select(".loop-link"))}});var p={};function G(){$.isEmptyObject(p)||(p.text.style("fill","black"),p.background.style("fill","#f0f0f0"))}function W(t,e){G(),p.text=o.select(this),p.background=o.select(this.previousSibling),p.text.style("fill","white"),p.background.style("fill",g),d(function(){u.showPredicatesInfoPanel=!0,u.selectedPredicate=e}),t.stopPropagation()}$("document").ready(function(){$("#domain-range").bind("click",G)});var N=a.append("text").attr("class",function(t){return t.objectPropNodeClassUri===A?"loop-link-property-name":"property-name"}).attr("dx",function(t){return y/2*("objectLeft"===t.propertyType?1:-1)}).style("text-anchor",function(t){return"objectLeft"===t.propertyType?"end":"start"}).style("font-size",v).text(function(t){return t.targetNodeEdgeCount>1?t.targetNodeEdgeCount+" predicates":t.name});N.each(function(t){var r=o.select(this);/\d\spredicates/.test(r.text())?r.style("font-weight","bold").on("click",W):r.on("click",function(t,r){e.open("resource?uri="+encodeURIComponent(r.uri),"_blank")})});var L=a.append("rect").attr("class",function(t){return t.objectPropNodeClassUri!==A?"link-background":"loop-link-background"}).attr("width",function(t){return t.calculatedWidth=this.previousSibling.getBBox().width,t.calculatedWidth+4}).attr("height",function(t){return t.calculatedHeight=this.previousSibling.getBBox().height,t.calculatedHeight+2}).attr("transform",function(t){var e=2-y/2*("objectLeft"===t.propertyType?1:-1);return"objectLeft"===t.propertyType&&(e+=t.calculatedWidth),"translate(-"+e+",-"+(2+t.calculatedHeight/2)+")"}).on("click",function(t){t.stopPropagation()}),C=b.selectAll(".node").data(S).enter().append("g"),P=C.filter(function(t){return t.objectPropClassUri!==A}).append("circle").each(function(t){var e=o.select(this);"main"===t.classPosition?e.attrs({class:"class-node",r:y}).attr("marker-end","url("+c.absUrl()+"#loop-link)"):null===t.objectPropClassName?e.attrs({class:"datatype-node",r:m}):e.attrs({class:"object-prop-node",r:x})}).call(E);function z(e,r,a){u.$apply(function(){t.$broadcast("reloadDomainRangeGraphView",r,a)})}o.selectAll(".object-prop-node").on("dblclick",z),C.filter(function(t){return t.objectPropClassName&&t.objectPropClassUri!==A}).append("text").attr("class",function(t){return t.classPosition+"-class-label"}).style("font-size",v).text(function(t){return t.objectPropClassName}).on("click",function(t,r){e.open("resource?uri="+encodeURIComponent(r.objectPropClassUri),"_blank")});var U=C.select("text");b.select(".class-node").each(function(){o.select(this.parentNode).append("text").attr("class","rdf-class-label").style("font-size",function(t){return n.A.Text.calcFontSize(R,y)}).text(R).on("click",function(){e.open("resource?uri="+encodeURIComponent(A),"_blank")})});var j=b.select(".class-node + text"),T=o.select(".class-node"),M=o.selectAll(".loop-link-background"),O=o.selectAll(".loop-link-property-name");if(N=o.selectAll(".property-name"),!angular.isUndefined(i)){var D=[];M.each(function(t,e){o.select(this),D.push({idx:e,width:t.calculatedWidth,height:t.calculatedHeight})})}function F(t){var e=8*w.alpha();function r(t){var e=t.x+2*y,r=t.y-35.08771929824562;var a=[];M.each(function(n,s){a.push(n),s<h?function(a,n){var o=$.grep(D,function(t){return t.idx==n});n>0&&(e+=parseFloat(n*(o[0].height/(n/1.4)))),a.attrs({transform:"rotate(270, "+t.x+","+t.y+") translate("+e+","+r+")",width:o[0].height,height:o[0].width})}(o.select(this),s):o.select(this).remove()}),function(t){var e;o.select(".view-more-preds-label").style("font-weight","bold").each(function(r){r.target.allEdges=t,e=this.getComputedTextLength()}).on("click",W),o.select(".view-more-preds-rect").attr("height",e+4)}(a)}s.filter(function(t){return t.objectPropNodeClassUri!==A}).attr("x1",function(t){return t.source.x}).attr("y1",function(t){return t.source.y}).attr("x2",function(t){return t.targetX}).attr("y2",function(t){return t.targetY}).each(function(t){!function(t){"objectLeft"===t.propertyType?(t.source.x-=8*e,t.source.y-=e/9):(t.target.x+=8*e,t.target.y-=e/9)}(t);var r=Math.atan2(t.target.y-t.source.y,t.target.x-t.source.x);t.targetX=t.target.x-Math.cos(r)*t.targetRadius,t.targetY=t.target.y-Math.sin(r)*t.targetRadius}),P.each(function(t){"main"!==t.classPosition||angular.isUndefined(i)||(function(t){var e=t.x+64,r=t.y-y/5.7-5;i.attr("transform","rotate(270, "+t.x+","+t.y+") translate("+e+","+r+")")}(t),function(t){function e(e,r){var a=$.grep(D,function(t){return t.idx==r}),n=0;r>0&&(n=parseFloat(2*r*(a[0].height/1.4)));var o=t.x,s=t.y-2.1*y-n;e.attrs({x:o,y:s}).moveToFront()}O.each(function(t,r){var a=o.select(this),n=O.size()-h;n<0?e(a,r):(0==r&&!u.collapseEdges&&n>1&&(function(t,e,r){t.classed("view-more-preds-label",!0).text(r+" predicates more ..."),null!==this.nextSibling&&e.classed("view-more-preds-rect",!0)}(a,o.select(this.nextSibling),n),e(a,r)),r<h?e(a,r):a.remove())})}(t),r(t)),t.objectPropClassUri!==A&&o.select(this).attr("cx",function(t){return"main"===t.classPosition?function(t){!window.ActiveXObject&&"ActiveXObject"in window&&(Math.log10=function(t){return Math.log(t)/Math.LN10});var e=T.attr("cx")-600,r=.5*Math.log10(Math.abs(e));return t.x+=e>0?-r:r,t.x}(t):t.x}).attr("cy",function(t){return t.y})}),j.attr("x",function(t){return t.x}).attr("y",function(t){return t.y}).moveToFront(),L.filter(function(t){return t.objectPropNodeClassUri!==A}).attr("x",function(t){return t.target.x>t.source.x?t.source.x+(t.target.x-t.source.x)/2:t.target.x+(t.source.x-t.target.x)/2}).attr("y",function(t){return t.target.y>t.source.y?t.source.y+(t.target.y-t.source.y)/2:t.target.y+(t.source.y-t.target.y)/2}).moveToFront(),N.attr("x",function(t){return t.target.x>t.source.x?t.source.x+(t.target.x-t.source.x)/2:t.target.x+(t.source.x-t.target.x)/2}).attr("y",function(t){return t.target.y>t.source.y?t.source.y+(t.target.y-t.source.y)/2:t.target.y+(t.source.y-t.target.y)/2}).moveToFront(),U.attr("x",function(t){return"right"===t.classPosition?t.x+13.09090909090909:t.x-13.09090909090909}).attr("y",function(t){return t.y}).moveToFront()}w.on("tick",F)}});let C=!1}(u)},50);u.$on("$destroy",function(){d.cancel(f)})}}}angular.module("graphdb.framework.graphexplore.directives.domainrange",["graphdb.framework.graphexplore.controllers.domainrange","graphdb.framework.utils.localstorageadapter"]).constant("ONTO_RED","var(--primary-color)").constant("ONTO_GREEN","var(--tertiary-color)").constant("ONTO_BLUE","var(--secondary-color)").constant("NON_COLLAPSED_REFLEXIVE_LINK_LIMIT",6).directive("domainRangeGraph",s),s.$inject=["$rootScope","$window","$repositories","GraphDataRestService","$location","LocalStorageAdapter","LSKeys","$timeout","toastr","ONTO_RED","ONTO_GREEN","ONTO_BLUE","NON_COLLAPSED_REFLEXIVE_LINK_LIMIT"]}};
2
- //# sourceMappingURL=38644.6e82d4276df028701834.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"38644.6e82d4276df028701834.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/graphexplore/directives/domain-range-graph.directive.js"],"sourcesContent":["import SVG from 'lib/common/svg-export';\nimport D3 from 'lib/common/d3-utils';\nimport 'angular/utils/local-storage-adapter';\nimport * as d3 from 'd3';\n\nangular\n .module('graphdb.framework.graphexplore.directives.domainrange', [\n 'graphdb.framework.graphexplore.controllers.domainrange',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .constant('ONTO_RED', 'var(--primary-color)')\n .constant('ONTO_GREEN', 'var(--tertiary-color)')\n .constant('ONTO_BLUE', 'var(--secondary-color)')\n .constant('NON_COLLAPSED_REFLEXIVE_LINK_LIMIT', 6)\n .directive('domainRangeGraph', domainRangeGraphDirective);\n\ndomainRangeGraphDirective.$inject = ['$rootScope', '$window', '$repositories', 'GraphDataRestService', '$location', 'LocalStorageAdapter', 'LSKeys', '$timeout', 'toastr', 'ONTO_RED', 'ONTO_GREEN', 'ONTO_BLUE', 'NON_COLLAPSED_REFLEXIVE_LINK_LIMIT'];\n\nfunction domainRangeGraphDirective($rootScope, $window, $repositories, GraphDataRestService, $location, LocalStorageAdapter, LSKeys, $timeout, toastr, ONTO_RED, ONTO_GREEN, ONTO_BLUE, NON_COLLAPSED_REFLEXIVE_LINK_LIMIT) {\n return {\n restrict: 'AE',\n template: '<div id=\"domain-range\"></div>',\n scope: {\n showPredicatesInfoPanel: '=',\n selectedPredicate: '=',\n collapseEdges: '='\n },\n link: linkFunc\n };\n\n function linkFunc(scope) {\n const timer = $timeout(function () {\n renderDomainRangeGraph(scope);\n }, 50);\n\n scope.$on(\"$destroy\", function () {\n $timeout.cancel(timer);\n });\n }\n\n function renderDomainRangeGraph(scope) {\n var width = 1200,\n height = 600;\n\n var mainClassSize = width / 18,\n otherClassSize = width / 110,\n datatypeSize = otherClassSize / 2,\n labelFontSize = width / 90,\n basicArrowStrokeWidth = width / 1000,\n collapsedArrowStrokeWidth = width / 600;\n\n var svg = d3.select(\"#domain-range\")\n .append(\"svg\")\n .attr(\"viewBox\", \"0 0 \" + width + \" \" + height)\n .attr(\"preserveAspectRatio\", \"xMidYMid meet\")\n .on(\"dblclick.zoom\", null);\n\n var force = d3.forceSimulation();\n\n var drag = d3.drag()\n .subject(function (d) {\n return d;\n })\n .on(\"start\", dragStart)\n .on(\"end\", dragEnd)\n .on(\"drag\", dragged);\n\n var defs = svg.append(\"defs\");\n generateMarkers(defs);\n\n function generateMarkers(defElement) {\n defs.append(\"marker\")\n .attrs({\n id: \"arrow\",\n viewBox: \"0 -5 10 10\",\n refX: 10,\n refY: 0,\n markerUnits: \"strokeWidth\",\n markerWidth: 5,\n markerHeight: 5,\n orient: \"auto\",\n fill: ONTO_BLUE\n })\n .append(\"path\")\n .attrs({\n d: \"M0,-5L10,0L0,5\",\n class: \"arrowHead\"\n });\n\n defs.append(\"marker\")\n .attrs({\n id: \"collapsed-arrow\",\n viewBox: \"0 -5 10 10\",\n refX: 9,\n refY: 0,\n markerUnits: \"strokeWidth\",\n markerWidth: 4,\n markerHeight: 4,\n orient: \"auto\",\n fill: ONTO_BLUE\n })\n .append(\"path\")\n .attrs({\n d: \"M0,-5L10,0L0,5\",\n class: \"arrowHead\"\n });\n\n defs.append(\"marker\")\n .attrs({\n id: \"arrow-loop\",\n viewBox: \"0 -5 10 10\",\n refX: 7,\n refY: 0,\n markerUnits: \"strokeWidth\",\n markerWidth: 5,\n markerHeight: 5,\n orient: \"auto\",\n fill: ONTO_BLUE\n })\n .append(\"path\")\n .attrs({\n d: \"M0,-5L10,0L0,5\",\n class: \"arrowHead\"\n });\n }\n\n /*\n * Prepares SVG document image export by adding xml namespaces and\n * additional style information\n */\n function prepareForSVGImageExport() {\n // get css rules for the diagram\n var cssRules = SVG.Export.getCSSRules(\"css/domain-range-graph.css?v=3.1.1\");\n\n // inline css rules in a defs tag\n $(\"defs\").append('<style type=\"text/css\"><![CDATA[' + cssRules + ']]></style>');\n\n // convert selected html to base64\n var imgSrc = SVG.Export.generateBase64ImageSource(\"#domain-range svg\");\n\n // set the binary image and a name for the downloadable file on the export button\n d3.select(this).attrs({\n href: imgSrc,\n download: \"domain-range-graph-\" + $repositories.getActiveRepository() + \".svg\"\n });\n }\n\n d3.select(\"#download-svg\")\n .on(\"mouseover\", prepareForSVGImageExport);\n\n generateLegend();\n\n function generateLegend() {\n // start of code for legend\n\n var legendBackgroundWidth = width / 7;\n var legendBackgroundHeight = legendBackgroundWidth * 1.2;\n\n var svgLegend = d3.select(\".legend-container\")\n .append(\"svg\")\n .attr(\"viewBox\", \"0 0 \" + legendBackgroundWidth + \" \" + legendBackgroundHeight)\n .attr(\"preserveAspectRatio\", \"xMidYMid meet\");\n\n var legendCellGroup = svgLegend;\n\n legendCellGroup.append(\"rect\")\n .attrs({\n width: legendBackgroundWidth,\n height: legendBackgroundHeight\n })\n .style(\"fill\", \"rgba(235, 235, 235, 0.9)\");\n\n var sourceX = width / 75;\n var sourceY = width / 40;\n var targetX = sourceX + mainClassSize / 2.5;\n var targetY = sourceY;\n\n var legendTextX = targetX + width / 90;\n var legendLabelFontSize = labelFontSize / 1.1;\n\n var classNodeY = sourceY;\n var legendClassNode = legendCellGroup\n .append(\"circle\")\n .attrs({\n class: \"legend-class-node\",\n cx: (sourceX + targetX) / 2,\n cy: classNodeY,\n r: mainClassSize / 4.5\n });\n\n var classNodeTextY = targetY + width / 370;\n legendCellGroup\n .append(\"text\")\n .attrs({\n x: legendTextX,\n y: classNodeTextY\n })\n .style('font-size', legendLabelFontSize + 'px')\n .text(\"main class node\");\n\n var objectNodeY = classNodeY + width / 30;\n legendCellGroup\n .append(\"circle\")\n .attrs({\n class: \"legend-object-node\",\n cx: (sourceX + targetX) / 2,\n cy: objectNodeY,\n r: otherClassSize / 1.25\n });\n\n var objectNodeTextY = classNodeTextY + width / 30;\n legendCellGroup\n .append(\"text\")\n .attrs({\n x: legendTextX,\n y: objectNodeTextY\n })\n .style('font-size', legendLabelFontSize + 'px')\n .text(\"class node\");\n\n var datatypeNodeY = objectNodeY + width / 45;\n legendCellGroup\n .append(\"circle\")\n .attrs({\n class: \"legend-datatype-node\",\n cx: (sourceX + targetX) / 2,\n cy: datatypeNodeY,\n r: datatypeSize\n });\n\n var datatypeNodeTextY = objectNodeTextY + width / 45;\n legendCellGroup\n .append(\"text\")\n .attrs({\n x: legendTextX,\n y: datatypeNodeTextY\n })\n .style('font-size', legendLabelFontSize + 'px')\n .text(\"datatype node\");\n\n var basicPropertyArrowY = datatypeNodeY + width / 45;\n legendCellGroup\n .append(\"line\")\n .attrs({\n class: \"property-arrow\",\n x1: sourceX,\n y1: basicPropertyArrowY,\n x2: targetX,\n y2: basicPropertyArrowY\n })\n .style(\"stroke-width\", basicArrowStrokeWidth)\n .attr(\"marker-end\", \"url(\" + $location.absUrl() + \"#arrow)\");\n\n legendCellGroup\n .append(\"text\")\n .attrs({\n x: legendTextX,\n y: basicPropertyArrowY + (width / 370)\n })\n .style('font-size', legendLabelFontSize + 'px')\n .text(\"explicit property\");\n\n var implicitPropArrowY = basicPropertyArrowY + width / 45;\n legendCellGroup\n .append(\"line\")\n .attrs({\n class: \"implicit-property-arrow\",\n x1: sourceX,\n y1: implicitPropArrowY,\n x2: targetX,\n y2: implicitPropArrowY\n })\n .style(\"stroke-width\", basicArrowStrokeWidth)\n .attr(\"marker-end\", \"url(\" + $location.absUrl() + \"#arrow)\");\n\n legendCellGroup\n .append(\"text\")\n .attrs({\n x: legendTextX,\n y: implicitPropArrowY + (width / 370)\n })\n .style('font-size', legendLabelFontSize + 'px')\n .text(\"implicit property\");\n\n var collapsedPropArrowY = implicitPropArrowY + width / 45;\n legendCellGroup\n .append(\"line\")\n .attrs({\n class: \"collapsed-property-arrow\",\n x1: sourceX,\n y1: collapsedPropArrowY,\n x2: targetX,\n y2: collapsedPropArrowY\n })\n .style(\"stroke-width\", collapsedArrowStrokeWidth)\n .attr(\"marker-end\", \"url(\" + $location.absUrl() + \"#collapsed-arrow)\");\n\n legendCellGroup\n .append(\"text\")\n .attrs({\n x: legendTextX,\n y: collapsedPropArrowY + (width / 370)\n })\n .style('font-size', legendLabelFontSize + 'px')\n .text(\"collapsed property\");\n // end of code for legend\n }\n\n var selectedRdfUri = $location.search().uri;\n var classNodeLabel = $location.search().name;\n const collapsed = $location.search().collapsed;\n\n getDomainRangeData(selectedRdfUri, collapsed);\n\n function getDomainRangeData(selectedRdfUri, collapsed) {\n GraphDataRestService.getDomainRangeData(selectedRdfUri, collapsed)\n .success(function (response, status, headers) {\n scope.domainRangeGraphData = response;\n }).error(function (response) {\n toastr.error(\"Request for \" + classNodeLabel + \" failed!\");\n });\n }\n\n function switchEdgeMode(collapsed) {\n $rootScope.$broadcast('switchEdgeMode', {\n uri: selectedRdfUri,\n name: classNodeLabel,\n collapsed: collapsed\n });\n }\n\n // intercept back button press and set action to local storage\n $(window).on('popstate', function () {\n LocalStorageAdapter.set(LSKeys.DOMAIN_RANGE_WENT_BACK, true);\n });\n\n $window.onpopstate = function (event) {\n if (event.state) {\n $rootScope.$broadcast(\"changeCollapsedEdgesState\", event.state.collapsed);\n }\n };\n\n scope.$watch('collapseEdges', function () {\n if (!angular.isUndefined(scope.collapseEdges)) {\n LocalStorageAdapter.set(LSKeys.DOMAIN_RANGE_COLLAPSE_EDGES, scope.collapseEdges);\n\n // if the back button has not been pressed, then switch to collapsed or non collapsed mode\n // otherwise skip, because back button will not function properly and will not pop the entire\n // history stack\n if (LocalStorageAdapter.get(LSKeys.DOMAIN_RANGE_WENT_BACK) !== \"true\") {\n switchEdgeMode(scope.collapseEdges);\n }\n\n // after back button status has been checked, remove the action from local storage in order\n // to be clean for next check\n LocalStorageAdapter.remove(LSKeys.DOMAIN_RANGE_WENT_BACK);\n }\n });\n\n scope.$watch('domainRangeGraphData', function () {\n if (scope.domainRangeGraphData) {\n var graph = _.cloneDeep(scope.domainRangeGraphData);\n\n const nodes = graph.nodes;\n const links = graph.links;\n\n force.nodes(nodes)\n .force('x', d3.forceX(width / 2))\n .force('y', d3.forceY(height / 2))\n .force(\"charge\", d3.forceManyBody().strength(-800))\n .force(\"link\", d3.forceLink(links).distance(width / 3.5))\n\n var linkGroup = svg.selectAll(\".link\")\n .data(links)\n .enter()\n .append(\"g\");\n\n function styleArrowsInCollapsedMode(sel) {\n sel.style(\"stroke\", ONTO_BLUE);\n sel.style(\"stroke-width\", collapsedArrowStrokeWidth);\n sel.attr(\"marker-end\", \"url(\" + $location.absUrl() + \"#collapsed-arrow)\");\n }\n\n var link,\n loopLink,\n loopLinkEdgeCount = 0;\n\n\n linkGroup\n .each(function (d) {\n if (d.objectPropNodeClassUri !== selectedRdfUri) {\n link = linkGroup\n .append(\"line\")\n .attrs({\n class: \"link\",\n // absolute url needed because angular inserts a <base> tag\n \"marker-end\": \"url(\" + $location.absUrl() + \"#arrow)\"\n })\n .style(\"stroke-width\", basicArrowStrokeWidth)\n .each(function (d) {\n switch (d.propertyType) {\n case \"objectLeft\":\n d.targetRadius = mainClassSize;\n break;\n case \"objectRight\":\n d.targetRadius = otherClassSize;\n break;\n case \"datatype\":\n d.targetRadius = datatypeSize;\n break;\n default:\n d.targetRadius = 0;\n }\n var sel = d3.select(this);\n if (d.targetNodeEdgeCount > 1) {\n styleArrowsInCollapsedMode(sel);\n } else if (d.implicit) {\n sel.style(\"stroke-dasharray\", \"3, 3\");\n }\n });\n } else {\n if (angular.isUndefined(loopLink)) {\n var loopLinkSize = mainClassSize / 2;\n loopLink = d3.select(this)\n .append(\"path\")\n .attrs({\n d: \"M 0 0 A \" + loopLinkSize + \" \" + loopLinkSize + \" 0 1 1 0 \" + loopLinkSize,\n class: \"loop-link\",\n fill: \"none\",\n \"marker-end\": \"url(\" + $location.absUrl() + \"#arrow-loop)\"\n })\n .style(\"stroke-width\", basicArrowStrokeWidth);\n }\n\n loopLinkEdgeCount += d.targetNodeEdgeCount;\n if (loopLinkEdgeCount > 1) {\n styleArrowsInCollapsedMode(d3.select(\".loop-link\"));\n }\n }\n });\n\n var previousPropertyNameSelection = {};\n\n function disableCollapsedPredicateLabelHightlighting() {\n if (!$.isEmptyObject(previousPropertyNameSelection)) {\n previousPropertyNameSelection.text.style(\"fill\", \"black\");\n previousPropertyNameSelection.background.style(\"fill\", \"#f0f0f0\");\n }\n }\n\n // when clicking anywhere else but the collapsed labels disable highlighting\n // of the currently selected one\n $(\"document\").ready(function () {\n $(\"#domain-range\").bind(\"click\", disableCollapsedPredicateLabelHightlighting);\n });\n\n function onCollapsedPropertyNameClick(event, d) {\n disableCollapsedPredicateLabelHightlighting();\n previousPropertyNameSelection.text = d3.select(this);\n\n previousPropertyNameSelection.background = d3.select(this.previousSibling);\n previousPropertyNameSelection.text.style(\"fill\", \"white\");\n\n previousPropertyNameSelection.background.style(\"fill\", ONTO_BLUE);\n $timeout(function () {\n scope.showPredicatesInfoPanel = true;\n scope.selectedPredicate = d;\n });\n event.stopPropagation();\n }\n\n\n var propertyNames = linkGroup\n .append(\"text\")\n .attr(\"class\", function (d) {\n return d.objectPropNodeClassUri === selectedRdfUri ? \"loop-link-property-name\" : \"property-name\";\n })\n .attr(\"dx\", function (d) {\n // offset text more towards the main class\n return mainClassSize / 2 * (d.propertyType === \"objectLeft\" ? 1 : -1);\n })\n .style(\"text-anchor\", function (d) {\n return d.propertyType === \"objectLeft\" ? \"end\" : \"start\";\n })\n .style(\"font-size\", labelFontSize)\n .text(function (d) {\n return d.targetNodeEdgeCount > 1 ? d.targetNodeEdgeCount + \" predicates\" : d.name;\n });\n\n\n propertyNames\n .each(function (d) {\n var sel = d3.select(this);\n var isCompoundEdge = /\\d\\spredicates/.test(sel.text());\n\n // handle collapsed predicates by making their font bold, make them highlight when clicked\n // and make them trigger the side panel to display the collapsed edges\n if (isCompoundEdge) {\n sel\n .style(\"font-weight\", \"bold\")\n .on(\"click\", onCollapsedPropertyNameClick);\n } else {\n // for regular predicate labels just attach a link to the \"Resources\" view\n // for more helpful information regarding them\n sel.on(\"click\", function (event, d) {\n $window.open(\"resource?uri=\" + encodeURIComponent(d.uri), \"_blank\");\n });\n }\n });\n var textPadding = width / 600;\n\n\n var linkRect = linkGroup\n .append(\"rect\")\n .attr(\"class\", function (d) {\n return d.objectPropNodeClassUri !== selectedRdfUri ? \"link-background\" : \"loop-link-background\"\n })\n .attr(\"width\", function (d) {\n d.calculatedWidth = this.previousSibling.getBBox().width;\n return d.calculatedWidth + textPadding * 2;\n })\n .attr(\"height\", function (d) {\n d.calculatedHeight = this.previousSibling.getBBox().height;\n return d.calculatedHeight + textPadding;\n })\n .attr(\"transform\", function (d) {\n // offset rect by the same amount as text (besides the padding)\n var translateX = textPadding - mainClassSize / 2 * (d.propertyType === \"objectLeft\" ? 1 : -1);\n if (d.propertyType === \"objectLeft\") {\n translateX += d.calculatedWidth;\n }\n return \"translate(-\" + translateX + \",-\" + (textPadding + d.calculatedHeight / 2) + \")\";\n })\n .on(\"click\", function (event) {\n event.stopPropagation();\n });\n\n\n var nodeGroup = svg.selectAll(\".node\")\n .data(nodes)\n .enter()\n .append(\"g\");\n\n var node = nodeGroup\n .filter(function (d) {\n return d.objectPropClassUri !== selectedRdfUri;\n })\n .append(\"circle\")\n .each(function (d) {\n var sel = d3.select(this);\n if (d.classPosition === \"main\") {\n sel.attrs({\n class: \"class-node\",\n r: mainClassSize\n })\n .attr(\"marker-end\", \"url(\" + $location.absUrl() + \"#loop-link)\");\n } else if (d.objectPropClassName === null) {\n sel.attrs({\n class: \"datatype-node\",\n r: datatypeSize\n });\n } else {\n sel.attrs({\n class: \"object-prop-node\",\n r: otherClassSize\n });\n }\n })\n .call(drag);\n\n\n function reloadDomainRangeGraphView(event, d, collapsed) {\n scope.$apply(function () {\n $rootScope.$broadcast('reloadDomainRangeGraphView', d, collapsed);\n });\n }\n\n d3.selectAll(\".object-prop-node\")\n .on(\"dblclick\", reloadDomainRangeGraphView);\n\n\n nodeGroup\n .filter(function (d) {\n return d.objectPropClassName && d.objectPropClassUri !== selectedRdfUri;\n })\n .append(\"text\")\n .attr(\"class\", function (d) {\n return d.classPosition + \"-class-label\";\n })\n .style(\"font-size\", labelFontSize)\n .text(function (d) {\n return d.objectPropClassName;\n })\n .on(\"click\", function (event, d) {\n $window.open(\"resource?uri=\" + encodeURIComponent(d.objectPropClassUri), \"_blank\");\n });\n\n var objectPropClassName = nodeGroup.select(\"text\");\n\n svg.select(\".class-node\")\n .each(function () {\n d3.select(this.parentNode)\n .append(\"text\")\n .attr(\"class\", \"rdf-class-label\")\n .style(\"font-size\", function (d) {\n return D3.Text.calcFontSize(classNodeLabel, mainClassSize)\n })\n .text(classNodeLabel)\n .on(\"click\", function () {\n $window.open(\"resource?uri=\" + encodeURIComponent(selectedRdfUri), \"_blank\");\n });\n });\n\n\n var rdfClassName = svg.select(\".class-node + text\"),\n classNode = d3.select(\".class-node\"),\n loopLinkBackgroundSel = d3.selectAll(\".loop-link-background\"),\n loopLinkPropertyName = d3.selectAll(\".loop-link-property-name\");\n\n propertyNames = d3.selectAll(\".property-name\");\n\n if (!angular.isUndefined(loopLink)) {\n var loopLinkBackgroundProps = [];\n\n loopLinkBackgroundSel.each(function (d, i) {\n var sel = d3.select(this);\n loopLinkBackgroundProps.push({\n idx: i,\n width: d.calculatedWidth,\n height: d.calculatedHeight\n });\n });\n }\n\n function tick(e) {\n var k = 8 * force.alpha();\n\n function pushEdgesToLeftAndRight(d) {\n if (d.propertyType === \"objectLeft\") {\n d.source.x -= 8 * k;\n d.source.y -= k / 9;\n } else {\n d.target.x += 8 * k;\n d.target.y -= k / 9;\n }\n }\n\n link\n .filter(function (d) {\n return d.objectPropNodeClassUri !== selectedRdfUri;\n })\n .attr(\"x1\", function (d) {\n return d.source.x;\n })\n .attr(\"y1\", function (d) {\n return d.source.y;\n })\n .attr(\"x2\", function (d) {\n return d.targetX;\n })\n .attr(\"y2\", function (d) {\n return d.targetY;\n })\n .each(function (d) {\n pushEdgesToLeftAndRight(d);\n\n // shortens the line to compensate for the circle at the target\n var angle = Math.atan2(d.target.y - d.source.y, d.target.x - d.source.x);\n d.targetX = d.target.x - Math.cos(angle) * d.targetRadius;\n d.targetY = d.target.y - Math.sin(angle) * d.targetRadius;\n });\n\n function positionLoopLink(d) {\n var loopTranslateX = d.x + mainClassSize * 0.96,\n loopTranslateY = d.y - mainClassSize / 5.7 - 5;\n loopLink.attr(\"transform\", \"rotate(270, \" + d.x + \",\" + d.y + \") translate(\" + loopTranslateX + \",\" + loopTranslateY + \")\");\n }\n\n function positionLoopLinkLabels(d) {\n function reposition(sel, i) {\n var foundLoopLinkBackgroundProps =\n $.grep(loopLinkBackgroundProps, function (obj) {\n return obj.idx == i;\n });\n var currentBackgroundHeight = 0;\n if (i > 0) {\n currentBackgroundHeight = parseFloat(2 * i * (foundLoopLinkBackgroundProps[0].height / 1.4));\n }\n\n var loopLinkLabelX = d.x,\n loopLinkLabelY = d.y - mainClassSize * 2.1 - currentBackgroundHeight;\n\n sel\n .attrs({\n x: loopLinkLabelX,\n y: loopLinkLabelY\n })\n .moveToFront();\n }\n\n /**\n * Create a \"View more\" label to depict that the are more reflexive link labels\n * left that could be seen in the side panel when clicking this label.\n *\n * @param labelSel\n * d3 selection of the text label\n * @param backgroundSel\n * d3 selection of the rectangle element background\n * @param predicatesLeft\n * number of predicates left that are collapsed\n */\n function createViewMorePredicatesLabel(labelSel, backgroundSel, predicatesLeft) {\n labelSel\n .classed(\"view-more-preds-label\", true)\n .text(predicatesLeft + \" predicates more ...\");\n if (this.nextSibling !== null) {\n backgroundSel\n .classed(\"view-more-preds-rect\", true);\n }\n }\n\n loopLinkPropertyName.each(function (dd, i) {\n var sel = d3.select(this);\n\n var predicatesLeft = loopLinkPropertyName.size() - NON_COLLAPSED_REFLEXIVE_LINK_LIMIT;\n if (predicatesLeft < 0) {\n reposition(sel, i);\n } else {\n if (i == 0 && !scope.collapseEdges && predicatesLeft > 1) {\n createViewMorePredicatesLabel(sel, d3.select(this.nextSibling), predicatesLeft);\n reposition(sel, i);\n }\n\n if (i < NON_COLLAPSED_REFLEXIVE_LINK_LIMIT) {\n reposition(sel, i);\n } else {\n sel.remove();\n }\n }\n });\n // loopLinkPropertyName.each(function (dd, i) {\n // var sel = d3.select(this);\n // if (i < NON_COLLAPSED_REFLEXIVE_LINK_LIMIT) {\n // reposition(sel, i);\n // } else if (i == NON_COLLAPSED_REFLEXIVE_LINK_LIMIT) {\n // createViewMorePredicatesLabel(sel, d3.select(this.nextSibling));\n // reposition(sel, i);\n // } else {\n // sel.remove();\n // }\n // });\n }\n\n function positionLoopLinkBackgrounds(d) {\n var loopLinkBackgroundY = d.x + mainClassSize * 2,\n loopLinkBackgroundX = d.y - mainClassSize / 1.9;\n\n function reposition(sel, i) {\n var foundLoopLinkBackgroundProps =\n $.grep(loopLinkBackgroundProps, function (obj) {\n return obj.idx == i;\n });\n if (i > 0) {\n loopLinkBackgroundY += parseFloat(i * (foundLoopLinkBackgroundProps[0].height / (i / 1.4)));\n }\n\n sel\n .attrs({\n transform: \"rotate(270, \" + d.x + \",\" + d.y + \") translate(\" + loopLinkBackgroundY + \",\" + loopLinkBackgroundX + \")\",\n width: foundLoopLinkBackgroundProps[0].height,\n height: foundLoopLinkBackgroundProps[0].width\n });\n }\n\n /**\n * Adjust new width of \"View more\" label background and add all reflexive link metadata the this\n * label in order to render them in the side panel.\n *\n * @param allLoopLinkEdges\n * all reflexive links to the current class\n */\n function adjustViewMorePredicatesLabel(allLoopLinkEdges) {\n var viewMoreTextWidth;\n d3.select(\".view-more-preds-label\")\n // make label bold to resemble a collapsed label\n .style(\"font-weight\", \"bold\")\n .each(function (d) {\n // attach all reflexive links to the \"view more\" collapsed predicate\n // because in non collapsed mode the backend does not provide them\n d.target.allEdges = allLoopLinkEdges;\n\n // calculate text width in pixels in order to adjust background width accordingly\n viewMoreTextWidth = this.getComputedTextLength();\n })\n .on(\"click\", onCollapsedPropertyNameClick);\n\n d3.select(\".view-more-preds-rect\")\n // we modify height property instead of width because they are reversed\n // when we repositioned loop link labels\n .attr(\"height\", viewMoreTextWidth + 2 * textPadding);\n }\n\n var allLoopLinkEdges = [];\n loopLinkBackgroundSel.each(function (dd, i) {\n allLoopLinkEdges.push(dd);\n if (i < NON_COLLAPSED_REFLEXIVE_LINK_LIMIT) {\n reposition(d3.select(this), i);\n } else {\n d3.select(this).remove();\n }\n });\n\n adjustViewMorePredicatesLabel(allLoopLinkEdges);\n }\n\n\n function centerClassNode(d) {\n if (!(window.ActiveXObject) && \"ActiveXObject\" in window) {\n Math.log10 = function (x) {\n return Math.log(x) / Math.LN10;\n };\n }\n var absDiff = classNode.attr(\"cx\") - width / 2,\n logOffset = Math.log10(Math.abs(absDiff)) * 0.5;\n d.x += absDiff > 0 ? -logOffset : logOffset;\n return d.x;\n }\n\n node\n .each(function (d) {\n if (d.classPosition === \"main\" && !angular.isUndefined(loopLink)) {\n positionLoopLink(d);\n positionLoopLinkLabels(d);\n positionLoopLinkBackgrounds(d);\n }\n\n if (d.objectPropClassUri !== selectedRdfUri) {\n d3.select(this)\n .attr(\"cx\", function (d) {\n // pushes the main class circle to the centre\n if (d.classPosition === \"main\") {\n return centerClassNode(d);\n }\n return d.x;\n })\n .attr(\"cy\", function (d) {\n return d.y;\n });\n }\n });\n\n\n rdfClassName\n .attr(\"x\", function (d) {\n return d.x;\n })\n .attr(\"y\", function (d) {\n return d.y;\n })\n .moveToFront();\n\n\n linkRect\n .filter(function (d) {\n return d.objectPropNodeClassUri !== selectedRdfUri;\n })\n .attr(\"x\", function (d) {\n if (d.target.x > d.source.x) {\n return (d.source.x + (d.target.x - d.source.x) / 2);\n } else {\n return (d.target.x + (d.source.x - d.target.x) / 2);\n }\n })\n .attr(\"y\", function (d) {\n if (d.target.y > d.source.y) {\n return (d.source.y + (d.target.y - d.source.y) / 2);\n } else {\n return (d.target.y + (d.source.y - d.target.y) / 2);\n }\n })\n .moveToFront();\n\n\n propertyNames\n .attr(\"x\", function (d) {\n if (d.target.x > d.source.x) {\n return (d.source.x + (d.target.x - d.source.x) / 2);\n } else {\n return (d.target.x + (d.source.x - d.target.x) / 2);\n }\n })\n .attr(\"y\", function (d) {\n if (d.target.y > d.source.y) {\n return (d.source.y + (d.target.y - d.source.y) / 2);\n } else {\n return (d.target.y + (d.source.y - d.target.y) / 2);\n }\n })\n .moveToFront();\n\n\n objectPropClassName\n .attr(\"x\", function (d) {\n if (d.classPosition === \"right\") {\n return d.x + otherClassSize * 1.2;\n } else {\n return d.x - otherClassSize * 1.2;\n }\n })\n .attr(\"y\", function (d) {\n return d.y;\n })\n .moveToFront();\n }\n\n force.on(\"tick\", tick)\n\n }\n });\n\n let isDragged = false;\n\n function dragStart(event, d) {\n force.stop();\n d.fx = event.x;\n d.fy = event.y;\n d3.select(this).classed(\"selected\", true);\n\n }\n\n // Update the subject (dragged node) position during drag.\n function dragged(event, d) {\n isDragged = true;\n\n force.alphaTarget(0).restart();\n d.fx = event.x;\n d.fy = event.y;\n }\n\n // Restore the target alpha so the simulation cools after dragging ends.\n // Unfix the subject position now that it’s no longer being dragged.\n function dragEnd(event, d) {\n d.fx = null;\n d.fy = null;\n d3.select(this).classed(\"selected\", false);\n if (isDragged) {\n force.alpha(0.2).restart();\n isDragged = false;\n } else {\n force.restart();\n }\n }\n\n }\n}\n"],"names":["domainRangeGraphDirective","$rootScope","$window","$repositories","GraphDataRestService","$location","LocalStorageAdapter","LSKeys","$timeout","toastr","ONTO_RED","ONTO_GREEN","ONTO_BLUE","NON_COLLAPSED_REFLEXIVE_LINK_LIMIT","restrict","template","scope","showPredicatesInfoPanel","selectedPredicate","collapseEdges","link","timer","width","mainClassSize","otherClassSize","datatypeSize","labelFontSize","basicArrowStrokeWidth","svg","d3","append","attr","on","force","drag","subject","d","event","stop","fx","x","fy","y","this","classed","isDragged","alpha","restart","alphaTarget","defs","attrs","id","viewBox","refX","refY","markerUnits","markerWidth","markerHeight","orient","fill","class","cssRules","SVG","Export","getCSSRules","$","imgSrc","generateBase64ImageSource","href","download","getActiveRepository","legendBackgroundWidth","legendBackgroundHeight","legendCellGroup","height","style","sourceX","targetX","legendTextX","legendLabelFontSize","classNodeTextY","cx","cy","r","text","classNodeY","objectNodeTextY","datatypeNodeY","datatypeNodeTextY","basicPropertyArrowY","x1","y1","x2","y2","absUrl","implicitPropArrowY","collapsedPropArrowY","generateLegend","selectedRdfUri","search","uri","classNodeLabel","name","collapsed","getDomainRangeData","success","response","status","headers","domainRangeGraphData","error","window","set","DOMAIN_RANGE_WENT_BACK","onpopstate","state","$broadcast","$watch","angular","isUndefined","DOMAIN_RANGE_COLLAPSE_EDGES","get","switchEdgeMode","remove","graph","_","cloneDeep","nodes","links","strength","distance","linkGroup","selectAll","data","enter","styleArrowsInCollapsedMode","sel","loopLink","loopLinkEdgeCount","each","objectPropNodeClassUri","propertyType","targetRadius","targetNodeEdgeCount","implicit","loopLinkSize","previousPropertyNameSelection","disableCollapsedPredicateLabelHightlighting","isEmptyObject","background","onCollapsedPropertyNameClick","previousSibling","stopPropagation","ready","bind","propertyNames","test","open","encodeURIComponent","linkRect","calculatedWidth","getBBox","textPadding","calculatedHeight","translateX","nodeGroup","node","filter","objectPropClassUri","classPosition","objectPropClassName","call","reloadDomainRangeGraphView","$apply","select","parentNode","D3","Text","calcFontSize","rdfClassName","classNode","loopLinkBackgroundSel","loopLinkPropertyName","loopLinkBackgroundProps","i","push","idx","tick","e","k","positionLoopLinkBackgrounds","loopLinkBackgroundY","loopLinkBackgroundX","allLoopLinkEdges","dd","foundLoopLinkBackgroundProps","grep","obj","parseFloat","transform","reposition","viewMoreTextWidth","target","allEdges","getComputedTextLength","adjustViewMorePredicatesLabel","source","targetY","pushEdgesToLeftAndRight","angle","Math","atan2","cos","sin","loopTranslateX","loopTranslateY","positionLoopLink","currentBackgroundHeight","loopLinkLabelX","loopLinkLabelY","moveToFront","predicatesLeft","size","labelSel","backgroundSel","nextSibling","createViewMorePredicatesLabel","positionLoopLinkLabels","ActiveXObject","log10","log","LN10","absDiff","logOffset","abs","centerClassNode","renderDomainRangeGraph","$on","cancel","module","constant","directive","$inject"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=38843;export const __webpack_ids__=[38843];export const __webpack_modules__={38843:(e,t,s)=>{s.r(t),s.d(t,{default:()=>i});const i='<link href="css/graphql/create-graphql-endpoint.css?v=3.1.1" rel="stylesheet"/> <link href="css/wizard.css?v=3.1.1" rel="stylesheet"/> <div class="create-graphql-endpoint-view"> <h1 id="title-container"> <span>{{title}}</span> <page-info-tooltip></page-info-tooltip> </h1> <div class="core-errors-container" core-errors write></div> <div class="create-graphql-endpoint-container"> <div class="content" ng-if="selectedSourceRepository"> <div class="toolbar"> <div class="form-inline"> <label for="sourceRepositorySelector">{{\'graphql.create_endpoint.toolbar.source_repository_selector.label\' | translate}}</label> <select id="sourceRepositorySelector" ng-model="selectedSourceRepository" ng-options="repository as repository.label for repository in sourceRepositories" ng-change="onSelectedSourceRepositoryChange(selectedSourceRepository)" ng-disabled="generatingEndpoint" class="form-control source-repository-selector" gdb-tooltip="{{\'graphql.create_endpoint.toolbar.source_repository_selector.tooltip\' | translate}}" tooltip-placement="top"> </select> </div> </div> <div class="wizard-container mt-2"> <div class="wizard"> <div class="wizard-steps"> <div ng-repeat="step in wizardModel.steps" ng-click="onStepClick(step); $event.preventDefault()" class="wizard-step" ng-class="{active: step.active, completed: step.visited}"> <span class="step-title">{{\'graphql.create_endpoint.wizard_steps.\' + step.id + \'.title\' | translate}}</span> <span class="fa fa-chevron-right step-decoration"></span> </div> </div> <div class="wizard-content"> <div ng-repeat="step in wizardModel.steps" ng-if="step.active" class="wizard-step-content"> <div ng-switch="step.id"> <div ng-switch-when="select_schema_sources"> <select-schema-sources step-definition="step"></select-schema-sources> </div> <div ng-switch-when="configure_endpoint"> <configure-endpoint step-definition="step"></configure-endpoint> </div> <div ng-switch-when="generate_endpoint"> <generate-endpoint step-definition="step"></generate-endpoint> </div> </div> </div> </div> </div> </div> </div> </div> </div> '}};
2
- //# sourceMappingURL=38843.428e7caf2e6805840b83.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"38843.428e7caf2e6805840b83.bundle.js","mappings":"uJAGA,QAFW,shE","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/templates/create-graphql-endpoint.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/graphql/create-graphql-endpoint.css?v=3.1.1\" rel=\"stylesheet\"/> <link href=\"css/wizard.css?v=3.1.1\" rel=\"stylesheet\"/> <div class=\"create-graphql-endpoint-view\"> <h1 id=\"title-container\"> <span>{{title}}</span> <page-info-tooltip></page-info-tooltip> </h1> <div class=\"core-errors-container\" core-errors write></div> <div class=\"create-graphql-endpoint-container\"> <div class=\"content\" ng-if=\"selectedSourceRepository\"> <div class=\"toolbar\"> <div class=\"form-inline\"> <label for=\"sourceRepositorySelector\">{{'graphql.create_endpoint.toolbar.source_repository_selector.label' | translate}}</label> <select id=\"sourceRepositorySelector\" ng-model=\"selectedSourceRepository\" ng-options=\"repository as repository.label for repository in sourceRepositories\" ng-change=\"onSelectedSourceRepositoryChange(selectedSourceRepository)\" ng-disabled=\"generatingEndpoint\" class=\"form-control source-repository-selector\" gdb-tooltip=\"{{'graphql.create_endpoint.toolbar.source_repository_selector.tooltip' | translate}}\" tooltip-placement=\"top\"> </select> </div> </div> <div class=\"wizard-container mt-2\"> <div class=\"wizard\"> <div class=\"wizard-steps\"> <div ng-repeat=\"step in wizardModel.steps\" ng-click=\"onStepClick(step); \\$event.preventDefault()\" class=\"wizard-step\" ng-class=\"{active: step.active, completed: step.visited}\"> <span class=\"step-title\">{{'graphql.create_endpoint.wizard_steps.' + step.id + '.title' | translate}}</span> <span class=\"fa fa-chevron-right step-decoration\"></span> </div> </div> <div class=\"wizard-content\"> <div ng-repeat=\"step in wizardModel.steps\" ng-if=\"step.active\" class=\"wizard-step-content\"> <div ng-switch=\"step.id\"> <div ng-switch-when=\"select_schema_sources\"> <select-schema-sources step-definition=\"step\"></select-schema-sources> </div> <div ng-switch-when=\"configure_endpoint\"> <configure-endpoint step-definition=\"step\"></configure-endpoint> </div> <div ng-switch-when=\"generate_endpoint\"> <generate-endpoint step-definition=\"step\"></generate-endpoint> </div> </div> </div> </div> </div> </div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=39518;export const __webpack_ids__=[14319,39518,49342,78618];export const __webpack_modules__={14319:(e,t,n)=>{n.r(t),n.d(t,{FILENAME_PATTERN:()=>o,NUMBER_PATTERN:()=>a,REPOSITORY_TYPES:()=>i,STATIC_RULESETS:()=>r});const r=[{id:"empty",name:"No inference"},{id:"rdfs-optimized",name:"RDFS (Optimized)"},{id:"rdfs",name:"RDFS"},{id:"rdfsplus-optimized",name:"RDFS-Plus (Optimized)"},{id:"owl-horst-optimized",name:"OWL-Horst (Optimized)"},{id:"owl-horst",name:"OWL-Horst"},{id:"owl2-ql-optimized",name:"OWL2-QL (Optimized)"},{id:"owl2-ql",name:"OWL2-QL"},{id:"owl-max-optimized",name:"OWL-Max (Optimized)"},{id:"owl-max",name:"OWL-Max"},{id:"owl2-rl-optimized",name:"OWL2-RL (Optimized)"},{id:"owl2-rl",name:"OWL2-RL"}],i={graphdbRepo:"graphdb",free:"free",eeWorker:"worker",eeMaster:"master",ontop:"ontop",se:"se",fedx:"fedx"},o=new RegExp("^[a-zA-Z0-9-_]+$"),a=new RegExp("^[0-9]+$")},19935:(e,t,n)=>{n.d(t,{A:()=>a}),n(62979);var r=n(93462);const i={dispatch:r.dispatch,pointer:r.pointer};var o=o||{};o.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),o.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},o.Click=function(){function e(e,t,n){return function(){var r=n.apply(t,arguments);return r===t?e:r}}return{delayDblClick:function(){var t=i.dispatch("click","dblclick");return function(t,n){let r,i=1,o=arguments.length;for(;++i<o;)r=arguments[i],t[r]=e(t,n,n[r]);return t}(function(e){var n,r=null;e.on("mousedown",function(){n=i.pointer(document.body),new Date}),e.on("mouseup",function(e,o){var a,s,c;s=n,c=i.pointer(document.body),Math.sqrt(Math.pow(s[0]-c[0],2),Math.pow(s[1]-c[1],2))>5||(r?(window.clearTimeout(r),r=null,t.call("dblclick",e,e,o)):r=window.setTimeout((a=e,function(){t.call("click",a,a,o),r=null}),250))})},t,"on")}}}();const a=o},39518:(e,t,n)=>{n.r(t),n(82493),n(96e3),n(18148);var r=n(19935),i=n(75468),o=n(93462),a=(n(32150),n(14319)),s=n(78618),c=n(6418),l=n(72155),d=n(57154);function p(e,t,n,p,u,f,h,g,m,y,v,x,S,I,w,k,L,C,T,b,N,P,A){e.languageChanged=!1,e.propertiesObj={},e.propertiesObj.items=[],e.propertiesQueryObj={},e.propertiesQueryObj.query="",e.propertiesSearchPlaceholder=b.instant("visual.search.instance.placeholder"),e.propertiesNotFiltered=[],e.searchVisible=!1,e.nodeSelected=!1,e.queryResultsMode=!1,e.embedded=m.search().embedded,e.openedNodeInfoPanel=void 0,e.invalidLimit=!1,e.INVALID_LINKS_MSG=b.instant("sidepanel.invalid.limit.links.msg"),e.INVALID_LINKS_TOOLTIP=b.instant("sidepanel.invalid.limit.links.tooltip"),e.datasource=void 0,e.adapterContainer={adapter:{remain:!0}},e.hasInitedRepository=!1,e.defaultSettings={linksLimit:20,includeInferred:!0,sameAsState:!0,languages:["en"],showLinksText:!0,preferredTypes:[],rejectedTypes:[],preferredPredicates:[],rejectedPredicates:["http://dbpedia.org/property/logo","http://dbpedia.org/property/hasPhotoCollection","http://dbpedia.org/property/website","http://dbpedia.org/property/homepage","http://dbpedia.org/ontology/thumbnail","http://xmlns.com/foaf/0.1/depiction","http://xmlns.com/foaf/0.1/homepage","http://xmlns.com/foaf/0.1/mbox","http://dbpedia.org/ontology/wikiPage*","http://dbpedia.org/property/wikiPage*","http://factforge.net/*"],preferredTypesOnly:!1,preferredPredicatesOnly:!1,includeSchema:!0},e.saveSettings=_.cloneDeep(e.defaultSettings),e.defaultGraphConfig={id:"default",name:"Easy graph",startMode:"search"},t.key="",e.onopen=e.onclose=()=>angular.noop(),e.goToHome=()=>{j(),m.url("graphs-visualizations")},e.shouldShowSettings=()=>e.configLoaded&&e.configLoaded.id===e.defaultGraphConfig.id,e.shouldDisableSameAs=()=>{const t=$("#sameAsCheck");return e.settings&&!e.settings.includeInferred&&t.prop("checked")&&(t.prop("checked",!1),e.settings.sameAsState=!1),e.settings&&!e.settings.includeInferred},e.propertiesFilterFunc=t=>t.key.toLowerCase().indexOf(e.propertiesQueryObj.query.toLowerCase())>=0,e.toggleMoreInfo=e=>{angular.element(e.currentTarget).parent().next().toggle(200),angular.element(e.currentTarget).children("span").toggleClass("icon-caret-down").toggleClass("icon-caret-up")},e.copyToClipboard=e=>{x.openCopyToClipboardModal(e)},e.resetSettings=()=>{e.settings=_.cloneDeep(e.defaultSettings),e.validateLinksLimit(),F()},e.changeLimit=t=>{let n=e.settings.linksLimit+t;n<1&&(n=1),n>1e3&&(n=1e3),e.settings.linksLimit=n},e.validateLinksLimit=()=>{e.invalidLimit=!a.NUMBER_PATTERN.test(e.settings.linksLimit)},e.showSettings=()=>{e.showInfoPanel=!0,e.showFilter=!0,e.showNodeInfo=!1,e.showPredicates=!1,e.saveSettings?e.settings=_.cloneDeep(e.saveSettings):e.settings=_.cloneDeep(e.defaultSettings),F()},e.updateSettings=()=>{e.invalidLimit?u.error(e.INVALID_LINKS_TOOLTIP,e.INVALID_LINKS_MSG):(e.saveSettings=e.settings,e.saveSettings.languages=_.map(e.saveSettings.languagesMap,function(e){return e.text}),e.saveSettings.preferredTypes=_.map(e.saveSettings.preferredTypesMap,function(e){return e.text}),e.saveSettings.rejectedTypes=_.map(e.saveSettings.rejectedTypesMap,function(e){return e.text}),e.saveSettings.preferredPredicates=_.map(e.saveSettings.preferredPredicatesMap,function(e){return e.text}),e.saveSettings.rejectedPredicates=_.map(e.saveSettings.rejectedPredicatesMap,function(e){return e.text}),e.rootNodeIri?B(e.rootNodeIri):e.queryResultsMode&&m.search().query?W(m.search().query,m.search().sameAs,m.search().inference):"query"===e.configLoaded.startMode&&Y(e.configLoaded),D(),e.showInfoPanel=!1,e.showFilter=!1,w.set(k.GRAPHS_VIZ,e.saveSettings))},e.getGraphConfigs=t=>{C.getGraphConfigs().success(function(n){e.graphConfigs=n,t&&t()}).error(function(e){u.error(getError(e),b.instant("graphexplore.error.graph.configs.short.msg"))})},e.findConfigById=function(t){return t===e.defaultGraphConfig.id?e.defaultGraphConfig:$.grep(e.graphConfigs,function(e){return e.id===t})[0]},e.easyGraphSearch=t=>{e.configLoaded=e.defaultGraphConfig,e.openUri(t)},e.deleteConfig=t=>{x.openSimpleModal({title:b.instant("common.confirm"),message:b.instant("graphexplore.delete.graph",{configName:t.name}),warning:!0}).result.then(function(){C.deleteGraphConfig(t).success(function(){e.getGraphConfigs(),e.refreshSavedGraphs()}).error(function(e){u.error(getError(e),b.instant("graphexplore.error.cannot.delete.config"))})})},e.goToGraphConfig=e=>{G({config:e.id},{config:e}),j(),Y(e)},e.replaceIRIWithPrefix=t=>{const n=e.namespaces,r=_.findLast(n,function(e){return 0===t.indexOf(e.uri)});return r?r.prefix+":"+t.substring(r.uri.length):t};const M=[];M.push(t.$on("$translateChangeSuccess",function(){e.INVALID_LINKS_MSG=b.instant("sidepanel.invalid.limit.links.msg"),e.INVALID_LINKS_TOOLTIP=b.instant("sidepanel.invalid.limit.links.tooltip"),e.propertiesSearchPlaceholder=b.instant("visual.search.instance.placeholder")})),M.push(P.onAutocompleteEnabledUpdated(t=>{e.isAutocompleteEnabled=t})),M.push(d.ServiceProvider.get(d.RepositoryContextService).onSelectedRepositoryChanged(t=>{t?A.getNamespaces(t.id).then(t=>{e.repositoryNamespaces=t,e.namespaces=t.namespaces}).catch(e=>{const t=getError(e);u.error(t,b.instant("error.getting.namespaces.for.repo"))}):e.repositoryNamespaces=new c.NamespacesListModel})),M.push(e.$on("repositoryIsSet",function(t,n){n.newRepo&&(e.hasInitedRepository=!1),ge(n.newRepo),n.newRepo&&(j(),$(".graph-visualization svg").empty(),m.search().query&&(e.goToHome(),U()))})),M.push(t.$watch(()=>t.key,()=>{ee=0,_.each(e.propertiesObj.items,function(e){t.key>e&&ee++}),te++})),M.push(e.$watch("propertiesObj.items",()=>{angular.isDefined(e.propertiesObj.items)&&e.propertiesObj.items.length>0&&f(function(){e.adapterContainer.adapter.reload()},500)}));let E=!1,O=0;function R(e){E&&e.stopPropagation()}document.addEventListener("keydown",R,!0),e.$on("$destroy",()=>{M.forEach(e=>e()),document.removeEventListener("keydown",R,!0),window.onpopstate=null});const G=(t,n)=>{e.embedded&&(t.embedded=!0),n.skipOnPopState=!0,m.search(t),m.state(n)},j=()=>{e.searchVisible=!1,e.nodeSelected=!1,e.configLoaded=null,e.queryResultsMode=!1,e.lastSavedGraphName=null,e.lastSavedGraphId=null,e.shared=!1,e.numberOfPinnedNodes=0,ne={},re=0},z=()=>N.isActive()?e.defaultSettings:e.saveSettings,D=()=>{z().showLinksText?o.selectAll("svg .link-wrapper text").style("display","block"):o.selectAll("svg .link-wrapper text").style("display","none")},F=()=>{e.settings.languagesMap=_.map(e.settings.languages,function(e){return{text:e}}),e.settings.preferredTypesMap=_.map(e.settings.preferredTypes,function(e){return{text:e}}),e.settings.rejectedTypesMap=_.map(e.settings.rejectedTypes,function(e){return{text:e}}),e.settings.preferredPredicatesMap=_.map(e.settings.preferredPredicates,function(e){return{text:e}}),e.settings.rejectedPredicatesMap=_.map(e.settings.rejectedPredicates,function(e){return{text:e}})},B=()=>{e.rootNodeIri&&e.$broadcast("onRootNodeChange",e.rootNodeIri)},U=()=>{m.search().query?(e.searchVisible=!1,e.queryResultsMode=!0,W(m.search().query,m.search().sameAs,m.search().inference)):e.$on("onRootNodeChange",function(t,n){e.loading=!0;const r=z();angular.isDefined(n)&&(e.rootNodeIri=n,T.getInstanceNode({iri:n,config:e.configLoaded?e.configLoaded.id:e.defaultGraphConfig.id,languages:e.shouldShowSettings()?r.languages:[],includeInferred:r.includeInferred,sameAsState:r.sameAsState}).then(function(t){e.nodeSelected=!0,e.searchVisible=!1,null===t.data.types&&(t.data.types="greyColor"),he=new fe;const n=he.addNode(t.data,le/2,de/2);ce=se,Oe(n,!0)}).catch(function(t){e.loading=!1,u.error(getError(t),b.instant("graphexplore.error.could.not.load.graph"))}))}),m.search().uri&&e.openUri(m.search().uri,!0),m.search().saved&&L.getSavedGraph(m.search().saved).success(function(t){e.loadSavedGraph(t)}).error(function(e){const t=getError(e);u.error(t,b.instant("graphexplore.error.could.not.open"))})},W=(t,n,r)=>{const i=z(),o=void 0===n?i.sameAsState:!0===n,a=void 0===r?i.includeInferred:!0===r;e.loading=!0,T.updateGraph({query:t,linksLimit:i.linksLimit,languages:e.shouldShowSettings()?i.languages:[],includeInferred:a,sameAsState:o}).then(function(e){Me(e)},function(t){e.loading=!1,u.error(getError(t.data),b.instant("graphexplore.error.cannot.load.graph"))})},q=(e,t)=>{const n=e.split(" ");return t?[n[0],n[1],n[2]].join(">"):[n[0],n[2]].join(">")},V=e=>[e.source.iri,e.target.iri].join(">"),H=e=>{if(e.isTriple){const t=document.getElementById((0,s.removeSpecialChars)(q(e.iri)));if(t&&void 0!==t.__data__.x)return t.__data__.x}return e.x},K=e=>{if(e.isTriple){const t=document.getElementById((0,s.removeSpecialChars)(q(e.iri)));if(t&&void 0!==t.__data__.y)return t.__data__.y}return e.y},Z=e=>{const t=e.trim().split(" ");return`<<<${t[0]}> <${t[1]}> <${t[2]}>>>`},Q=e=>{const t=e.source.isTriple?q(e.source.iri,!0):e.source.iri,n=e.target.isTriple?q(e.target.iri,!0):e.target.iri;return(0,s.removeSpecialChars)(`${t}>${n}>marker`)},J=(e,t)=>{const n=t.map(t=>t[e]);return t.filter((t,r)=>n.indexOf(t[e])===r)},Y=t=>{e.configLoaded=t,"search"===t.startMode?e.searchVisible=!0:"node"===t.startMode&&t.startIRI?f(function(){e.openUri(t.startIRI,!0)},0):"query"===t.startMode&&t.startGraphQuery&&(e.loading=!0,C.loadGraphForConfig(t,t.startQueryIncludeInferred,z().linksLimit,t.startQuerySameAs).then(function(e){Me(e)},function(t){e.loading=!1,u.error(getError(t),b.instant("graphexplore.error.graph.load"))}))},X=function(){var t,n;m.search().config?(t=m.search().config,n=U,t===e.defaultGraphConfig.id?Y(e.defaultGraphConfig):C.getConfig(t).then(e=>{Y(e),n()}).catch(e=>{u.error(getError(e),b.instant("graphexplore.error.could.not.load.config",{configId:t}))})):m.search().query||m.search().uri?(Y(e.defaultGraphConfig),U()):U()};I.onpopstate=function(t){t.state&&t.state.skipOnPopState||(j(),t.state&&(t.state.config?(Y(t.state.config),t.state.uri&&e.openUri(t.state.uri,!0)):t.state.savedGraph&&e.loadSavedGraph(t.state.savedGraph,!0)))},e.embedded&&(m.search().query||m.search().uri||m.search().config||m.search().saved)&&(e.noGoHome=!0);let ee=0,te=0,ne={},re=0;const ie=16,oe=o.zoom().scaleExtent([.1,10]);let ae;const se=o.zoomIdentity.translate(0,-70).scale(1);oe.on("zoom",function(e){N.isActive()||(ce=e.transform,ae.attr("transform",ce))});let ce=se;const le=1e3,de=1e3;let pe,ue;function fe(){this.nodes=[],this.links=[],this.tripleNodes=new Map,this.tripleLinksCopy=new Map,this.addNode=function(e,t,n){return e.x=t,e.y=n,this.nodes.push(e),e},this.computeConnectedness=function(){const e={},t={};_.each(this.links,function(n){const r=n.source.iri,i=n.target.iri,o=_.min([r,i])+"|"+_.max([r,i]);t[o]||(t[o]=1,e[r]=(e[r]||0)+1,e[i]=(e[i]||0)+1)}),_.each(this.links,function(t){e[t.source.iri]>1&&e[t.target.iri]>1?t.connectedness=Math.min(5,Math.max(e[t.source.iri],e[t.target.iri])-1):t.connectedness=0})},this.addAndMatchLinks=function(e){const t=this.nodes;Array.prototype.push.apply(this.links,function(e,t){return _.map(e,function(e){let n,r;n=e.isTripleSource?De(e.source):_.find(t,function(t){return t.iri===e.source}),r=e.isTripleTarget?De(e.target):_.find(t,function(t){return t.iri===e.target});let i={source:n,target:r,predicates:e.predicates};if(e.isTripleSource||e.isTripleTarget){let e=`${i.source.isTriple?q(i.source.iri):i.source.iri}>${i.target.isTriple?q(i.target.iri):i.target.iri}`;if(he.tripleLinksCopy.has(e)){let t=he.tripleLinksCopy.get(e);return t[0].predicates.push(...i.predicates),t.push(i),he.tripleLinksCopy.set(e,t),null}he.tripleLinksCopy.set(e,[i])}return i})}(e,t));for(let e of he.tripleLinksCopy.keys())1===he.tripleLinksCopy.get(e).length&&he.tripleLinksCopy.delete(e);this.links=this.links.filter(e=>null!==e),this.computeConnectedness()};const t=function(e,t){return n(e,t).length};function n(e,t){return _.filter(t,function(t){return t.source.iri===e.iri||t.target.iri===e.iri})}this.countLinks=t,this.linksTypes=function(e,t){const r=n(e,t),i=_.map(r,function(t){return t.source.iri===e.iri?t.target.types:t.source.types});return _.uniq(_.flatten(i))},this.linksPredicates=function(e,t){const r=n(e,t),i=_.map(r,function(e){return e.predicates});return _.uniq(_.flatten(i))},this.removeTriples=function(e){let t=[];this.tripleNodes.size>0&&e.forEach(e=>{this.tripleNodes.has(e)&&(this.tripleNodes.delete(e),this.links=_.reject(this.links,function(n){let r=e.split(">"),i=q(n.source.iri),o=q(n.target.iri);if(i===e&&he.tripleNodes.delete(o)){let e=o.split(">");t.push({source:e[0],target:e[1]})}let a=i===e||o===e||n.source.iri===r[0]&&n.target.iri===r[1];return a&&(he.tripleLinksCopy.delete(`${i}>${o}`),he.tripleLinksCopy.delete(`${o}>${i}`)),a}))}),t.forEach(e=>{this.links=_.reject(this.links,function(t){return t.source.iri===e.source&&t.target.iri===e.target})})},this.removeNode=function(n){let r=[];this.links=_.reject(this.links,function(e){let t=e.source.iri===n.iri||e.target.iri===n.iri;return t&&(e.target.isTriple&&r.push(q(e.target.iri)),e.source.isTriple||e.target.isTriple||r.push([e.source.iri,e.target.iri].join(">"))),t}),this.removeTriples(r);const i=this.links;this.nodes=_.reject(this.nodes,function(e){return 0===t(e,i)}),0===this.nodes.length&&(e.nodeSelected=!1),this.computeConnectedness()},this.removeNodeLeafLinks=function(e){let r=[],i=this.links;this.links=_.reject(this.links,function(o){let a=o.source.iri===e.iri&&1===t(o.target,i)&&!o.target.isTriple||o.target.iri===e.iri&&1===t(o.source,i)&&!o.source.isTriple;if(!a){let r;if(o.source.iri!==e.iri||2!==t(o.target,i)||o.target.isTriple?o.target.iri!==e.iri||2!==t(o.source,i)||o.source.isTriple||(r=n(o.source,i)):r=n(o.target,i),!r)return!1;a=(r[0].source.iri===e.iri||r[0].target.iri)&&(r[1].source.iri===e.iri||r[1].target.iri)}return a&&(o.target.isTriple&&r.push(q(o.target.iri)),o.source.isTriple||o.target.isTriple||r.push([o.source.iri,o.target.iri].join(">"))),a}),this.removeTriples(r),i=this.links,this.nodes=_.reject(this.nodes,function(n){return 0===t(n,i)&&n.iri!==e.iri}),this.computeConnectedness()},this.addTriple=function(e,t,n){e.x=t,e.y=n,e.weight=0;let r=q(e.iri);if(this.tripleNodes.has(r)){let t=this.tripleNodes.get(r);t.push(e),this.tripleNodes.set(r,t)}else e.weight=10,this.tripleNodes.set(r,[e])},this.copyState=function(){const e=_.map(this.nodes,function(e){return{iri:e.iri,isTriple:e.isTriple,size:e.size,labels:_.cloneDeep(e.labels),types:_.cloneDeep(e.types),rdfRank:e.rdfRank,x:e.x,y:e.y,fixed:e.fixed}}),t=JSON.stringify(Array.from(this.tripleNodes.entries())),n=JSON.stringify(Array.from(this.tripleLinksCopy.entries()));return{nodes:e,links:_.map(this.links,function(e){return{source:e.source.iri,isTripleSource:e.source.isTriple,target:e.target.iri,isTripleTarget:e.target.isTriple,predicates:e.predicates}}),tripleNodes:t,tripleLinksCopy:n,colorIndex:re,type2color:ne,transform:ce}},this.restoreState=function(t){e.nodeSelected=!0,e.searchVisible=!1,this.nodes=_.cloneDeep(t.nodes),this.tripleNodes=t.tripleNodes?new Map(JSON.parse(t.tripleNodes)):new Map,this.links=[],this.addAndMatchLinks(t.links),this.tripleLinksCopy=t.tripleLinksCopy?new Map(JSON.parse(t.tripleLinksCopy)):new Map,_.each(this.nodes,function(t){t.fixed&&e.numberOfPinnedNodes++}),angular.isDefined(t.colorIndex)&&angular.isDefined(t.type2color)&&(re=t.colorIndex,ne=_.cloneDeep(t.type2color)),angular.isDefined(t.transform)&&(ce=o.zoomIdentity.translate(t.transform.x,t.transform.y).scale(t.transform.k)),Te()}}e.datasource={get:function(t,n,r){return v.initLazyList(t,n,r,ee,e.propertiesObj.items)},revision:function(){return te}},g.when(y.getPrincipal()).then(t=>(t=>{const n=t.appSettings;e.defaultSettings.includeInferred=n.DEFAULT_INFERENCE,e.defaultSettings.sameAsState=n.DEFAULT_INFERENCE&&n.DEFAULT_SAMEAS,e.defaultSettings.includeSchema=n.DEFAULT_VIS_GRAPH_SCHEMA;const r=w.get(k.GRAPHS_VIZ);if(r&&"object"==typeof r)try{e.saveSettings=r,void 0===e.saveSettings.includeSchema&&(e.saveSettings.includeSchema=e.defaultSettings.includeSchema,e.saveSettings.rejectedPredicates=[...e.saveSettings.rejectedPredicates,...e.defaultSettings.rejectedPredicates].unique())}catch(t){e.saveSettings=_.cloneDeep(e.defaultSettings),w.set(k.GRAPHS_VIZ,e.saveSettings)}else e.saveSettings=_.cloneDeep(e.defaultSettings)})(t)),e.showInfoPanel=!1;let he=new fe;function ge(t){!n.getActiveRepository()||e.hasInitedRepository&&!t||(e.hasInitedRepository=!0,t||e.getGraphConfigs(X))}e.addedTag=function(t){return t.text.indexOf(":")<0?(u.warning(b.instant("graphexplore.absolute.prefixed.iri")),null):(t.text=function(e,t){if(!/^<?(http|urn).*>?/.test(e)){const n=e.split(":"),r=n[0],i=n[1];if(!angular.isUndefined(i)){const e=h.getNamespaceUriForPrefix(t,r);if(e)return e+i}}return e}(t.text,e.namespaces),e.pageslideExpanded=!0,t)},e.validateTag=function(e,t,n){if(e.text.indexOf(":")<0)return n?u.warning(b.instant("graphexplore.absolute.prefixed.iri.option"),t):u.warning(b.instant("graphexplore.absolute.prefixed.iri"),t),!1;const r=e.text.indexOf("*");if(r>=0){if(!n)return u.warning(b.instant("graphexplore.wildcards.not.allowed"),t),!1;if(r<e.text.length-1)return u.warning(b.instant("graphexplore.wildcards.last.char"),t),!1}return!0},e.getTagClass=function(e){return e.endsWith("*")?"tag-item-wildcard":null},e.getActiveRepository=function(){return n.getActiveRepository()},e.isLicenseValid=function(){return p.isLicenseValid()},ge();const me=500,ye=1.75,ve=o.scaleLinear().domain([0,9]).range(["hsl(0, 100%, 75%)","hsl(360, 90%, 82%)"]).interpolate(o.interpolateHslLong),xe=o.scaleLinear().domain([0,9]).range(["hsl(180, 50%, 75%)","hsl(540, 40%, 82%)"]).interpolate(o.interpolateHslLong);e.getColor=function(e){angular.isUndefined(ne[e])&&(ne[e]=re,re++);const t=ne[e];return t>39?"#c2c2c2":t%2==0?ve(t/2):xe(t/2)};const Se=o.forceX(le/2).strength(.005),Ie=o.forceY(de/2).strength(.005),we=o.forceSimulation().force("x",Se).force("y",Ie),ke=o.select(".main-container .graph-visualization").append("svg").attr("viewBox","0 0 "+le+" "+de).attr("preserveAspectRatio","xMidYMid meet");ke.append("rect").attr("width",10*le).attr("height",10*de).attr("x",-(10*le-le)/2).attr("y",-(10*de-de)/2).style("fill","none").style("pointer-events","all").call(oe).on("click",function(e){e.stopPropagation(),Re(),we.stop()});let Le=0,Ce=0;const _e=new function(){this.state=!1,this.setLoadingState=function(e){this.state=e},this.getLoadingState=function(){return this.state},this.init=function(e,t){o.select(t).append("circle").attr("cx",function(){return e.x}).attr("cy",function(){return e.y}).attr("class","loader-container").attr("r",function(){return e.size}).style("fill","fff").style("opacity","0.7"),o.select(t).append("image").attr("xlink:href","js/angular/templates/loader/ot-loader.svg?v=3.1.1").attr("x",function(){return e.x-e.size+5}).attr("y",function(){return e.y-e.size}).attr("width",function(){return 2*e.size}).attr("height",function(){return 2*e.size}).attr("class","node-loader")}};function Te(t){o.selectAll("svg g").remove(),o.selectAll(".d3-tip").remove(),o.selectAll(".menu-events").remove(),ae=ke.append("g").attr("class","nodes-container").attr("transform",function(){return angular.isDefined(ce)&&!t?ce:""});const n=(0,i.A)().attr("class","d3-tip").customPosition(function(){const e=pe.getBoundingClientRect();return{top:e.bottom+10+"px",left:e.left-30+"px"}}).html(function(t){let n="";return t.fixed&&(n+='<i class="icon-pin"></i>&nbsp;&nbsp;'),t.types.length>0?n+=t.types.map(t=>`<div> · ${e.replaceIRIWithPrefix(t)}</div>`).join(""):n+=`<i>${b.instant("visual.node.tooltip.no_types")}</i>`,n}),a=function(e){let t="";return t+=_.join(_.map(e.predicates,function(t,n){if(0===n)return Be(t);if(n<10)return" · "+Be(t);if(10===n){const t=function(e){return e.predicates.length-10}(e),n=t>1?t+" predicates":t+" predicate";return" · "+b.instant("graphexplore.tip.text",{textToShow:n})}}),""),t};let c,d;const p=(0,i.A)().attr("class","d3-tip").customPosition(function(e){const t=c.getBoundingClientRect(),n=function(e){const t=a(e),n=document.createElement("canvas").getContext("2d");return n.font="13px Arial",e.predicates.length<10?n.measureText(t).width:n.measureText(t).width/2}(e);return{top:t.top-30+"px",left:t.left-30+"px",width:n+"px"}}).html(function(e){return a(e)});let h;const g=function(){f.cancel(h),f.cancel(Le),pe=null,n.hide(),Ce=f(function(){Re()},500)};ke.call(n),ke.call(p);let m=ke.selectAll(".link"),y=ke.selectAll(".node");const v=o.forceCollide(e=>e.size+5).strength(.5),x=o.forceManyBody().strength(-300),S=o.forceCenter(le/2,de/2);we.nodes(he.nodes).force("charge",x).force("collide",v).force("center",S).force("link",o.forceLink(he.links).distance(function(e){return e.source.isTriple||e.target.isTriple?0:function(e){const t=$("<span></span>"),n=e.predicates[0].split("/"),r=n[n.length-1];t.addClass("predicate-text").text(r),$("body").append(t);const i=t.width()+2*e.source.size+2*e.target.size+50;return t.remove(),.75*i}(e)+30*e.connectedness})),ae.append("defs").selectAll("marker").data(he.links).enter().append("marker").attr("class","arrow-marker").attr("id",function(e){return Q(e)}).attr("viewBox","0 -5 10 10").attr("refX",function(e){return e.target.isTriple?11:e.target.size+11}).attr("refY",0).attr("markerWidth",10).attr("markerHeight",10).attr("orient","auto").append("path").attr("d","M0,-5L10,0L0,5 L10,0 L0, -5"),m=ae.selectAll(".link").data(he.links).enter().append("g").attr("class","link-wrapper").attr("id",function(e){return(0,s.removeSpecialChars)(V(e))}).append("line").attr("class","link").style("stroke-width",1).style("fill","transparent").style("marker-end",function(e){return`url(#${Q(e)})`});const I=ae.selectAll(".link-wrapper").append("text").text(function(e){return Fe(e)}).attr("class",function(e){return e.predicates.length>1||he.tripleNodes.has(V(e))?"predicates":"predicate"}).attr("dy","-0.5em").style("text-anchor","middle").style("display",z().showLinksText?"":"none").on("mouseover",function(e,t){e.stopPropagation(),function(e,t){f.cancel(d);const n=c=e.target;f(function(){c===n&&t.predicates.length>1&&p.show(t,c)},300)}(e,t)}).on("mouseout",function(){f.cancel(d),c=null,p.hide()}).on("click",function(t,n){t.stopPropagation(),function(t,n){$e();const r=V(n);if(1===n.predicates.length&&he.tripleNodes.has(r)){ue=null;const e=he.tripleNodes.get(r)[0];if(Pe(e,0,t.button)){const t={};t.iri=e.iri,t.pred=Be(e.iri.split(" ")[1]),je(t)}return}!function(t){if(e.showNodeInfo=!1,e.showPredicates=t.predicates.length>1,e.showFilter=!1,e.showInfoPanel=!1,ue===t)return e.showNodeInfo=!1,e.showInfoPanel=!1,void(ue=null);ue=t,e.showPredicates&&(e.predicates=_.map(t.predicates,function(e){const n=function(e,t){const n=V(t);return he.tripleNodes.has(n)?he.tripleNodes.get(n).findIndex(t=>t.iri.indexOf(e)>=0):-1}(e,t),r=n>-1;return{value:Be(e),partOfTriple:r,linkId:r?V(t):"",nodeIndex:n}}),e.showInfoPanel=!0)}(n)}(t,n)});let w,k=0,L=null,C=null;const T=function(t,n,r){let i=r||this.parentNode;Array.isArray(r)&&(i=r[n]),he.countLinks(t,he.links)<=z().linksLimit?Oe(t,!1,i):u.info(b.instant("graphexplore.increase.limit"),b.instant("graphexplore.node.at.max")),e.closeInfoPanel()};function P(e,t){let n,r,i,o,a=!0;if("down"===t)n=2*e.size,r=e.size/3,i=.8,o=.3;else if("down-fixed"===t)n=2*e.size,r=e.size,i=.8,o=.66;else if("up"===t)n=e.size/3,r=2*e.size,i=.3,o=.8;else{if("fixed"!==t)return;n=e.size,i=.66,a=!1}let s=ae.selectAll(".node-wrapper").filter(function(t){return t===e}).append("text").text("").classed("icon-any pinned",!0).style("font-size",n+"px").attr("x",function(e){return e.x}).attr("y",function(e){return e.y}).attr("opacity",i);"fixed"!==t&&"down-fixed"!==t||(e.pin=s),a&&(s=s.transition().duration(1e3).style("font-size",function(){return r+"px"}).attr("opacity",o),"down-fixed"!==t&&s.remove())}const A=o.drag().subject(function(e){return e}).on("start",function(e,t){N.isActive()||0===e.sourceEvent.button&&(t.fixedBeforeDrag=t.fixed,t.isBeingDragged=!0,t.beginDragging=!0,Re(),o.select(this).classed("dragging",!0),we.alphaTarget(.3).restart())}).on("drag",function(t,n){n.isBeingDragged&&(n.fx=t.x,n.fy=t.y,n.fixed?n.beginDragging&&P(n,"fixed"):(e.numberOfPinnedNodes++,n.fixed=!0,P(n,"down-fixed")),n.pinWasFixed=!0,n.beginDragging=null)}).on("end",function(e,t){t.isBeingDragged&&(t.pinWasFixed&&(t.pinWasFixed=null,o.select(".pinned").remove()),t.isBeingDragged=!1,o.select(this).classed("dragging",!1)),we.alphaTarget(0)});y=ae.selectAll(".node").data(he.nodes).enter().append("g").attr("class","node-wrapper").attr("id",function(e){return e.iri}).append("circle").attr("class","node").attr("r",function(e){return e.size}).style("fill",function(t){return"greyColor"===t.types?"c2c2c2":e.getColor(t.types[0])}).on("mouseover",function(t,r){r.isBeingDragged||(f.cancel(Ce),Le=f(()=>{(function(t,n){return!e.showInfoPanel&&((Ne.closeIcon||Ne.expandIcon||Ne.focusIcon||Ne.copyURIIcon)&&Ne.removeIcons(),we.alpha()<.1&&(Ne.initIcons(t,n.parentNode),we.stop(),be(),!0))})(r,this)&&function(e,t){f.cancel(h);const r=pe=t.target;f(function(){pe===r&&n.show(e,pe)},300)}(r,t)},400))}).on("mouseout",g).on("click",function(t,n){if(t.button&&0!==t.button)return;const r=this;if(L&&C===r)return f.cancel(L),L=null,void T(n,0,r.parentNode);C=r,g(),e.showPredicates=!1,N.isActive()||(f.cancel(L),L=f(function(){Pe(n,0,t),L=null},40+me))}).on("touchstart",(e,t)=>function(e){k=0,w=f(function(){k<5&&Ae(e),w=null},1e3)}(t)).on("touchmove",function(){k++}).on("touchend",function(){f.cancel(w),w=null}).on("contextmenu",function(t,r){t.shiftKey||(t.preventDefault(),Re(),e.closeInfoPanel(),r.fixed?(e.numberOfPinnedNodes--,r.fixed=!1,r.fx=null,r.fy=null,P(r,"up"),we.alpha(1).restart()):(e.numberOfPinnedNodes++,r.fixed=!0,P(r,"down")),function(e){pe&&n.show(e,pe)}(r))}).on("gdb-expand-node",(e,t)=>T(t,0,e.srcElement.parentNode)).on("gdb-show-node-info",(e,t)=>Ge(t)).call(A);const M=ae.selectAll(".node-wrapper").append("foreignObject").style("pointer-events","none").attr("width",function(e){return 2*e.size*ye});ae.insert("g").attr("class","menu-events"),(e=>{e.each(function(e){e.fontSize=r.A.Text.calcFontSizeRaw(e.labels[0].label,e.size,ie,!0)}).attr("height",function(e){return 3*e.fontSize}).append("xhtml:div").attr("class","node-label-body").style("font-size",function(e){return e.fontSize+"px"}).append("xhtml:div").html(function(e){return l.HtmlUtil.getText(e.labels[0].label).replaceAll("\n","<br>")})})(M),we.on("tick",function(){m.attr("x1",function(e){return H(e.source)}).attr("y1",function(e){return K(e.source)}).attr("x2",function(e){return H(e.target)}).attr("y2",function(e){return K(e.target)}),I.attr("x",function(e){let t=H(e.source),n=H(e.target);return e.x=.5*(t+n)}).attr("y",function(e){let t=K(e.source),n=K(e.target);return e.y=.5*(t+n)}).attr("transform",function(e){return"rotate("+function(e,t){const n=H(e.source),r=K(e.source),i=H(e.target),o=K(e.target);if(t)return 180*Math.atan2(o-r,i-n)/Math.PI;{const e=180*Math.atan2(o-r,i-n)/Math.PI;return e<=90&&e>=-90?e:(e>0?-1:1)*(180-Math.abs(e))}}(e,e.direction)+", "+e.x+", "+e.y+")"}),y.attr("cx",function(e){return e.x}).attr("cy",function(e){return e.y}),ae.select(".node-loader").attr("x",function(e){return e.x-e.size+3}).attr("y",function(e){return e.y-e.size}),ae.select(".loader-container").attr("cx",function(e){return e.x}).attr("cy",function(e){return e.y}),M.attr("x",function(e){return e.x-e.size*ye}).attr("y",function(e){return e.y-3*e.fontSize/2}),o.select(".pinned").attr("x",function(e){return e.x}).attr("y",function(e){return e.y}),be()}),angular.isDefined(_e)&&_e.setLoadingState(!1),e.loading&&(e.loading=!1),o.selectAll(".link-wrapper").each(function(){const e=$(this).attr("id").split(">")[0],t=$(this).attr("id").split(">")[1];o.selectAll(".link").each(function(n){const r=(0,s.removeSpecialChars)(n.source.iri),i=(0,s.removeSpecialChars)(n.target.iri);if(r===t&&i===e){let e=r;e+=">",e+=i;const t=document.createTextNode(" ⟶");document.getElementById(e).lastChild.appendChild(t),n.direction="double"}})}),o.selectAll(".d3-actions-tip").remove(),we.alpha(.3).restart()}function be(){t.d3alpha=we.alpha()}const Ne=new function(){function n(e,t){return"translate("+(t.x-14+(t.size+15)*Math.cos(e*Math.PI/180-Math.PI/2))+","+(t.y-14+(t.size+15)*Math.sin(e*Math.PI/180-Math.PI/2))+")"}this.closeIcon=void 0,this.expandIcon=void 0,this.collapseIcon=void 0,this.focusIcon=void 0,this.copyURIIcon=void 0,this.actionsTip=void 0,this.removeIcons=function(){this.closeIcon.remove("g"),this.expandIcon&&this.expandIcon.remove("g"),this.collapseIcon&&this.collapseIcon.remove("g"),this.focusIcon.remove("g"),this.copyURIIcon.remove("g"),this.closeIcon=void 0,this.expandIcon=void 0,this.collapseIcon=void 0,this.focusIcon=void 0,this.copyURIIcon=void 0,this.expandedState=!1},this.expandedState=!1,this.initIcons=function(r,a){const s=(0,i.A)().attr("class","d3-tip d3-actions-tip").customPosition(function(e,t){const n=t.target.getBoundingClientRect();return{top:n.top-20+"px",left:n.right+10+"px"}}).html(function(e){return e});ke.call(s),r.isExpanded?(this.collapseIcon=o.select(".menu-events").append("g").attr("class","collapse-icon").attr("name","collapse").attr("transform",function(){return n(20,r)}),this.collapseIcon.append("circle").attr("cx",14).attr("cy",14).attr("r",13).style("fill","#eee"),this.collapseIcon.append("path").attr("d","M22.67,12a.59.59,0,0,1-.53.65l-6.88.72H15.2a.59.59,0,0,1-.59-.65l.72-6.88A.58.58,0,0,1,16,5.33a.59.59,0,0,1,.53.65L16,11.11,21.3,5.79a.64.64,0,0,1,.91.91L16.89,12,22,11.49A.59.59,0,0,1,22.67,12ZM12.59,14.75l-6.75.85a.59.59,0,0,0-.51.66.58.58,0,0,0,.66.51l4.95-.62-5.2,5.2a.64.64,0,1,0,.91.91l5.2-5.2L11.23,22a.59.59,0,0,0,.51.66h.07a.59.59,0,0,0,.59-.52l.85-6.75a.59.59,0,0,0-.17-.49A.58.58,0,0,0,12.59,14.75Z").style("fill","var(--primary-color)"),this.collapseIcon.on("click",function(){var e;(e=r).isExpanded=!1,he.removeNodeLeafLinks(e),Te()}).on("mouseover",function(e){s.show(this.getAttribute("name"),e),f.cancel(Le),f.cancel(Ce)}).on("mouseout",function(){s.hide(),Ce=f(function(){Re()},500)})):(this.expandIcon=o.select(".menu-events").append("g").attr("class","expand-icon").attr("name","expand").attr("transform",function(){return n(20,r)}),this.expandIcon.append("circle").attr("cx",14).attr("cy",14).attr("r",13).style("fill","#eee"),this.expandIcon.append("path").attr("d","M22.37,6.28l-.72,6.88a.59.59,0,0,1-.59.53H21a.59.59,0,0,1-.53-.65L21,7.9l-5.32,5.32a.64.64,0,0,1-.91-.91L20.1,7,15,7.53a.59.59,0,0,1-.12-1.18l6.88-.72a.59.59,0,0,1,.65.65ZM12.89,20.34,7.95,21l5.2-5.2a.64.64,0,0,0-.91-.91L7,20.05l.62-4.95A.59.59,0,0,0,6.48,15l-.85,6.75a.59.59,0,0,0,.59.67h.07L13,21.52a.59.59,0,1,0-.15-1.18Z").style("fill","var(--primary-color)"),this.expandIcon.on("click",function(){Oe(r,!1,a)}).on("mouseover",function(e){s.show(this.getAttribute("name"),e),f.cancel(Ce),f.cancel(Le)}).on("mouseout",function(){s.hide(),Ce=f(function(){Re()},500)})),this.focusIcon=o.select(".menu-events").append("g").attr("class","focus-icon").attr("name","focus").attr("transform",function(){return n(20,r)}),this.focusIcon.append("circle").attr("cx",14).attr("cy",14).attr("r",13).style("fill","#eee"),this.focusIcon.append("path").attr("d","M14.2,23.81a9.8,9.8,0,1,1,6.93-2.87h0A9.74,9.74,0,0,1,14.2,23.81Zm0-18.17a8.37,8.37,0,1,0,5.92,14.29h0A8.37,8.37,0,0,0,14.2,5.64Zm1.42,6.95a2,2,0,1,0,0,2.85A2,2,0,0,0,15.62,12.59Z").style("fill","var(--primary-color)"),this.focusIcon.on("click",function(){t.$broadcast("onRootNodeChange",r.iri)}).on("mouseover",function(e){s.show(this.getAttribute("name"),e),f.cancel(Ce),f.cancel(Le)}).on("mouseout",function(){s.hide(),Ce=f(function(){Re()},500)}),this.copyURIIcon=o.select(".menu-events").append("g").attr("class","icon-link").attr("name","link").attr("transform",function(){return n(20,r)}),this.copyURIIcon.append("circle").attr("cx",14).attr("cy",14).attr("r",13).style("fill","#eee"),this.copyURIIcon.append("path").attr("d","M 13.457031 10.164062 C 13.648438 10.164062 13.820312 10.242188 13.941406 10.363281 L 15.492188 11.859375 C 15.984375 12.332031 16.292969 12.992188 16.292969 13.714844 C 16.292969 14.441406 15.984375 15.097656 15.492188 15.574219 L 10.394531 20.496094 C 9.902344 20.972656 9.222656 21.265625 8.472656 21.265625 C 7.71875 21.265625 7.039062 20.972656 6.546875 20.496094 L 4.996094 19 C 4.507812 18.523438 4.203125 17.867188 4.203125 17.144531 C 4.203125 16.421875 4.507812 15.765625 4.996094 15.289062 L 7.542969 12.824219 C 7.667969 12.707031 7.84375 12.628906 8.035156 12.628906 C 8.417969 12.628906 8.726562 12.929688 8.726562 13.300781 C 8.726562 13.484375 8.648438 13.652344 8.523438 13.773438 L 5.976562 16.234375 C 5.738281 16.46875 5.589844 16.792969 5.589844 17.148438 C 5.589844 17.503906 5.738281 17.824219 5.976562 18.058594 L 7.527344 19.566406 C 7.773438 19.792969 8.105469 19.929688 8.472656 19.929688 C 8.835938 19.929688 9.167969 19.792969 9.414062 19.566406 L 14.511719 14.644531 C 14.753906 14.410156 14.90625 14.089844 14.90625 13.730469 C 14.90625 13.375 14.753906 13.054688 14.511719 12.820312 L 12.964844 11.324219 C 12.839844 11.203125 12.761719 11.039062 12.761719 10.855469 C 12.761719 10.488281 13.070312 10.1875 13.449219 10.1875 Z M 17.082031 3.976562 C 17.082031 3.976562 17.085938 3.976562 17.085938 3.976562 C 17.824219 3.976562 18.492188 4.261719 18.980469 4.722656 L 20.535156 6.203125 C 21.042969 6.679688 21.355469 7.34375 21.355469 8.082031 C 21.355469 8.792969 21.058594 9.441406 20.582031 9.914062 L 18.0625 12.402344 C 17.9375 12.527344 17.761719 12.605469 17.566406 12.605469 C 17.183594 12.605469 16.875 12.304688 16.875 11.9375 C 16.875 11.753906 16.949219 11.589844 17.070312 11.46875 L 19.605469 8.984375 C 19.847656 8.75 19.996094 8.429688 19.996094 8.070312 C 19.996094 7.714844 19.847656 7.394531 19.605469 7.160156 L 18.019531 5.667969 C 17.773438 5.445312 17.4375 5.304688 17.070312 5.300781 C 16.703125 5.304688 16.367188 5.453125 16.128906 5.691406 L 11.085938 10.667969 C 10.84375 10.898438 10.695312 11.222656 10.695312 11.578125 C 10.695312 11.933594 10.84375 12.257812 11.085938 12.488281 L 12.675781 13.980469 C 12.804688 14.101562 12.882812 14.273438 12.882812 14.457031 C 12.882812 14.828125 12.574219 15.128906 12.191406 15.128906 C 12.003906 15.128906 11.832031 15.054688 11.707031 14.9375 L 10.140625 13.457031 C 9.636719 12.980469 9.324219 12.316406 9.324219 11.582031 C 9.324219 10.863281 9.621094 10.214844 10.101562 9.742188 L 15.140625 4.765625 C 15.625 4.285156 16.304688 3.980469 17.054688 3.976562 Z M 17.082031 3.976562").style("fill","var(--primary-color)"),this.copyURIIcon.on("click",function(){e.copyToClipboard(r.iri),Re(),s.hide()}).on("mouseover",function(e){s.show("<div style='text-align: center;'><b>Copy to ClipBoard</b><br>"+r.iri+"</div>",e),f.cancel(Ce),f.cancel(Le)}).on("mouseout",function(){s.hide(),Ce=f(function(){Re()},500)}),this.closeIcon=o.select(".menu-events").append("g").attr("class","close-icon").attr("name","remove").attr("transform",function(){return n(20,r)}),this.closeIcon.append("circle").attr("cx",14).attr("cy",14).attr("r",13).style("fill","#eee"),this.closeIcon.append("path").attr("d","M14.94,14l5.87-5.87a.66.66,0,1,0-.94-.94L14,13.06,8.13,7.19a.66.66,0,0,0-.94.94L13.06,14,7.19,19.87a.66.66,0,1,0,.94.94L14,14.94l5.87,5.87a.66.66,0,1,0,.94-.94Z").style("fill","var(--primary-color)"),this.closeIcon.on("click",function(){Ae(r)}).on("mouseover",function(e){s.show(this.getAttribute("name"),e),f.cancel(Ce),f.cancel(Le)}).on("mouseout",function(){s.hide(),Ce=f(function(){Re()},500)}),this.animateMenu(r)},this.animateMenu=function(e){const t=100,r=o.easeSin;let i=0,a=20;this.expandIcon&&this.expandIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return n(a,e)}).delay(i+=35),this.collapseIcon&&this.collapseIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return n(a,e)}).delay(i+=35),this.copyURIIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return a+=30,n(a,e)}).delay(i+=35),this.focusIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return a+=30,n(a,e)}).delay(i+=35),this.closeIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return a+=30,n(a,e)}).delay(i+=35),this.expandedState=!0}};function Pe(n,r,i){return e.showInfoPanel=!1,e.showPredicates=!1,e.showNodeInfo=!1,i.shiftKey&&(i.ctrlKey||i.metaKey)?(t.$broadcast("onRootNodeChange",n.iri),!1):i.ctrlKey||i.metaKey?(Ae(n),!1):void 0!==e.openedNodeInfoPanel&&e.openedNodeInfoPanel===n?(e.pageslideExpanded=!1,e.openedNodeInfoPanel=void 0,!1):(Ge(n),!0)}function Ae(e){he.removeNode(e),Te()}function Me(t){!function(t){e.nodeSelected=!0,null===t.data.types&&(t.data.types="greyColor"),he=new fe,ce=se}(t),Ee(t)}function Ee(t,n,r){let i=t.data;i=_.filter(i,function(e){return-1===_.findIndex(he.links,function(t){return e.source===t.source.iri&&e.target===t.target.iri})});const o=[],a=he.tripleLinksCopy.values();for(let e=0;e<he.tripleLinksCopy.size;e++)a.next().value.forEach(e=>{o.push(e)});i=_.filter(i,function(e){return-1===_.findIndex(o,function(t){return e.source===t.source.iri&&e.target===t.target.iri})}),i=_.filter(i,function(e){return e.source!==e.target});const s=J("iri",_.union(_.flatten(_.map(t.data,function(e){return[{iri:e.source,isTriple:e.isTripleSource},{iri:e.target,isTriple:e.isTripleTarget}]})))),c=_.map(he.nodes,function(e){return{iri:e.iri,isTriple:Boolean(e.isTriple)}}),l=he.tripleNodes.values();for(let e=0;e<he.tripleNodes.size;e++)l.next().value.forEach(e=>{c.push({iri:e.iri,isTriple:e.isTriple})});const d=_.reject(s,function(e){return _.some(c,e)});if(0===d.length)(r||0===i.length)&&u.info(b.instant("graphexplore.error.node.connections")),he.addAndMatchLinks(i),Te();else{const t=[],r=[],o=z();_.forEach(d,function(n,i){t.push(T.getInstanceNode({iri:n.isTriple?Z(n.iri):n.iri,config:e.configLoaded.id,languages:e.shouldShowSettings()?o.languages:[],includeInferred:o.includeInferred,sameAsState:o.sameAsState}).then(function(e){r[i]=e.data}))}),g.all(t).then(function(){_.forEach(r,function(e,t){const i=2*Math.PI*t/r.length,o=(n?n.x:0)+Math.cos(i)*de/3,a=(n?n.y:0)+Math.sin(i)*de/3;e.isTriple?he.addTriple(e,o,a):he.addNode(e,o,a)}),he.addAndMatchLinks(i),n&&(n.isExpanded=!0),Te()})}}function Oe(t,n,r){if(_e.getLoadingState())return;_e.init(t,r);const i=z(),o=t.iri;T.getInstanceNodeLinks({iri:o,linksLimit:i.linksLimit,includeInferred:i.includeInferred,config:e.configLoaded.id,preferredTypes:e.shouldShowSettings()?i.preferredTypes:[],rejectedTypes:e.shouldShowSettings()?i.rejectedTypes:[],preferredPredicates:e.shouldShowSettings()?i.preferredPredicates:[],rejectedPredicates:e.shouldShowSettings()?i.rejectedPredicates:[],preferredTypesOnly:e.shouldShowSettings()?i.preferredTypesOnly:[],preferredPredicatesOnly:e.shouldShowSettings()?i.preferredPredicatesOnly:[],languages:e.shouldShowSettings()?i.languages:[],sameAsState:i.sameAsState,includeSchema:i.includeSchema}).then(function(e){Ee(e,t,n)},function(t){const n=getError(t.data);u.error(n,b.instant("graphexplore.error.exploring.node")),e.loading=!1,_e.setLoadingState(!1)})}function Re(){angular.isDefined(Ne)&&Ne.expandedState&&Ne.removeIcons()}function Ge(t){we.stop(),e.openedNodeInfoPanel=t,e.showNodeInfo=!0,e.showFilter=!1,e.showPredicates=!1,e.nodeLabels=t.labels,e.nodeTypes=t.types,e.rdfRank=t.rdfRank,e.nodeIri=t.iri,e.resourceType=t.isTriple?"triple":"uri",e.encodedIri=t.isTriple?encodeURIComponent(Z(t.iri)):encodeURIComponent(t.iri),e.showInfoPanel=!0,e.rdfsLabel=t.labels[0].label,e.rdfsComment=t.comment,e.expanded=!1,e.propertiesQueryObj.query="",e.dataNodeKeysQuery="";const n=z();T.getProperties({iri:t.isTriple?Z(t.iri):t.iri,config:e.configLoaded.id,languages:e.shouldShowSettings()?n.languages:[],includeInferred:n.includeInferred,sameAsState:n.sameAsState,rejectedPredicates:e.shouldShowSettings()?n.rejectedPredicates:[]}).then(function(t){e.data=_.mapKeys(t.data,function(t,n){return e.replaceIRIWithPrefix(n)}),e.propertiesObj.items=[],_.forEach(e.data,function(t,n){e.propertiesObj.items.push({key:n,value:t})}),e.nodeImage=void 0,e.propertiesNotFiltered=e.propertiesObj.items;const n=_.find(e.propertiesObj.items,function(e){return"image"===e.key});n&&(e.nodeImage=n.value[0].v),e.propertiesObj.items=_.reject(e.propertiesObj.items,function(e){return"image"===e.key}),e.propertiesNotFiltered=e.propertiesObj.items},function(e){u.warning(getError(e.data),"Error")})}function je(e){ze("predicate","var(--primary-color-dark)",e),ze("predicates","var(--primary-color-dark)",e);const t=document.getElementsByClassName("link");t&&_.each(t,function(t){const n=t.__data__;(n.source.iri.indexOf(e.iri)>=0||n.target.iri.indexOf(e.iri)>=0)&&(t.style.stroke="var(--primary-color-dark)",t.style.strokeWidth=4)});const n=document.getElementsByClassName("arrow-marker");n&&_.each(n,function(t){const n=t.__data__;(n.source.iri.indexOf(e.iri)>=0||n.target.iri.indexOf(e.iri)>=0)&&(t.style.stroke="var(--primary-color-dark)",t.__data__.target.isTriple||t.setAttribute("refX","23"))})}function ze(e,t,n){const r=document.getElementsByClassName(e);r&&_.each(r,function(e){const r=e.__data__;n?((r.source.iri.indexOf(n.iri)>=0||r.target.iri.indexOf(n.iri)>=0)&&(e.style.fill=t),q(n.iri)===V(r)&&(e.textContent=n.pred,e.style.fill=t),n.oppLinkIRI&&n.oppLinkIRI===V(r)&&(e.textContent=n.oppTriplePred,e.style.fill=t)):(e.style.fill=t,e.textContent=Fe(r))})}function $e(){_.each(e.predicates,function(e){const t=document.getElementById(e.linkId+e.nodeIndex);t&&(t.style.fontWeight="normal")});const t=document.getElementsByClassName("link");t&&_.each(t,function(e){e.style.stroke="#999",e.style.strokeWidth=1}),ze("predicate",""),ze("predicates","");const n=document.getElementsByClassName("arrow-marker");n&&_.each(n,function(e){e.style.stroke="#999",e.__data__.target.isTriple||e.setAttribute("refX","59")})}function De(e){const t=q(e);if(he.tripleNodes.has(t))return he.tripleNodes.get(t).find(t=>t.iri===e)}function Fe(e){return e.predicates.length>1?e.predicates.length+" predicates":Be(e.predicates[0])}function Be(t){const n=e.replaceIRIWithPrefix(t);return n.length===t.length?t.split("/")[t.split("/").length-1]:n}e.toggleSidePanel=function(){e.pageslideExpanded=!e.pageslideExpanded},e.closeInfoPanel=function(){e.pageslideExpanded=!1,e.openedNodeInfoPanel=void 0,e.predicates=[],ue=null,f(function(){e.showInfoPanel=!1})},e.clickLink=function(t){if(he.tripleNodes.has(t.linkId)){$e();const n=he.tripleNodes.get(t.linkId)[t.nodeIndex];Ge(n),e.showPredicates=!0;const r=document.getElementById(t.linkId+t.nodeIndex);r&&(r.style.fontWeight="bold");const i={},o=he.tripleLinksCopy.values();for(let e=0;e<he.tripleLinksCopy.size;e++){const e=o.next().value;e.length>1&&e.every(t=>t.source.iri===n.iri?(i.iri=e[0].source.iri,t.target.isTriple&&(i.oppLinkIRI=q(t.target.iri),i.oppTriplePred=Be(t.target.iri.split(" ")[1])),i.pred=Be(n.iri.split(" ")[1]),1===t.predicates.length&&(i.linkPred=t.predicates[0]),!1):t.target.iri!==n.iri||(i.iri=e[0].target.iri,t.source.isTriple&&(i.oppLinkIRI=q(t.source.iri),i.oppTriplePred=Be(t.source.iri.split(" ")[1])),i.pred=Be(n.iri.split(" ")[1]),1===t.predicates.length&&(i.linkPred=t.predicates[0]),!1))}i.iri||(i.iri=n.iri,i.pred=Be(n.iri.split(" ")[1])),je(i)}},e.splitPredicate=function(e){return e.split("/")[e.split("/").length-1]},e.getActiveRepository=function(){return n.getActiveRepository()},e.isLoadingLocation=function(){return n.isLoadingLocation()},e.hasActiveLocation=function(){return n.hasActiveLocation()},e.rotate=function(e){Re();const t=10*(e?1:-1)*Math.PI/180,n=Math.cos(t),r=Math.sin(t),i=le/2,a=de/2;o.selectAll(".node-wrapper").each(function(e){e.x=i+(n*(e.x-i)+r*(e.y-a)),e.y=a+(-r*(e.x-i)+n*(e.y-a)),e.fixed&&(e.fx=e.x,e.fy=e.y)}),we.alpha(1).restart()},e.openUri=function(t,n){if(!n){const n={};e.configLoaded.id!==e.defaultGraphConfig.id&&(n.config=e.configLoaded.id),n.uri=t,G(n,{uri:t,config:e.configLoaded})}e.$broadcast("onRootNodeChange",t)},e.saveOrUpdateGraph=function(){const t=JSON.stringify(he.copyState()),n={id:e.lastSavedGraphId,name:e.lastSavedGraphName,data:t,shared:e.shared};n.id?e.saveGraphModal("update",n):e.saveGraphModal("new",n)},e.renameSavedGraph=function(t){e.saveGraphModal("rename",{id:t.id,name:t.name,config:t.config,shared:t.shared})};e.saveGraphModal=function(t,n,r){const i=S.open({templateUrl:"js/angular/graphexplore/templates/modal/save-graph.html",controller:"SaveGraphModalCtrl",resolve:{data:function(){return{mode:t,graph:n,graphExists:r,shared:n.shared}}}});O++,E=!0,i.result.then(function(t){if(t.restart)e.saveGraphModal(t.mode,t.graph,!1);else switch(t.mode){case"new":!function(t){e.configLoaded&&(t.config=e.configLoaded.id),L.addNewSavedGraph(t).success(function(n,r,i){e.lastSavedGraphName=t.name,e.lastSavedGraphId=i()["x-saved-graph-id"],e.shared=t.shared,e.refreshSavedGraphs(),u.success(b.instant("graphexplore.saved.graph",{name:t.name}))}).error(function(n,r){if(422===r)e.saveGraphModal("new",t,!0);else{const e=getError(n);u.error(e,b.instant("graphexplore.error.cannot.create.graph"))}})}(t.graph);break;case"update":case"rename":n=t.graph,L.editSavedGraph(n).success(function(){e.lastSavedGraphName=n.name,e.shared=n.shared,e.refreshSavedGraphs(),u.success(b.instant("graphexplore.saved.graph.was.edited",{name:n.name}))}).error(function(e){const t=getError(e);u.error(t,b.instant("graphexplore.error.cannot.edit"))})}var n}).finally(()=>{O--,O<=0&&(E=!1,O=0)})},e.refreshSavedGraphs=function(){L.getSavedGraphs().success(function(t){e.savedGraphs=t}).error(function(e){const t=getError(e);u.error(t,b.instant("graphexplore.error.getting.saved.graphs"))})},e.loadSavedGraph=function(t,n){t.owner?(e.lastSavedGraphName=t.name,e.lastSavedGraphId=t.id,e.shared=t.shared,e.configLoaded=e.findConfigById(t.config)):(e.lastSavedGraphName=null,e.lastSavedGraphId=null,e.shared=t.shared),e.configLoaded||(e.configLoaded=e.defaultGraphConfig),m.url("?saved="+t.id),he.restoreState(JSON.parse(t.data)),n||G({saved:t.id},{savedGraph:t})},e.copyToClipboardSavedGraph=function(t){const n=[location.protocol,"//",location.host,location.pathname,"?saved=",t.id].join("");e.copyToClipboard(n)},e.deleteSavedGraph=function(t){x.openSimpleModal({title:b.instant("common.confirm"),message:b.instant("graphexplore.confirm.delete.graph",{graphName:t.name}),warning:!0}).result.then(function(){!function(t){L.deleteSavedGraph(t).success(function(){e.refreshSavedGraphs(),u.success(b.instant("graphexplore.saved.graph.was.deleted",{name:t.name}))}).error(function(e){const t=getError(e);u.error(t,b.instant("graphexplore.error.cannot.delete"))})}(t)})},e.openIRI=function(t,n){return n.shiftKey?e.$broadcast("onRootNodeChange",t):window.open(t,"_blank"),!1},e.togglePinAllNodes=function(){Re();const t=angular.isUndefined(e.numberOfPinnedNodes)||e.numberOfPinnedNodes<=0;e.numberOfPinnedNodes=0,o.selectAll(".node").each(function(n){n.fixed=t,t?(e.numberOfPinnedNodes++,n.fx=n.x,n.fy=n.y):(n.fx=null,n.fy=null)}),we.alpha(1).restart()},$("body").on("keydown",function(t){!N.isActive()&&"input"!==t.target.nodeName&&e.nodeSelected&&(37===t.keyCode?e.rotate(!0):39===t.keyCode&&e.rotate(!1))}),e.getLiteralFromPropValue=function(e){return e.substring(e.indexOf(":")+1)}}function u(e,t,n,r){switch(e.mode=n.mode,e.graph=_.cloneDeep(n.graph),e.graphExists=n.graphExists,e.mode){case"new":e.title=r.instant("graphexplore.create.new.graph"),e.okButtonText=r.instant("common.create.btn");break;case"update":e.title=r.instant("graphexplore.update"),e.okButtonText=r.instant("common.save.btn");break;case"rename":e.title=r.instant("graphexplore.rename"),e.okButtonText=r.instant("common.save.btn")}e.ok=function(){e.form.$valid&&(e.graph.name=i(e.graph.name),t.close({graph:e.graph,mode:e.mode}))},e.saveNew=function(){e.graph.name=i(e.graph.name)+" (new)",t.close({graph:e.graph,mode:"new",restart:!0})},e.cancel=function(){t.dismiss("cancel")};const i=e=>e.replace(/\s+/g," ").trim()}angular.module("graphdb.framework.graphexplore.controllers.graphviz",["ui.scroll.jqlite","ui.scroll","toastr","ui.bootstrap","ngTagsInput","graphdb.framework.utils.localstorageadapter","graphdb.core.services.workbench-context","graphdb.framework.core.services.rdf4j.repositories"]).controller("GraphsVisualizationsCtrl",p).controller("SaveGraphModalCtrl",u).config(["$uibTooltipProvider",function(e){e.options({appendToBody:!0})}]),p.$inject=["$scope","$rootScope","$repositories","$licenseService","toastr","$timeout","ClassInstanceDetailsService","$q","$location","$jwtAuth","UiScrollService","ModalService","$uibModal","$window","LocalStorageAdapter","LSKeys","SavedGraphsRestService","GraphConfigRestService","GraphDataRestService","$translate","GuidesService","WorkbenchContextService","RDF4JRepositoriesService"],u.$inject=["$scope","$uibModalInstance","data","$translate"]},62979:(e,t,n)=>{var r,i;r=[n(93462)],void 0===(i=function(e){function t(e,t){return e.each(function(){var e=t.apply(this,arguments),n=select(this);for(var r in e)n.attr(r,e[r])})}function r(e,t){for(var n in t)e.attr(n,t[n]);return e}return void 0===e&&(e=n(93462)),e.selection.prototype.attrs=function(e){return("function"==typeof e?t:r)(this,e)},e.selection.prototype.moveToFront=function(){return this.each(function(){e.select(this.parentNode.appendChild(this))})},e.selection.prototype.moveToBack=function(){return this.each(function(){const e=this.parentNode.firstChild;e&&this.parentNode.insertBefore(this,e)})},e}.apply(t,r))||(e.exports=i)},75468:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(93462);const i={select:r.select,selection:r.selection},o=function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),o=null,a=null,s=null,c=null;function l(e){var t;o="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=o.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(s=r.pop());var i,o=n.apply(this,r),a=t.apply(this,r),u=e.apply(this,r),h=f(),g=p.length,m=document.documentElement.scrollTop||document.body.scrollTop,y=document.documentElement.scrollLeft||document.body.scrollLeft,v=c.apply(this,r);for(h.html(o).style("opacity",1).style("pointer-events","all");g--;)h.classed(p[g],!1);const x=r.filter(e=>e instanceof Event);return i=d.get(u).apply(this,x),v?Object.keys(v).forEach(function(e){h.style(e,v[e])}):h.classed(u,!0).style("top",i.top+a[0]+m+"px").style("left",i.left+a[1]+y+"px"),l},l.hide=function(){return f().style("opacity",0).style("pointer-events","none"),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return i.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return i.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:g(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:g(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:g(e),l):n},l.customPosition=function(e){return arguments.length?(c=null==e?e:g(e),l):c},l.destroy=function(){return r&&(f().remove(),r=null),l};var d=new Map(Object.entries({n:function(e){var t=h(e);return{top:t.n.y-r.offsetHeight,left:t.n.x-r.offsetWidth/2}},s:function(e){var t=h(e);return{top:t.s.y,left:t.s.x-r.offsetWidth/2}},e:function(e){var t=h(e);return{top:t.e.y-r.offsetHeight/2,left:t.e.x}},w:function(e){var t=h(e);return{top:t.w.y-r.offsetHeight/2,left:t.w.x-r.offsetWidth}},nw:function(e){var t=h(e);return{top:t.nw.y-r.offsetHeight,left:t.nw.x-r.offsetWidth}},ne:function(e){var t=h(e);return{top:t.ne.y-r.offsetHeight,left:t.ne.x}},sw:function(e){var t=h(e);return{top:t.sw.y,left:t.sw.x-r.offsetWidth}},se:function(e){var t=h(e);return{top:t.se.y,left:t.e.x}}})),p=d.keys();function u(){var e=i.select(document.createElement("div"));return e.style("position","absolute").style("top",0).style("opacity",0).style("pointer-events","none").style("box-sizing","border-box"),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),i.select(r)}function h(e){for(var t=s||e.target;void 0===t.getScreenCTM&&"undefined"===t.parentNode;)t=t.parentNode;var n={},r=t.getScreenCTM(),i=t.getBBox(),o=i.width,c=i.height,l=i.x,d=i.y;return a.x=l,a.y=d,n.nw=a.matrixTransform(r),a.x+=o,n.ne=a.matrixTransform(r),a.y+=c,n.se=a.matrixTransform(r),a.x-=o,n.sw=a.matrixTransform(r),a.y-=c/2,n.w=a.matrixTransform(r),a.x+=o,n.e=a.matrixTransform(r),a.x-=o/2,a.y-=c/2,n.n=a.matrixTransform(r),a.y+=c,n.s=a.matrixTransform(r),n}function g(e){return"function"==typeof e?e:function(){return e}}return l}},78618:(e,t,n)=>{n.r(t),n.d(t,{removeSpecialChars:()=>i,toBoolean:()=>o,toTitleCase:()=>a});var r=n(98980);const i=e=>e.replace(/[()']/g,""),o=e=>"string"==typeof e?"true"===e:Boolean(e),a=e=>e?(0,r.upperFirst)(e.toLowerCase()):e}};
2
- //# sourceMappingURL=39518.0ee809a85c83dba1f56a.bundle.js.map
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=39539;export const __webpack_ids__=[39539];export const __webpack_modules__={39539:(e,i,d)=>{d.r(i),d.d(i,{default:()=>l});const l='<link href="css/dynamic-form.css?v=3.1.1" rel="stylesheet"/> <div class="dynamic-form-container"> <form name="dynamicForm" novalidate class="dynamic-form"> <div ng-repeat="model in formModel.models"> <div ng-if="model.groupId && (model.fields.length > 0 || showAllFields)" class="form-group"> <h5 class="group-title"> <span gdb-tooltip="{{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + \'.tooltip\') : null) | translate}}"> {{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + \'.label\') : model.groupId) | translate}} </span> </h5> <dynamic-form-field ng-repeat="field in model.fields" field="field" form="dynamicForm" translation-key-prefix="translationKeyPrefix"> </dynamic-form-field> <div class="hidden-fields"> <dynamic-form-field ng-if="showAllFields" ng-repeat="field in model.hiddenFields" field="field" form="dynamicForm" translation-key-prefix="translationKeyPrefix"> </dynamic-form-field> </div> </div> <dynamic-form-field ng-if="!model.groupId" field="model" form-name="dynamicForm" translation-key-prefix="translationKeyPrefix"> </dynamic-form-field> </div> </form> </div> '}};
2
- //# sourceMappingURL=39539.2a03bf4161ee846817d3.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"39539.2a03bf4161ee846817d3.bundle.js","mappings":"uJAGA,QAFW,gmC","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/dynamic-form/templates/dynamic-form.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/dynamic-form.css?v=3.1.1\" rel=\"stylesheet\"/> <div class=\"dynamic-form-container\"> <form name=\"dynamicForm\" novalidate class=\"dynamic-form\"> <div ng-repeat=\"model in formModel.models\"> <div ng-if=\"model.groupId && (model.fields.length > 0 || showAllFields)\" class=\"form-group\"> <h5 class=\"group-title\"> <span gdb-tooltip=\"{{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + '.tooltip') : null) | translate}}\"> {{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + '.label') : model.groupId) | translate}} </span> </h5> <dynamic-form-field ng-repeat=\"field in model.fields\" field=\"field\" form=\"dynamicForm\" translation-key-prefix=\"translationKeyPrefix\"> </dynamic-form-field> <div class=\"hidden-fields\"> <dynamic-form-field ng-if=\"showAllFields\" ng-repeat=\"field in model.hiddenFields\" field=\"field\" form=\"dynamicForm\" translation-key-prefix=\"translationKeyPrefix\"> </dynamic-form-field> </div> </div> <dynamic-form-field ng-if=\"!model.groupId\" field=\"model\" form-name=\"dynamicForm\" translation-key-prefix=\"translationKeyPrefix\"> </dynamic-form-field> </div> </form> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"39874.c2d7cab1a65e5a869e78.bundle.js","mappings":"qLAWA,MASMA,EAAa,MAIfC,WAAAA,CAAYC,IACRC,EAAAA,EAAAA,GAAiBC,KAAMF,GAIvBE,KAAKC,uBAAyBC,EAAAA,gBAAgBC,IAAIC,EAAAA,wBAClDJ,KAAKK,sBAAwBH,EAAAA,gBAAgBC,IAAIG,EAAAA,uBACjDN,KAAKO,yBAA2BL,EAAAA,gBAAgBC,IAAIK,EAAAA,0BACpDR,KAAKS,iBAAkB,EACvBT,KAAKU,eAAgB,EACrBV,KAAKW,WAAaX,KAAKY,uBAOvBZ,KAAKa,cAAgB,IAAIC,EAAAA,iBACzBd,KAAKe,mBAAoB,EACzBf,KAAKgB,qBAxCb,SAAkBC,EAAMC,EAAO,KAC3B,IAAIC,EACJ,MAAO,IAAIC,KACPC,aAAaF,GACbA,EAAQG,WAAW,IAAML,EAAKM,MAAMvB,KAAMoB,GAAOF,GAEzD,CAkCoCM,CAAS,IAAMxB,KAAKyB,sBAAuB,IACvEC,EAAAA,cAAcC,YAAYC,iBAAiB,UAAW5B,KAAK6B,oBAC/D,CACAC,gBAAAA,GACI9B,KAAKyB,qBACT,CACAM,iBAAAA,GACI/B,KAAKgC,6BACLhC,KAAKiC,mBAELjC,KAAKa,cAAcqB,IAAIlC,KAAKC,uBAAuBkC,yBAA0BC,GAAoBpC,KAAKqC,cAAcD,KACpHpC,KAAKa,cAAcqB,IAAIhC,EAAAA,gBAAgBC,IAAImC,EAAAA,cAAcC,UAAUC,EAAAA,UAAUC,eAAiBC,IAC1F1C,KAAKO,yBAAyBoC,oBAAoBD,EAAqBE,QACvE5C,KAAKqC,cAAcrC,KAAKC,uBAAuB4C,yBAEnD7C,KAAKqC,cAAcrC,KAAKC,uBAAuB4C,qBACnD,CAKAC,oBAAAA,GACI9C,KAAKa,cAAckC,gBACvB,CACAC,MAAAA,GACI,OAAQC,EAAAA,EAAAA,GAAEC,EAAAA,EAAM,CAAEC,IAAK,2CAA4CC,MAAO,cAAeH,EAAAA,EAAAA,GAAE,MAAO,CAAEE,IAAK,2CAA4CC,MAAO,yBAA0BH,EAAAA,EAAAA,GAAE,OAAQ,CAAEE,IAAK,2CAA4CE,KAAM,cAAeJ,EAAAA,EAAAA,GAAE,SAAU,CAAEE,IAAK,2CAA4CC,MAAO,aAAepD,KAAKW,aAAcsC,EAAAA,EAAAA,GAAE,cAAe,CAAEE,IAAK,+CAAgDF,EAAAA,EAAAA,GAAE,MAAO,CAAEE,IAAK,2CAA4CC,MAAO,cAAeH,EAAAA,EAAAA,GAAE,cAAe,CAAEE,IAAK,2CAA4CG,IAAKtD,KAAKuD,kBAAmB,mBAAoBvD,KAAKS,mBAAqBT,KAAKU,eAAiBuC,EAAAA,EAAAA,GAAE,MAAO,CAAEG,MAAO,sBAAuBH,EAAAA,EAAAA,GAAE,OAAQ,CAAEI,KAAM,WAAeJ,EAAAA,EAAAA,GAAE,yBAA0B,OAAQA,EAAAA,EAAAA,GAAE,SAAU,CAAEE,IAAK,2CAA4CC,MAAO,cAAeH,EAAAA,EAAAA,GAAE,cAAe,CAAEE,IAAK,+CAAgDF,EAAAA,EAAAA,GAAE,eAAgB,CAAEE,IAAK,8CAA+CF,EAAAA,EAAAA,GAAE,cAAe,CAAEE,IAAK,6CAC9hC,CASAK,eAAAA,CAAgBC,GACZzD,KAAKe,kBAAoB0C,EAAMC,OAAOC,QAClC3D,KAAKe,kBACLf,KAAK4D,YAAYC,UAAU3B,IAAI,YAG/BlC,KAAK4D,YAAYC,UAAUC,OAAO,WAE1C,CAKAC,QAAAA,GACI/D,KAAKgB,sBACT,CAIAS,mBAAAA,GACIzB,KAAKS,gBAAkBiB,EAAAA,cAAcC,YAAYqC,YAtFjD,IAuFKhE,KAAKS,iBAAoBT,KAAKe,kBAI/Bf,KAAK4D,YAAYC,UAAU3B,IAAI,YAH/BlC,KAAK4D,YAAYC,UAAUC,OAAO,WAK1C,CACAjC,mBAAAA,CAAoB4B,GACAvD,EAAAA,gBAAgBC,IAAI8D,EAAAA,wCAC5BpC,oBAAoB4B,EAChC,CAIAzB,0BAAAA,GACI,MAAM/B,EAAyBC,EAAAA,gBAAgBC,IAAIC,EAAAA,wBACnDJ,KAAKa,cAAcqB,IAAIjC,EAAuBiE,2BAA4BC,IACtEnE,KAAKmE,kBAAoBA,EACzBnE,KAAKiC,sBAETjC,KAAKa,cAAcqB,IAAIjC,EAAuBmE,wBAAyBC,IACnErE,KAAKqE,eAAiBA,EACtBrE,KAAKiC,sBAETjC,KAAKa,cAAcqB,IAAIhC,EAAAA,gBAAgBC,IAAImC,EAAAA,cAAcC,UAAUC,EAAAA,UAAU8B,OAAQ,KACjFtE,KAAKuE,0BACLvE,KAAKiC,sBAETjC,KAAKa,cAAcqB,IAAIjC,EAAuBuE,mBAAmB,KAC7DxE,KAAKuE,0BACLvE,KAAKiC,qBAEb,CACAI,aAAAA,CAAcoC,GACV,GAAIA,EAAa,CACb,MAAMC,GAAOC,EAAAA,EAAAA,eACb3E,KAAKU,eAAiB+D,EAAYG,aAAaF,EACnD,MAGI1E,KAAKU,eAAgB,EAEzB,MAAMmE,EAAcC,SAASC,cAAc,mBACvCF,IACAA,EAAYG,MAAMC,QAAUjF,KAAKU,cAAgB,QAAU,OAEnE,CACAuB,gBAAAA,GACSjC,KAAKK,sBAAsB6E,oBAI5BlF,KAAKW,WAAaX,KAAKK,sBAAsB8E,cAAgBnF,KAAKK,sBAAsB+E,gBAHxFpF,KAAKW,YAAa,CAK1B,CACAC,oBAAAA,GACI,MAAMyE,EAAcnF,EAAAA,gBAAgBC,IAAIG,EAAAA,uBACxC,OAAQ+E,EAAYH,qBAAuBG,EAAYF,cAAgBE,EAAYD,eACvF,CACAE,cAAAA,CAAeC,GACX,OAAOvF,KAAKY,wBACLV,EAAAA,gBAAgBC,IAAIG,EAAAA,uBAAuBkF,QAAQD,EAC9D,CAIAhC,eAAAA,GACI,OAAQkC,IACJzF,KAAK0F,UAAYD,EACjBzF,KAAK0F,UAAUC,UAAYjE,EAAAA,cAAcC,YAAYiE,eAAezF,IAAI,aACxEH,KAAKuE,0BAEb,CACAA,uBAAAA,GACI,IAAIsB,EAAIC,EAAIC,EACZ,KAAgC,QAAzBF,EAAK7F,KAAK0F,iBAA8B,IAAPG,OAAgB,EAASA,EAAGF,WAChE,OAGJ,MAAMK,EAAeC,IACjB,IAAIJ,EACJI,EAAKC,WAAalG,KAAKsF,eAAeW,EAAKV,OACd,QAAxBM,EAAKI,EAAKE,gBAA6B,IAAPN,OAAgB,EAASA,EAAGO,SAC7DH,EAAKE,SAASE,QAAQL,IAGqD,QAAlFD,EAA+B,QAAzBD,EAAK9F,KAAK0F,iBAA8B,IAAPI,OAAgB,EAASA,EAAGH,iBAA8B,IAAPI,GAAyBA,EAAGM,QAAQC,IAC3HA,EAAOC,MAAMF,QAAQL,KAGzBhG,KAAK0F,UAAUC,UAAY,IAAI3F,KAAK0F,UAAUC,UAClD,CACA,eAAI/B,GAAgB,OAAO4C,EAAAA,EAAAA,GAAWxG,KAAO,GAEjDJ,EAAWoF,MA/KW,+hB","sources":["webpack://root-config/./packages/shared-components/dist/esm/onto-layout.entry.js"],"sourcesContent":["import { r as registerInstance, h, a as Host, g as getElement } from './index-I_gcXFWK.js';\nimport { ServiceProvider, SecurityContextService, AuthenticationService, NavigationContextService, SubscriptionList, WindowService, EventService, EventName, LocalStorageSubscriptionHandlerService, getPathName } from '@ontotext/workbench-api';\n\nfunction debounce(func, wait = 300) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => func.apply(this, args), wait);\n };\n}\n\nconst RESPONSIVE_BREAKPOINTS = {\n MD: 768};\n/**\n * The width of the window in pixels at which the navbar should collapse.\n */\nconst WINDOW_WIDTH_FOR_COLLAPSED_NAVBAR = RESPONSIVE_BREAKPOINTS.MD;\n\nconst ontoLayoutCss = \":host{display:block;height:100%}.wb-layout{display:grid;grid-template-columns:15rem minmax(200px, 1fr);grid-template-rows:auto 1fr auto;grid-template-areas:\\\"nav header\\\" \\\"nav main\\\" \\\"nav footer\\\";min-height:100vh;margin:0}.wb-layout.expanded{grid-template-columns:4.375rem 1fr}.wb-layout nav{grid-area:nav}.wb-layout header{grid-area:header}.wb-layout main{grid-area:main}.wb-layout main .main-container{margin-left:0}.wb-layout .default-slot-wrapper{display:none}.wb-layout footer{grid-area:footer}.wb-header{position:sticky;top:0;z-index:999}\";\n\nconst OntoLayout = class {\n // ========================\n // Lifecycle methods\n // ========================\n constructor(hostRef) {\n registerInstance(this, hostRef);\n // ========================\n // Services\n // ========================\n this.securityContextService = ServiceProvider.get(SecurityContextService);\n this.authenticationService = ServiceProvider.get(AuthenticationService);\n this.navigationContextService = ServiceProvider.get(NavigationContextService);\n this.isLowResolution = false;\n this.hasPermission = true;\n this.showHeader = this.isAuthenticatedFully();\n // ========================\n // Private\n // ========================\n /**\n * List of subscriptions to manage component lifecycle\n * */\n this.subscriptions = new SubscriptionList();\n this.isNavbarCollapsed = false;\n this.windowResizeObserver = debounce(() => this.windowResizeHandler(), 50);\n WindowService.getWindow().addEventListener(\"storage\", this.handleStorageChange);\n }\n componentDidLoad() {\n this.windowResizeHandler();\n }\n connectedCallback() {\n this.subscribeToSecurityChanges();\n this.updateVisibility();\n // Subscribing here, because after a disconnectedCallback the connectedCallback is called, instead of componentDidLoad or constructor\n this.subscriptions.add(this.securityContextService.onRestrictedPagesChanged((restrictedPages) => this.setPermission(restrictedPages)));\n this.subscriptions.add(ServiceProvider.get(EventService).subscribe(EventName.NAVIGATION_END, (navigationEndPayload) => {\n this.navigationContextService.updatePreviousRoute(navigationEndPayload.oldUrl);\n this.setPermission(this.securityContextService.getRestrictedPages());\n }));\n this.setPermission(this.securityContextService.getRestrictedPages());\n }\n /**\n * Lifecycle method called when the component is about to be removed from the DOM.\n * Unsubscribes from all subscriptions to prevent memory leaks.\n */\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n render() {\n return (h(Host, { key: '8ac7b898ae52fb40814ae664c1666ac3d05e3263', class: \"wb-layout\" }, h(\"div\", { key: '2672ccbf6b5f17a25cca8e4db244705ac0fc333d', class: \"default-slot-wrapper\" }, h(\"slot\", { key: '24543fc3c526950e944dc4e37e4ed559fae1c389', name: \"default\" })), h(\"header\", { key: 'a67d6e4932aae82b474d70d220415cea271ffeb9', class: \"wb-header\" }, this.showHeader && h(\"onto-header\", { key: '8bb74bfea276d89824ead02609e80c070582d35e' })), h(\"nav\", { key: 'e5f83abdc3d6f1d89d9e6e2f83b7c6a62bc22389', class: \"wb-navbar\" }, h(\"onto-navbar\", { key: '2265c999b7650d255f28efd07b1f9977b7a9498f', ref: this.assignNavbarRef(), \"navbar-collapsed\": this.isLowResolution })), this.hasPermission ? (h(\"div\", { class: 'main-slot-wrapper' }, h(\"slot\", { name: \"main\" }))) : (h(\"onto-permission-banner\", null)), h(\"footer\", { key: '016c8d0c9c1de47b9c4ccf64a0f717ee67f4fcbc', class: \"wb-footer\" }, h(\"onto-footer\", { key: '90787f7d2c4cf1840ae3048d4b60f4f7c1ea948f' })), h(\"onto-tooltip\", { key: '329f4cf1b14442c59da0125bc8b607185d402134' }), h(\"onto-toastr\", { key: '615db8b9c70a90521ff393c5f98ff1d0c2f511b4' })));\n }\n // ========================\n // Event Listeners\n // ========================\n /**\n * Event listener for the navbar toggled event. The layout needs to respond properly when the navbar is toggled in\n * order to fit the content.\n * @param event\n */\n onNavbarToggled(event) {\n this.isNavbarCollapsed = event.detail.payload;\n if (this.isNavbarCollapsed) {\n this.hostElement.classList.add('expanded');\n }\n else {\n this.hostElement.classList.remove('expanded');\n }\n }\n /**\n * Event listener for window resize event. We need to handle this in order to allow the navbar to collapse when the\n * window is resized.\n */\n onResize() {\n this.windowResizeObserver();\n }\n // ========================\n // Handlers\n // ========================\n windowResizeHandler() {\n this.isLowResolution = WindowService.getWindow().innerWidth <= WINDOW_WIDTH_FOR_COLLAPSED_NAVBAR;\n if (!this.isLowResolution && !this.isNavbarCollapsed) {\n this.hostElement.classList.remove('expanded');\n }\n else {\n this.hostElement.classList.add('expanded');\n }\n }\n handleStorageChange(event) {\n const service = ServiceProvider.get(LocalStorageSubscriptionHandlerService);\n service.handleStorageChange(event);\n }\n // ========================\n // Security & Permissions\n // ========================\n subscribeToSecurityChanges() {\n const securityContextService = ServiceProvider.get(SecurityContextService);\n this.subscriptions.add(securityContextService.onAuthenticatedUserChanged((authenticatedUser) => {\n this.authenticatedUser = authenticatedUser;\n this.updateVisibility();\n }));\n this.subscriptions.add(securityContextService.onSecurityConfigChanged((securityConfig) => {\n this.securityConfig = securityConfig;\n this.updateVisibility();\n }));\n this.subscriptions.add(ServiceProvider.get(EventService).subscribe(EventName.LOGOUT, () => {\n this.setNavbarItemVisibility();\n this.updateVisibility();\n }));\n this.subscriptions.add(securityContextService.onAuthTokenChanged(() => {\n this.setNavbarItemVisibility();\n this.updateVisibility();\n }));\n }\n setPermission(permissions) {\n if (permissions) {\n const path = getPathName();\n this.hasPermission = !permissions.isRestricted(path);\n }\n else {\n // If the permissions are undefined, the user can access the url\n this.hasPermission = true;\n }\n const mainContent = document.querySelector('.wb-layout main');\n if (mainContent) {\n mainContent.style.display = this.hasPermission ? 'block' : 'none';\n }\n }\n updateVisibility() {\n if (!this.authenticationService.isSecurityEnabled()) {\n this.showHeader = true;\n }\n else {\n this.showHeader = this.authenticationService.isLoggedIn() || this.authenticationService.hasFreeAccess();\n }\n }\n isAuthenticatedFully() {\n const authService = ServiceProvider.get(AuthenticationService);\n return !authService.isSecurityEnabled() || authService.isLoggedIn() || authService.hasFreeAccess();\n }\n shouldShowMenu(role) {\n return this.isAuthenticatedFully()\n && ServiceProvider.get(AuthenticationService).hasRole(role);\n }\n // ========================\n // Navbar logic\n // ========================\n assignNavbarRef() {\n return (navbar) => {\n this.navbarRef = navbar;\n this.navbarRef.menuItems = WindowService.getWindow().PluginRegistry.get('main.menu');\n this.setNavbarItemVisibility();\n };\n }\n setNavbarItemVisibility() {\n var _a, _b, _c;\n if (!((_a = this.navbarRef) === null || _a === void 0 ? void 0 : _a.menuItems)) {\n return;\n }\n // recursively check for children and set their shouldShow property\n const processItem = (item) => {\n var _a;\n item.shouldShow = this.shouldShowMenu(item.role);\n if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {\n item.children.forEach(processItem);\n }\n };\n (_c = (_b = this.navbarRef) === null || _b === void 0 ? void 0 : _b.menuItems) === null || _c === void 0 ? void 0 : _c.forEach(plugin => {\n plugin.items.forEach(processItem);\n });\n // Update the reference to trigger a re-render\n this.navbarRef.menuItems = [...this.navbarRef.menuItems];\n }\n get hostElement() { return getElement(this); }\n};\nOntoLayout.style = ontoLayoutCss;\n\nexport { OntoLayout as onto_layout };\n"],"names":["OntoLayout","constructor","hostRef","registerInstance","this","securityContextService","ServiceProvider","get","SecurityContextService","authenticationService","AuthenticationService","navigationContextService","NavigationContextService","isLowResolution","hasPermission","showHeader","isAuthenticatedFully","subscriptions","SubscriptionList","isNavbarCollapsed","windowResizeObserver","func","wait","timer","args","clearTimeout","setTimeout","apply","debounce","windowResizeHandler","WindowService","getWindow","addEventListener","handleStorageChange","componentDidLoad","connectedCallback","subscribeToSecurityChanges","updateVisibility","add","onRestrictedPagesChanged","restrictedPages","setPermission","EventService","subscribe","EventName","NAVIGATION_END","navigationEndPayload","updatePreviousRoute","oldUrl","getRestrictedPages","disconnectedCallback","unsubscribeAll","render","h","Host","key","class","name","ref","assignNavbarRef","onNavbarToggled","event","detail","payload","hostElement","classList","remove","onResize","innerWidth","LocalStorageSubscriptionHandlerService","onAuthenticatedUserChanged","authenticatedUser","onSecurityConfigChanged","securityConfig","LOGOUT","setNavbarItemVisibility","onAuthTokenChanged","permissions","path","getPathName","isRestricted","mainContent","document","querySelector","style","display","isSecurityEnabled","isLoggedIn","hasFreeAccess","authService","shouldShowMenu","role","hasRole","navbar","navbarRef","menuItems","PluginRegistry","_a","_b","_c","processItem","item","shouldShow","children","length","forEach","plugin","items","getElement"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=41453;export const __webpack_ids__=[41453];export const __webpack_modules__={41453:(n,t,a)=>{a.r(t),a.d(t,{default:()=>e});const e='<link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.1.1" rel="stylesheet"/> <div class="modal-header"> <h3 class="modal-title">{{\'graphql.endpoints_management.endpoint_configuration_modal.title\' | translate}}</h3> <span ng-click="toggleAdvancedSettings()" class="toggle-advanced-settings"> <input type="checkbox" class="switch" ng-checked="showAdvancedSettings"/> <label></label> <span>{{\'graphql.endpoints_management.endpoint_configuration_modal.actions.show_advanced_settings.label\' | translate}}</span> </span> </div> <div class="modal-body graphql-endpoint-configuration-modal-body"> <div class="graphql-endpoint-configuration-loader" onto-loader-new hide-message="true" size="100" ng-show="loadingEndpointConfigurationSettings"></div> <dynamic-form ng-if="!loadingEndpointConfigurationSettings" form-model="endpointConfigurationSettings.settings" on-validity-change="handleValidityChange(valid)" show-all-fields="showAdvancedSettings" translation-key-prefix="graphql.endpoints_management.endpoint_configuration_modal.settings." form-ctrl="formCtrl"> </dynamic-form> </div> <div class="modal-footer mt-0"> <button type="button" class="btn btn-secondary cancel-btn" ng-click="cancel()">{{\'common.cancel.btn\' | translate}} </button> <button id="graphql-endpoint-configuration-modal-submit" class="btn btn-primary" ng-disabled="!endpointConfigurationSettingsValid || savingEndpointSettings || formCtrl.$pristine" ng-click="ok()" type="submit"> <span>{{\'save.changes.label\' | translate}}</span> <span class="saving-endpoint-settings" ng-if="savingEndpointSettings" onto-loader-fancy hide-message="true" size="15"></span> </button> </div> '}};
2
- //# sourceMappingURL=41453.5370acf9540ff5382268.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"41453.5370acf9540ff5382268.bundle.js","mappings":"uJAGA,QAFW,ioD","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/templates/modal/endpoint-configuration-modal.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/graphql/graphql-endpoint-configuration-modal.css?v=3.1.1\" rel=\"stylesheet\"/> <div class=\"modal-header\"> <h3 class=\"modal-title\">{{'graphql.endpoints_management.endpoint_configuration_modal.title' | translate}}</h3> <span ng-click=\"toggleAdvancedSettings()\" class=\"toggle-advanced-settings\"> <input type=\"checkbox\" class=\"switch\" ng-checked=\"showAdvancedSettings\"/> <label></label> <span>{{'graphql.endpoints_management.endpoint_configuration_modal.actions.show_advanced_settings.label' | translate}}</span> </span> </div> <div class=\"modal-body graphql-endpoint-configuration-modal-body\"> <div class=\"graphql-endpoint-configuration-loader\" onto-loader-new hide-message=\"true\" size=\"100\" ng-show=\"loadingEndpointConfigurationSettings\"></div> <dynamic-form ng-if=\"!loadingEndpointConfigurationSettings\" form-model=\"endpointConfigurationSettings.settings\" on-validity-change=\"handleValidityChange(valid)\" show-all-fields=\"showAdvancedSettings\" translation-key-prefix=\"graphql.endpoints_management.endpoint_configuration_modal.settings.\" form-ctrl=\"formCtrl\"> </dynamic-form> </div> <div class=\"modal-footer mt-0\"> <button type=\"button\" class=\"btn btn-secondary cancel-btn\" ng-click=\"cancel()\">{{'common.cancel.btn' | translate}} </button> <button id=\"graphql-endpoint-configuration-modal-submit\" class=\"btn btn-primary\" ng-disabled=\"!endpointConfigurationSettingsValid || savingEndpointSettings || formCtrl.\\$pristine\" ng-click=\"ok()\" type=\"submit\"> <span>{{'save.changes.label' | translate}}</span> <span class=\"saving-endpoint-settings\" ng-if=\"savingEndpointSettings\" onto-loader-fancy hide-message=\"true\" size=\"15\"></span> </button> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=42129;export const __webpack_ids__=[42129];export const __webpack_modules__={42129:(e,l,t)=>{t.r(l),t.d(l,{default:()=>s});const s='<link href="css/shuttle-multiselect.css?v=3.1.1" rel="stylesheet"/> <div class="shuttle-multiselect"> <div class="shuttle-panel available-options"> <div class="shuttle-panel-header"> <h5>{{labels.availableOptionsTitle | translate}}</h5> </div> <div class="shuttle-panel-toolbar toolbar-left"> <input type="text" class="form-control filter-selected" placeholder="{{labels.availableOptionsFilter | translate}}" ng-model="searchLeft"> <a href="#" ng-click="selectAll()" class="btn-link secondary add-all-btn" gdb-tooltip="{{labels.selectAllTooltip | translate}}" tooltip-placement="top">{{labels.selectAllLabel | translate}}</a> </div> <div class="options-list"> <div class="option-item" ng-repeat="item in availableOptions | searchFilter:searchLeft | orderBy:\'label\' track by $index"> <span>{{item.label}}</span> <a href="#" ng-click="selectOption(item)" class="btn-link secondary item-action add-btn" gdb-tooltip="{{labels.selectTooltip | translate}}" tooltip-placement="top"> <span class="fa fa-plus-circle"></span> </a> </div> </div> </div> <div class="shuttle-panel selected-options"> <div class="shuttle-panel-header"> <h5>{{labels.selectedOptionsTitle | translate}}</h5> </div> <div class="shuttle-panel-toolbar toolbar-right"> <div ng-if="selectedOptions.length" class="selected-items-message"> {{labels.selectedOptionsCount | translate:{count: selectedOptions.length} }} </div> <a href="#" ng-click="deselectAll()" class="btn-link secondary remove-all-btn" gdb-tooltip="{{labels.deselectAllTooltip | translate}}" tooltip-placement="top">{{labels.deselectAllLabel | translate}}</a> </div> <div class="options-list"> <div class="option-item" ng-repeat="item in selectedOptions | orderBy:\'label\' track by $index"> <span>{{item.label}}</span> <a href="#" ng-click="deselectOption(item)" class="btn-link secondary item-action remove-btn" gdb-tooltip="{{labels.deselectTooltip | translate}}" tooltip-placement="top"> <span class="fa fa-minus-circle"></span> </a> </div> </div> </div> </div> '}};
2
- //# sourceMappingURL=42129.02f0b477c276dceb732c.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"42129.02f0b477c276dceb732c.bundle.js","mappings":"uJAGA,QAFW,68D","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/shuttle-multiselect.css?v=3.1.1\" rel=\"stylesheet\"/> <div class=\"shuttle-multiselect\"> <div class=\"shuttle-panel available-options\"> <div class=\"shuttle-panel-header\"> <h5>{{labels.availableOptionsTitle | translate}}</h5> </div> <div class=\"shuttle-panel-toolbar toolbar-left\"> <input type=\"text\" class=\"form-control filter-selected\" placeholder=\"{{labels.availableOptionsFilter | translate}}\" ng-model=\"searchLeft\"> <a href=\"#\" ng-click=\"selectAll()\" class=\"btn-link secondary add-all-btn\" gdb-tooltip=\"{{labels.selectAllTooltip | translate}}\" tooltip-placement=\"top\">{{labels.selectAllLabel | translate}}</a> </div> <div class=\"options-list\"> <div class=\"option-item\" ng-repeat=\"item in availableOptions | searchFilter:searchLeft | orderBy:'label' track by \\$index\"> <span>{{item.label}}</span> <a href=\"#\" ng-click=\"selectOption(item)\" class=\"btn-link secondary item-action add-btn\" gdb-tooltip=\"{{labels.selectTooltip | translate}}\" tooltip-placement=\"top\"> <span class=\"fa fa-plus-circle\"></span> </a> </div> </div> </div> <div class=\"shuttle-panel selected-options\"> <div class=\"shuttle-panel-header\"> <h5>{{labels.selectedOptionsTitle | translate}}</h5> </div> <div class=\"shuttle-panel-toolbar toolbar-right\"> <div ng-if=\"selectedOptions.length\" class=\"selected-items-message\"> {{labels.selectedOptionsCount | translate:{count: selectedOptions.length} }} </div> <a href=\"#\" ng-click=\"deselectAll()\" class=\"btn-link secondary remove-all-btn\" gdb-tooltip=\"{{labels.deselectAllTooltip | translate}}\" tooltip-placement=\"top\">{{labels.deselectAllLabel | translate}}</a> </div> <div class=\"options-list\"> <div class=\"option-item\" ng-repeat=\"item in selectedOptions | orderBy:'label' track by \\$index\"> <span>{{item.label}}</span> <a href=\"#\" ng-click=\"deselectOption(item)\" class=\"btn-link secondary item-action remove-btn\" gdb-tooltip=\"{{labels.deselectTooltip | translate}}\" tooltip-placement=\"top\"> <span class=\"fa fa-minus-circle\"></span> </a> </div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=44444;export const __webpack_ids__=[44444];export const __webpack_modules__={44444:(t,e,a)=>{a.r(e),a.d(e,{default:()=>s});const s='<link href="css/ttyg/no-agents-view.css?v=3.1.1" rel="stylesheet"/> <div class="no-agents-view-component" data-test="no-agents-view-component"> <div class="content"> <div class="alert alert-help mb-3" data-test="ttyg-info-message" ng-bind-html="\'ttyg.agent.messages.help_1\' | translate | trustAsHtml"></div> <div class="alert alert-help mb-3" data-test="ttyg-agent-message" ng-bind-html="\'ttyg.agent.messages.help_2\' | translate | trustAsHtml"></div> <div class="actions"> <button class="btn btn-outline-primary btn-lg text-xs-left create-agent-btn" gdb-tooltip="{{!canModifyAgent ? (\'ttyg.agent.fat_btn.create_agent.tooltip_disabled\' | translate) : \'\'}}" ng-disabled="!canModifyAgent" ng-click="onCreateAgent()" guide-selector="create-agent-btn"> <i class="fa fa-message-bot fa-xl"></i> <span class="text">{{\'ttyg.agent.fat_btn.create_agent.label\' | translate}}</span> </button> </div> <div class="alert alert-warning mt-3" data-test="ttyg-api-key-message"> <div ng-bind-html="\'ttyg.agent.messages.help_config\' | translate: {talkToGraphDocumentationLink: talkToGraphDocumentationLink} | trustAsHtml"></div> </div> </div> </div> '}};
2
- //# sourceMappingURL=44444.57b74adca89db793b77c.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"44444.57b74adca89db793b77c.bundle.js","mappings":"uJAGA,QAFW,unC","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/no-agents-view.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/no-agents-view.css?v=3.1.1\" rel=\"stylesheet\"/> <div class=\"no-agents-view-component\" data-test=\"no-agents-view-component\"> <div class=\"content\"> <div class=\"alert alert-help mb-3\" data-test=\"ttyg-info-message\" ng-bind-html=\"'ttyg.agent.messages.help_1' | translate | trustAsHtml\"></div> <div class=\"alert alert-help mb-3\" data-test=\"ttyg-agent-message\" ng-bind-html=\"'ttyg.agent.messages.help_2' | translate | trustAsHtml\"></div> <div class=\"actions\"> <button class=\"btn btn-outline-primary btn-lg text-xs-left create-agent-btn\" gdb-tooltip=\"{{!canModifyAgent ? ('ttyg.agent.fat_btn.create_agent.tooltip_disabled' | translate) : ''}}\" ng-disabled=\"!canModifyAgent\" ng-click=\"onCreateAgent()\" guide-selector=\"create-agent-btn\"> <i class=\"fa fa-message-bot fa-xl\"></i> <span class=\"text\">{{'ttyg.agent.fat_btn.create_agent.label' | translate}}</span> </button> </div> <div class=\"alert alert-warning mt-3\" data-test=\"ttyg-api-key-message\"> <div ng-bind-html=\"'ttyg.agent.messages.help_config' | translate: {talkToGraphDocumentationLink: talkToGraphDocumentationLink} | trustAsHtml\"></div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=44874;export const __webpack_ids__=[44874,49539,71920];export const __webpack_modules__={44874:(e,t,n)=>{n.r(t);var a=n(38940),E=n(71920);function A(e,t,n,A){return{restrict:"E",templateUrl:"js/angular/ttyg/templates/agent-select-menu.html",scope:{},link:n=>{n.agentOptionsList=[],n.selectedAgent=void 0,n.onAgentSelected=(a,o)=>{if(!o.isCompatible)return a.stopPropagation(),void a.preventDefault();if(_(o),n.selectedAgent=o,e.selectAgent(o),o.isRepositoryDeleted){const n=t.instant("ttyg.agent.agent_select_menu.configure_agent_modal.title"),a=t.instant("ttyg.agent.agent_select_menu.configure_agent_modal.body");A.openConfirmation(n,a,()=>e.emit(E.TTYGEventName.EDIT_AGENT,o))}};const _=e=>{n.agentOptionsList.forEach(t=>{t.selected=t.data.agent===e})},o=[];o.push(e.onAgentsListChanged(e=>{var t;t=e,n.agentOptionsList=t.agents.map(e=>new a.SelectMenuOptionsModel({value:e.id,label:e.name,data:{agent:e}}))})),o.push(e.subscribe(E.TTYGEventName.AGENT_DELETED,t=>{n.selectedAgent&&n.selectedAgent.id===t.id&&(n.selectedAgent.isDeleted=!0,e.selectAgent(n.selectedAgent))})),o.push(e.onSelectedAgentChanged(e=>{_(e),n.selectedAgent=e})),n.$on("$destroy",()=>{o.forEach(e=>e())})}}}angular.module("graphdb.framework.ttyg.directives.agent-select-menu",[]).directive("agentSelectMenu",A),A.$inject=["TTYGContextService","$translate","$sce","ModalService"]},71920:(e,t,n)=>{n.r(t),n.d(t,{TTYGEventName:()=>A});var a=n(98980);function E(e){let t,n,E,_,o,T={},i=!1;const s=()=>(0,a.cloneDeep)(t),c=()=>(0,a.cloneDeep)(n),C=e=>{n=(0,a.cloneDeep)(e),p(A.CHAT_LIST_UPDATED,c())},d=()=>(0,a.cloneDeep)(E),l=()=>(0,a.cloneDeep)(_),g=()=>(0,a.cloneDeep)(T),D=e=>!!T[e],r=()=>i,p=(t,n)=>{e.emitSync(t,(0,a.cloneDeep)(n))},S=(t,n)=>e.subscribeSync(t,e=>n(e));return{resetContext:()=>{t=void 0,n=void 0,E=void 0,_=void 0,T={},o=void 0,i=!1},emit:p,subscribe:S,getChats:c,updateChats:C,addChat:e=>{n.appendChat(e),C(n)},replaceChat:(e,t)=>{n.replaceChat(e,t),C(n)},onChatsListChanged:e=>(n&&angular.isFunction(e)&&e(c()),S(A.CHAT_LIST_UPDATED,t=>e(t))),getSelectedChat:d,selectChat:e=>{E&&E.id===e.id||(E=(0,a.cloneDeep)(e),p(A.SELECT_CHAT,d()))},deselectChat:()=>{E=void 0,p(A.SELECT_CHAT,d())},deleteChat:e=>{n.deleteChat(e),C(n)},onSelectedChatChanged:e=>(angular.isFunction(e)&&e(d()),S(A.SELECT_CHAT,t=>e(t))),updateSelectedChat:e=>{E&&E.id&&e&&E.id!==e.id||(E=(0,a.cloneDeep)(e),p(A.SELECTED_CHAT_UPDATED,d()))},onSelectedChatUpdated:e=>(E&&angular.isFunction(e)&&e(d()),S(A.SELECTED_CHAT_UPDATED,t=>e(t))),onLastMessageReceived:e=>(E&&angular.isFunction(e)&&e(d()),S(A.LAST_MESSAGE_RECEIVED,t=>e(t))),updateAgents:e=>{t=(0,a.cloneDeep)(e),p(A.AGENT_LIST_UPDATED,s())},onAgentsListChanged:e=>(t&&angular.isFunction(e)&&e(s()),S(A.AGENT_LIST_UPDATED,t=>e(t))),getAgents:s,getAgent:e=>{if(t)return(0,a.cloneDeep)(t.getAgent(e))},selectAgent:e=>{_=(0,a.cloneDeep)(e),p(A.AGENT_SELECTED,l())},getSelectedAgent:l,onSelectedAgentChanged:e=>(_&&angular.isFunction(e)&&e(l()),S(A.AGENT_SELECTED,t=>e(t))),getDefaultAgent:()=>(0,a.cloneDeep)(o),setDefaultAgent:e=>{o=e},setCanModifyAgent:e=>{i=(0,a.cloneDeep)(e),p(A.CAN_MODIFY_AGENT_UPDATED,r())},getCanModifyAgent:r,onCanUpdateAgentUpdated:e=>(angular.isFunction(e)&&e(r()),S(A.CAN_MODIFY_AGENT_UPDATED,t=>e(t))),hasExplainResponse:D,toggleExplainResponse:e=>{D(e)&&(T[e].expanded=!T[e].expanded,p(A.EXPLAIN_RESPONSE_CACHE_UPDATED,g()))},getExplainResponse:e=>(0,a.cloneDeep)(T[e]),addExplainResponseCache:e=>{T[e.answerId]=(0,a.cloneDeep)(e),p(A.EXPLAIN_RESPONSE_CACHE_UPDATED,g())},onExplainResponseCacheUpdated:e=>(angular.isFunction(e)&&e(g()),S(A.EXPLAIN_RESPONSE_CACHE_UPDATED,t=>e(t)))}}angular.module("graphdb.framework.ttyg.services.ttygcontext",[]).factory("TTYGContextService",E),E.$inject=["EventEmitterService","TTYGService"];const A={CREATE_CHAT:"createChat",CREATE_CHAT_SUCCESSFUL:"chatCreated",CREATE_CHAT_FAILURE:"chatCreationFailed",RENAME_CHAT:"renameChat",RENAME_CHAT_SUCCESSFUL:"chatRenamed",RENAME_CHAT_FAILURE:"chatRenamedFailure",SELECT_CHAT:"selectChat",SELECTED_CHAT_UPDATED:"selectChatUpdated",LAST_MESSAGE_RECEIVED:"lastMessageReceived",DELETING_CHAT:"deletingChat",DELETE_CHAT:"deleteChat",DELETE_CHAT_SUCCESSFUL:"chatDeleted",DELETE_CHAT_FAILURE:"chatDeletedFailure",CHAT_EXPORT:"chatExport",CHAT_EXPORT_SUCCESSFUL:"chatExportSuccess",CHAT_EXPORT_FAILURE:"chatExportFailure",CHAT_LIST_UPDATED:"chatListUpdated",ASK_QUESTION:"askQuestion",ASK_QUESTION_FAILURE:"askQuestionFailure",CONTINUE_CHAT_RUN:"continueChatRun",LOAD_CHATS:"loadChats",LOAD_CHAT_SUCCESSFUL:"loadChatSuccess",LOAD_CHAT_FAILURE:"loadChatFailure",AGENT_LIST_UPDATED:"agentListUpdated",OPEN_AGENT_SETTINGS:"openAgentSettings",EDIT_AGENT:"editAgent",CLONE_AGENT:"cloneAgent",DELETE_AGENT:"deleteAgent",AGENT_DELETED:"agentDeleted",DELETING_AGENT:"deletingAgent",AGENT_SELECTED:"agentSelected",GO_TO_CREATE_SIMILARITY_VIEW:"goToCreateSimilarityView",GO_TO_CONNECTORS_VIEW:"goToConnectorsView",GO_TO_AUTOCOMPLETE_INDEX_VIEW:"goToAutocompleteIndexView",EXPLAIN_RESPONSE:"explainResponse",EXPLAIN_RESPONSE_CACHE_UPDATED:"explainResponseCacheUpdated",GO_TO_SPARQL_EDITOR:"openQueryInSparqlEditor",CAN_MODIFY_AGENT_UPDATED:"canModifyAgentUpdated"}}};
2
- //# sourceMappingURL=44874.60bab9adf89019b35654.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"44874.60bab9adf89019b35654.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/directives/agent-select-menu.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/ttyg-context.service.js"],"sourcesContent":["import {SelectMenuOptionsModel} from \"../../models/form-fields\";\nimport {TTYGEventName} from \"../services/ttyg-context.service\";\n\nconst modules = [\n];\n\nangular\n .module('graphdb.framework.ttyg.directives.agent-select-menu', modules)\n .directive('agentSelectMenu', AgentSelectMenuComponent);\n\nAgentSelectMenuComponent.$inject = ['TTYGContextService', '$translate', '$sce', 'ModalService'];\n\nfunction AgentSelectMenuComponent(TTYGContextService, $translate, $sce, ModalService) {\n return {\n restrict: 'E',\n templateUrl: 'js/angular/ttyg/templates/agent-select-menu.html',\n scope: {\n },\n link: ($scope) => {\n\n // =========================\n // Public variables\n // =========================\n\n $scope.agentOptionsList = [];\n\n /**\n * Selected agent ID.\n * @type {AgentModel|undefined}\n */\n $scope.selectedAgent = undefined;\n\n // =========================\n // Private variables\n // =========================\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Handles the agent selection.\n * @param {Event} $event - The DOM event triggered by the selection.\n * @param {AgentModel} agent - The selected agent instance.\n */\n $scope.onAgentSelected = ($event, agent) => {\n if (!agent.isCompatible) {\n // Prevents the dropdown from closing if the selected agent is not compatible\n // by stopping event propagation and preventing the default action.\n $event.stopPropagation();\n $event.preventDefault();\n return;\n }\n markAsSelected(agent);\n $scope.selectedAgent = agent;\n TTYGContextService.selectAgent(agent);\n if (agent.isRepositoryDeleted) {\n const title = $translate.instant('ttyg.agent.agent_select_menu.configure_agent_modal.title');\n const confirmMessage = $translate.instant('ttyg.agent.agent_select_menu.configure_agent_modal.body');\n ModalService.openConfirmation(title, confirmMessage,\n () => TTYGContextService.emit(TTYGEventName.EDIT_AGENT, agent)\n );\n }\n };\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Marks the given agent as selected and deselects the rest.\n * @param {AgentModel} agent\n */\n const markAsSelected = (agent) => {\n $scope.agentOptionsList.forEach((agentOption) => {\n agentOption.selected = agentOption.data.agent === agent;\n });\n };\n\n /**\n * Handles the agent list change event.\n * @param {AgentListModel} agents\n */\n const onAgentListChanged = (agents) => {\n buildAgentOptionsModel(agents);\n };\n\n /**\n * Handles the agent deleted event.\n * @param {AgentModel} deletedAgent - the deleted agent\n */\n const onAgentDeleted = (deletedAgent) => {\n if ($scope.selectedAgent && $scope.selectedAgent.id === deletedAgent.id) {\n $scope.selectedAgent.isDeleted = true;\n TTYGContextService.selectAgent($scope.selectedAgent);\n }\n };\n\n /**\n * Handles the selection of an agent. When an agent is selected by the user from this menu, the agent is then\n * saved in the local storage. When the TTYG view is initialized, the selected agent is retrieved from the\n * local and its details loaded through the API. Then this component is updated to reflect the selected agent.\n * @param {AgentModel} agent\n */\n const onSelectedAgentChanged = (agent) => {\n markAsSelected(agent);\n $scope.selectedAgent = agent;\n };\n\n /**\n * Builds the agent options model which is used to display the agents in the select menu.\n * @param {AgentListModel} agentsListModel\n */\n const buildAgentOptionsModel = (agentsListModel) => {\n $scope.agentOptionsList = agentsListModel.agents.map((agent) => {\n return new SelectMenuOptionsModel({\n value: agent.id,\n label: agent.name,\n data: {\n agent: agent\n }\n });\n });\n };\n\n // =========================\n // Subscriptions\n // =========================\n\n const subscriptions = [];\n\n const removeAllSubscribers = () => {\n subscriptions.forEach((subscription) => subscription());\n };\n\n subscriptions.push(TTYGContextService.onAgentsListChanged(onAgentListChanged));\n subscriptions.push(TTYGContextService.subscribe(TTYGEventName.AGENT_DELETED, onAgentDeleted));\n subscriptions.push(TTYGContextService.onSelectedAgentChanged(onSelectedAgentChanged));\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllSubscribers);\n\n // =========================\n // Initialization\n // =========================\n\n function initialize() {\n // buildAgentOptionsModel();\n }\n initialize();\n }\n };\n}\n","import {cloneDeep} from 'lodash';\n\nangular\n .module('graphdb.framework.ttyg.services.ttygcontext', [])\n .factory('TTYGContextService', TTYGContextService);\n\nTTYGContextService.$inject = ['EventEmitterService', 'TTYGService'];\n\nfunction TTYGContextService(EventEmitterService) {\n\n /**\n * The list of agents.\n * @type {AgentListModel}\n * @private\n */\n let _agents = undefined;\n\n /**\n * The ChatsListModel.\n * @type {ChatsListModel}\n * @private\n */\n let _chats = undefined;\n\n /**\n * The currently selected in the UI chat which is used for conversation.\n * @type {ChatModel|undefined}\n * @private\n */\n let _selectedChat = undefined;\n\n /**\n * The currently selected in the UI agent which is used for conversation.\n * @type {AgentModel|undefined}\n * @private\n */\n let _selectedAgent = undefined;\n\n /**\n * Stores information about loaded explain responses.\n * The key is the answer ID, and the value is an instance of {@see ExplainResponseModel} that holds the explanation message.\n *\n * @type {{[key: string]: ExplainResponseModel}}\n */\n let _explainCache = {};\n\n /**\n * The default agent values.\n * @type {AgentModel|undefined}\n * @private\n */\n let _defaultAgent = undefined;\n\n let _canModifyAgent = false;\n\n const resetContext = () => {\n _agents = undefined;\n _chats = undefined;\n _selectedChat = undefined;\n _selectedAgent = undefined;\n _explainCache = {};\n _defaultAgent = undefined;\n _canModifyAgent = false;\n };\n\n /**\n * @return {Promise<AgentModel>}\n */\n const getDefaultAgent = () => {\n return cloneDeep(_defaultAgent);\n };\n\n const setDefaultAgent = (agent) => {\n _defaultAgent = agent;\n };\n\n /**\n * @return {AgentListModel}\n */\n const getAgents = () => {\n return cloneDeep(_agents);\n };\n\n const getAgent = (agentId) => {\n if (_agents) {\n return cloneDeep(_agents.getAgent(agentId));\n }\n };\n\n /**\n * @return {ChatsListModel}\n */\n const getChats = () => {\n return cloneDeep(_chats);\n };\n\n /**\n * @param {ChatsListModel} chats\n */\n const updateChats = (chats) => {\n _chats = cloneDeep(chats);\n emit(TTYGEventName.CHAT_LIST_UPDATED, getChats());\n };\n\n /**\n * Deletes the chat with the provided <code>chatId</code>.\n * @param {ChatModel} chat\n */\n const deleteChat = (chat) => {\n _chats.deleteChat(chat);\n updateChats(_chats);\n };\n\n const addChat = (newChat) => {\n _chats.appendChat(newChat);\n updateChats(_chats);\n };\n\n const replaceChat = (newChat, oldChat) => {\n _chats.replaceChat(newChat, oldChat);\n updateChats(_chats);\n };\n\n /** Subscribes to the 'chatListUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onChatsListChanged = (callback) => {\n if (_chats && angular.isFunction(callback)) {\n callback(getChats());\n }\n return subscribe(TTYGEventName.CHAT_LIST_UPDATED, (chats) => callback(chats));\n };\n\n /**\n * @return {ChatModel}\n */\n const getSelectedChat = () => {\n return cloneDeep(_selectedChat);\n };\n\n /**\n * Updates the selected chat with the provided <code>selectedChat</code> and emits the 'selectChat' event\n * to notify listeners that a new chat has been selected.\n *\n * @param {ChatModel} selectedChat - The chat object to select.\n */\n const selectChat = (selectedChat) => {\n if (!_selectedChat || _selectedChat.id !== selectedChat.id) {\n _selectedChat = cloneDeep(selectedChat);\n emit(TTYGEventName.SELECT_CHAT, getSelectedChat());\n }\n };\n\n const deselectChat = () => {\n _selectedChat = undefined;\n emit(TTYGEventName.SELECT_CHAT, getSelectedChat());\n };\n\n /**\n * Subscribes to the 'selectChat' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedChatChanged = (callback) => {\n if (angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.SELECT_CHAT, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * Updates the selected chat and emits the 'selectChatUpdated' event to notify listeners that a property\n * of the selected chat has changed.\n *\n * If the ID of the passed chat differs from the current selected chat, no action will occur.\n *\n * The selected chat can be updated through {@link TTYGContextService#selectChat}.\n *\n * @param {ChatModel} chat - The chat object that is being updated.\n */\n const updateSelectedChat = (chat) => {\n if (!_selectedChat || !_selectedChat.id || !chat || _selectedChat.id === chat.id) {\n _selectedChat = cloneDeep(chat);\n emit(TTYGEventName.SELECTED_CHAT_UPDATED, getSelectedChat());\n }\n };\n\n /** Subscribes to the 'selectChat' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedChatUpdated = (callback) => {\n if (_selectedChat && angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.SELECTED_CHAT_UPDATED, (selectedChat) => callback(selectedChat));\n };\n\n /** Subscribes to the 'lastMessageReceived' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onLastMessageReceived = (callback) => {\n if (_selectedChat && angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.LAST_MESSAGE_RECEIVED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * @param {AgentListModel} agents\n */\n const updateAgents = (agents) => {\n _agents = cloneDeep(agents);\n emit(TTYGEventName.AGENT_LIST_UPDATED, getAgents());\n };\n\n /**\n * Subscribes to the 'agentListUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onAgentsListChanged = (callback) => {\n if (_agents && angular.isFunction(callback)) {\n callback(getAgents());\n }\n return subscribe(TTYGEventName.AGENT_LIST_UPDATED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * @return {AgentModel}\n */\n const getSelectedAgent = () => {\n return cloneDeep(_selectedAgent);\n };\n\n /**\n * Updates the selected agent with the provided <code>selectedAgent</code> and emits the 'agentSelected' event\n * to notify listeners that a new agent has been selected.\n *\n * @param {AgentModel} selectedAgent - The instance of selected agent.\n */\n const selectAgent = (selectedAgent) => {\n _selectedAgent = cloneDeep(selectedAgent);\n emit(TTYGEventName.AGENT_SELECTED, getSelectedAgent());\n };\n\n const _getExplainResponseCache = () => {\n return cloneDeep(_explainCache);\n };\n\n /**\n * Gets the explain response.\n * @param {string} answerId\n * @return {ExplainResponseModel}\n */\n const getExplainResponse = (answerId) => {\n return cloneDeep(_explainCache[answerId]);\n };\n\n /**\n * Adds the <code>explainResponse</code> into the explain response cache.\n *\n * @param {ExplainResponseModel} explainResponse\n */\n const addExplainResponseCache = (explainResponse) => {\n _explainCache[explainResponse.answerId] = cloneDeep(explainResponse);\n emit(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, _getExplainResponseCache());\n };\n\n const hasExplainResponse = (answerId) => {\n return !!_explainCache[answerId];\n };\n\n const toggleExplainResponse = (answerId) => {\n if (hasExplainResponse(answerId)) {\n _explainCache[answerId].expanded = !_explainCache[answerId].expanded;\n emit(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, _getExplainResponseCache());\n }\n };\n\n /**\n * Subscribes to the 'explainResponseCacheUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onExplainResponseCacheUpdated = (callback) => {\n if (angular.isFunction(callback)) {\n callback(_getExplainResponseCache());\n }\n return subscribe(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, (explainResponses) => callback(explainResponses));\n };\n\n /**\n * Subscribes to the 'agentSelected' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedAgentChanged = (callback) => {\n if (_selectedAgent && angular.isFunction(callback)) {\n callback(getSelectedAgent());\n }\n return subscribe(TTYGEventName.AGENT_SELECTED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * Updates the \"canModifyAgent\" flag and emits the 'canModifyAgentUpdated' event to notify listeners that the canModifyAgent flag is changed.\n *\n * @param {boolean} canModifyAgent\n */\n const setCanModifyAgent = (canModifyAgent) => {\n _canModifyAgent = cloneDeep(canModifyAgent);\n emit(TTYGEventName.CAN_MODIFY_AGENT_UPDATED, getCanModifyAgent());\n };\n\n const getCanModifyAgent = () => {\n return _canModifyAgent;\n };\n\n /**\n * Subscribes to the 'canModifyAgentUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onCanUpdateAgentUpdated = (callback) => {\n if (angular.isFunction(callback)) {\n callback(getCanModifyAgent());\n }\n return subscribe(TTYGEventName.CAN_MODIFY_AGENT_UPDATED, (canModifyAgent) => callback(canModifyAgent));\n };\n\n /**\n * Emits an event with a deep-cloned payload using the EventEmitterService.\n *\n * @param {string} tTYGEventName - The name of the event to emit. It must be a value from {@link TTYGEventName}.\n * @param {*} payload - The data to emit with the event. The payload is deep-cloned before emission.\n */\n const emit = (tTYGEventName, payload) => {\n EventEmitterService.emitSync(tTYGEventName, cloneDeep(payload));\n };\n\n /**\n * Subscribes to an event with the specified callback using the EventEmitterService.\n *\n * @param {string} tTYGEventName - The name of the event to subscribe to. It must be a value from {@link TTYGEventName}.\n * @param {function} callback - The function to call when the event is emitted.\n * @return {function} - Returns a function that can be called to unsubscribe from the event.\n */\n const subscribe = (tTYGEventName, callback) => {\n return EventEmitterService.subscribeSync(tTYGEventName, (payload) => callback(payload));\n };\n\n return {\n resetContext,\n emit,\n subscribe,\n // chats\n getChats,\n updateChats,\n addChat,\n replaceChat,\n onChatsListChanged,\n getSelectedChat,\n selectChat,\n deselectChat,\n deleteChat,\n onSelectedChatChanged,\n updateSelectedChat,\n onSelectedChatUpdated,\n onLastMessageReceived,\n // agents\n updateAgents,\n onAgentsListChanged,\n getAgents,\n getAgent,\n selectAgent,\n getSelectedAgent,\n onSelectedAgentChanged,\n getDefaultAgent,\n setDefaultAgent,\n setCanModifyAgent,\n getCanModifyAgent,\n onCanUpdateAgentUpdated,\n // chat explain\n hasExplainResponse,\n toggleExplainResponse,\n getExplainResponse,\n addExplainResponseCache,\n onExplainResponseCacheUpdated\n };\n}\n\nexport const TTYGEventName = {\n /**\n * Emitting the \"createChat\" event triggers a backend request to create a new chat.\n */\n CREATE_CHAT: 'createChat',\n\n /**\n * This event is emitted when a chat is successfully created.\n */\n CREATE_CHAT_SUCCESSFUL: 'chatCreated',\n\n /**\n * This event is emitted when the creation of a chat fails.\n */\n CREATE_CHAT_FAILURE: 'chatCreationFailed',\n\n RENAME_CHAT: 'renameChat',\n RENAME_CHAT_SUCCESSFUL: 'chatRenamed',\n RENAME_CHAT_FAILURE: 'chatRenamedFailure',\n\n /**\n * Emitting the \"selectChat\" event when the selected chat has been changed.\n */\n SELECT_CHAT: 'selectChat',\n\n /**\n * Emitting the \"selectChatUpdated\" event when the selected chat has been updated.\n */\n SELECTED_CHAT_UPDATED: 'selectChatUpdated',\n\n /**\n * Emitting the \"lastMessageReceived\" event when the final answer message has been received.\n */\n LAST_MESSAGE_RECEIVED: 'lastMessageReceived',\n\n /**\n * This event will be emitted when the chat delete request is in progress. The payload will contain the chat ID\n * and a boolean indicating if the deletion is in progress.\n */\n DELETING_CHAT: 'deletingChat',\n\n /**\n * This event will be emitted when the delete chat process is triggered but before the chat delete request is sent.\n */\n DELETE_CHAT: 'deleteChat',\n\n /**\n * This event will be emitted when the chat was successfully deleted.\n */\n DELETE_CHAT_SUCCESSFUL: 'chatDeleted',\n\n /**\n * This event will be emitted when the attempt to answer the question fails.\n */\n\n /**\n * This event is emitted when the deletion of a chat fails.\n */\n DELETE_CHAT_FAILURE: 'chatDeletedFailure',\n\n CHAT_EXPORT: 'chatExport',\n CHAT_EXPORT_SUCCESSFUL: 'chatExportSuccess',\n CHAT_EXPORT_FAILURE: 'chatExportFailure',\n CHAT_LIST_UPDATED: 'chatListUpdated',\n\n /**\n * Emitting the \"askQuestion\" event triggers a request to the backend to retrieve an answer to a question.\n */\n ASK_QUESTION: 'askQuestion',\n\n /**\n * This event will be emitted when the attempt to answer the question fails.\n */\n ASK_QUESTION_FAILURE: 'askQuestionFailure',\n\n /**\n * Emitting the \"continueChatRun\" event triggers a request to the backend to retrieve more remaining answers from the same chat run.\n */\n CONTINUE_CHAT_RUN: 'continueChatRun',\n\n /**\n * Emitting the \"loadChats\" event will trigger an action to loads all chats from backend server.\n */\n LOAD_CHATS: 'loadChats',\n LOAD_CHAT_SUCCESSFUL: 'loadChatSuccess',\n LOAD_CHAT_FAILURE: 'loadChatFailure',\n\n AGENT_LIST_UPDATED: 'agentListUpdated',\n\n /**\n * This event will be emitted when the create agent process is triggered through the UI but before the agent create\n * request is sent. This is used to open the agent settings dialog.\n */\n OPEN_AGENT_SETTINGS: 'openAgentSettings',\n\n /**\n * This event will be emitted when an agent needs to be edited.\n */\n EDIT_AGENT: 'editAgent',\n\n /**\n * This event will be emitted when an agent needs to be cloned.\n */\n CLONE_AGENT: 'cloneAgent',\n\n /**\n * This event will be emitted when the delete agent process is triggered but before the agent delete request is sent.\n */\n DELETE_AGENT: 'deleteAgent',\n\n /**\n * This event will be emitted when the agent was successfully deleted.\n */\n AGENT_DELETED: 'agentDeleted',\n\n /**\n * This event will be emitted when the agent delete request is in progress. The payload will contain the agent ID\n * and a boolean indicating if the deletion is in progress.\n */\n DELETING_AGENT: 'deletingAgent',\n\n /**\n * This event will be emitted when an agent is selected by the user through the UI.\n */\n AGENT_SELECTED: 'agentSelected',\n\n /**\n * This event will trigger the opening of the similarity view.\n */\n GO_TO_CREATE_SIMILARITY_VIEW: \"goToCreateSimilarityView\",\n\n /**\n * This event will trigger the opening of the connectors view.\n */\n GO_TO_CONNECTORS_VIEW: \"goToConnectorsView\",\n\n /**\n * This event will trigger the opening of the \"Autocomplete index\" view.\n */\n GO_TO_AUTOCOMPLETE_INDEX_VIEW: \"goToAutocompleteIndexView\",\n\n /**\n * This event will trigger fetching a new explanation of how the answer was generated.\n */\n EXPLAIN_RESPONSE: \"explainResponse\",\n\n /**\n * This event will be emitted when the cache with explain responses changed.\n */\n EXPLAIN_RESPONSE_CACHE_UPDATED: \"explainResponseCacheUpdated\",\n\n /**\n * This event will trigger the opening of the sparql view.\n */\n GO_TO_SPARQL_EDITOR: \"openQueryInSparqlEditor\",\n\n CAN_MODIFY_AGENT_UPDATED: \"canModifyAgentUpdated\",\n};\n"],"names":["AgentSelectMenuComponent","TTYGContextService","$translate","$sce","ModalService","restrict","templateUrl","scope","link","$scope","agentOptionsList","selectedAgent","undefined","onAgentSelected","$event","agent","isCompatible","stopPropagation","preventDefault","markAsSelected","selectAgent","isRepositoryDeleted","title","instant","confirmMessage","openConfirmation","emit","TTYGEventName","EDIT_AGENT","forEach","agentOption","selected","data","subscriptions","push","onAgentsListChanged","agents","agentsListModel","map","SelectMenuOptionsModel","value","id","label","name","subscribe","AGENT_DELETED","deletedAgent","isDeleted","onSelectedAgentChanged","$on","removeAllSubscribers","subscription","angular","module","directive","$inject","EventEmitterService","_agents","_chats","_selectedChat","_selectedAgent","_defaultAgent","_explainCache","_canModifyAgent","getAgents","cloneDeep","getChats","updateChats","chats","CHAT_LIST_UPDATED","getSelectedChat","getSelectedAgent","_getExplainResponseCache","hasExplainResponse","answerId","getCanModifyAgent","tTYGEventName","payload","emitSync","callback","subscribeSync","resetContext","addChat","newChat","appendChat","replaceChat","oldChat","onChatsListChanged","isFunction","selectChat","selectedChat","SELECT_CHAT","deselectChat","deleteChat","chat","onSelectedChatChanged","updateSelectedChat","SELECTED_CHAT_UPDATED","onSelectedChatUpdated","onLastMessageReceived","LAST_MESSAGE_RECEIVED","updateAgents","AGENT_LIST_UPDATED","getAgent","agentId","AGENT_SELECTED","getDefaultAgent","setDefaultAgent","setCanModifyAgent","canModifyAgent","CAN_MODIFY_AGENT_UPDATED","onCanUpdateAgentUpdated","toggleExplainResponse","expanded","EXPLAIN_RESPONSE_CACHE_UPDATED","getExplainResponse","addExplainResponseCache","explainResponse","onExplainResponseCacheUpdated","explainResponses","factory","CREATE_CHAT","CREATE_CHAT_SUCCESSFUL","CREATE_CHAT_FAILURE","RENAME_CHAT","RENAME_CHAT_SUCCESSFUL","RENAME_CHAT_FAILURE","DELETING_CHAT","DELETE_CHAT","DELETE_CHAT_SUCCESSFUL","DELETE_CHAT_FAILURE","CHAT_EXPORT","CHAT_EXPORT_SUCCESSFUL","CHAT_EXPORT_FAILURE","ASK_QUESTION","ASK_QUESTION_FAILURE","CONTINUE_CHAT_RUN","LOAD_CHATS","LOAD_CHAT_SUCCESSFUL","LOAD_CHAT_FAILURE","OPEN_AGENT_SETTINGS","CLONE_AGENT","DELETE_AGENT","DELETING_AGENT","GO_TO_CREATE_SIMILARITY_VIEW","GO_TO_CONNECTORS_VIEW","GO_TO_AUTOCOMPLETE_INDEX_VIEW","EXPLAIN_RESPONSE","GO_TO_SPARQL_EDITOR"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=45758;export const __webpack_ids__=[45758];export const __webpack_modules__={45758:(e,t,n)=>{n.r(t),n.d(t,{translate_label:()=>r});var a=n(87848),s=n(77050);n(57154);const r=class{constructor(e){(0,a.r)(this,e),this.translationParameters=[]}connectedCallback(){this.unsubscribeTranslationChanged=s.T.onTranslate(this.labelKey,this.translationParameters,e=>this.translatedLabel=e)}disconnectedCallback(){this.unsubscribeTranslationChanged&&this.unsubscribeTranslationChanged()}render(){return(0,a.h)(a.a,{key:"379e2bf98a702473ef9753bde148d608f2b27509"},this.translatedLabel)}};r.style=":host{display:inline}"},77050:(e,t,n)=>{n.d(t,{T:()=>i,s:()=>s});var a=n(57154);function s(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}class r{constructor(){this.languageContextService=a.ServiceProvider.get(a.LanguageContextService),this.translationChangedObservers={},this.defaultBundle=this.languageContextService.getDefaultBundle(),this.subscribeToBundleChange()}onTranslate(e,t=[],n=()=>{}){this.translationChangedObservers[e]=this.translationChangedObservers[e]||[];const a={parameters:t,callback:n};return this.translationChangedObservers[e].push(a),n(this.translate(e,t)),()=>{const t=this.translationChangedObservers[e].indexOf(a);-1!==t&&this.translationChangedObservers[e].splice(t,1)}}translate(e,t){return this.translateInLocale(e,t)}translateInLocale(e,t){let n=this.translateFromBundle(this.currentBundle,e);return n||(n=this.translateFromBundle(this.defaultBundle,e)),n?(n=this.applyParameters(n,t),s(n)):(console.warn(`Missing translation for key: [${e}]`),e)}translateFromBundle(e,t){if(!e)return;let n=e[t];return"string"!=typeof n&&(n=this.translateAsJsonObject(e,t)),n}translateAsJsonObject(e,t){let n=t.split(".");return this.getTranslation(e,n)}getTranslation(e,t){if(!t||!e)return;const n=e[t.splice(0,1)[0]];return 0===t.length?n:"string"!=typeof n?t.length>0?this.getTranslation(n,t):n:void 0}applyParameters(e,t){return t?t.reduce((e,t)=>r.replaceAll(e,t),e):e}static replaceAll(e,t){return t?e.split(`{{${t.key}}}`).join(t.value):e}notifyTranslationsChanged(){Object.keys(this.translationChangedObservers).forEach(e=>{(this.translationChangedObservers[e]||[]).forEach(t=>t.callback(this.translate(e,t.parameters)))})}subscribeToBundleChange(){this.languageChangeSubscription=this.languageContextService.onLanguageBundleChanged(e=>{e&&(this.currentBundle=e,this.notifyTranslationsChanged())})}destroy(){this.languageChangeSubscription&&this.languageChangeSubscription()}}const i=new r}};
2
- //# sourceMappingURL=45758.4e363b98020c3460b4ff.bundle.js.map