graphdb-workbench 3.3.2 → 3.3.3-RC1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/{10759.b2e1d643d681ebd9c124.bundle.js → 10759.57059f90014058a86952.bundle.js} +2 -2
  2. package/dist/10759.57059f90014058a86952.bundle.js.map +1 -0
  3. package/dist/{13231.d7107e7549453805e13a.bundle.js → 13231.8bbbe30c10e6c0dfdba3.bundle.js} +2 -2
  4. package/dist/13231.8bbbe30c10e6c0dfdba3.bundle.js.map +1 -0
  5. package/dist/{18961.01ff5fcc0f4b9f99236e.bundle.js → 18961.732c0c355509452ac6da.bundle.js} +2 -2
  6. package/dist/18961.732c0c355509452ac6da.bundle.js.map +1 -0
  7. package/dist/{20694.4becb7771236462dcc5a.bundle.js → 20694.03b5abf23347ae0bad65.bundle.js} +2 -2
  8. package/dist/{20694.4becb7771236462dcc5a.bundle.js.map → 20694.03b5abf23347ae0bad65.bundle.js.map} +1 -1
  9. package/dist/21015.6db2b66597f78d4b83cc.bundle.js +2 -0
  10. package/dist/21015.6db2b66597f78d4b83cc.bundle.js.map +1 -0
  11. package/dist/2975.c5ebc3e3ad52df3ab907.bundle.js +2 -0
  12. package/dist/2975.c5ebc3e3ad52df3ab907.bundle.js.map +1 -0
  13. package/dist/38644.8585127c40697ea58e00.bundle.js +2 -0
  14. package/dist/38644.8585127c40697ea58e00.bundle.js.map +1 -0
  15. package/dist/39518.0acc5eb68f38cc6b62a5.bundle.js +2 -0
  16. package/dist/{39518.4d72b74fffba395c6b2a.bundle.js.map → 39518.0acc5eb68f38cc6b62a5.bundle.js.map} +1 -1
  17. package/dist/{39874.710e94f211579215f997.bundle.js → 39874.17dde6245fc4cc91bb58.bundle.js} +2 -2
  18. package/dist/39874.17dde6245fc4cc91bb58.bundle.js.map +1 -0
  19. package/dist/{45758.1212136a37dd4f7528f8.bundle.js → 45758.b9ce5fe0ed6c8c4fc141.bundle.js} +2 -2
  20. package/dist/45758.b9ce5fe0ed6c8c4fc141.bundle.js.map +1 -0
  21. package/dist/{60560.6ba1b091a34af6c00770.bundle.js → 60560.62ed0cb0b3d07fecbf28.bundle.js} +2 -2
  22. package/dist/60560.62ed0cb0b3d07fecbf28.bundle.js.map +1 -0
  23. package/dist/{60730.35493812d428872eddb6.bundle.js → 60730.a9fc5342637039776562.bundle.js} +2 -2
  24. package/dist/60730.a9fc5342637039776562.bundle.js.map +1 -0
  25. package/dist/{64118.b06aebc9f8d7e822244f.bundle.js → 64118.177457589341de779668.bundle.js} +2 -2
  26. package/dist/64118.177457589341de779668.bundle.js.map +1 -0
  27. package/dist/67888.0f7d008c6f62683e2c62.bundle.js +2 -0
  28. package/dist/67888.0f7d008c6f62683e2c62.bundle.js.map +1 -0
  29. package/dist/71099.ba1073458b96d9789756.bundle.js +2 -0
  30. package/dist/71099.ba1073458b96d9789756.bundle.js.map +1 -0
  31. package/dist/75881.148ce498d06784abfd6c.bundle.js +2 -0
  32. package/dist/75881.148ce498d06784abfd6c.bundle.js.map +1 -0
  33. package/dist/78070.d54ede951a08e1c8689d.bundle.js +2 -0
  34. package/dist/78070.d54ede951a08e1c8689d.bundle.js.map +1 -0
  35. package/dist/{7815.2aec5ebbcd434f5582ff.bundle.js → 7815.89cc59b6625e84913351.bundle.js} +2 -2
  36. package/dist/7815.89cc59b6625e84913351.bundle.js.map +1 -0
  37. package/dist/{78681.9e1d4e064e9e1fb5fb21.bundle.js → 78681.6c8614aad7e5465be505.bundle.js} +2 -2
  38. package/dist/78681.6c8614aad7e5465be505.bundle.js.map +1 -0
  39. package/dist/{82206.229877d7931849236456.bundle.js → 82206.473f6d4f79e12f6a9da6.bundle.js} +2 -2
  40. package/dist/82206.473f6d4f79e12f6a9da6.bundle.js.map +1 -0
  41. package/dist/{82926.ce1d6bf65b09288a2b10.bundle.js → 82926.7d300bdaae879f385185.bundle.js} +2 -2
  42. package/dist/{82926.ce1d6bf65b09288a2b10.bundle.js.map → 82926.7d300bdaae879f385185.bundle.js.map} +1 -1
  43. package/dist/{94229.47dbdba202106c61dff1.bundle.js → 94229.5a853fae006f6ef633af.bundle.js} +2 -2
  44. package/dist/94229.5a853fae006f6ef633af.bundle.js.map +1 -0
  45. package/dist/95953.1350a9dc14b22372b4e2.bundle.js +2 -0
  46. package/dist/95953.1350a9dc14b22372b4e2.bundle.js.map +1 -0
  47. package/dist/98268.a1bd17e40ede031a0a00.bundle.js +2 -0
  48. package/dist/98268.a1bd17e40ede031a0a00.bundle.js.map +1 -0
  49. package/dist/99448.147164e93b1ab3a87d36.bundle.js +2 -0
  50. package/dist/99448.147164e93b1ab3a87d36.bundle.js.map +1 -0
  51. package/dist/index.html +9 -9
  52. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  53. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  54. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  55. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  56. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  57. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  58. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +2 -2
  59. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  60. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  61. package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
  62. package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
  63. package/dist/js/angular/core/templates/search-resource-input.html +1 -1
  64. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
  65. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  66. package/dist/js/angular/graphql/templates/graphql-playground.html +2 -2
  67. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  68. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  69. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  70. package/dist/js/angular/security/templates/user.html +2 -2
  71. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  72. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  73. package/dist/js/angular/ttyg/templates/chat-item-detail.html +3 -2
  74. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  75. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  76. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  77. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +3 -3
  78. package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
  79. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  80. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  81. package/dist/legacyWorkbench.f1ed8e359786e8adeab2.js +3 -0
  82. package/dist/{legacyWorkbench.40eba9e09196e1483221.js.map → legacyWorkbench.f1ed8e359786e8adeab2.js.map} +1 -1
  83. package/dist/main.a67c284710a8b9a98ca2.js +3 -0
  84. package/dist/main.a67c284710a8b9a98ca2.js.map +1 -0
  85. package/dist/pages/aclmanagement.html +1 -1
  86. package/dist/pages/autocomplete.html +1 -1
  87. package/dist/pages/choose-repository-type.html +1 -1
  88. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  89. package/dist/pages/create-index.html +1 -1
  90. package/dist/pages/dependencies.html +1 -1
  91. package/dist/pages/domainRangeInfo.html +2 -2
  92. package/dist/pages/edit.html +1 -1
  93. package/dist/pages/explore.html +1 -1
  94. package/dist/pages/export.html +1 -1
  95. package/dist/pages/find.html +1 -1
  96. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  97. package/dist/pages/graphs-visualizations.html +7 -7
  98. package/dist/pages/guides.html +1 -1
  99. package/dist/pages/home.html +1 -1
  100. package/dist/pages/import.html +2 -2
  101. package/dist/pages/jdbc-create.html +1 -1
  102. package/dist/pages/jdbc.html +1 -1
  103. package/dist/pages/monitor/backup-and-restore.html +1 -1
  104. package/dist/pages/monitor/queries.html +1 -1
  105. package/dist/pages/monitor/resources.html +1 -1
  106. package/dist/pages/namespaces.html +2 -2
  107. package/dist/pages/plugins.html +1 -1
  108. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  109. package/dist/pages/rdfrank.html +2 -2
  110. package/dist/pages/repositories.html +1 -1
  111. package/dist/pages/repository.html +1 -1
  112. package/dist/pages/similarity-indexes.html +1 -1
  113. package/dist/pages/sparql-editor.html +1 -1
  114. package/dist/pages/sparql-template-create.html +1 -1
  115. package/dist/pages/sparql-templates.html +1 -1
  116. package/dist/pages/ux-test1.html +2 -2
  117. package/dist/pages/webapi.html +4 -3
  118. package/dist/res/swagger5/index.html +11 -11
  119. package/dist/res/swagger5/swagger-initializer.js +1 -1
  120. package/dist/shared-components/cjs/index-CTK5NoJt.js +2 -0
  121. package/dist/shared-components/cjs/loader.cjs.js +1 -1
  122. package/dist/shared-components/cjs/onto-cookie-consent_2.cjs.entry.js +1 -1
  123. package/dist/shared-components/cjs/onto-dialog_2.cjs.entry.js +1 -1
  124. package/dist/shared-components/cjs/onto-dropdown.cjs.entry.js +1 -1
  125. package/dist/shared-components/cjs/onto-footer_5.cjs.entry.js +1 -1
  126. package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js +1 -1
  127. package/dist/shared-components/cjs/onto-layout.cjs.entry.js +1 -1
  128. package/dist/shared-components/cjs/onto-permission-banner.cjs.entry.js +1 -1
  129. package/dist/shared-components/cjs/onto-test-context.cjs.entry.js +1 -1
  130. package/dist/shared-components/cjs/onto-toastr.cjs.entry.js +1 -1
  131. package/dist/shared-components/cjs/shared-components.cjs.js +1 -1
  132. package/dist/shared-components/cjs/translate-label.cjs.entry.js +1 -1
  133. package/dist/shared-components/collection/collection-manifest.json +2 -2
  134. package/dist/shared-components/collection/components/dialogs/onto-dialog.js +1 -1
  135. package/dist/shared-components/collection/components/onto-dropdown/onto-dropdown.js +1 -1
  136. package/dist/shared-components/collection/components/onto-language-selector/onto-language-selector.js +1 -1
  137. package/dist/shared-components/collection/components/onto-license-alert/onto-license-alert.js +1 -1
  138. package/dist/shared-components/collection/components/onto-loader/onto-loader.js +1 -1
  139. package/dist/shared-components/collection/components/onto-navbar/onto-navbar.js +1 -1
  140. package/dist/shared-components/collection/components/onto-operations-notification/onto-operations-notification.js +1 -1
  141. package/dist/shared-components/collection/components/onto-repository-selector/onto-repository-selector.js +1 -1
  142. package/dist/shared-components/collection/components/onto-search-resource-input/onto-search-resource-input.js +1 -1
  143. package/dist/shared-components/collection/components/onto-test-context/onto-test-context.js +1 -1
  144. package/dist/shared-components/collection/components/onto-toggle-switch/onto-toggle-switch.js +1 -1
  145. package/dist/shared-components/collection/components/onto-user-menu/onto-user-menu.js +1 -1
  146. package/dist/shared-components/collection/components/translate-label/translate-label.js +1 -1
  147. package/dist/shared-components/esm/index-EiAqSNMq.js +2 -0
  148. package/dist/shared-components/esm/loader.js +1 -1
  149. package/dist/shared-components/esm/onto-cookie-consent_2.entry.js +1 -1
  150. package/dist/shared-components/esm/onto-dialog_2.entry.js +1 -1
  151. package/dist/shared-components/esm/onto-dropdown.entry.js +1 -1
  152. package/dist/shared-components/esm/onto-footer_5.entry.js +1 -1
  153. package/dist/shared-components/esm/onto-language-selector_9.entry.js +1 -1
  154. package/dist/shared-components/esm/onto-layout.entry.js +1 -1
  155. package/dist/shared-components/esm/onto-permission-banner.entry.js +1 -1
  156. package/dist/shared-components/esm/onto-test-context.entry.js +1 -1
  157. package/dist/shared-components/esm/onto-toastr.entry.js +1 -1
  158. package/dist/shared-components/esm/shared-components.js +1 -1
  159. package/dist/shared-components/esm/translate-label.entry.js +1 -1
  160. package/dist/shared-components/shared-components/{p-6d34b2cb.entry.js → p-1103d100.entry.js} +1 -1
  161. package/dist/shared-components/shared-components/{p-9b2c6e80.entry.js → p-2e2bb175.entry.js} +1 -1
  162. package/dist/shared-components/shared-components/{p-b754971e.entry.js → p-50735428.entry.js} +1 -1
  163. package/dist/shared-components/shared-components/{p-7e47d850.entry.js → p-59707503.entry.js} +1 -1
  164. package/dist/shared-components/shared-components/{p-598d33d7.entry.js → p-6a37f808.entry.js} +1 -1
  165. package/dist/shared-components/shared-components/{p-9214bb16.entry.js → p-6fb5eec5.entry.js} +1 -1
  166. package/dist/shared-components/shared-components/{p-c27fe716.entry.js → p-97930684.entry.js} +1 -1
  167. package/dist/shared-components/shared-components/p-EiAqSNMq.js +2 -0
  168. package/dist/shared-components/shared-components/{p-b5d4081d.entry.js → p-a5a49d87.entry.js} +1 -1
  169. package/dist/shared-components/shared-components/{p-74888633.entry.js → p-d134e207.entry.js} +1 -1
  170. package/dist/shared-components/shared-components/{p-5886e663.entry.js → p-ec2f4ea5.entry.js} +1 -1
  171. package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
  172. package/dist/shared-components/types/stencil-public-runtime.d.ts +10 -147
  173. package/package.json +1 -1
  174. package/dist/10759.b2e1d643d681ebd9c124.bundle.js.map +0 -1
  175. package/dist/13231.d7107e7549453805e13a.bundle.js.map +0 -1
  176. package/dist/18961.01ff5fcc0f4b9f99236e.bundle.js.map +0 -1
  177. package/dist/21015.ea34b563b4149ad0975e.bundle.js +0 -2
  178. package/dist/21015.ea34b563b4149ad0975e.bundle.js.map +0 -1
  179. package/dist/2975.8be1a79816fd811be223.bundle.js +0 -2
  180. package/dist/2975.8be1a79816fd811be223.bundle.js.map +0 -1
  181. package/dist/38644.0e8652c647a0f341abd7.bundle.js +0 -2
  182. package/dist/38644.0e8652c647a0f341abd7.bundle.js.map +0 -1
  183. package/dist/39518.4d72b74fffba395c6b2a.bundle.js +0 -2
  184. package/dist/39874.710e94f211579215f997.bundle.js.map +0 -1
  185. package/dist/45758.1212136a37dd4f7528f8.bundle.js.map +0 -1
  186. package/dist/60560.6ba1b091a34af6c00770.bundle.js.map +0 -1
  187. package/dist/60730.35493812d428872eddb6.bundle.js.map +0 -1
  188. package/dist/64118.b06aebc9f8d7e822244f.bundle.js.map +0 -1
  189. package/dist/67888.41803878170b6c7a5ca5.bundle.js +0 -2
  190. package/dist/67888.41803878170b6c7a5ca5.bundle.js.map +0 -1
  191. package/dist/71099.ca7720893604e9d908d6.bundle.js +0 -2
  192. package/dist/71099.ca7720893604e9d908d6.bundle.js.map +0 -1
  193. package/dist/75881.54dc716f79b6fe29232a.bundle.js +0 -2
  194. package/dist/75881.54dc716f79b6fe29232a.bundle.js.map +0 -1
  195. package/dist/78070.13538271878de6a98862.bundle.js +0 -2
  196. package/dist/78070.13538271878de6a98862.bundle.js.map +0 -1
  197. package/dist/7815.2aec5ebbcd434f5582ff.bundle.js.map +0 -1
  198. package/dist/78681.9e1d4e064e9e1fb5fb21.bundle.js.map +0 -1
  199. package/dist/82206.229877d7931849236456.bundle.js.map +0 -1
  200. package/dist/94229.47dbdba202106c61dff1.bundle.js.map +0 -1
  201. package/dist/95953.ec1b9d5e568d43ec3dcf.bundle.js +0 -2
  202. package/dist/95953.ec1b9d5e568d43ec3dcf.bundle.js.map +0 -1
  203. package/dist/98268.86ff371dde616b4e2a76.bundle.js +0 -2
  204. package/dist/98268.86ff371dde616b4e2a76.bundle.js.map +0 -1
  205. package/dist/99448.2a87f387a8062617d893.bundle.js +0 -2
  206. package/dist/99448.2a87f387a8062617d893.bundle.js.map +0 -1
  207. package/dist/legacyWorkbench.40eba9e09196e1483221.js +0 -3
  208. package/dist/main.14f083264cd64618d96a.js +0 -3
  209. package/dist/main.14f083264cd64618d96a.js.map +0 -1
  210. package/dist/shared-components/cjs/app-globals-V2Kpy_OQ.js +0 -1
  211. package/dist/shared-components/cjs/index-L_ZmIeD5.js +0 -2
  212. package/dist/shared-components/esm/app-globals-DQuL1Twl.js +0 -1
  213. package/dist/shared-components/esm/index-CGqARDX4.js +0 -2
  214. package/dist/shared-components/shared-components/p-CGqARDX4.js +0 -2
  215. package/dist/shared-components/shared-components/p-DQuL1Twl.js +0 -1
  216. /package/dist/{legacyWorkbench.40eba9e09196e1483221.js.LICENSE.txt → legacyWorkbench.f1ed8e359786e8adeab2.js.LICENSE.txt} +0 -0
  217. /package/dist/{main.14f083264cd64618d96a.js.LICENSE.txt → main.a67c284710a8b9a98ca2.js.LICENSE.txt} +0 -0
  218. /package/dist/shared-components/cjs/{index-L_ZmIeD5.js.LICENSE.txt → index-CTK5NoJt.js.LICENSE.txt} +0 -0
  219. /package/dist/shared-components/esm/{index-CGqARDX4.js.LICENSE.txt → index-EiAqSNMq.js.LICENSE.txt} +0 -0
  220. /package/dist/shared-components/shared-components/{p-CGqARDX4.js.LICENSE.txt → p-EiAqSNMq.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"21015.ea34b563b4149ad0975e.bundle.js","mappings":"+KAqCA,SAASA,EAAuBC,EAAQC,EAAQC,EAASC,EAAUC,EAAUC,EAAYC,EAAaC,EAAcC,EAAYC,EAAIC,EAAWC,GAC3IC,QAAQC,OAAOC,KAAMR,EAAY,iBAAkB,CAACN,OAAQA,EAAQe,oBAAqB,2BAKzF,MAAMC,GAAkBC,EAAAA,EAAAA,SAAQC,EAAAA,iBAC1BC,GAAwBF,EAAAA,EAAAA,SAAQG,EAAAA,uBAChCC,GAAyBJ,EAAAA,EAAAA,SAAQK,EAAAA,wBACjCC,GAAiBN,EAAAA,EAAAA,SAAQO,EAAAA,gBAEzBC,GAAoCR,EAAAA,EAAAA,SAAQS,EAAAA,mCAC5CC,GAA2BV,EAAAA,EAAAA,SAAQW,EAAAA,0BACnCC,GAAeZ,EAAAA,EAAAA,SAAQa,EAAAA,cAM7B,IAAIC,EAMJ/B,EAAOgC,KAAO,WACdhC,EAAOiC,uBAAwB,EAI/BjC,EAAOkC,kBAAoBT,EAAkCU,yBAC7DnC,EAAOoC,kBAAoBpC,EAAOkC,kBAAkBG,UACpDrC,EAAOsC,eAAiB9B,EAAW+B,QAAQ,mBAC3CvC,EAAOwC,UAAYhC,EAAW+B,QAAQ,uBACtCvC,EAAOe,oBAAsBP,EAAW+B,QAAQ,yBAChDvC,EAAOyC,mBAAqB,CACxB,CAACC,EAAAA,IAAY,CAAC,EACd,CAACC,EAAAA,IAAa,CAAC,EACf,CAACC,EAAAA,IAAU,CAAC,GAEhB5C,EAAO6C,QAAS,EAKhB7C,EAAO8C,YAAa,EAKpB9C,EAAO+C,sBAAuB,EAK9B/C,EAAOgD,wBAAyB,EAMhChD,EAAOiD,oBAAsB,WACzB,OAAO,CACX,EAEAjD,EAAOkD,OAAS,WACZ,OAAOlD,EAAOmD,WAAaC,EAAAA,GAASC,IACxC,EAEArD,EAAOsD,OAAS,WACZ,MAAMC,EAAgB5B,EAAyB6B,oBAC/CC,EAAAA,EAAAA,UAASF,GAAiB,KAC9B,EAEAvD,EAAO0D,sBAAwB,WAC3BvC,EAAsBwC,iBACjBC,KAAMC,GAAsBxC,EAAuByC,wBAAwBD,GACpF,EAEA7D,EAAO+D,cAAgB,WACd/D,EAAOgE,iBACR3D,EAAW4D,iBAEnB,EAEAjE,EAAOkE,OAAS,WACRlE,EAAO8C,YAAc9C,EAAOmD,WAAaC,EAAAA,GAASe,MAClD5D,EAAa6D,gBAAgB,CACzBC,MAAO7D,EAAW+B,QAAQ,gCAC1B+B,QAAS9D,EAAW+B,QAAQ,6BAC5BgC,SAAS,IACVC,OAAOZ,KAAK,WACX5D,EAAOyE,YACX,GAEAzE,EAAOyE,YAEf,EAEAzE,EAAO0E,eAAiB,WACpB1E,EAAO6C,QAAS,EAChB,MAAM8B,EAAO,IAAIC,EAAAA,KAAK,CAClBC,SAAU7E,EAAO2E,KAAKE,SACtBC,SAAU9E,EAAO8C,WAAa,GAAK9C,EAAO2E,KAAKG,eAAYC,EAC3DC,YAAahF,EAAO2E,KAAKK,cAE7BhE,EAAgB8C,wBAAwBa,GACnCf,KAAK,KACF3D,EAAOgF,QAAQzE,EAAW+B,QAAQ,wBAAyB,CAAC2C,KAAMlF,EAAO2E,KAAKE,YAC9E7E,EAAO0D,wBACP7B,EAAasD,aAAanF,EAAOoC,mBACjCX,EAAkC2D,uBAAuBpF,EAAOkC,mBAChEmD,MACDC,MAAOC,IACN,MAAMC,EAAMC,SAASF,GACrBtF,EAAOyF,MAAMF,EAAKhF,EAAW+B,QAAQ,mBAExCoD,QAAQ,KACL3F,EAAO6C,QAAS,GAE5B,EAEA7C,EAAOyE,WAAa,WAChB,IAAKzE,EAAO4F,eACR,OAAO,EAEX5F,EAAO0E,gBACX,EAEA1E,EAAO4F,aAAe,WAClB,OAAO5F,EAAO6F,kBAClB,EAEA7F,EAAOmF,aAAe,WAClBnF,EAAOoC,kBAAoBpC,EAAOkC,kBAAkBG,SACxD,EAKArC,EAAO8F,cAAgB,KACnB9F,EAAOgD,wBAAyB,GAOpChD,EAAO+F,iBAAoBC,IAGvBA,EAAOC,iBACPjG,EAAOgD,wBAAyB,GAOnC,MAMKqC,EAAuBA,KACzBtD,EAAyB5B,EAAS,WAC9BH,EAAO6C,QAAS,EAChB3C,EAAQgG,QAAQC,MACpB,EAAG,MA8BPnG,EAAOoG,IAAI,WAAY,WACnBjG,EAASkG,OAAOtE,EACpB,GAboBuE,MAChB,MAAMC,EAAYlF,EAAuBmF,uBACzCxG,EAAOgE,gBAAkBuC,EAAUE,SACnCzG,EAAO+D,gBAjBP/D,EAAO2E,KAAO,CAACE,SAAU7E,EAAOgE,gBAAgBa,UAChD7E,EAAO2E,KAAKG,SAAW,GACvB9E,EAAO2E,KAAK+B,gBAAkB,GAC9B1G,EAAO2E,KAAKgC,SAAW3G,EAAOgE,gBAAgB2C,SAC9C3G,EAAO2E,KAAKK,YAAchF,EAAOgE,gBAAgBgB,iBAEWD,IAAxD/E,EAAO2E,KAAKK,YAAsC,2BAClDhF,EAAO2E,KAAKK,YAAsC,0BAAI,GAE1DhF,EAAOmD,SAAWnD,EAAOgE,gBAAgB4C,cACzC5G,EAAOyC,mBAAqBzC,EAAOgE,gBAAgB6C,YAAYC,YAC/D9G,EAAO+G,YAAc/G,EAAOgE,gBAAgB6C,YAAYG,kBAuBxDV,GACAtG,EAAOmF,eAjDN5D,EAAe0F,sBAAsBrD,KAAK,KACvC5D,EAAO+C,qBAAuBpC,EAAgBuG,qBAqD1D,CA3OAtG,QACKuG,OAAO,uDAAwD,CAC5D,qDAEHC,WAAW,yBAA0BrH,GAE1CA,EAAuBsH,QAAU,CAC7B,SACA,SACA,UACA,WACA,WACA,aACA,cACA,eACA,aACA,KACA,YACA,kB,oECfJzG,QAAQuG,OAAO,6BAZC,CACZ,SACA,eACA,UACA,yCACA,uDACA,mDACA,qDACA,0CACA,yC,UChBmC,IAAmIG,EAAmBC,EAAyBC,EAA5CF,EAAE,iBAAiBC,EAAE,CAAC,OAAO,QAAQ,QAAOC,EAAE5G,QAAQuG,OAAO,cAAc,KAAMM,UAAU,YAAY,CAAC,WAAW,YAAY,UAAU,KAAK,kBAAkB,SAAS,SAASD,EAAEE,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,SAASC,EAAEC,EAAEV,EAAEC,EAAEC,GAAG,IAAIE,EAAEC,EAAEE,EAAEE,EAAEE,EAAE,CAAC,EAAE,OAAOP,EAAE,SAASJ,GAAG,OAAOQ,EAAEI,aAAaZ,EAAEU,EAAEG,iBAAiB,EAAER,EAAE,SAASL,EAAEC,GAAGD,EAAEU,EAAEG,iBAAiBZ,CAAC,EAAEM,EAAE,SAASP,GAAG,IAAIE,EAAEE,EAAEJ,GAAGK,EAAEH,GAAGA,EAAEY,QAAQJ,EAAEK,WAAWb,EAAEY,QAAQJ,EAAEM,WAAWN,EAAEO,mBAAmBC,KAAKhB,KAAKM,EAAEW,kBAAkBR,EAAES,MAAMpB,EAAEU,EAAEW,aAAaX,EAAEG,iBAAiB,OAAOP,EAAEgB,KAAKjB,GAAGJ,EAAE,CAACsB,KAAKvB,KAAK1D,KAAKkE,EAAEgB,eAAe,EAAEf,EAAE,SAASC,GAAG,OAAOJ,EAAEgB,KAAKpB,EAAE,CAACqB,KAAKb,KAAKpE,KAAKkE,EAAEgB,eAAe,EAAEb,EAAES,MAAM,GAAGT,EAAEc,QAAQ,SAASf,GAAG,IAAIV,EAAE,CAAC,EAAE,OAAOK,EAAEL,EAAEU,GAAGC,EAAEe,IAAI1B,EAAE,EAAEW,EAAEe,IAAI,SAASzB,GAAG,IAAIC,EAAEE,EAAEH,GAAG,OAAOS,EAAEiB,0BAA0BzB,EAAEM,EAAEmB,wBAAwBzB,IAAIG,EAAEJ,EAAEC,GAAGK,EAAEN,GAAG3D,KAAK,WAAWqE,EAAES,MAAMQ,KAAK3B,GAAGD,EAAE6B,QAAQ,YAAY,CAACN,KAAKtB,GAAG,GAAU,MAAE,WAAWC,GAAGF,EAAE6B,QAAQ,cAAc,CAACN,KAAKtB,GAAG,EAAE,EAAEU,EAAEmB,OAAO,SAASpB,GAAG,IAAIT,EAAEU,EAAES,MAAMV,GAAG,OAAOD,EAAER,GAAG3D,KAAK,WAAW,OAAOqE,EAAES,MAAMW,OAAOrB,EAAE,GAAGC,EAAEqB,iBAAiBhC,EAAE6B,QAAQ,cAAc,CAACN,KAAKtB,IAAIA,CAAC,EAAE,EAAEU,EAAEsB,OAAO,SAASvB,GAAG,EAAEA,EAAEA,EAAEC,EAAES,MAAMN,OAAO,EAAEJ,GAAGC,EAAES,MAAMN,SAASJ,EAAE,GAAGC,EAAEuB,MAAMxB,EAAEC,EAAEwB,SAASxB,EAAES,MAAMV,EAAE,EAAEC,EAAEyB,YAAY,WAAWzB,EAAEsB,SAAStB,EAAEuB,MAAM,EAAEvB,EAAE0B,WAAW,WAAW1B,EAAEsB,SAAStB,EAAEuB,MAAM,EAAEvB,EAAE2B,eAAe,WAAW,OAAO3B,EAAEmB,OAAOnB,EAAEuB,MAAM,EAAEvB,EAAEqB,eAAe,WAAWrB,EAAEwB,SAAS,KAAKxB,EAAEuB,OAAO,CAAC,EAAEvB,EAAE4B,SAAS,WAAW,OAAO7B,EAAE8B,WAAW7B,EAAES,MAAMqB,IAAIrC,GAAGO,EAAES,KAAK,EAAET,EAAEqB,iBAAiBrB,CAAC,CAAC,SAASA,EAAED,GAAG,OAAO,IAAIT,EAAEyC,QAAQhC,EAAE,CAAC,MAAM,CAACiC,SAAS,IAAIC,QAAQ,UAAUC,MAAM,CAACC,KAAK,WAAWC,KAAK,KAAKC,cAAc,KAAKC,SAAS,IAAIC,YAAY,IAAIC,WAAW,IAAIC,aAAa,IAAIC,cAAc,IAAIC,aAAa,IAAIC,aAAa,KAAKC,SAAQ,EAAGC,YAAW,EAAGC,YAAY,8BAA8B5D,WAAW,CAAC,SAAS,SAAS,WAAW,SAASY,EAAET,EAAEC,GAAGQ,EAAEiD,OAAOnD,EAAEoD,eAAerD,EAAEsD,KAAK,YAAYnD,EAAET,EAAE,CAAC6D,SAAS,CAACC,OAAO,6BAA6BC,KAAK,CAACD,OAAO,OAAOpD,GAAGsD,YAAY,CAACF,OAAO,aAAaG,SAAS,CAACC,OAAO,MAAMC,gBAAgB,CAACL,OAAOA,OAAOM,aAAa,MAAM1C,wBAAwB,CAAC2C,SAAQ,GAAIvD,UAAU,CAACoD,OAAO,GAAGnD,UAAU,CAACmD,OAAOnE,GAAGuE,WAAW,CAACD,SAAQ,GAAIE,WAAW,CAACF,SAAQ,GAAIG,WAAW,CAACH,SAAQ,GAAII,UAAU,CAACJ,SAAQ,GAAIK,WAAW,CAACL,SAAQ,GAAIM,kBAAkB,CAACC,OAAO,KAAK5D,mBAAmB,CAAC4D,OAAO,MAAMC,qBAAqB,CAACR,SAAQ,GAAIS,QAAQ,CAACZ,OAAO,GAAGa,QAAQ,CAACb,OAAOnE,GAAGa,gBAAgB,CAACkD,OAAO,QAAQ1C,YAAY,CAAC0C,OAAO,IAAIkB,kBAAkB,CAACX,SAAQ,GAAIY,wBAAwB,CAACZ,SAAQ,GAAIa,WAAW,CAACb,SAAQ,GAAI9B,WAAW,CAAC8B,SAAQ,KAAM5D,EAAE0E,QAAQ,IAAI3E,EAAEC,EAAE2E,QAAQ3E,EAAEiD,OAAOnD,EAAE8E,sBAAsB5E,EAAEwC,aAAY,GAAI1C,EAAE8E,sBAAsB5E,EAAE2C,eAAc,IAAK7J,KAAK+L,qBAAqB,WAA2B,OAAhBrF,EAAEsF,KAAK,SAAe,CAACC,OAAO,SAASzF,GAAG,OAAOU,EAAE0E,QAAQ1D,IAAI1B,EAAE,EAAE0F,QAAQ,WAAW,OAAOhF,EAAE0E,QAAQhE,KAAK,EAAEuE,kBAAkB,WAAW,OAAOjF,EAAEkF,OAAO7C,MAAM,EAAE8C,WAAW,WAAW,OAAOnF,EAAE2E,OAAO,EAAES,iBAAiB,WAAW,OAAOpF,EAAEsC,aAAa,EAAE+C,GAAG,SAAS/F,EAAEC,GAAG,OAAOS,EAAEiD,OAAOoC,GAAG/F,EAAEC,GAAE,GAAIzG,IAAI,EAAE,EAAEA,KAAKwM,gBAAgB,WAAW,MAAM,CAACH,WAAW,WAAW,OAAOnF,EAAE2E,OAAO,EAAEY,UAAU,SAASjG,GAAGU,EAAEwF,UAAUxF,EAAE0E,QAAQtD,OAAO9B,EAAE,EAAE,CAAC,GAAGmG,KAAK,SAASnG,EAAEC,EAAEK,EAAEC,GAAG,IAAIE,EAAEE,EAAEyF,EAAE,CAA7sG,GAAuE,IAApD,GAAjC,EAA4E,GAArB,GAAS,IAA4tGC,EAAErG,EAAEoF,QAAQkB,EAAEtG,EAAE2D,OAAO4C,EAAEvG,EAAEqF,QAAQmB,EAAEvG,EAAEuF,KAAK,SAASiB,EAAE,CAAC,UAAU,UAAU,qBAAqBhG,EAAE,WAAWF,EAAEmG,aAAa,UAAUL,EAAEjF,MAAMN,QAAQyF,EAAEvB,SAASzE,EAAEmG,aAAa,UAAUL,EAAEjF,MAAMN,QAAQyF,EAAExB,SAASxE,EAAEmG,aAAa,kBAAe1G,EAAE2G,WAAUJ,EAAEtB,mBAAsBjF,EAAE4F,OAAO7C,QAAO,EAAEpC,EAAE,WAAWT,EAAE,WAAWsG,EAAE,GAAGI,OAAO,EAAE,EAAErG,EAAEsG,SAAS,SAASnG,GAAG,OAAOA,IAAIA,EAAEI,MAAM,EAAEd,EAAE4F,OAAO,CAAC7C,KAAK,SAASrC,GAAG,OAAOpH,QAAQwN,UAAUpG,IAAIV,EAAE+C,KAAKrC,OAAO4F,EAAEzE,QAAQ,eAAenB,IAAIV,EAAE+C,MAAM,EAAE,EAAEgE,QAAQ,MAAM/G,EAAEgH,MAAM,SAAStG,GAAG,OAAOA,EAAE6F,EAAElF,aAAakF,EAAE1F,gBAAgB,EAAEb,EAAEiH,YAAY,SAASvG,EAAET,GAAG,IAAIC,EAAEQ,IAAI2F,EAAElE,SAAS,MAAM,CAACnC,EAAEiD,SAAS,CAAC1B,KAAKb,EAAEwG,OAAOjH,EAAEkH,UAAUjH,IAAI,CAACiC,SAASjC,GAAG,EAAEF,EAAEoH,OAAO,OAAO,SAAS1G,GAAG,GAAGA,EAAE,CAAC,GAAG2F,EAAEjF,MAAMZ,EAAE6G,gBAAgB3G,EAAE6F,EAAE1F,iBAAiB0F,EAAE/D,WAAW,OAAOxC,EAAE8C,KAAKuD,EAAEjF,KAAK,MAAMiF,EAAEjF,MAAM,EAAE,GAAGpB,EAAEoH,OAAO,cAAc,WAAW3G,IAAIF,EAAE+G,WAAW,GAAGhH,EAAEiH,SAAS,WAAW,SAAS7G,GAAGV,EAAEkG,SAASxF,CAAC,GAAGV,EAAEwH,cAAc,CAACC,MAAM,CAACC,QAAQ,SAAShH,GAAG4F,EAAEzE,QAAQ,gBAAgBnB,EAAE,EAAEkG,MAAM,WAAW5G,EAAE2G,WAAW3G,EAAE2G,UAAS,EAAGL,EAAEzE,QAAQ,eAAe,EAAE8F,KAAK,WAAWzH,EAAE,WAAW,IAAIQ,EAAEN,EAAEwH,KAAK,iBAAiB1H,EAAEQ,IAAI8F,EAAE,GAAGnG,EAAEJ,EAAE,GAAG4H,SAASnH,IAAIR,IAAIG,KAAKL,EAAE2G,UAAS,EAAGL,EAAEzE,QAAQ,cAAc,EAAE,EAAEiG,MAAM,SAASpH,GAAGA,EAAEqH,YAAY,WAAW,IAAI/H,EAAEU,EAAEsH,eAAetH,EAAEuH,eAAevH,EAAEuH,cAAcD,cAAc,OAAOhI,EAAEA,EAAEkI,QAAQ,cAAc7H,EAAE2H,cAAcE,QAAQ,OAAO,EAAE5B,EAAEzE,QAAQ,cAAcnB,EAAE,GAAGyH,KAAK,CAACC,MAAM,WAAWpI,EAAEkG,UAAUvF,GAAG,GAAG0H,IAAI,CAACD,MAAM,SAAS1H,GAAG4F,EAAEzE,QAAQ,cAAc,CAACN,KAAKb,GAAG,IAAI4F,EAAEP,GAAG,YAAY/F,EAAEmD,YAAY4C,GAAG,cAAc/F,EAAEoD,cAAc2C,GAAG,cAAc/F,EAAEsD,cAAcyC,GAAG,cAAc/F,EAAEuD,cAAcwC,GAAG,YAAY,WAAW/F,EAAE4F,OAAO7C,KAAK,GAAG,GAAGgD,GAAG,wBAAwB,WAAW/F,EAAE8C,KAAKuD,EAAE9D,WAAWhC,EAAE+H,YAAY3H,GAAG,GAAGoF,GAAG,cAAc,WAAW/F,EAAE4F,OAAOmB,SAAQ,CAAE,GAAGhB,GAAG,gBAAgB,SAASrF,IAAI,IAAI+F,EAAE/D,QAAQhC,EAAE9C,OAAO6C,GAAG,GAAGsF,GAAG,eAAe,WAAWM,EAAErE,iBAAiBhC,EAAE4F,OAAOmB,QAAQ,IAAI,GAAGhB,GAAG,cAAc,WAAW9F,EAAEsI,eAAe,SAAShI,EAAEmG,aAAa,gBAAe,EAAG,GAAGX,GAAG,aAAa,WAAWQ,EAAE7B,YAAY6B,EAAErB,yBAAyBmB,EAAE5E,QAAQzB,EAAE4F,OAAO7C,QAAQ9C,EAAEsI,eAAe,QAAQ9H,GAAG,GAAGsF,GAAG,gBAAgB,SAAS9F,GAAG,IAAIC,EAAEE,EAAEC,EAAEC,EAAEC,EAAEN,EAAEuI,QAAQ/H,EAAE,CAAC,EAAED,EAAEiI,aAAaxI,KAAK,IAAImG,EAAE1D,QAAQnC,KAAKE,EAA/+K,IAA0/K8F,EAAEhC,WAAW9D,EAAh8K,KAA28K8F,EAAE9B,WAAWhE,EAA5gL,IAAuhL8F,EAAE/B,WAAWtE,GAAGqG,EAAErB,yBAAyBzE,EAAEF,GAAGH,GAAxmL,IAA2mLG,GAA/hL,KAAgjLA,IAAkB8F,EAAElE,SAAS7B,EAAzpL,IAA2pLC,GAAiB,IAAIP,EAAE4F,OAAO7C,OAAOjC,QAAQyF,EAAEzB,qBAAqBzE,GAA/tL,IAAkuLE,GAA3qL,KAA4rLA,GAAnrL,KAA+rLA,IAAc,IAAIP,EAAE4F,OAAO7C,OAAOjC,SAASyF,EAAEzB,qBAAqB5E,EAAEmG,EAAE5E,QAAQzB,EAAE4F,OAAO7C,QAAQzC,GAAG+F,EAAEjE,cAAciE,EAAE/D,iBAAiBhG,KAAK,SAASoE,GAAGA,GAAGV,EAAE4F,OAAO7C,KAAKrC,EAAE6F,EAAE1F,iBAAiB,IAAIT,EAAEiG,EAAE/D,iBAAiBjC,IAA75L,KAAi6LE,GAAx9L,IAAo+LA,EAAgB8F,EAAEjE,cAAt7L,KAAo8L7B,GAAa8F,EAAEhE,eAAenC,GAAGG,GAAGD,GAAGE,IAAIL,EAAEtB,iBAAiB,GAAGoH,GAAG,cAAc,SAASrF,GAAG,GAAG6F,EAAE5B,WAAW,CAAC,IAAsB1E,EAAhBS,EAAEqH,cAAkBW,MAAMnC,EAAE3B,mBAAmB3E,EAAEa,OAAO,IAAIb,EAAE0I,QAAQ,SAASjI,GAAG2F,EAAE5E,QAAQf,EAAE,GAAGA,EAAE/B,iBAAiB,CAAC,EAAE,EAAE,IAAIuB,EAAEC,UAAU,YAAY,CAAC,SAAS,SAASO,GAAG,MAAM,CAACiC,SAAS,IAAIC,QAAQ,aAAakB,SAAS,6CAA6CjB,MAAM,CAACnK,OAAO,SAASuF,KAAK,KAAKkI,KAAK,SAASnG,EAAEC,EAAEC,EAAEE,GAAG,IAAIC,EAAED,EAAE4F,kBAAkB1F,EAAED,EAAEwF,aAAa7F,EAAE4I,WAAWtI,EAAEwD,SAAS9D,EAAE6I,kBAAkBvI,EAAE8D,gBAAgBpE,EAAE8I,gBAAgB,WAAW,OAAOpI,EAAEE,aAAaZ,EAAE/B,KAAKqC,EAAEO,iBAAiB,EAAEb,EAAE+I,WAAW,WAAW1I,EAAE4F,UAAUjG,EAAEkH,OAAO,EAAElH,EAAEoH,OAAO,iBAAiB,SAAS1G,GAAGV,EAAEkH,OAAOxG,CAAC,EAAE,EAAE,IAAIR,EAAEC,UAAU,eAAe,CAAC,YAAY,WAAW,OAAO,KAAK,kBAAkB,SAAS,SAASH,EAAEC,EAAEC,EAAEE,EAAEC,EAAEC,GAAG,SAASC,EAAEG,EAAEV,EAAEC,GAAG,IAAIC,EAAEG,EAAEE,EAAEC,EAAE,CAAC,EAAE,OAAOD,EAAE,WAAW,OAAOP,EAAEgJ,UAAU3H,aAAarB,EAAEgJ,UAAUnI,eAAe,EAAEX,EAAE,SAASQ,EAAET,GAAG,OAAOS,EAAEuI,OAAO,SAASvI,GAAG,OAAOJ,EAAEa,kBAAkBlB,EAAES,EAAEH,IAAI,SAASG,EAAET,GAAG,OAAOD,EAAEgJ,UAAUrH,0BAA0BjB,EAAEJ,EAAEqB,wBAAwBjB,GAAGT,EAAEK,EAAEqB,wBAAwB1B,IAAIK,EAAE4I,gBAAgBxI,EAAET,EAAE,EAAE,EAAE,EAAEO,EAAE2I,MAAM,WAAW9I,EAAE,KAAKG,EAAEY,MAAM,GAAGZ,EAAE4I,SAAQ,EAAG5I,EAAE0B,OAAO,EAAE1B,EAAE2B,SAAS,KAAK3B,EAAE6I,MAAM,IAAI,EAAE7I,EAAE8I,KAAK,WAAWtJ,EAAEuJ,iBAAiB/I,EAAEyB,OAAO,GAAGzB,EAAE2B,SAAS,KAAK3B,EAAE4I,SAAQ,CAAE,EAAE5I,EAAEqD,KAAKvD,EAAEkJ,SAAS,SAASvJ,EAAEQ,GAAGD,EAAE6I,MAAMpJ,EAAE,IAAIU,EAAEP,EAAEkB,KAAKZ,EAAE,CAAC+I,OAAOxJ,KAAKI,EAAEM,EAAEA,EAAErE,KAAK,SAASoE,GAAGC,IAAIN,IAAIK,EAAEJ,EAAE+G,gBAAgB3G,EAAEzC,MAAMyC,EAAEH,KAAKG,EAAER,EAAEQ,EAAED,GAAGD,EAAEY,MAAMV,EAAEgJ,MAAM,EAAE1J,EAAE2J,kBAAkBnJ,EAAEY,MAAMN,OAAO,EAAEN,EAAE8I,OAAO9I,EAAE2I,QAAQ,EAAE,EAAEnJ,EAAE4J,eAAepJ,EAAE6B,WAAW,WAAW7B,EAAEyB,SAASzB,EAAE0B,MAAM,EAAE1B,EAAE4B,YAAY,WAAW5B,EAAEyB,SAASzB,EAAE0B,MAAM,EAAE1B,EAAEyB,OAAO,SAASvB,GAAG,EAAEA,EAAEA,EAAEF,EAAEY,MAAMN,OAAO,EAAEJ,GAAGF,EAAEY,MAAMN,SAASJ,EAAE,GAAGF,EAAE0B,MAAMxB,EAAEF,EAAE2B,SAAS3B,EAAEY,MAAMV,GAAGT,EAAE4B,QAAQ,sBAAsBnB,EAAE,EAAEF,EAAE2I,QAAQ3I,CAAC,CAAkN,MAAM,CAACmC,SAAS,IAAIC,QAAQ,aAAaC,MAAM,CAACgH,OAAO,IAAIC,WAAW,KAAKpG,YAAY,iCAAiC5D,WAAW,CAAC,SAAS,WAAW,SAAS,SAASY,EAAEV,EAAEC,GAAGS,EAAEiD,OAAOrD,EAAEsD,eAAevD,EAAEwD,KAAK,eAAenD,EAAET,EAAE,CAAC6D,SAAS,CAACC,OAAO,wCAAwC6F,cAAc,CAACzF,OAAO,KAAKpD,UAAU,CAACoD,OAAO,GAAG4F,qBAAqB,CAACzF,SAAQ,GAAIqF,iBAAiB,CAACxF,OAAO,IAAI6F,gBAAgB,CAAC1F,SAAQ,GAAI2F,YAAY,CAAC3F,SAAQ,GAAI4F,YAAY,CAAC5F,SAAQ,GAAIiF,iBAAiB,CAACjF,SAAQ,GAAIzD,gBAAgB,CAACkD,OAAO,MAAMrD,EAAEyJ,eAAe,IAAI5J,EAAEG,EAAEmJ,OAAOnJ,EAAE2E,QAAQ3E,EAAEiD,QAAQnK,KAAK4Q,0BAA0B,WAAW,MAAM,CAACvE,WAAW,WAAW,OAAOnF,EAAE2E,OAAO,EAAEgF,SAAS,WAAW,OAAO3J,EAAEyJ,eAAed,KAAK,EAAE,CAAC,GAAGlD,KAAK,SAASnG,EAAEC,EAAEC,EAAEE,GAAG,IAAIC,EAAEE,EAAE,CAA1uR,GAAR,EAAkB,GAAe,GAAQ,IAA8uRE,EAAET,EAAEmK,eAAexJ,EAAEP,EAAEmF,uBAAuBa,EAAEpG,EAAEqF,QAAQgB,EAAErG,EAAE2D,OAAOyC,EAAE4C,UAAUrI,EAAEkF,aAAaxF,EAAE,SAASK,GAAG,OAAOA,GAAGA,EAAEI,QAAQsF,EAAErF,YAAYL,GAAG0F,EAAE6D,WAAW,EAAEjK,EAAEgD,cAAcrC,EAAEmF,mBAAmB9F,EAAEsK,qBAAqB,SAAS5J,GAAGD,EAAEwB,OAAOvB,GAAGV,EAAEuK,eAAe,EAAEvK,EAAEuK,cAAc,WAAW,IAAI7J,GAAE,EAAG,OAAOD,EAAE0B,WAAWxB,EAAE8E,OAAOnM,QAAQkR,KAAK/J,EAAE0B,WAAW1B,EAAE0I,QAAQzI,GAAE,GAAIA,CAAC,EAAEV,EAAEgH,MAAM,SAAStG,GAAG,OAAOA,EAAE0F,EAAE4C,UAAU3H,aAAa+E,EAAE4C,UAAUnI,gBAAgB,EAAEb,EAAEyK,mBAAmB,SAAS/J,EAAET,GAAG,IAAIC,EAAEQ,IAAID,EAAE0B,SAAS,MAAM,CAACnC,EAAE8J,WAAW,CAACY,OAAOhK,EAAEwG,OAAOjH,EAAEkH,UAAUjH,IAAI,CAACiC,SAASjC,GAAG,EAAES,EAAEoF,GAAG,+CAA+C,WAAWtF,EAAE0I,OAAO,GAAGpD,GAAG,eAAe,SAASrF,GAAGL,EAAEK,GAAGD,EAAEoD,KAAKnD,EAAEC,EAAE+E,WAAWjF,EAAE0I,OAAO,GAAGpD,GAAG,cAAc,WAAW,IAAIrF,EAAEC,EAAEgF,oBAAoBS,EAAE8D,aAAa7J,EAAEK,IAAID,EAAEoD,KAAKnD,EAAEC,EAAE+E,UAAU,GAAGK,GAAG,gBAAgB,SAAS9F,GAAG,IAAIC,EAAED,EAAEuI,QAAQpI,GAAE,EAAG,IAAIE,EAAEmI,aAAaxI,KAAK,IAAIM,EAAEmC,QAAQxC,GAAG,OAAOO,EAAE2I,QAAhpT,KAAwpTlJ,GAAYO,EAAE4B,aAAajC,GAAE,GAA7rT,KAAisTF,GAAUO,EAAE2B,cAAchC,GAAE,GAA5uT,KAAgvTF,GAAcO,EAAE0I,QAAQ/I,GAAE,IAApxT,KAAyxTF,GAAjyT,IAA8yTA,KAAaE,EAAEJ,EAAEuK,iBAAtxT,KAAuyTrK,GAAYF,EAAEqF,QAAQ2E,kBAAkBvJ,EAAEoD,KAAKlD,EAAEgF,oBAAoBhF,EAAE+E,WAAWtF,GAAE,GAAIA,GAAGH,EAAEtB,iBAAiBsB,EAAE0K,4BAA2B,QAAS,CAAC,GAAGtE,EAAEN,GAAG,sBAAsB,SAASrF,IAAvuE,SAAWA,EAAEV,GAAG,IAAIC,EAAES,EAAE8E,KAAK,MAAMoF,GAAG5K,GAAGE,EAAED,EAAE4K,SAASzK,EAAEH,EAAE2H,KAAK,aAAavH,EAAEJ,EAAE2H,KAAK,gBAAgBtH,EAAEJ,EAAE0H,KAAK,gBAAgBrH,EAAEL,EAAE0H,KAAK,aAAarH,EAAEH,EAAEF,EAAE0H,KAAK,YAAYxH,GAAGA,EAAEC,EAAEC,EAAEC,GAAGL,EAAE0H,KAAK,YAAYxH,EAAEC,EAAEC,EAAE,CAA0hEE,CAAEP,EAAES,EAAE,EAAE,EAAE,IAAIR,EAAEC,UAAU,sBAAsB,CAAC,OAAO,SAAS,SAASO,EAAEV,GAAG,MAAM,CAAC2C,SAAS,IAAIC,QAAQ,gBAAgBkB,SAAS,6CAA6CjB,MAAM,CAACnK,OAAO,SAASuF,KAAK,KAAKkI,KAAK,SAASlG,EAAEC,EAAEE,EAAEC,GAAG,IAAIC,EAAED,EAAE+J,4BAA4B7J,EAAED,EAAEuF,aAAa5F,EAAE2I,WAAWrI,EAAEuD,SAAS7D,EAAEiH,OAAOjH,EAAE6K,QAAQ5D,OAAOjH,EAAE8K,WAAW,SAAS9K,GAAG,OAAOM,EAAEwJ,uBAAuB9J,EAAED,EAAEgL,cAAc/K,EAAEK,EAAE+J,aAAa3J,EAAEuK,YAAYhL,EAAE,EAAEA,EAAE6I,gBAAgB,WAAW,OAAO9I,EAAEY,aAAaX,EAAEhC,KAAKsC,EAAEM,iBAAiBN,EAAEyI,UAAUnI,iBAAiB,CAAC,EAAE,IAAIX,EAAEC,UAAU,qBAAqB,WAAW,OAAO,SAASO,EAAEV,EAAEC,EAAEC,EAAEE,GAAGA,EAAE,SAASM,GAAGV,EAAEkL,OAAOxK,EAAE,EAAE,CAAC,GAAGR,EAAEC,UAAU,aAAa,CAAC,kBAAkB,SAASO,GAAG,MAAM,CAACiC,SAAS,IAAIC,QAAQ,UAAUuD,KAAK,SAASnG,EAAEC,EAAEC,EAAEE,GAAG,IAAIC,EAAEC,EAAEC,EAAEG,EAAEyK,4BAA2B9K,EAAE/G,QAAQ8R,QAAQ,gCAAiCC,IAAI,UAAU,QAAQA,IAAI,aAAa,UAAUA,IAAI,QAAQ,QAAQA,IAAI,cAAc,OAAOpL,EAAE4K,SAASK,OAAO7K,GAAGC,EAAE,SAASI,GAAG,IAAIV,EAAEI,EAAEM,EAAE,OAAOpH,QAAQgS,SAASlL,IAAI,IAAIA,EAAEU,SAASV,EAAEF,EAAE+D,aAAa7D,IAAIC,EAAE0C,KAAK3C,GAAGC,EAAEgL,IAAI,UAAU,IAAIrL,EAAEK,EAAEuH,KAAK,eAAevH,EAAEgL,IAAI,UAAU,SAASpL,EAAEoL,IAAI,QAAQrL,EAAEA,EAAEO,EAAE,KAAK,IAAIG,CAAC,EAAEN,EAAEmL,SAASC,QAAQlL,GAAGF,EAAEqL,YAAYD,QAAQlL,GAAGJ,EAAEqH,SAAS,cAAc,SAAS7G,GAAGN,EAAEsL,aAAapL,EAAEI,EAAE,EAAE,EAAE,IAAIR,EAAEC,UAAU,cAAc,WAAW,OAAO,SAASO,EAAEV,EAAEC,GAAGS,EAAE0G,OAAOnH,EAAE0L,YAAY,SAASjL,GAAGpH,QAAQqP,QAAQjI,EAAE,SAASA,EAAEV,GAAGC,EAAE2L,KAAK5L,EAAEU,EAAE,EAAE,GAAE,EAAG,CAAC,GAAGR,EAAE2L,SAAS,kBAAkB,WAAW,IAAInL,EAAE,CAAC,EAAEV,EAAE,CAAC,EAAEC,EAAE,EAAEzG,KAAKsS,YAAY,SAAS9L,EAAEC,GAAG,OAAOS,EAAEV,GAAGC,EAAEzG,IAAI,EAAEA,KAAKuS,uBAAuB,SAASrL,EAAET,GAAG,OAAOD,EAAEU,GAAGT,EAAEzG,IAAI,EAAEA,KAAKwS,yBAAyB,SAAStL,GAAG,OAAOT,EAAES,EAAElH,IAAI,EAAEA,KAAKyS,KAAK,CAAC,eAAe,SAAS/L,GAAG,IAAIE,EAAE,CAAC,EAAE,OAAOA,EAAE2D,QAAQ,SAASrD,GAAG,OAAOA,CAAC,EAAEN,EAAE+D,QAAQ,SAASzD,GAAG,OAAOwL,SAASxL,EAAE,GAAG,EAAEN,EAAEkE,SAAS,SAAS5D,GAAG,MAAM,SAASA,EAAEyL,aAAa,EAAE/L,EAAEyE,QAAQ,SAASnE,GAAG,OAAO,IAAImE,OAAOnE,EAAE,EAAE,CAACmD,KAAK,SAAS5D,EAAEI,EAAEC,EAAEC,GAAG,IAAIC,EAAE,WAAW,OAAM,CAAE,EAAEH,EAAEgF,QAAQ,CAAC,EAAE/L,QAAQqP,QAAQpI,EAAE,SAASA,EAAEE,GAAG,IAAIE,EAAEyF,EAAEC,EAAEC,EAAEC,EAAEC,EAAE7F,EAAEJ,EAAE,GAAG6F,EAAE7F,EAAE,GAAG8F,EAAE9F,EAAE,IAAIC,EAAE8F,EAAElG,EAAEO,GAAG4F,EAAE,WAAW,IAAIvG,EAAEU,EAAET,IAAIS,EAAET,GAAGQ,GAAG,OAAOnH,QAAQwN,UAAU9G,GAAGA,EAAEoG,CAAC,EAAEI,EAAE,SAAS9F,GAAGL,EAAEgF,QAAQ5E,GAAGC,GAAG2F,EAAE3F,GAAG4F,EAAE5F,GAAG6F,GAAG,EAAEvG,EAAEC,IAAID,EAAEC,GAAGQ,GAAGH,EAAEiH,SAAS9G,EAAE,SAASC,GAAG8F,EAAE9F,GAAGL,EAAEsD,OAAO9B,QAAQ,gBAAgB,CAACjE,KAAK6C,EAAE2L,SAAS1L,GAAG,GAAG8F,EAAElG,EAAEG,IAAIP,EAAEI,EAAEG,GAAJP,CAAQG,EAAEyK,SAAS,EAAE,EAAEK,yBAAyB,WAAW,OAAOlL,CAAC,EAAE,EAAE,GAAGC,EAAEmM,QAAQ,SAAS,CAAC,WAAW,KAAK,SAAS3L,EAAEV,GAAG,IAAIC,EAAE,CAAUA,SAAW,SAASD,EAAEC,GAAG,IAAIC,EAAE,OAAO,WAAW,IAAIE,EAAEkM,UAAU5L,EAAE3B,OAAOmB,GAAGA,EAAEQ,EAAE,WAAWV,EAAEuM,MAAM,KAAKnM,EAAE,EAAEH,EAAE,CAAC,EAAEA,gBAAkB,SAASS,EAAEV,GAAG,IAAI1G,QAAQkT,QAAQ9L,IAAI,IAAIA,EAAEI,QAAQxH,QAAQmT,SAAS/L,EAAE,IAAI,OAAOA,EAAE,IAAIT,EAAE,GAAG,OAAOS,EAAEiI,QAAQ,SAASjI,GAAG,IAAIR,EAAE,CAAC,EAAEA,EAAEF,GAAGU,EAAET,EAAE2B,KAAK1B,EAAE,GAAGD,CAAC,EAAEA,kBAAoB,SAASS,EAAEV,EAAEE,EAAEE,GAAG,IAAIC,EAAE,KAAK,OAAOD,EAAEA,GAAGH,EAAEiJ,gBAAgBxI,EAAEgM,KAAK,SAAShM,GAAG,OAAON,EAAEM,EAAER,GAAGF,EAAEE,KAAKG,EAAEK,GAAE,QAAS,CAAC,GAAGL,CAAC,EAAEJ,gBAAkB,SAASS,EAAEV,GAAG,OAAOC,EAAEW,aAAaF,GAAGyL,gBAAgBlM,EAAEW,aAAaZ,GAAGmM,aAAa,EAAElM,cAAgB,SAASS,EAAEV,GAAmE,GAAGU,EAAET,EAAE0M,WAAWjM,KAAGV,EAAEC,EAAE0M,WAAW3M,IAAM,OAAOU,EAAE,IAAIN,EAAE,IAAIyE,OAAO,WAApI,SAAWnE,GAAG,OAAOA,EAAE8C,QAAQ,yBAAyB,OAAO,CAAgFtD,CAAEF,GAAG,MAAM,OAAOU,EAAE8C,QAAQpD,EAAE,SAASM,GAAG,OAAOA,EAAEyL,gBAAgBnM,EAAEmM,cAAc,OAAOzL,EAAE,QAAQA,CAAC,EAAE,EAAET,aAAe,SAASS,GAAG,OAAOpH,QAAQsT,YAAYlM,IAAI,MAAMA,EAAE,GAAGA,EAAEmM,WAAWC,MAAM,EAAE7M,WAAa,SAASS,GAAG,OAAOT,EAAEW,aAAaF,GAAG8C,QAAQ,KAAK,SAASA,QAAQ,KAAK,QAAQA,QAAQ,KAAK,OAAO,EAAEvD,sBAAwB,SAASS,EAAEV,GAAG,OAAO,WAAW,IAAIC,EAAES,EAAE6L,MAAM,KAAKD,WAAW,OAAOhT,QAAQsT,YAAY3M,GAAGD,EAAEC,CAAC,CAAC,EAAEA,wBAA0B,SAASS,GAAG,OAAOT,EAAEW,aAAaF,GAAG8C,QAAQ,MAAM,IAAI,EAAEvD,aAAe,SAASS,GAAG,OAAOA,EAAEqM,UAAUrM,EAAEsM,SAAStM,EAAEuM,QAAQvM,EAAEwM,OAAO,EAAEjN,eAAiB,SAASS,GAAG,OAAOA,IAAEpH,QAAQsT,YAAYlM,IAAMA,EAAEV,EAAEU,EAAE,OAAO,WAAW,EAAET,aAAe,WAAW,IAAIS,EAAE,CAAC,EAAE,MAAM,CAACqF,GAAG,SAAS/F,EAAEC,EAAEC,GAAG,OAAOF,EAAE0I,MAAM,KAAKC,QAAQ,SAAS3I,GAAGU,EAAEV,KAAKU,EAAEV,GAAG,KAAUE,EAAE,GAAGsL,QAAQ,GAAG5J,MAAOuL,KAAKzM,EAAEV,GAAGC,EAAE,GAAGzG,IAAI,EAAEqI,QAAQ,SAAS7B,EAAEE,GAAkB,OAATQ,EAAEV,IAAI,IAAYoN,MAAM,SAAS1M,GAAG,OAAOT,EAAEqF,sBAAsB5E,GAAE,EAA1BT,CAA8BC,EAAE,GAAG1G,IAAI,EAAE,GAAxoD,OAA0oDyG,CAAC,IAAIC,EAAEmN,IAAI,CAAC,iBAAiB,SAAS3M,GAAGA,EAAE4M,IAAI,8BAA8B,+4BAA+4B5M,EAAE4M,IAAI,4BAA4B,iIAAiI5M,EAAE4M,IAAI,iCAAiC,wZAAwZ5M,EAAE4M,IAAI,uCAAuC,6DAA6D,G","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/security/controllers/user-settings.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/security/app.js","webpack://root-config/./packages/legacy-workbench/node_modules/ng-tags-input/build/ng-tags-input.min.js"],"sourcesContent":["import 'angular/core/services/security.service';\nimport {GRAPHQL, READ_REPO, WRITE_REPO} from '../services/constants';\nimport {UserType} from 'angular/utils/user-utils';\nimport {\n navigate,\n ThemeService,\n ApplicationSettingsStorageService,\n NavigationContextService,\n SecurityService,\n AuthenticationService,\n SecurityContextService,\n LicenseService,\n service,\n User,\n} from '@ontotext/workbench-api';\n\nangular\n .module('graphdb.framework.security.controllers.user-settings', [\n 'graphdb.framework.core.services.security-service',\n ])\n .controller('UserSettingsController', UserSettingsController);\n\nUserSettingsController.$inject = [\n '$scope',\n 'toastr',\n '$window',\n '$timeout',\n '$jwtAuth',\n '$rootScope',\n '$controller',\n 'ModalService',\n '$translate',\n '$q',\n '$uibModal',\n 'TrackingService',\n];\n\nfunction UserSettingsController($scope, toastr, $window, $timeout, $jwtAuth, $rootScope, $controller, ModalService, $translate, $q, $uibModal, TrackingService) {\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n // =========================\n // Private variables\n // =========================\n const securityService = service(SecurityService);\n const authenticationService = service(AuthenticationService);\n const securityContextService = service(SecurityContextService);\n const licenseService = service(LicenseService);\n\n const applicationSettingsStorageService = service(ApplicationSettingsStorageService);\n const navigationContextService = service(NavigationContextService);\n const themeService = service(ThemeService);\n\n /**\n * A timer task that will redirect back to the previous page after the user has been updated.\n * @type {Promise}\n */\n let waitBeforeRedirectBack;\n\n // =========================\n // Public variables\n // =========================\n\n $scope.mode = 'settings';\n $scope.showWorkbenchSettings = true;\n /**\n * @type {ApplicationSettings}\n */\n $scope.workbenchSettings = applicationSettingsStorageService.getApplicationSettings();\n $scope.selectedThemeMode = $scope.workbenchSettings.themeMode;\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.pageTitle = $translate.instant('view.settings.title');\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {},\n [GRAPHQL]: {},\n };\n $scope.loader = false;\n /**\n * Allows to reset the password when updating the user.\n * @type {boolean}\n */\n $scope.noPassword = false;\n /**\n * If the button that opens the cookie policy modal should be visible or not.\n * @type {boolean}\n */\n $scope.showCookiePolicyLink = false;\n /**\n * Flag that controls the visibility of the cookie policy modal.\n * @type {boolean}\n */\n $scope.showCookieConsentModal = false;\n\n // =========================\n // Public functions\n // =========================\n\n $scope.hasEditRestrictions = function() {\n return true;\n };\n\n $scope.isUser = function() {\n return $scope.userType === UserType.USER;\n };\n\n $scope.goBack = function() {\n const previousRoute = navigationContextService.getPreviousRoute();\n navigate(previousRoute ?? './');\n };\n\n $scope.updateCurrentUserData = function() {\n authenticationService.getCurrentUser()\n .then((authenticatedUser) => securityContextService.updateAuthenticatedUser(authenticatedUser));\n };\n\n $scope.redirectAdmin = function() {\n if (!$scope.currentUserData) {\n $rootScope.redirectToLogin();\n }\n };\n\n $scope.submit = function() {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true,\n }).result.then(function() {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function() {\n $scope.loader = true;\n const user = new User({\n username: $scope.user.username,\n password: $scope.noPassword ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings,\n });\n securityService.updateAuthenticatedUser(user)\n .then(() => {\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n $scope.updateCurrentUserData();\n themeService.setThemeMode($scope.selectedThemeMode);\n applicationSettingsStorageService.setApplicationSettings($scope.workbenchSettings);\n goBackToPreviousView();\n }).catch((data) => {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n })\n .finally(() => {\n $scope.loader = false;\n });\n };\n\n $scope.updateUser = function() {\n if (!$scope.validateForm()) {\n return false;\n }\n $scope.updateUserHttp();\n };\n\n $scope.validateForm = function() {\n return $scope.validatePassword();\n };\n\n $scope.setThemeMode = function() {\n $scope.selectedThemeMode = $scope.workbenchSettings.themeMode;\n };\n\n /**\n * Handler for the cookie policy modal close event, sets the flag to hide the modal.\n */\n $scope.onDialogClose = () => {\n $scope.showCookieConsentModal = false;\n };\n\n /**\n * Handler for the cookie policy link click event, sets the flag to show the modal.\n * @param $event\n */\n $scope.showCookiePolicy = ($event) => {\n // The button that triggers this handler is inside a form which has a submit property,\n // and we need to prevent that because it leads to a redirect to the home page.\n $event.preventDefault();\n $scope.showCookieConsentModal = true;\n };\n\n // =========================\n // Private functions\n // =========================\n\n const showCookiePolicyLink = () => {\n licenseService.updateLicenseStatus().then(() => {\n $scope.showCookiePolicyLink = TrackingService.isTrackingAllowed();\n });\n };\n\n const goBackToPreviousView = () => {\n waitBeforeRedirectBack = $timeout(function() {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n };\n\n const initUserData = function() {\n // Copy needed so that Cancel would work correctly, need to call updateCurrentUserData on OK\n $scope.user = {username: $scope.currentUserData.username};\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.user.external = $scope.currentUserData.external;\n $scope.user.appSettings = $scope.currentUserData.appSettings;\n // For backward compatibility\n if ($scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] === undefined) {\n $scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] = true;\n }\n $scope.userType = $scope.currentUserData.getUserType();\n $scope.grantedAuthorities = $scope.currentUserData.authorities.toUIModel();\n $scope.customRoles = $scope.currentUserData.authorities.getCustomRoles();\n };\n\n const processUser = () => {\n const principal = securityContextService.getAuthenticatedUser();\n $scope.currentUserData = principal.toUser();\n $scope.redirectAdmin();\n initUserData();\n };\n\n // =========================\n // Subscriptions\n // =========================\n\n $scope.$on('$destroy', function() {\n $timeout.cancel(waitBeforeRedirectBack);\n });\n\n // =========================\n // Initialization\n // =========================\n\n const initView = () => {\n processUser();\n $scope.setThemeMode();\n showCookiePolicyLink();\n };\n\n initView();\n}\n","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/security/controllers';\nimport 'angular/security/controllers/user-settings.controller';\nimport 'angular/core/services/jwt-auth.service';\nimport 'ng-tags-input/build/ng-tags-input.min';\n\nconst modules = [\n 'toastr',\n 'ui.bootstrap',\n 'ngRoute',\n 'graphdb.framework.security.controllers',\n 'graphdb.framework.security.controllers.user-settings',\n 'graphdb.framework.core.interceptors.unauthorized',\n 'graphdb.framework.core.interceptors.authentication',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.framework.security.directives'\n];\n\nangular.module('graphdb.framework.security', modules);\n","/*! ngTagsInput v3.2.0 License: MIT */!function(){\"use strict\";var a={backspace:8,tab:9,enter:13,escape:27,space:32,up:38,down:40,left:37,right:39,\"delete\":46,comma:188},b=9007199254740991,c=[\"text\",\"email\",\"url\"],d=angular.module(\"ngTagsInput\",[]);d.directive(\"tagsInput\",[\"$timeout\",\"$document\",\"$window\",\"$q\",\"tagsInputConfig\",\"tiUtil\",function(d,e,f,g,h,i){function j(a,b,c,d){var e,f,h,j,k={};return e=function(b){return i.safeToString(b[a.displayProperty])},f=function(b,c){b[a.displayProperty]=c},h=function(b){var d=e(b),f=d&&d.length>=a.minLength&&d.length<=a.maxLength&&a.allowedTagsPattern.test(d)&&!i.findInObjectArray(k.items,b,a.keyProperty||a.displayProperty);return g.when(f&&c({$tag:b})).then(i.promisifyValue)},j=function(a){return g.when(d({$tag:a})).then(i.promisifyValue)},k.items=[],k.addText=function(a){var b={};return f(b,a),k.add(b)},k.add=function(c){var d=e(c);return a.replaceSpacesWithDashes&&(d=i.replaceSpacesWithDashes(d)),f(c,d),h(c).then(function(){k.items.push(c),b.trigger(\"tag-added\",{$tag:c})})[\"catch\"](function(){d&&b.trigger(\"invalid-tag\",{$tag:c})})},k.remove=function(a){var c=k.items[a];return j(c).then(function(){return k.items.splice(a,1),k.clearSelection(),b.trigger(\"tag-removed\",{$tag:c}),c})},k.select=function(a){0>a?a=k.items.length-1:a>=k.items.length&&(a=0),k.index=a,k.selected=k.items[a]},k.selectPrior=function(){k.select(--k.index)},k.selectNext=function(){k.select(++k.index)},k.removeSelected=function(){return k.remove(k.index)},k.clearSelection=function(){k.selected=null,k.index=-1},k.getItems=function(){return a.useStrings?k.items.map(e):k.items},k.clearSelection(),k}function k(a){return-1!==c.indexOf(a)}return{restrict:\"E\",require:\"ngModel\",scope:{tags:\"=ngModel\",text:\"=?\",templateScope:\"=?\",tagClass:\"&\",onTagAdding:\"&\",onTagAdded:\"&\",onInvalidTag:\"&\",onTagRemoving:\"&\",onTagRemoved:\"&\",onTagClicked:\"&\"},replace:!1,transclude:!0,templateUrl:\"ngTagsInput/tags-input.html\",controller:[\"$scope\",\"$attrs\",\"$element\",function(a,c,d){a.events=i.simplePubSub(),h.load(\"tagsInput\",a,c,{template:[String,\"ngTagsInput/tag-item.html\"],type:[String,\"text\",k],placeholder:[String,\"Add a tag\"],tabindex:[Number,null],removeTagSymbol:[String,String.fromCharCode(215)],replaceSpacesWithDashes:[Boolean,!0],minLength:[Number,3],maxLength:[Number,b],addOnEnter:[Boolean,!0],addOnSpace:[Boolean,!1],addOnComma:[Boolean,!0],addOnBlur:[Boolean,!0],addOnPaste:[Boolean,!1],pasteSplitPattern:[RegExp,/,/],allowedTagsPattern:[RegExp,/.+/],enableEditingLastTag:[Boolean,!1],minTags:[Number,0],maxTags:[Number,b],displayProperty:[String,\"text\"],keyProperty:[String,\"\"],allowLeftoverText:[Boolean,!1],addFromAutocompleteOnly:[Boolean,!1],spellcheck:[Boolean,!0],useStrings:[Boolean,!1]}),a.tagList=new j(a.options,a.events,i.handleUndefinedResult(a.onTagAdding,!0),i.handleUndefinedResult(a.onTagRemoving,!0)),this.registerAutocomplete=function(){d.find(\"input\");return{addTag:function(b){return a.tagList.add(b)},getTags:function(){return a.tagList.items},getCurrentTagText:function(){return a.newTag.text()},getOptions:function(){return a.options},getTemplateScope:function(){return a.templateScope},on:function(b,c){return a.events.on(b,c,!0),this}}},this.registerTagItem=function(){return{getOptions:function(){return a.options},removeTag:function(b){a.disabled||a.tagList.remove(b)}}}}],link:function(b,c,g,h){var j,k,l=[a.enter,a.comma,a.space,a.backspace,a[\"delete\"],a.left,a.right],m=b.tagList,n=b.events,o=b.options,p=c.find(\"input\"),q=[\"minTags\",\"maxTags\",\"allowLeftoverText\"];j=function(){h.$setValidity(\"maxTags\",m.items.length<=o.maxTags),h.$setValidity(\"minTags\",m.items.length>=o.minTags),h.$setValidity(\"leftoverText\",b.hasFocus||o.allowLeftoverText?!0:!b.newTag.text())},k=function(){d(function(){p[0].focus()})},h.$isEmpty=function(a){return!a||!a.length},b.newTag={text:function(a){return angular.isDefined(a)?(b.text=a,void n.trigger(\"input-change\",a)):b.text||\"\"},invalid:null},b.track=function(a){return a[o.keyProperty||o.displayProperty]},b.getTagClass=function(a,c){var d=a===m.selected;return[b.tagClass({$tag:a,$index:c,$selected:d}),{selected:d}]},b.$watch(\"tags\",function(a){if(a){if(m.items=i.makeObjectArray(a,o.displayProperty),o.useStrings)return;b.tags=m.items}else m.items=[]}),b.$watch(\"tags.length\",function(){j(),h.$validate()}),g.$observe(\"disabled\",function(a){b.disabled=a}),b.eventHandlers={input:{keydown:function(a){n.trigger(\"input-keydown\",a)},focus:function(){b.hasFocus||(b.hasFocus=!0,n.trigger(\"input-focus\"))},blur:function(){d(function(){var a=e.prop(\"activeElement\"),d=a===p[0],f=c[0].contains(a);(d||!f)&&(b.hasFocus=!1,n.trigger(\"input-blur\"))})},paste:function(a){a.getTextData=function(){var b=a.clipboardData||a.originalEvent&&a.originalEvent.clipboardData;return b?b.getData(\"text/plain\"):f.clipboardData.getData(\"Text\")},n.trigger(\"input-paste\",a)}},host:{click:function(){b.disabled||k()}},tag:{click:function(a){n.trigger(\"tag-clicked\",{$tag:a})}}},n.on(\"tag-added\",b.onTagAdded).on(\"invalid-tag\",b.onInvalidTag).on(\"tag-removed\",b.onTagRemoved).on(\"tag-clicked\",b.onTagClicked).on(\"tag-added\",function(){b.newTag.text(\"\")}).on(\"tag-added tag-removed\",function(){b.tags=m.getItems(),h.$setDirty(),k()}).on(\"invalid-tag\",function(){b.newTag.invalid=!0}).on(\"option-change\",function(a){-1!==q.indexOf(a.name)&&j()}).on(\"input-change\",function(){m.clearSelection(),b.newTag.invalid=null}).on(\"input-focus\",function(){c.triggerHandler(\"focus\"),h.$setValidity(\"leftoverText\",!0)}).on(\"input-blur\",function(){o.addOnBlur&&!o.addFromAutocompleteOnly&&m.addText(b.newTag.text()),c.triggerHandler(\"blur\"),j()}).on(\"input-keydown\",function(c){var d,e,f,g,h=c.keyCode,j={};i.isModifierOn(c)||-1===l.indexOf(h)||(j[a.enter]=o.addOnEnter,j[a.comma]=o.addOnComma,j[a.space]=o.addOnSpace,d=!o.addFromAutocompleteOnly&&j[h],e=(h===a.backspace||h===a[\"delete\"])&&m.selected,g=h===a.backspace&&0===b.newTag.text().length&&o.enableEditingLastTag,f=(h===a.backspace||h===a.left||h===a.right)&&0===b.newTag.text().length&&!o.enableEditingLastTag,d?m.addText(b.newTag.text()):g?(m.selectPrior(),m.removeSelected().then(function(a){a&&b.newTag.text(a[o.displayProperty])})):e?m.removeSelected():f&&(h===a.left||h===a.backspace?m.selectPrior():h===a.right&&m.selectNext()),(d||f||e||g)&&c.preventDefault())}).on(\"input-paste\",function(a){if(o.addOnPaste){var b=a.getTextData(),c=b.split(o.pasteSplitPattern);c.length>1&&(c.forEach(function(a){m.addText(a)}),a.preventDefault())}})}}}]),d.directive(\"tiTagItem\",[\"tiUtil\",function(a){return{restrict:\"E\",require:\"^tagsInput\",template:'<ng-include src=\"$$template\"></ng-include>',scope:{$scope:\"=scope\",data:\"=\"},link:function(b,c,d,e){var f=e.registerTagItem(),g=f.getOptions();b.$$template=g.template,b.$$removeTagSymbol=g.removeTagSymbol,b.$getDisplayText=function(){return a.safeToString(b.data[g.displayProperty])},b.$removeTag=function(){f.removeTag(b.$index)},b.$watch(\"$parent.$index\",function(a){b.$index=a})}}}]),d.directive(\"autoComplete\",[\"$document\",\"$timeout\",\"$sce\",\"$q\",\"tagsInputConfig\",\"tiUtil\",function(b,c,d,e,f,g){function h(a,b,c){var d,f,h,i={};return h=function(){return b.tagsInput.keyProperty||b.tagsInput.displayProperty},d=function(a,c){return a.filter(function(a){return!g.findInObjectArray(c,a,h(),function(a,c){return b.tagsInput.replaceSpacesWithDashes&&(a=g.replaceSpacesWithDashes(a),c=g.replaceSpacesWithDashes(c)),g.defaultComparer(a,c)})})},i.reset=function(){f=null,i.items=[],i.visible=!1,i.index=-1,i.selected=null,i.query=null},i.show=function(){b.selectFirstMatch?i.select(0):i.selected=null,i.visible=!0},i.load=g.debounce(function(c,j){i.query=c;var k=e.when(a({$query:c}));f=k,k.then(function(a){k===f&&(a=g.makeObjectArray(a.data||a,h()),a=d(a,j),i.items=a.slice(0,b.maxResultsToShow),i.items.length>0?i.show():i.reset())})},b.debounceDelay),i.selectNext=function(){i.select(++i.index)},i.selectPrior=function(){i.select(--i.index)},i.select=function(a){0>a?a=i.items.length-1:a>=i.items.length&&(a=0),i.index=a,i.selected=i.items[a],c.trigger(\"suggestion-selected\",a)},i.reset(),i}function i(a,b){var c=a.find(\"li\").eq(b),d=c.parent(),e=c.prop(\"offsetTop\"),f=c.prop(\"offsetHeight\"),g=d.prop(\"clientHeight\"),h=d.prop(\"scrollTop\");h>e?d.prop(\"scrollTop\",e):e+f>g+h&&d.prop(\"scrollTop\",e+f-g)}return{restrict:\"E\",require:\"^tagsInput\",scope:{source:\"&\",matchClass:\"&\"},templateUrl:\"ngTagsInput/auto-complete.html\",controller:[\"$scope\",\"$element\",\"$attrs\",function(a,b,c){a.events=g.simplePubSub(),f.load(\"autoComplete\",a,c,{template:[String,\"ngTagsInput/auto-complete-match.html\"],debounceDelay:[Number,100],minLength:[Number,3],highlightMatchedText:[Boolean,!0],maxResultsToShow:[Number,10],loadOnDownArrow:[Boolean,!1],loadOnEmpty:[Boolean,!1],loadOnFocus:[Boolean,!1],selectFirstMatch:[Boolean,!0],displayProperty:[String,\"\"]}),a.suggestionList=new h(a.source,a.options,a.events),this.registerAutocompleteMatch=function(){return{getOptions:function(){return a.options},getQuery:function(){return a.suggestionList.query}}}}],link:function(b,c,d,e){var f,h=[a.enter,a.tab,a.escape,a.up,a.down],j=b.suggestionList,k=e.registerAutocomplete(),l=b.options,m=b.events;l.tagsInput=k.getOptions(),f=function(a){return a&&a.length>=l.minLength||!a&&l.loadOnEmpty},b.templateScope=k.getTemplateScope(),b.addSuggestionByIndex=function(a){j.select(a),b.addSuggestion()},b.addSuggestion=function(){var a=!1;return j.selected&&(k.addTag(angular.copy(j.selected)),j.reset(),a=!0),a},b.track=function(a){return a[l.tagsInput.keyProperty||l.tagsInput.displayProperty]},b.getSuggestionClass=function(a,c){var d=a===j.selected;return[b.matchClass({$match:a,$index:c,$selected:d}),{selected:d}]},k.on(\"tag-added tag-removed invalid-tag input-blur\",function(){j.reset()}).on(\"input-change\",function(a){f(a)?j.load(a,k.getTags()):j.reset()}).on(\"input-focus\",function(){var a=k.getCurrentTagText();l.loadOnFocus&&f(a)&&j.load(a,k.getTags())}).on(\"input-keydown\",function(c){var d=c.keyCode,e=!1;if(!g.isModifierOn(c)&&-1!==h.indexOf(d))return j.visible?d===a.down?(j.selectNext(),e=!0):d===a.up?(j.selectPrior(),e=!0):d===a.escape?(j.reset(),e=!0):(d===a.enter||d===a.tab)&&(e=b.addSuggestion()):d===a.down&&b.options.loadOnDownArrow&&(j.load(k.getCurrentTagText(),k.getTags()),e=!0),e?(c.preventDefault(),c.stopImmediatePropagation(),!1):void 0}),m.on(\"suggestion-selected\",function(a){i(c,a)})}}}]),d.directive(\"tiAutocompleteMatch\",[\"$sce\",\"tiUtil\",function(a,b){return{restrict:\"E\",require:\"^autoComplete\",template:'<ng-include src=\"$$template\"></ng-include>',scope:{$scope:\"=scope\",data:\"=\"},link:function(c,d,e,f){var g=f.registerAutocompleteMatch(),h=g.getOptions();c.$$template=h.template,c.$index=c.$parent.$index,c.$highlight=function(c){return h.highlightMatchedText&&(c=b.safeHighlight(c,g.getQuery())),a.trustAsHtml(c)},c.$getDisplayText=function(){return b.safeToString(c.data[h.displayProperty||h.tagsInput.displayProperty])}}}}]),d.directive(\"tiTranscludeAppend\",function(){return function(a,b,c,d,e){e(function(a){b.append(a)})}}),d.directive(\"tiAutosize\",[\"tagsInputConfig\",function(a){return{restrict:\"A\",require:\"ngModel\",link:function(b,c,d,e){var f,g,h=a.getTextAutosizeThreshold();f=angular.element('<span class=\"input\"></span>'),f.css(\"display\",\"none\").css(\"visibility\",\"hidden\").css(\"width\",\"auto\").css(\"white-space\",\"pre\"),c.parent().append(f),g=function(a){var b,e=a;return angular.isString(e)&&0===e.length&&(e=d.placeholder),e&&(f.text(e),f.css(\"display\",\"\"),b=f.prop(\"offsetWidth\"),f.css(\"display\",\"none\")),c.css(\"width\",b?b+h+\"px\":\"\"),a},e.$parsers.unshift(g),e.$formatters.unshift(g),d.$observe(\"placeholder\",function(a){e.$modelValue||g(a)})}}}]),d.directive(\"tiBindAttrs\",function(){return function(a,b,c){a.$watch(c.tiBindAttrs,function(a){angular.forEach(a,function(a,b){c.$set(b,a)})},!0)}}),d.provider(\"tagsInputConfig\",function(){var a={},b={},c=3;this.setDefaults=function(b,c){return a[b]=c,this},this.setActiveInterpolation=function(a,c){return b[a]=c,this},this.setTextAutosizeThreshold=function(a){return c=a,this},this.$get=[\"$interpolate\",function(d){var e={};return e[String]=function(a){return a},e[Number]=function(a){return parseInt(a,10)},e[Boolean]=function(a){return\"true\"===a.toLowerCase()},e[RegExp]=function(a){return new RegExp(a)},{load:function(c,f,g,h){var i=function(){return!0};f.options={},angular.forEach(h,function(h,j){var k,l,m,n,o,p;k=h[0],l=h[1],m=h[2]||i,n=e[k],o=function(){var b=a[c]&&a[c][j];return angular.isDefined(b)?b:l},p=function(a){f.options[j]=a&&m(a)?n(a):o()},b[c]&&b[c][j]?g.$observe(j,function(a){p(a),f.events.trigger(\"option-change\",{name:j,newValue:a})}):p(g[j]&&d(g[j])(f.$parent))})},getTextAutosizeThreshold:function(){return c}}}]}),d.factory(\"tiUtil\",[\"$timeout\",\"$q\",function(a,b){var c={};return c.debounce=function(b,c){var d;return function(){var e=arguments;a.cancel(d),d=a(function(){b.apply(null,e)},c)}},c.makeObjectArray=function(a,b){if(!angular.isArray(a)||0===a.length||angular.isObject(a[0]))return a;var c=[];return a.forEach(function(a){var d={};d[b]=a,c.push(d)}),c},c.findInObjectArray=function(a,b,d,e){var f=null;return e=e||c.defaultComparer,a.some(function(a){return e(a[d],b[d])?(f=a,!0):void 0}),f},c.defaultComparer=function(a,b){return c.safeToString(a).toLowerCase()===c.safeToString(b).toLowerCase()},c.safeHighlight=function(a,b){function d(a){return a.replace(/([.?*+^$[\\]\\\\(){}|-])/g,\"\\\\$1\")}if(a=c.encodeHTML(a),b=c.encodeHTML(b),!b)return a;var e=new RegExp(\"&[^;]+;|\"+d(b),\"gi\");return a.replace(e,function(a){return a.toLowerCase()===b.toLowerCase()?\"<em>\"+a+\"</em>\":a})},c.safeToString=function(a){return angular.isUndefined(a)||null==a?\"\":a.toString().trim()},c.encodeHTML=function(a){return c.safeToString(a).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")},c.handleUndefinedResult=function(a,b){return function(){var c=a.apply(null,arguments);return angular.isUndefined(c)?b:c}},c.replaceSpacesWithDashes=function(a){return c.safeToString(a).replace(/\\s/g,\"-\")},c.isModifierOn=function(a){return a.shiftKey||a.ctrlKey||a.altKey||a.metaKey},c.promisifyValue=function(a){return a=angular.isUndefined(a)?!0:a,b[a?\"when\":\"reject\"]()},c.simplePubSub=function(){var a={};return{on:function(b,c,d){return b.split(\" \").forEach(function(b){a[b]||(a[b]=[]);var e=d?[].unshift:[].push;e.call(a[b],c)}),this},trigger:function(b,d){var e=a[b]||[];return e.every(function(a){return c.handleUndefinedResult(a,!0)(d)}),this}}},c}]),d.run([\"$templateCache\",function(a){a.put(\"ngTagsInput/tags-input.html\",'<div class=\"host\" tabindex=\"-1\" ng-click=\"eventHandlers.host.click()\" ti-transclude-append><div class=\"tags\" ng-class=\"{focused: hasFocus}\"><ul class=\"tag-list\"><li class=\"tag-item\" ng-repeat=\"tag in tagList.items track by track(tag)\" ng-class=\"getTagClass(tag, $index)\" ng-click=\"eventHandlers.tag.click(tag)\"><ti-tag-item scope=\"templateScope\" data=\"::tag\"></ti-tag-item></li></ul><input class=\"input\" autocomplete=\"off\" ng-model=\"newTag.text\" ng-model-options=\"{getterSetter: true}\" ng-keydown=\"eventHandlers.input.keydown($event)\" ng-focus=\"eventHandlers.input.focus($event)\" ng-blur=\"eventHandlers.input.blur($event)\" ng-paste=\"eventHandlers.input.paste($event)\" ng-trim=\"false\" ng-class=\"{\\'invalid-tag\\': newTag.invalid}\" ng-disabled=\"disabled\" ti-bind-attrs=\"{type: options.type, placeholder: options.placeholder, tabindex: options.tabindex, spellcheck: options.spellcheck}\" ti-autosize></div></div>'),a.put(\"ngTagsInput/tag-item.html\",'<span ng-bind=\"$getDisplayText()\"></span> <a class=\"remove-button\" ng-click=\"$removeTag()\" ng-bind=\"::$$removeTagSymbol\"></a>'),a.put(\"ngTagsInput/auto-complete.html\",'<div class=\"autocomplete\" ng-if=\"suggestionList.visible\"><ul class=\"suggestion-list\"><li class=\"suggestion-item\" ng-repeat=\"item in suggestionList.items track by track(item)\" ng-class=\"getSuggestionClass(item, $index)\" ng-click=\"addSuggestionByIndex($index)\" ng-mouseenter=\"suggestionList.select($index)\"><ti-autocomplete-match scope=\"templateScope\" data=\"::item\"></ti-autocomplete-match></li></ul></div>'),a.put(\"ngTagsInput/auto-complete-match.html\",'<span ng-bind-html=\"$highlight($getDisplayText())\"></span>')}])}();"],"names":["UserSettingsController","$scope","toastr","$window","$timeout","$jwtAuth","$rootScope","$controller","ModalService","$translate","$q","$uibModal","TrackingService","angular","extend","this","passwordPlaceholder","securityService","service","SecurityService","authenticationService","AuthenticationService","securityContextService","SecurityContextService","licenseService","LicenseService","applicationSettingsStorageService","ApplicationSettingsStorageService","navigationContextService","NavigationContextService","themeService","ThemeService","waitBeforeRedirectBack","mode","showWorkbenchSettings","workbenchSettings","getApplicationSettings","selectedThemeMode","themeMode","saveButtonText","instant","pageTitle","grantedAuthorities","READ_REPO","WRITE_REPO","GRAPHQL","loader","noPassword","showCookiePolicyLink","showCookieConsentModal","hasEditRestrictions","isUser","userType","UserType","USER","goBack","previousRoute","getPreviousRoute","navigate","updateCurrentUserData","getCurrentUser","then","authenticatedUser","updateAuthenticatedUser","redirectAdmin","currentUserData","redirectToLogin","submit","ADMIN","openSimpleModal","title","message","warning","result","updateUser","updateUserHttp","user","User","username","password","undefined","appSettings","success","name","setThemeMode","setApplicationSettings","goBackToPreviousView","catch","data","msg","getError","error","finally","validateForm","validatePassword","onDialogClose","showCookiePolicy","$event","preventDefault","history","back","$on","cancel","processUser","principal","getAuthenticatedUser","toUser","confirmpassword","external","getUserType","authorities","toUIModel","customRoles","getCustomRoles","updateLicenseStatus","isTrackingAllowed","module","controller","$inject","b","c","d","directive","e","f","g","h","i","j","a","k","safeToString","displayProperty","length","minLength","maxLength","allowedTagsPattern","test","findInObjectArray","items","keyProperty","when","$tag","promisifyValue","addText","add","replaceSpacesWithDashes","push","trigger","remove","splice","clearSelection","select","index","selected","selectPrior","selectNext","removeSelected","getItems","useStrings","map","indexOf","restrict","require","scope","tags","text","templateScope","tagClass","onTagAdding","onTagAdded","onInvalidTag","onTagRemoving","onTagRemoved","onTagClicked","replace","transclude","templateUrl","events","simplePubSub","load","template","String","type","placeholder","tabindex","Number","removeTagSymbol","fromCharCode","Boolean","addOnEnter","addOnSpace","addOnComma","addOnBlur","addOnPaste","pasteSplitPattern","RegExp","enableEditingLastTag","minTags","maxTags","allowLeftoverText","addFromAutocompleteOnly","spellcheck","tagList","options","handleUndefinedResult","registerAutocomplete","find","addTag","getTags","getCurrentTagText","newTag","getOptions","getTemplateScope","on","registerTagItem","removeTag","disabled","link","l","m","n","o","p","q","$setValidity","hasFocus","focus","$isEmpty","isDefined","invalid","track","getTagClass","$index","$selected","$watch","makeObjectArray","$validate","$observe","eventHandlers","input","keydown","blur","prop","contains","paste","getTextData","clipboardData","originalEvent","getData","host","click","tag","$setDirty","triggerHandler","keyCode","isModifierOn","split","forEach","$$template","$$removeTagSymbol","$getDisplayText","$removeTag","tagsInput","filter","defaultComparer","reset","visible","query","show","selectFirstMatch","debounce","$query","slice","maxResultsToShow","debounceDelay","source","matchClass","highlightMatchedText","loadOnDownArrow","loadOnEmpty","loadOnFocus","suggestionList","registerAutocompleteMatch","getQuery","addSuggestionByIndex","addSuggestion","copy","getSuggestionClass","$match","stopImmediatePropagation","eq","parent","$parent","$highlight","safeHighlight","trustAsHtml","append","getTextAutosizeThreshold","element","css","isString","$parsers","unshift","$formatters","$modelValue","tiBindAttrs","$set","provider","setDefaults","setActiveInterpolation","setTextAutosizeThreshold","$get","parseInt","toLowerCase","newValue","factory","arguments","apply","isArray","isObject","some","encodeHTML","isUndefined","toString","trim","shiftKey","ctrlKey","altKey","metaKey","call","every","run","put"],"ignoreList":[],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_esm_id__=2975;export const __webpack_esm_ids__=[2975];export const __webpack_esm_modules__={2975(e,t,o){o(82493);var n=o(57154);function c(e){const t=(0,n.service)(n.RuntimeConfigurationContextService),o=[],c=document.getElementById("webapi_frame");if(!c)return;c.style.display="none";const r=()=>{try{const e=c.contentDocument||c.contentWindow?.document;if(!e?.documentElement)return;const t=getComputedStyle(document.documentElement),o=e.documentElement;for(const e of t){if(!e.startsWith("--gw-"))continue;const n=t.getPropertyValue(e);o.style.getPropertyValue(e)!==n&&o.style.setProperty(e,n)}c.style.display="block"}catch(e){c.style.display="block",console.error("Cannot access iframe styles:",e)}};let s;const a=()=>{"function"==typeof s&&s(),s=t.onThemeModeChanged(r)};c.addEventListener("load",a),o.push(()=>{c.removeEventListener("load",a)}),e.$on("$destroy",()=>{c.removeEventListener("load",a),"function"==typeof s&&(s(),s=void 0),o.forEach(e=>{try{e()}catch{}})})}angular.module("graphdb.framework.webapi",[]).controller("WebApiCtrl",c),c.$inject=["$scope"]}};
2
- //# sourceMappingURL=2975.8be1a79816fd811be223.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"2975.8be1a79816fd811be223.bundle.js","mappings":"uJASA,SAASA,EAAWC,GAChB,MAAMC,GAAqCC,EAAAA,EAAAA,SAAQC,EAAAA,oCAE7CC,EAAgB,GAEhBC,EAASC,SAASC,eAAe,gBACvC,IAAKF,EAED,OAGJA,EAAOG,MAAMC,QAAU,OAKvB,MAKMC,EAAaA,KACf,IACI,MAAMC,EALHN,EAAOO,iBAAmBP,EAAOQ,eAAeP,SAMnD,IAAKK,GAAWG,gBACZ,OAGJ,MAAMC,EAAaC,iBAAiBV,SAASQ,iBACvCG,EAAaN,EAAUG,gBAE7B,IAAK,MAAMI,KAAQH,EAAY,CAC3B,IAAKG,EAAKC,WAAW,SACjB,SAGJ,MAAMC,EAAQL,EAAWM,iBAAiBH,GACtCD,EAAWT,MAAMa,iBAAiBH,KAAUE,GAC5CH,EAAWT,MAAMc,YAAYJ,EAAME,EAE3C,CAEAf,EAAOG,MAAMC,QAAU,OAC3B,CAAE,MAAOc,GAGLlB,EAAOG,MAAMC,QAAU,QACvBe,QAAQC,MAAM,+BAAgCF,EAClD,GAGJ,IAAIG,EAEJ,MAAMC,EAAmBA,KAIiB,mBAA3BD,GACPA,IAEJA,EAAyBzB,EAAmC2B,mBAAmBlB,IA2BnFL,EAAOwB,iBAAiB,OAAQF,GAKhCvB,EAAc0B,KAHgBC,KAC1B1B,EAAO2B,oBAAoB,OAAQL,KAIvC3B,EAAOiC,IAAI,WArBYC,KACnB7B,EAAO2B,oBAAoB,OAAQL,GAEG,mBAA3BD,IACPA,IACAA,OAAyBS,GAd7B/B,EAAcgC,QAASC,IACnB,IACIA,GACJ,CAAE,MACE,KA2BhB,CArGAC,QACKC,OAAO,2BAA4B,IACnCC,WAAW,aAAczC,GAE9BA,EAAW0C,QAAU,CAAC,S","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/webapi/app.js"],"sourcesContent":["import 'angular/core/services';\nimport {RuntimeConfigurationContextService, service} from '@ontotext/workbench-api';\n\nangular\n .module('graphdb.framework.webapi', [])\n .controller('WebApiCtrl', WebApiCtrl);\n\nWebApiCtrl.$inject = ['$scope'];\n\nfunction WebApiCtrl($scope) {\n const runtimeConfigurationContextService = service(RuntimeConfigurationContextService);\n\n const subscriptions = [];\n\n const iframe = document.getElementById('webapi_frame');\n if (!iframe) {\n // If the template changes or the element isn't present, avoid throwing and breaking navigation.\n return;\n }\n\n iframe.style.display = 'none';\n\n // =========================\n // Private functions\n // =========================\n const getIframeDocument = () => {\n // Access may throw depending on iframe origin.\n return iframe.contentDocument || iframe.contentWindow?.document;\n };\n\n const syncStyles = () => {\n try {\n const iframeDoc = getIframeDocument();\n if (!iframeDoc?.documentElement) {\n return;\n }\n\n const rootStyles = getComputedStyle(document.documentElement);\n const iframeRoot = iframeDoc.documentElement;\n\n for (const prop of rootStyles) {\n if (!prop.startsWith('--gw-')) {\n continue;\n }\n\n const value = rootStyles.getPropertyValue(prop);\n if (iframeRoot.style.getPropertyValue(prop) !== value) {\n iframeRoot.style.setProperty(prop, value);\n }\n }\n\n iframe.style.display = 'block';\n } catch (e) {\n // If we can't access the iframe (cross-origin), avoid breaking navigation.\n // Show it anyway to avoid leaving the UI blank.\n iframe.style.display = 'block';\n console.error('Cannot access iframe styles:', e);\n }\n };\n\n let themeChangeUnsubscribe;\n\n const handleIframeLoad = () => {\n // Subscribe to theme changes when the iframe loads.\n // This prevents subscribing before the iframe document is available.\n // Also syncs immediately on subscription.\n if (typeof themeChangeUnsubscribe === 'function') {\n themeChangeUnsubscribe();\n }\n themeChangeUnsubscribe = runtimeConfigurationContextService.onThemeModeChanged(syncStyles);\n };\n\n const removeAllListeners = () => {\n subscriptions.forEach((subscription) => {\n try {\n subscription();\n } catch {\n // Ignore cleanup errors.\n }\n });\n };\n\n const destroyHandler = () => {\n iframe.removeEventListener('load', handleIframeLoad);\n\n if (typeof themeChangeUnsubscribe === 'function') {\n themeChangeUnsubscribe();\n themeChangeUnsubscribe = undefined;\n }\n\n removeAllListeners();\n };\n\n // =========================\n // Event handlers\n // =========================\n iframe.addEventListener('load', handleIframeLoad);\n\n const iframeLoadUnsubscribe = () => {\n iframe.removeEventListener('load', handleIframeLoad);\n };\n subscriptions.push(iframeLoadUnsubscribe);\n\n $scope.$on('$destroy', destroyHandler);\n}\n"],"names":["WebApiCtrl","$scope","runtimeConfigurationContextService","service","RuntimeConfigurationContextService","subscriptions","iframe","document","getElementById","style","display","syncStyles","iframeDoc","contentDocument","contentWindow","documentElement","rootStyles","getComputedStyle","iframeRoot","prop","startsWith","value","getPropertyValue","setProperty","e","console","error","themeChangeUnsubscribe","handleIframeLoad","onThemeModeChanged","addEventListener","push","iframeLoadUnsubscribe","removeEventListener","$on","destroyHandler","undefined","forEach","subscription","angular","module","controller","$inject"],"ignoreList":[],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_esm_id__=38644;export const __webpack_esm_ids__=[38644];export const __webpack_esm_modules__={38644(t,e,r){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,b=1.2,k=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=k.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.3.2");$("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",b).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",b).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=k.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",b).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",b)}(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=k.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");k.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=k.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(--gw-primary-base)").constant("ONTO_GREEN","var(--gw-tertiary-base)").constant("ONTO_BLUE","var(--gw-secondary-base)").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.0e8652c647a0f341abd7.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"38644.0e8652c647a0f341abd7.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(--gw-primary-base)')\n .constant('ONTO_GREEN', 'var(--gw-tertiary-base)')\n .constant('ONTO_BLUE', 'var(--gw-secondary-base)')\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.3.2\");\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"],"ignoreList":[],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_esm_id__=39518;export const __webpack_esm_ids__=[14319,39518,49342,78618];export const __webpack_esm_modules__={14319(e,t,n){n.d(t,{Ds:()=>r,VH:()=>i,nj:()=>s,vH:()=>o});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-_]+$"),s=new RegExp("^[0-9]+$")},19935(e,t,n){n.d(t,{A:()=>s}),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 s,a,c;a=n,c=i.pointer(document.body),Math.sqrt(Math.pow(a[0]-c[0],2),Math.pow(a[1]-c[1],2))>5||(r?(window.clearTimeout(r),r=null,t.call("dblclick",e,e,o)):r=window.setTimeout((s=e,function(){t.call("click",s,s,o),r=null}),250))})},t,"on")}}}();const s=o},39518(e,t,n){n(82493),n(96e3),n(18148);var r=n(19935),i=n(75468),o=n(93462),s=(n(32150),n(14319)),a=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,b,C,T,N,P){const A=(0,d.service)(d.SecurityContextService),M=(0,d.service)(d.RepositoryContextService);e.languageChanged=!1,e.propertiesObj={},e.propertiesObj.items=[],e.propertiesQueryObj={},e.propertiesQueryObj.query="",e.propertiesSearchPlaceholder=C.instant("visual.search.instance.placeholder"),e.propertiesNotFiltered=[],e.searchVisible=!1,e.nodeSelected=!1,e.queryResultsMode=!1,e.embedded=g.search().embedded,e.openedNodeInfoPanel=void 0,e.invalidLimit=!1,e.INVALID_LINKS_MSG=C.instant("sidepanel.invalid.limit.links.msg"),e.INVALID_LINKS_TOOLTIP=C.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,truncateNodeLabels:!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=()=>{z();const{config:e,...t}=g.search();g.path("/graphs-visualizations").search(t)},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("ri-arrow-down-s-line").toggleClass("ri-arrow-up-s-line")},e.copyToClipboard=e=>{v.openCopyToClipboardModal(e)},e.resetSettings=()=>{e.settings=_.cloneDeep(e.defaultSettings),e.validateLinksLimit(),B()},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=!s.nj.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),B()},e.updateSettings=()=>{e.invalidLimit?p.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?U(e.rootNodeIri):e.queryResultsMode&&g.search().query?q(g.search().query,g.search().sameAs,g.search().inference):"query"===e.configLoaded.startMode&&X(e.configLoaded),F(),e.showInfoPanel=!1,e.showFilter=!1,I.set(w.GRAPHS_VIZ,e.saveSettings))},e.getGraphConfigs=t=>{L.getGraphConfigs().success(function(n){e.graphConfigs=n,t&&t()}).error(function(e){p.error(getError(e),C.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=>{v.openSimpleModal({title:C.instant("common.confirm"),message:C.instant("graphexplore.delete.graph",{configName:t.name}),warning:!0}).result.then(function(){L.deleteGraphConfig(t).success(function(){e.getGraphConfigs(),e.refreshSavedGraphs()}).error(function(e){p.error(getError(e),C.instant("graphexplore.error.cannot.delete.config"))})})},e.goToGraphConfig=e=>{const t={config:e.id,[d.REPOSITORY_ID_PARAM]:M.getSelectedRepository().id};j(t,{config:e}),z(),X(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 R=[];R.push(t.$on("$translateChangeSuccess",function(){e.INVALID_LINKS_MSG=C.instant("sidepanel.invalid.limit.links.msg"),e.INVALID_LINKS_TOOLTIP=C.instant("sidepanel.invalid.limit.links.tooltip"),e.propertiesSearchPlaceholder=C.instant("visual.search.instance.placeholder")})),R.push(N.onAutocompleteEnabledUpdated(t=>{e.isAutocompleteEnabled=t})),R.push(M.onSelectedRepositoryChanged(t=>{t?P.getNamespaces(t.id).then(t=>{e.repositoryNamespaces=t,e.namespaces=t.namespaces}).catch(e=>{const t=getError(e);p.error(t,C.instant("error.getting.namespaces.for.repo"))}):e.repositoryNamespaces=new c.u})),R.push(e.$on("repositoryIsSet",function(t,n){const r=n||{newRepo:!1};r.newRepo&&(e.hasInitedRepository=!1),me(!!r.newRepo),r.newRepo&&(z(),$(".graph-visualization svg").empty(),g.search().query&&(e.goToHome(),W()))})),R.push(t.$watch(()=>t.key,()=>{te=0,_.each(e.propertiesObj.items,function(e){t.key>e&&te++}),ne++})),R.push(e.$watch("propertiesObj.items",()=>{angular.isDefined(e.propertiesObj.items)&&e.propertiesObj.items.length>0&&u(function(){e.adapterContainer.adapter.reload()},500)}));let O=!1,E=0;function G(e){O&&e.stopPropagation()}document.addEventListener("keydown",G,!0),e.$on("$destroy",()=>{R.forEach(e=>e()),document.removeEventListener("keydown",G,!0),window.onpopstate=null});const j=(t,n)=>{e.embedded&&(t.embedded=!0),g.search(t),n.skipOnPopState=!0,g.state(n)},z=()=>{e.searchVisible=!1,e.nodeSelected=!1,e.configLoaded=null,e.queryResultsMode=!1,e.lastSavedGraphName=null,e.lastSavedGraphId=null,e.shared=!1,e.numberOfPinnedNodes=0,re={},ie=0},D=()=>T.isActive()?e.defaultSettings:e.saveSettings,F=()=>{D().showLinksText?o.selectAll("svg .link-wrapper text").style("display","block"):o.selectAll("svg .link-wrapper text").style("display","none")},B=()=>{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}})},U=()=>{e.rootNodeIri&&e.$broadcast("onRootNodeChange",e.rootNodeIri)},W=()=>{g.search().query?(e.searchVisible=!1,e.queryResultsMode=!0,q(g.search().query,g.search().sameAs,g.search().inference)):e.$on("onRootNodeChange",function(t,n){e.loading=!0;const r=D();angular.isDefined(n)&&(e.rootNodeIri=n,b.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"),ge=new he;const n=ge.addNode(t.data,de/2,pe/2);le=ce,Ee(n,!0)}).catch(function(t){e.loading=!1,p.error(getError(t),C.instant("graphexplore.error.could.not.load.graph"))}))}),g.search().uri&&e.openUri(g.search().uri,!0),g.search().saved&&k.getSavedGraph(g.search().saved).success(function(t){e.loadSavedGraph(t)}).error(function(e){const t=getError(e);p.error(t,C.instant("graphexplore.error.could.not.open"))})},q=(t,n,r)=>{const i=D(),o=void 0===n?i.sameAsState:!0===n,s=void 0===r?i.includeInferred:!0===r;e.loading=!0,b.updateGraph({query:t,linksLimit:i.linksLimit,languages:e.shouldShowSettings()?i.languages:[],includeInferred:s,sameAsState:o}).then(function(e){Re(e)},function(t){e.loading=!1,p.error(getError(t.data),C.instant("graphexplore.error.cannot.load.graph"))})},K=(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,a.hK)(K(e.iri)));if(t&&void 0!==t.__data__.x)return t.__data__.x}return e.x},Z=e=>{if(e.isTriple){const t=document.getElementById((0,a.hK)(K(e.iri)));if(t&&void 0!==t.__data__.y)return t.__data__.y}return e.y},Q=e=>{const t=e.trim().split(" ");return`<<<${t[0]}> <${t[1]}> <${t[2]}>>>`},J=e=>{const t=e.source.isTriple?K(e.source.iri,!0):e.source.iri,n=e.target.isTriple?K(e.target.iri,!0):e.target.iri;return(0,a.hK)(`${t}>${n}>marker`)},Y=(e,t)=>{const n=t.map(t=>t[e]);return t.filter((t,r)=>n.indexOf(t[e])===r)},X=t=>{e.configLoaded=t,"search"===t.startMode?e.searchVisible=!0:"node"===t.startMode&&t.startIRI?u(function(){e.openUri(t.startIRI,!0)},0):"query"===t.startMode&&t.startGraphQuery&&(e.loading=!0,L.loadGraphForConfig(t,t.startQueryIncludeInferred,D().linksLimit,t.startQuerySameAs).then(function(e){Re(e)},function(t){e.loading=!1,p.error(getError(t),C.instant("graphexplore.error.graph.load"))}))},ee=function(){var t,n;g.search().config?(t=g.search().config,n=W,t===e.defaultGraphConfig.id?X(e.defaultGraphConfig):L.getConfig(t).then(e=>{X(e),n()}).catch(e=>{p.error(getError(e),C.instant("graphexplore.error.could.not.load.config",{configId:t}))})):g.search().query||g.search().uri?(X(e.defaultGraphConfig),W()):W()};S.onpopstate=function(t){t.state&&t.state.skipOnPopState||(z(),t.state&&(t.state.config?(X(t.state.config),t.state.uri&&e.openUri(t.state.uri,!0)):t.state.savedGraph&&e.loadSavedGraph(t.state.savedGraph,!0)))},e.embedded&&(g.search().query||g.search().uri||g.search().config||g.search().saved)&&(e.noGoHome=!0);let te=0,ne=0,re={},ie=0;const oe=16,se=o.zoom().scaleExtent([.1,10]);let ae;const ce=o.zoomIdentity.translate(0,-70).scale(1);se.on("zoom",function(e){T.isActive()||(le=e.transform,ae.attr("transform",le))});let le=ce;const de=1e3,pe=1e3;let ue,fe;function he(){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?Fe(e.source):_.find(t,function(t){return t.iri===e.source}),r=e.isTripleTarget?Fe(e.target):_.find(t,function(t){return t.iri===e.target});const i={source:n,target:r,predicates:e.predicates};if(e.isTripleSource||e.isTripleTarget){const e=`${i.source.isTriple?K(i.source.iri):i.source.iri}>${i.target.isTriple?K(i.target.iri):i.target.iri}`;if(ge.tripleLinksCopy.has(e)){const t=ge.tripleLinksCopy.get(e);return t[0].predicates.push(...i.predicates),t.push(i),ge.tripleLinksCopy.set(e,t),null}ge.tripleLinksCopy.set(e,[i])}return i})}(e,t));for(const e of ge.tripleLinksCopy.keys())1===ge.tripleLinksCopy.get(e).length&&ge.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){const t=[];this.tripleNodes.size>0&&e.forEach(e=>{this.tripleNodes.has(e)&&(this.tripleNodes.delete(e),this.links=_.reject(this.links,function(n){const r=e.split(">"),i=K(n.source.iri),o=K(n.target.iri);if(i===e&&ge.tripleNodes.delete(o)){const e=o.split(">");t.push({source:e[0],target:e[1]})}const s=i===e||o===e||n.source.iri===r[0]&&n.target.iri===r[1];return s&&(ge.tripleLinksCopy.delete(`${i}>${o}`),ge.tripleLinksCopy.delete(`${o}>${i}`)),s}))}),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){const r=[];this.links=_.reject(this.links,function(e){const t=e.source.iri===n.iri||e.target.iri===n.iri;return t&&(e.target.isTriple&&r.push(K(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){const r=[];let i=this.links;this.links=_.reject(this.links,function(o){let s=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(!s){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;s=(r[0].source.iri===e.iri||r[0].target.iri)&&(r[1].source.iri===e.iri||r[1].target.iri)}return s&&(o.target.isTriple&&r.push(K(o.target.iri)),o.source.isTriple||o.target.isTriple||r.push([o.source.iri,o.target.iri].join(">"))),s}),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;const r=K(e.iri);if(this.tripleNodes.has(r)){const 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:ie,type2color:re,transform:le}},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)&&(ie=t.colorIndex,re=_.cloneDeep(t.type2color)),angular.isDefined(t.transform)&&(le=o.zoomIdentity.translate(t.transform.x,t.transform.y).scale(t.transform.k)),Te()}}e.datasource={get:function(t,n,r){return y.initLazyList(t,n,r,te,e.propertiesObj.items)},revision:function(){return ne}},e.showInfoPanel=!1;let ge=new he;function me(t){!n.getActiveRepository()||e.hasInitedRepository&&!t||(e.hasInitedRepository=!0,t||e.getGraphConfigs(ee))}e.addedTag=function(t){return t.text.indexOf(":")<0?(p.warning(C.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=f.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?p.warning(C.instant("graphexplore.absolute.prefixed.iri.option"),t):p.warning(C.instant("graphexplore.absolute.prefixed.iri"),t),!1;const r=e.text.indexOf("*");if(r>=0){if(!n)return p.warning(C.instant("graphexplore.wildcards.not.allowed"),t),!1;if(r<e.text.length-1)return p.warning(C.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(0,d.service)(d.LicenseContextService).getLicenseSnapshot().valid};const ye=500,ve=1.75,xe=o.scaleLinear().domain([0,9]).range(["hsl(0, 100%, 75%)","hsl(360, 90%, 82%)"]).interpolate(o.interpolateHslLong),Se=o.scaleLinear().domain([0,9]).range(["hsl(180, 50%, 75%)","hsl(540, 40%, 82%)"]).interpolate(o.interpolateHslLong);e.getColor=function(e){angular.isUndefined(re[e])&&(re[e]=ie,ie++);const t=re[e];return t>39?"#c2c2c2":t%2==0?xe(t/2):Se(t/2)};const Ie=o.forceX(de/2).strength(.005),we=o.forceY(pe/2).strength(.005),ke=o.forceSimulation().force("x",Ie).force("y",we),Le=o.select(".main-container .graph-visualization").append("svg").attr("viewBox","0 0 "+de+" "+pe).attr("preserveAspectRatio","xMidYMid meet");let be=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.3.2").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=Le.append("g").attr("class","nodes-container").attr("transform",function(){return angular.isDefined(le)&&!t?le:""});const n=(0,i.A)().attr("class","d3-tip").customPosition(function(){const e=ue.getBoundingClientRect();return{top:e.bottom+10+"px",left:e.left-30+"px"}}).html(function(t){let n="";return t.fixed&&(n+='<i class="ri-pushpin-line"></i>&nbsp;&nbsp;'),t.types.length>0?n+=t.types.map(t=>`<div> · ${e.replaceIRIWithPrefix(t)}</div>`).join(""):n+=`<i>${C.instant("visual.node.tooltip.no_types")}</i>`,n}),s=function(e){let t="";return t+=_.join(_.map(e.predicates,function(t,n){if(0===n)return Ue(t);if(n<10)return" · "+Ue(t);if(10===n){const t=function(e){return e.predicates.length-10}(e),n=t>1?t+" predicates":t+" predicate";return" · "+C.instant("graphexplore.tip.text",{textToShow:n})}}),""),t};let c,d;const f=(0,i.A)().attr("class","d3-tip").customPosition(function(e){const t=c.getBoundingClientRect(),n=function(e){const t=s(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 s(e)});let h;const g=function(){u.cancel(h),u.cancel(be),ue=null,n.hide(),Ce=u(function(){Ge()},500)};Le.call(n),Le.call(f);let m=Le.selectAll(".link"),y=Le.selectAll(".node");const v=o.forceCollide(e=>e.size+5).strength(.5),x=o.forceManyBody().strength(-300),S=o.forceCenter(de/2,pe/2);ke.nodes(ge.nodes).force("charge",x).force("collide",v).force("center",S).force("link",o.forceLink(ge.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(ge.links).enter().append("marker").attr("class","arrow-marker").attr("id",function(e){return J(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(ge.links).enter().append("g").attr("class","link-wrapper").attr("id",function(e){return(0,a.hK)(V(e))}).append("line").attr("class","link").style("stroke-width",1).style("fill","transparent").style("marker-end",function(e){return`url(#${J(e)})`});const I=ae.selectAll(".link-wrapper").append("text").text(function(e){return Be(e)}).attr("class",function(e){return e.predicates.length>1||ge.tripleNodes.has(V(e))?"predicates":"predicate"}).attr("dy","-0.5em").style("text-anchor","middle").style("display",D().showLinksText?"":"none").on("mouseover",function(e,t){e.stopPropagation(),function(e,t){u.cancel(d);const n=c=e.target;u(function(){c===n&&t.predicates.length>1&&f.show(t,c)},300)}(e,t)}).on("mouseout",function(){u.cancel(d),c=null,f.hide()}).on("click",function(t,n){t.stopPropagation(),function(t,n){$e();const r=V(n);if(1===n.predicates.length&&ge.tripleNodes.has(r)){fe=null;const e=ge.tripleNodes.get(r)[0];if(Ae(e,t.currentTarget,t.button)){const t={};t.iri=e.iri,t.pred=Ue(e.iri.split(" ")[1]),ze(t)}return}!function(t){if(e.showNodeInfo=!1,e.showPredicates=t.predicates.length>1,e.showFilter=!1,e.showInfoPanel=!1,fe===t)return e.showNodeInfo=!1,e.showInfoPanel=!1,void(fe=null);fe=t,e.showPredicates&&(e.predicates=_.map(t.predicates,function(e){const n=function(e,t){const n=V(t);return ge.tripleNodes.has(n)?ge.tripleNodes.get(n).findIndex(t=>t.iri.indexOf(e)>=0):-1}(e,t),r=n>-1;return{value:Ue(e),partOfTriple:r,linkId:r?V(t):"",nodeIndex:n}}),e.showInfoPanel=!0)}(n)}(t,n)});let w,k=0,L=null,b=null;const N=function(t,n,r){const i=Array.isArray(r)?r[n]:r;ge.countLinks(t,ge.links)<=D().linksLimit?Ee(t,!1,i):p.info(C.instant("graphexplore.increase.limit"),C.instant("graphexplore.node.at.max")),e.closeInfoPanel()};function P(e,t){let n,r,i,o,s=!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,s=!1}let a=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=a),s&&(a=a.transition().duration(1e3).style("font-size",function(){return r+"px"}).attr("opacity",o),"down-fixed"!==t&&a.remove())}const A=o.drag().subject(function(e){return e}).on("start",function(e,t){T.isActive()||0===e.sourceEvent.button&&(t.fixedBeforeDrag=t.fixed,t.isBeingDragged=!0,t.beginDragging=!0,Ge(),o.select(e.currentTarget).classed("dragging",!0),ke.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(e.currentTarget).classed("dragging",!1)),ke.alphaTarget(0)});y=ae.selectAll(".node").data(ge.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){if(!r.isBeingDragged){u.cancel(Ce);const i=t.currentTarget;be=u(()=>{(function(t,n){return!e.showInfoPanel&&((Pe.closeIcon||Pe.expandIcon||Pe.focusIcon||Pe.copyURIIcon)&&Pe.removeIcons(),ke.alpha()<.1&&(Pe.initIcons(t,n.parentNode),ke.stop(),Ne(),!0))})(r,i)&&function(e,t){u.cancel(h);const r=ue=t.target;u(function(){ue===r&&n.show(e,ue)},300)}(r,t)},400)}}).on("mouseout",g).on("click",function(t,n){if(t.button&&0!==t.button)return;const r=t.currentTarget;if(L&&b===r)return u.cancel(L),L=null,void N(n,0,r.parentNode);b=r,g(),e.showPredicates=!1,T.isActive()||(u.cancel(L),L=u(function(){Ae(n,0,t),L=null},40+ye))}).on("touchstart",(e,t)=>function(e){k=0,w=u(function(){k<5&&Me(e),w=null},1e3)}(t)).on("touchmove",function(){k++}).on("touchend",function(){u.cancel(w),w=null}).on("contextmenu",function(t,r){t.shiftKey||(t.preventDefault(),Ge(),e.closeInfoPanel(),r.fixed?(e.numberOfPinnedNodes--,r.fixed=!1,r.fx=null,r.fy=null,P(r,"up"),ke.alpha(1).restart()):(e.numberOfPinnedNodes++,r.fixed=!0,P(r,"down")),function(e){ue&&n.show(e,ue)}(r))}).on("gdb-expand-node",(e,t)=>N(t,0,e.srcElement.parentNode)).on("gdb-show-node-info",(e,t)=>je(t)).call(A);const M=e.saveSettings.truncateNodeLabels?"hidden":"visible",R=ae.selectAll(".node-wrapper").append("foreignObject").style("pointer-events","none").style("overflow",M).attr("width",function(e){return 2*e.size*ve});ae.insert("g").attr("class","menu-events"),(t=>{t.each(function(e){e.fontSize=r.A.Text.calcFontSizeRaw(e.labels[0].label,e.size,oe,!0)}).attr("height",function(e){return 4.2*e.fontSize}).append("xhtml:div").attr("class","node-label-body").classed("truncated-label",e.saveSettings.truncateNodeLabels).style("font-size",function(e){return e.fontSize+"px"}).append("xhtml:div").html(function(e){return l.U.getText(e.labels[0].label).replaceAll("\n","<br>")})})(R),ke.on("tick",function(){m.attr("x1",function(e){return H(e.source)}).attr("y1",function(e){return Z(e.source)}).attr("x2",function(e){return H(e.target)}).attr("y2",function(e){return Z(e.target)}),I.attr("x",function(e){const t=H(e.source),n=H(e.target);return e.x=.5*(t+n)}).attr("y",function(e){const t=Z(e.source),n=Z(e.target);return e.y=.5*(t+n)}).attr("transform",function(e){return"rotate("+function(e,t){const n=H(e.source),r=Z(e.source),i=H(e.target),o=Z(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}),R.attr("x",function(e){return e.x-e.size*ve}).attr("y",function(e){return e.y-4.2*e.fontSize/2}),o.select(".pinned").attr("x",function(e){return e.x}).attr("y",function(e){return e.y}),Ne()}),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,a.hK)(n.source.iri),i=(0,a.hK)(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(),ke.alpha(.3).restart()}function Ne(){t.d3alpha=ke.alpha()}const Pe=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,s){const a=(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});Le.call(a),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(--gw-primary-base)"),this.collapseIcon.on("click",function(){var e;(e=r).isExpanded=!1,ge.removeNodeLeafLinks(e),Te()}).on("mouseover",function(e){a.show(e.currentTarget.getAttribute("name"),e),u.cancel(be),u.cancel(Ce)}).on("mouseout",function(){a.hide(),Ce=u(function(){Ge()},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(--gw-primary-base)"),this.expandIcon.on("click",function(){Ee(r,!1,s)}).on("mouseover",function(e){a.show(e.currentTarget.getAttribute("name"),e),u.cancel(Ce),u.cancel(be)}).on("mouseout",function(){a.hide(),Ce=u(function(){Ge()},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(--gw-primary-base)"),this.focusIcon.on("click",function(){t.$broadcast("onRootNodeChange",r.iri)}).on("mouseover",function(e){a.show(e.currentTarget.getAttribute("name"),e),u.cancel(Ce),u.cancel(be)}).on("mouseout",function(){a.hide(),Ce=u(function(){Ge()},500)}),this.copyURIIcon=o.select(".menu-events").append("g").attr("class","ri-links-line").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(--gw-primary-base)"),this.copyURIIcon.on("click",function(){e.copyToClipboard(r.iri),Ge(),a.hide()}).on("mouseover",function(e){a.show("<div style='text-align: center;'><b>Copy to ClipBoard</b><br>"+r.iri+"</div>",e),u.cancel(Ce),u.cancel(be)}).on("mouseout",function(){a.hide(),Ce=u(function(){Ge()},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(--gw-primary-base)"),this.closeIcon.on("click",function(){Me(r)}).on("mouseover",function(e){a.show(e.currentTarget.getAttribute("name"),e),u.cancel(Ce),u.cancel(be)}).on("mouseout",function(){a.hide(),Ce=u(function(){Ge()},500)}),this.animateMenu(r)},this.animateMenu=function(e){const t=100,r=o.easeSin;let i=0,s=20;this.expandIcon&&this.expandIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return n(s,e)}).delay(i+=35),this.collapseIcon&&this.collapseIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return n(s,e)}).delay(i+=35),this.copyURIIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return s+=30,n(s,e)}).delay(i+=35),this.focusIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return s+=30,n(s,e)}).delay(i+=35),this.closeIcon.transition().duration(t).style("opacity",1).ease(r).attr("transform",function(){return s+=30,n(s,e)}).delay(i+=35),this.expandedState=!0}};function Ae(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?(Me(n),!1):void 0!==e.openedNodeInfoPanel&&e.openedNodeInfoPanel===n?(e.pageslideExpanded=!1,e.openedNodeInfoPanel=void 0,!1):(je(n),!0)}function Me(e){ge.removeNode(e),Te()}function Re(t){!function(t){e.nodeSelected=!0,null===t.data.types&&(t.data.types="greyColor"),ge=new he,le=ce}(t),Oe(t)}function Oe(t,n,r){let i=t.data;i=_.filter(i,function(e){return-1===_.findIndex(ge.links,function(t){return e.source===t.source.iri&&e.target===t.target.iri})});const o=[],s=ge.tripleLinksCopy.values();for(let e=0;e<ge.tripleLinksCopy.size;e++)s.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 a=Y("iri",_.union(_.flatten(_.map(t.data,function(e){return[{iri:e.source,isTriple:e.isTripleSource},{iri:e.target,isTriple:e.isTripleTarget}]})))),c=_.map(ge.nodes,function(e){return{iri:e.iri,isTriple:Boolean(e.isTriple)}}),l=ge.tripleNodes.values();for(let e=0;e<ge.tripleNodes.size;e++)l.next().value.forEach(e=>{c.push({iri:e.iri,isTriple:e.isTriple})});const d=_.reject(a,function(e){return _.some(c,e)});if(0===d.length){const e=a.length>0?a.length-1:0;(r||0===i.length)&&p.info(C.instant("graphexplore.error.node.connections",{count:e})),ge.addAndMatchLinks(i),Te()}else{const t=[],r=[],o=D();_.forEach(d,function(n,i){t.push(b.getInstanceNode({iri:n.isTriple?Q(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}))}),h.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)*pe/3,s=(n?n.y:0)+Math.sin(i)*pe/3;e.isTriple?ge.addTriple(e,o,s):ge.addNode(e,o,s)}),ge.addAndMatchLinks(i),n&&(n.isExpanded=!0),Te()})}}function Ee(t,n,r){if(_e.getLoadingState())return;_e.init(t,r);const i=D(),o=t.iri;b.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){Oe(e,t,n)},function(t){const n=getError(t.data);p.error(n,C.instant("graphexplore.error.exploring.node")),e.loading=!1,_e.setLoadingState(!1)})}function Ge(){angular.isDefined(Pe)&&Pe.expandedState&&Pe.removeIcons()}function je(t){ke.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(Q(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=D();b.getProperties({iri:t.isTriple?Q(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){p.warning(getError(e.data),"Error")})}function ze(e){De("predicate","var(--gw-primary-dark)",e),De("predicates","var(--gw-primary-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(--gw-primary-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(--gw-primary-dark)",t.__data__.target.isTriple||t.setAttribute("refX","23"))})}function De(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),K(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=Be(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}),De("predicate",""),De("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 Fe(e){const t=K(e);if(ge.tripleNodes.has(t))return ge.tripleNodes.get(t).find(t=>t.iri===e)}function Be(e){return e.predicates.length>1?e.predicates.length+" predicates":Ue(e.predicates[0])}function Ue(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=[],fe=null,u(function(){e.showInfoPanel=!1})},e.clickLink=function(t){if(ge.tripleNodes.has(t.linkId)){$e();const n=ge.tripleNodes.get(t.linkId)[t.nodeIndex];je(n),e.showPredicates=!0;const r=document.getElementById(t.linkId+t.nodeIndex);r&&(r.style.fontWeight="bold");const i={},o=ge.tripleLinksCopy.values();for(let e=0;e<ge.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=K(t.target.iri),i.oppTriplePred=Ue(t.target.iri.split(" ")[1])),i.pred=Ue(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=K(t.source.iri),i.oppTriplePred=Ue(t.source.iri.split(" ")[1])),i.pred=Ue(n.iri.split(" ")[1]),1===t.predicates.length&&(i.linkPred=t.predicates[0]),!1))}i.iri||(i.iri=n.iri,i.pred=Ue(n.iri.split(" ")[1])),ze(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){Ge();const t=10*(e?1:-1)*Math.PI/180,n=Math.cos(t),r=Math.sin(t),i=de/2,s=pe/2;o.selectAll(".node-wrapper").each(function(e){e.x=i+(n*(e.x-i)+r*(e.y-s)),e.y=s+(-r*(e.x-i)+n*(e.y-s)),e.fixed&&(e.fx=e.x,e.fy=e.y)}),ke.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,n[d.REPOSITORY_ID_PARAM]=M.getSelectedRepository().id,j(n,{uri:t,config:e.configLoaded})}e.$broadcast("onRootNodeChange",t)},e.saveOrUpdateGraph=function(){const t=JSON.stringify(ge.copyState()),n={id:e.lastSavedGraphId,name:e.lastSavedGraphName,data:t,shared:e.shared,repositoryId:M.getSelectedRepository().id};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=x.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}}}});E++,O=!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),k.addNewSavedGraph(t).success(function(n,r,i){e.lastSavedGraphName=t.name,e.lastSavedGraphId=i()["x-saved-graph-id"],e.shared=t.shared,e.refreshSavedGraphs(),p.success(C.instant("graphexplore.saved.graph",{name:t.name}))}).error(function(n,r){if(422===r)e.saveGraphModal("new",t,!0);else{const e=getError(n);p.error(e,C.instant("graphexplore.error.cannot.create.graph"))}})}(t.graph);break;case"update":case"rename":n=t.graph,k.editSavedGraph(n).success(function(){e.lastSavedGraphName=n.name,e.shared=n.shared,e.refreshSavedGraphs(),p.success(C.instant("graphexplore.saved.graph.was.edited",{name:n.name}))}).error(function(e){const t=getError(e);p.error(t,C.instant("graphexplore.error.cannot.edit"))})}var n}).finally(()=>{E--,E<=0&&(O=!1,E=0)})},e.refreshSavedGraphs=function(){k.getSavedGraphs().success(function(t){e.savedGraphs=t}).error(function(e){const t=getError(e);p.error(t,C.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);const r={...g.search(),saved:t.id,[d.REPOSITORY_ID_PARAM]:M.getSelectedRepository().id};ge.restoreState(JSON.parse(t.data)),n||j(r,{savedGraph:t})},e.copyToClipboardSavedGraph=function(t){const n=new URL(window.location.href);n.searchParams.set("saved",t.id),n.searchParams.set(d.REPOSITORY_ID_PARAM,M.getSelectedRepository().id),e.copyToClipboard(n.toString())},e.deleteSavedGraph=function(t){v.openSimpleModal({title:C.instant("common.confirm"),message:C.instant("graphexplore.confirm.delete.graph",{graphName:t.name}),warning:!0}).result.then(function(){!function(t){k.deleteSavedGraph(t).success(function(){e.refreshSavedGraphs(),p.success(C.instant("graphexplore.saved.graph.was.deleted",{name:t.name}))}).error(function(e){const t=getError(e);p.error(t,C.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(){Ge();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)}),ke.alpha(1).restart()},$("body").on("keydown",function(t){!T.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)};let We=!1;(()=>{if(!We){Le.append("rect").attr("width",10*de).attr("height",10*pe).attr("x",-(10*de-de)/2).attr("y",-(10*pe-pe)/2).style("fill","none").style("pointer-events","all").call(se).on("click",function(e){e.stopPropagation(),Ge(),ke.stop()});const e=e=>{e.preventDefault()};Le.node().addEventListener("wheel",e,{passive:!1}),R.push(()=>Le.node().removeEventListener("wheel",e)),We=!0}(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=I.get(w.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{e.saveSettings=_.cloneDeep(e.defaultSettings),I.set(w.GRAPHS_VIZ,e.saveSettings)}else e.saveSettings=_.cloneDeep(e.defaultSettings)})(A.getAuthenticatedUser()),me()})()}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","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)],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),void 0===i||(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,s=null,a=null,c=null;function l(e){var t;o="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,s=o.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(a=r.pop());var i,o=n.apply(this,r),s=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+s[0]+m+"px").style("left",i.left+s[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=a||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 s.x=l,s.y=d,n.nw=s.matrixTransform(r),s.x+=o,n.ne=s.matrixTransform(r),s.y+=c,n.se=s.matrixTransform(r),s.x-=o,n.sw=s.matrixTransform(r),s.y-=c/2,n.w=s.matrixTransform(r),s.x+=o,n.e=s.matrixTransform(r),s.x-=o/2,s.y-=c/2,n.n=s.matrixTransform(r),s.y+=c,n.s=s.matrixTransform(r),n}function g(e){return"function"==typeof e?e:function(){return e}}return l}},78618(e,t,n){n.d(t,{G4:()=>o,Sn:()=>s,hK:()=>i});var r=n(98980);const i=e=>e.replace(/[()']/g,""),o=e=>"string"==typeof e?"true"===e:Boolean(e),s=e=>e?(0,r.upperFirst)(e.toLowerCase()):e}};
2
- //# sourceMappingURL=39518.4d72b74fffba395c6b2a.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"39874.710e94f211579215f997.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/shared-components/dist/esm/onto-layout.entry.js","webpack://root-config/./packages/shared-components/dist/esm/function-utils-D1ZpXQQS.js","webpack://root-config/./packages/shared-components/dist/esm/translation.service-nljGIprK.js"],"sourcesContent":["import { r as registerInstance, h, a as Host, g as getElement } from './index-CGqARDX4.js';\nimport { d as debounce } from './function-utils-D1ZpXQQS.js';\nimport { service, AuthenticationService, AuthorizationService, NavigationContextService, AuthenticationStorageService, RuntimeConfigurationContextService, EventService, ApplicationLifecycleContextService, StorageKey, SubscriptionList, LocalStorageSubscriptionHandlerService, WindowService, navigate, SecurityContextService, EventName } from '@ontotext/workbench-api';\nimport { T as TranslationService } from './translation.service-nljGIprK.js';\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:\"header header\" auto \"nav main\" 1fr \"nav footer\" auto/15rem minmax(200px, 1fr);min-height:100vh;margin:0;}.wb-layout.expanded{grid-template-columns:4.375rem 1fr}.wb-layout.is-embedded{grid-template-columns:1fr;grid-template-areas:\"main\";padding-top:1rem}.wb-layout.hide-navbar{grid-template:\"header\" auto \"main\" 1fr \"footer\" auto/1fr;}.wb-layout.hide-navbar.expanded{grid-template-columns:1fr}.wb-layout main .main-container{margin-left:0}.wb-layout .main-slot-wrapper .loader-wrapper{flex-grow:1;display:flex;align-items:center;justify-content:center}.wb-layout .main-slot-wrapper.loading{display:flex;flex-direction:column}.wb-layout .main-slot-wrapper.loading .page-content{visibility:hidden}.wb-layout .default-slot-wrapper{display:none}.wb-layout .wb-header{position:sticky;top:0;z-index:999}.wb-layout nav{grid-area:nav}.wb-layout header{grid-area:header}.wb-layout main{grid-area:main}.wb-layout footer{grid-area:footer}`;\n\nconst OntoLayout = class {\n // ========================\n // Lifecycle methods\n // ========================\n constructor(hostRef) {\n registerInstance(this, hostRef);\n // ========================\n // Services\n // ========================\n this.authenticationService = service(AuthenticationService);\n this.authorizationService = service(AuthorizationService);\n this.navigationContextService = service(NavigationContextService);\n this.authStorageService = service(AuthenticationStorageService);\n this.runtimeConfigurationContextService = service(RuntimeConfigurationContextService);\n this.eventService = service(EventService);\n this.applicationLifecycleContextService = service(ApplicationLifecycleContextService);\n this.fullJwtKey = `${StorageKey.GLOBAL_NAMESPACE}.${this.authStorageService.NAMESPACE}.${this.authStorageService.jwtKey}`;\n this.fullAuthenticatedKey = `${StorageKey.GLOBAL_NAMESPACE}.${this.authStorageService.NAMESPACE}.${this.authStorageService.authenticatedKey}`;\n this.authEvents = [this.fullJwtKey, this.fullAuthenticatedKey];\n this.isLowResolution = false;\n this.showHeader = this.isAuthenticatedFully();\n this.showNavbar = false;\n this.isEmbedded = false;\n this.loading = true;\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.handleStorageChange = (event) => {\n const localStorageSubscriptionHandlerService = service(LocalStorageSubscriptionHandlerService);\n localStorageSubscriptionHandlerService.handleStorageChange(event);\n this.handleAuthChange(event.key);\n };\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 this.subscribeToNavigationEnd();\n this.subscribeToRuntimeConfigurationChanges();\n this.subscribeToApplicationChange();\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: 'b8cbbca1f12bf6af844e18397d2a725d6ab4e1fc', class: {\n 'wb-layout': true,\n 'is-embedded': this.isEmbedded,\n 'hide-navbar': !this.showNavbar\n } }, h(\"div\", { key: 'f2e3b7a238b82536bd7605196966bd758330c521', class: \"default-slot-wrapper\" }, h(\"slot\", { key: '5d391e2f612d9aead6c07b2ef3641b961eddc504', name: \"default\" })), !this.isEmbedded &&\n h(\"header\", { key: 'e43c5b68d590e12b2b3e95d4c414505f1fc82abb', class: \"wb-header\" }, this.showHeader && h(\"onto-header\", { key: '21102b279bed2dd3ee857b399683d14c5f3eaf57' })), !this.isEmbedded && this.showNavbar &&\n h(\"nav\", { key: '67dcbf444a30ac933ba83f86ae9f8d08fe5f995f', class: \"wb-navbar\" }, h(\"onto-navbar\", { key: 'a9816369cbbac4d5b58f607be61277d6074556bd', ref: this.assignNavbarRef(), \"navbar-collapsed\": this.isLowResolution })), h(\"div\", { key: 'f3ff0e1734eecc433dc20717e0b9f2871ea40dae', class: { 'main-slot-wrapper': true, 'loading': this.loading } }, this.loading && h(\"div\", { key: '17d9a8024d280f70ad8684e5d114c38b184b529d', class: \"loader-wrapper\" }, h(\"onto-loader\", { key: '534a5d8f89b92051822d1d7750ca56894013c142', size: 96, messageText: TranslationService.translate('common.loading') })), h(\"slot\", { key: 'bcd21d932551dc6f9b9365ccbbafae690f8b7245', name: \"main\" })), !this.isEmbedded &&\n h(\"footer\", { key: '9fcd224439dbb7fd35bb4c277dc343eccab40087', class: \"wb-footer\" }, h(\"onto-footer\", { key: '39d5d1c8275c527ca16aa74f6f15dc3f0cc3686c' })), h(\"onto-tooltip\", { key: '6a70e6d2d67e8a9aa6b8eda66b6768735c0f6dcd' })));\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 handleAuthChange(changedKey) {\n var _a;\n if (!changedKey) {\n return;\n }\n if (this.authEvents.includes(changedKey)) {\n const authenticated = this.authStorageService.isAuthenticated();\n if (authenticated) {\n navigate((_a = this.navigationContextService.getPreviousRoute()) !== null && _a !== void 0 ? _a : './');\n }\n else {\n navigate('login');\n }\n WindowService.getWindow().location.reload();\n }\n }\n // ========================\n // Security & Permissions\n // ========================\n subscribeToSecurityChanges() {\n const securityContextService = service(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(this.eventService.subscribe(EventName.LOGIN, () => {\n this.setNavbarItemVisibility();\n this.updateVisibility();\n }));\n this.subscriptions.add(this.eventService.subscribe(EventName.LOGOUT, () => {\n this.setNavbarItemVisibility();\n this.updateVisibility();\n navigate('login');\n }));\n }\n subscribeToRuntimeConfigurationChanges() {\n this.subscriptions.add(this.runtimeConfigurationContextService.onRuntimeConfigurationChanged((config) => {\n var _a;\n this.isEmbedded = (_a = config === null || config === void 0 ? void 0 : config.isEmbedded) !== null && _a !== void 0 ? _a : false;\n }));\n }\n updateVisibility() {\n if (!this.authenticationService.isSecurityEnabled()) {\n this.showNavbar = true;\n this.showHeader = true;\n }\n else {\n this.showHeader = this.authenticationService.isAuthenticated() || this.authorizationService.hasFreeAccess();\n this.showNavbar = this.authenticationService.isAuthenticated() || this.authorizationService.hasFreeAccess();\n }\n }\n isAuthenticatedFully() {\n return !this.authenticationService.isSecurityEnabled() || this.authenticationService.isAuthenticated() || this.authorizationService.hasFreeAccess();\n }\n shouldShowMenu(role) {\n return this.isAuthenticatedFully() && this.authorizationService.hasRole(role);\n }\n // ========================\n // Navbar logic\n // ========================\n assignNavbarRef() {\n return (navbar) => {\n this.navbarRef = navbar;\n if (!this.navbarRef) {\n return;\n }\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 subscribeToNavigationEnd() {\n this.subscriptions.add(this.eventService.subscribe(EventName.NAVIGATION_END, (navigationEndPayload) => {\n this.navigationContextService.updatePreviousRoute(navigationEndPayload.oldUrl);\n }));\n }\n subscribeToApplicationChange() {\n this.subscriptions.add(this.applicationLifecycleContextService.onApplicationStateBeforeChange((state) => {\n if (state) {\n this.loading = true;\n }\n }));\n this.subscriptions.add(this.applicationLifecycleContextService.onApplicationStateChange((state) => {\n if (state) {\n this.loading = false;\n }\n }));\n }\n get hostElement() { return getElement(this); }\n};\nOntoLayout.style = ontoLayoutCss();\n\nexport { OntoLayout as onto_layout };\n","function debounce(func, wait = 300) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => func.apply(this, args), wait);\n };\n}\n\nexport { debounce as d };\n","import { Loggers, ServiceProvider, LanguageContextService } from '@ontotext/workbench-api';\n\nfunction sanitizeHTML(html) {\n const element = document.createElement('textarea');\n element.innerHTML = html;\n return element.value;\n}\n\nconst MODULE_NAME = 'SharedComponents';\n/**\n * Logger for the Shared Components module.\n */\nclass LoggerProvider {\n /**\n * Gets the logger instance for the Shared Components module.\n *\n * @returns LoggerService instance for the Shared Components module\n */\n static get logger() {\n return Loggers.getLoggerInstance(MODULE_NAME);\n }\n}\n\n/**\n * Service responsible for translation operations in the component.\n */\nclass TranslationServiceClassDefinition {\n constructor() {\n this.languageContextService = ServiceProvider.get(LanguageContextService);\n this.translationChangedObservers = {};\n this.logger = LoggerProvider.logger;\n // log with background color\n this.defaultBundle = this.languageContextService.getDefaultBundle();\n this.subscribeToBundleChange();\n }\n /**\n * Translates the <code>messageLabelKey</code> with <code>translationParameter</code> and call <code>translationCallback</code> with translation of current language.\n * The <code>translationCallback</code> is called upon subscription and whenever the selected language is changed.\n *\n * @param messageLabelKey - The label key for the translation.\n * @param translationParameter - Parameters, if needed, for translation.\n * @param translationCallback - A function to be called when translating the `messageLabelKey`.\n * @returns A function that, when called, unsubscribes the provided callback from further translation updates.\n */\n onTranslate(messageLabelKey, translationParameter = [], translationCallback = () => { }) {\n this.translationChangedObservers[messageLabelKey] = this.translationChangedObservers[messageLabelKey] || [];\n const observer = { parameters: translationParameter, callback: translationCallback };\n this.translationChangedObservers[messageLabelKey].push(observer);\n translationCallback(this.translate(messageLabelKey, translationParameter));\n return () => {\n const index = this.translationChangedObservers[messageLabelKey].indexOf(observer);\n if (index !== -1) {\n this.translationChangedObservers[messageLabelKey].splice(index, 1);\n }\n };\n }\n /**\n * Translates the provided key using the currently selected language by applying the parameters if\n * provided.\n * @param key The key for the label which needs to be translated.\n * @param parameters Optional parameters which to be applied during the translation.\n */\n translate(key, parameters) {\n return this.translateInLocale(key, parameters);\n }\n /**\n * Translates a given key into the specified locale. If parameters are provided,\n * they will be applied to the translation.\n *\n * @param key - The translation key, which can be dot-separated for nested translations.\n * @param parameters - Optional parameters to be substituted into the translation string.\n * @returns The translated string with parameters applied if available, or the key itself if not found.\n */\n translateInLocale(key, parameters) {\n // Attempt to retrieve the translation from the specified locale's bundle.\n let translation = this.translateFromBundle(this.currentBundle, key);\n // If not found, fall back to the default language bundle.\n if (!translation) {\n translation = this.translateFromBundle(this.defaultBundle, key);\n }\n // If translation was found, apply any parameters provided and return the result.\n if (translation) {\n translation = this.applyParameters(translation, parameters);\n return sanitizeHTML(translation);\n }\n this.logger.warn(`Missing translation for key: [${key}]`);\n return key;\n }\n /**\n * Retrieves a translation from a specified translation bundle using the given key.\n * If the key represents a nested JSON path, it attempts to resolve the key as such.\n *\n * @param bundle - The translation bundle for the specified locale.\n * @param key - The key to translate, which may be a simple key or dot-separated for nested keys.\n * @returns The translation string if found, or `undefined` if not available.\n */\n translateFromBundle(bundle, key) {\n if (!bundle) {\n return undefined;\n }\n // Try to retrieve the translation directly if it is defined as a whole string,\n // for instance as \"some_function.btn.label\".\n let translation = bundle[key];\n // If not found, attempt to retrieve the translation if it is defined as a JSON object.\n if (typeof translation !== 'string') {\n translation = this.translateAsJsonObject(bundle, key);\n }\n return translation;\n }\n /**\n * Resolves a nested translation key by treating it as a path in a JSON object.\n * For example, if the key is \"some.key.path\", this method will navigate through\n * the JSON object structure to retrieve the value at that path.\n *\n * @param bundle - The translation bundle containing nested keys.\n * @param key - The dot-separated key representing the path to the translation.\n * @returns The translation string if found, or `undefined` if the path does not exist.\n */\n translateAsJsonObject(bundle, key) {\n let path = key.split('.');\n return this.getTranslation(bundle, path);\n }\n /**\n * Recursively navigates through a JSON object based on a path array to retrieve\n * a translation string. Each element in the path array represents a nested key.\n *\n * @param jsonObject - The current JSON object or nested object being searched.\n * @param path - An array representing the path to the translation, where each element is a key.\n * @returns The translation string if found, or `undefined` if the path does not exist.\n */\n getTranslation(jsonObject, path) {\n // Stop the recursion if path or reach the inner element\n if (!path || !jsonObject) {\n return undefined;\n }\n const jsonOrTranslation = jsonObject[path.splice(0, 1)[0]];\n if (path.length === 0) {\n return jsonOrTranslation;\n }\n if (typeof jsonOrTranslation !== 'string') {\n // continue if the inner element is not reached.\n if (path.length > 0) {\n return this.getTranslation(jsonOrTranslation, path);\n }\n return jsonOrTranslation;\n }\n return undefined;\n }\n applyParameters(translation, parameters) {\n if (parameters) {\n return parameters.reduce(\n // replace all occurrence of parameter key with parameter value.\n (translation, parameter) => TranslationServiceClassDefinition.replaceAll(translation, parameter), translation);\n }\n return translation;\n }\n static replaceAll(translation, parameter) {\n return parameter ? translation.split(`{{${parameter.key}}}`).join(parameter.value) : translation;\n }\n notifyTranslationsChanged() {\n Object.keys(this.translationChangedObservers).forEach((eventName) => {\n const observers = this.translationChangedObservers[eventName] || [];\n observers.forEach((observer) => observer.callback(this.translate(eventName, observer.parameters)));\n });\n }\n subscribeToBundleChange() {\n this.languageChangeSubscription = this.languageContextService.onLanguageBundleChanged((bundle) => {\n if (bundle) {\n this.currentBundle = bundle;\n this.notifyTranslationsChanged();\n }\n });\n }\n destroy() {\n if (this.languageChangeSubscription) {\n this.languageChangeSubscription();\n }\n }\n}\nconst TranslationService = new TranslationServiceClassDefinition();\n\nexport { LoggerProvider as L, TranslationService as T, sanitizeHTML as s };\n"],"names":["OntoLayout","constructor","hostRef","registerInstance","this","authenticationService","service","AuthenticationService","authorizationService","AuthorizationService","navigationContextService","NavigationContextService","authStorageService","AuthenticationStorageService","runtimeConfigurationContextService","RuntimeConfigurationContextService","eventService","EventService","applicationLifecycleContextService","ApplicationLifecycleContextService","fullJwtKey","StorageKey","GLOBAL_NAMESPACE","NAMESPACE","jwtKey","fullAuthenticatedKey","authenticatedKey","authEvents","isLowResolution","showHeader","isAuthenticatedFully","showNavbar","isEmbedded","loading","subscriptions","SubscriptionList","isNavbarCollapsed","handleStorageChange","event","LocalStorageSubscriptionHandlerService","handleAuthChange","key","windowResizeObserver","debounce","windowResizeHandler","WindowService","getWindow","addEventListener","componentDidLoad","connectedCallback","subscribeToSecurityChanges","updateVisibility","subscribeToNavigationEnd","subscribeToRuntimeConfigurationChanges","subscribeToApplicationChange","disconnectedCallback","unsubscribeAll","render","h","Host","class","name","ref","assignNavbarRef","size","messageText","TranslationService","translate","onNavbarToggled","detail","payload","hostElement","classList","add","remove","onResize","innerWidth","changedKey","_a","includes","isAuthenticated","navigate","getPreviousRoute","location","reload","securityContextService","SecurityContextService","onAuthenticatedUserChanged","authenticatedUser","onSecurityConfigChanged","securityConfig","subscribe","EventName","LOGIN","setNavbarItemVisibility","LOGOUT","onRuntimeConfigurationChanged","config","isSecurityEnabled","hasFreeAccess","shouldShowMenu","role","hasRole","navbar","navbarRef","menuItems","PluginRegistry","get","_b","_c","processItem","item","shouldShow","children","length","forEach","plugin","items","NAVIGATION_END","navigationEndPayload","updatePreviousRoute","oldUrl","onApplicationStateBeforeChange","state","onApplicationStateChange","getElement","style","func","wait","timer","args","clearTimeout","setTimeout","apply","sanitizeHTML","html","element","document","createElement","innerHTML","value","LoggerProvider","logger","Loggers","getLoggerInstance","TranslationServiceClassDefinition","languageContextService","ServiceProvider","LanguageContextService","translationChangedObservers","defaultBundle","getDefaultBundle","subscribeToBundleChange","onTranslate","messageLabelKey","translationParameter","translationCallback","observer","parameters","callback","push","index","indexOf","splice","translateInLocale","translation","translateFromBundle","currentBundle","applyParameters","warn","bundle","translateAsJsonObject","path","split","getTranslation","jsonObject","jsonOrTranslation","reduce","parameter","replaceAll","join","notifyTranslationsChanged","Object","keys","eventName","languageChangeSubscription","onLanguageBundleChanged","destroy"],"ignoreList":[],"sourceRoot":""}