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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"99448.147164e93b1ab3a87d36.bundle.js","mappings":"mJAAA,IAAIA,EAAgBA,GAAiB,CAAC,EAEtCA,EAAcC,YA4EH,CACHC,gBAxEJ,SAASA,EAAgBC,EAAMC,GAC3B,GAAID,EAAKE,SAAU,CACf,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAKE,SAASE,OAAQD,IAEtCJ,EADYC,EAAKE,SAASC,IAI9B,GAA6B,IAAzBH,EAAKE,SAASE,OAAc,CAC5B,IAAIC,EAA8B,IAAZL,EAAKM,KACvBL,IACAI,EAA0C,GAAxBL,EAAKE,SAAS,GAAGI,MAEvCN,EAAKE,SAASK,KAAK,CACfC,KAAM,cAAeF,KAAMD,GAGnC,CACJ,CACJ,EAuDII,mBArDJ,SAASA,EAAmBC,GACxB,IAAK,IAAIP,EAAIO,EAAMN,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACxC,IAAIH,EAAOU,EAAMP,GAEM,gBAAnBH,EAAKW,KAAKH,KACVE,EAAME,OAAOT,EAAG,GAEZH,EAAKE,UACLO,EAAmBT,EAAKE,SAGpC,CACJ,EA0CIW,YAxCJ,SAAqBH,GACjB,IAAK,IAAIP,EAAI,EAAGA,EAAIO,EAAMN,OAAQD,IAAK,CACnC,IAAIH,EAAOU,EAAMP,GAEjB,GAAIH,EAAKE,UACwB,IAAzBF,EAAKE,SAASE,OAAc,CAC5B,IAAIU,EAASd,EAAKe,EAAIf,EAAKE,SAAS,GAAGa,EACvCf,EAAKE,SAAS,GAAGa,GAAKD,EACtBE,EAAWhB,EAAKE,SAAS,GAAIY,EACjC,CAER,CAEA,SAASE,EAAWhB,EAAMc,GACtB,GAAId,EAAKE,SACL,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAKE,SAASE,OAAQD,IACtCH,EAAKE,SAASC,GAAGY,GAAKD,EACtBE,EAAWhB,EAAKE,SAASC,GAAIW,EAGzC,CACJ,EAoBIG,4BAlBJ,SAAqCP,GAKjC,IAHA,IAAIQ,EAAUR,EAAM,GAAGK,EACnBI,EAAUT,EAAM,GAAGU,EAEdjB,EAAI,EAAGA,EAAIO,EAAMN,OAAQD,IAAK,CAEnC,IAAIH,EAAOU,EAAMP,GAEjBH,EAAKe,GAAKG,EACVlB,EAAKoB,GAAKD,CACd,CACJ,GAUJ,S,yCCnFA,MAAME,EAAK,CAACC,U,SAASA,WACrB,IAAIC,EAAMA,GAAO,CAAC,EAElBA,EAAIC,OAwBO,CACHC,YAxBJ,SAAqBC,GACjB,MAAMC,EAAWC,EAAE,cAAgBF,EAAoB,MAAM,GAAGG,MAAMC,MACtE,IAAIC,EAAS,GAIb,OAHAC,EAAEC,KAAKN,EAAU,SAAUO,GACvBH,GAAUG,EAAMC,OACpB,GACOJ,CACX,EAkBIK,0BAhBJ,SAAmCC,GAC1BA,IACDA,EAAmB,OAGvB,MAAMC,EAAYjB,EAAGC,UAAUe,GAC1BE,KAAK,UAAW,OAChBA,KAAK,QAAS,8BACdvC,OAAOwC,WAAWC,UAGvB,MAAO,2CAA6CC,KAAKC,SAASC,mBAAmBN,IACzF,GAQJ,S,gGChBA,SAASO,EAAwBC,EAAYC,EAAWC,EAAsBC,EAASC,EAAUC,EAAeC,EAAQC,EAAeC,EAAeC,EAAqBC,EAAQC,GAC/K,MAAO,CACHC,SAAU,KACVC,SAAU,8BACVC,MAAO,CACHC,mBAAoB,IACpBC,oBAAqB,IACrBC,cAAe,IACfC,mBAAoB,IACpBC,mBAAoB,IACpBC,qBAAsB,IACtBC,aAAc,IACdC,oBAAqB,KAEzBC,KAGJ,SAAkBT,EAAOU,EAASC,IAIlC,SAA6BX,GAKzB,IAAIY,GAAoB,EAMxB,IAAIC,EACAC,EAEJ,MAAMC,EAAatD,EAAAA,OACdf,KAAK,CAACsE,IAAmBA,MAExBC,EAAQxD,EAAAA,cACTyD,OAAO,CAAC,EAAG,IACXC,MAAM,CAAC,oBAAqB,sBAC5BC,YAAY3D,EAAAA,gBAEX4D,EAAM5D,EAAAA,OAAU,eACjB6D,OAAO,UAAW,MAClB3C,KAAK,UAAW,eAChBA,KAAK,sBAAuB,iBAC5B4C,GAAG,gBAAiB,MAEzB,SAASC,IACL,OAAOH,EAAII,OAAO,SACbd,MAAM,CACHe,GAAI,aACJC,UAAW,sBAEvB,CAQA,SAASC,IACL,MAAyE,SAAlEjC,EAAoBkC,IAAIjC,EAAOkC,8BAC1C,CAMA,SAASC,IAEL,MAAMhE,EAAWJ,EAAAA,EAAIC,OAAOC,YAAY,kDAExCJ,EAAAA,UAAa,eACRgE,OAAO,QACZzD,EAAE,QAAQyD,OAAO,mCAAqC1D,EAAW,eAGjEN,EAAAA,UAAa,KACRuE,MAAM,UAAW,GAGtB,MAAMC,EAAStE,EAAAA,EAAIC,OAAOY,0BAA0B,mBAGpDf,EAAAA,OAAUyE,MAAMvB,MAAM,CAClBwB,KAAMF,EACNG,SAAU,mBAAqB7C,EAAc8C,sBAAwB,QAE7E,CAEArC,EAAMO,aAAeqB,IAErB,IAAIU,EAAId,IA8BR,MAAMe,IAAYvC,EAAMC,oBAAoBuC,WACtCC,EAAalD,EAAc8C,wBAA0B9C,EAAcmD,qBAQzE,IAAIC,EACAC,EAEAC,EACAC,EACAC,GAXJC,EAAAA,EAAAA,SAAQC,EAAAA,uBAAuBC,iBAAkBC,IACzCA,GAASC,QAAUb,GAAWE,GAhCtC,WACIvD,EAAWmE,QAAS,EACpBnE,EAAWoE,gBAAiB,EAC5B,MAAMC,EAAoB5D,EAAoBkC,IAAI,gCAAgCtC,EAAc8C,yBAChGjD,EAAqBoE,sBAA4C,OAAtBD,EAA6BA,EAAkBE,UAAUC,IAAM,IACrGC,QAAQ,SAASC,EAAUC,GACxB3E,EAAWmE,QAAS,EACL,MAAXQ,GACArE,EAAOsE,QACHjE,EAAWkE,QAAQ,+BACnBlE,EAAWkE,QAAQ,yCAG3B/D,EAAMC,mBAAqB2D,EAC3BnG,EAAAA,OAAU,iBAAiB8D,GAAG,YAAaQ,EAC/C,GACCiC,MAAM,SAASJ,GACZ1E,EAAWmE,QAAS,EACpBnE,EAAWoE,eAAiBW,SAASL,GACrCpE,EAAOwE,MACHnE,EAAWkE,QAAQ,oCAAqC,CACpDnH,KAAM8C,EACNsE,MAAOC,SAASL,KAG5B,EACR,CAOQM,KAUR,MAAMC,EAAqB,CAAC,EAE5B,SAASC,EAAYC,EAAMC,EAAQC,EAAUC,GACrC1B,GAAgBA,IAChBC,GAAkBA,IAEtBtF,EAAAA,UAAa,eAAegH,SAG5BnC,EAAId,IAGJvF,EAAAA,EAAcC,YAAYC,gBAAgBkI,GAAM,GAEhDvD,EAAgBrD,EAAAA,UAAa4G,GAC7BvD,EAAc4D,IAAI,SAASC,GACvB,OAAOA,EAAEjI,IACb,GACAmG,EAAQ0B,GAAsBzD,EAE9BC,EAAWD,GAEX,MAAMhE,EAAQgE,EAAc8D,cACxB,IAAIC,EAERhC,EAAMiC,qBAAsB,EAG5B7I,EAAAA,EAAcC,YAAYW,mBAAmBC,GAC7Cb,EAAAA,EAAcC,YAAYe,YAAYH,GACtCb,EAAAA,EAAcC,YAAYmB,4BAA4BP,GAEjD+D,IACDA,GAAMkE,EAAAA,EAAAA,KACDpG,KAAK,QAAS,UACdqG,eAAe,SAASL,EAAGM,GACxB,MAAO,CACHC,IAAK,UACLC,OAAS9F,EAAQ+F,YAAcH,EAAMI,QAAW,KAChDC,MAAQjG,EAAQkG,WAAaN,EAAMO,QAAW,KAEtD,GACCC,KAAK,SAASd,GACX,OAAOA,EAAE5H,KAAKH,IAClB,GACJyE,EAAIqE,KAAK7E,IAGb,MAAM8E,EAAcrD,EAAE5E,UAAU,UAC3BX,KAAKD,GACL8I,QAAQnE,OAAO,KAEhB6C,EAAOuB,QACPF,EAAYtH,KAAK,SAASsG,GACtBmB,EAAAA,EAAGC,WAAWC,OAAOvI,EAAAA,OAAUyE,MAAO,IAC1C,GAGJ,IAAIhC,EAAsB,GAE1B,MAAM+F,EAASN,EACVlE,OAAO,UACP9C,KAAK,QAAS,SAASgG,GACpB,OAAOA,EAAE5H,KAAKmJ,IAClB,GACCvH,KAAK,YAAa,SAASgG,GACxB,MAAO,SAAWA,EAAE5H,KAAKH,IAC7B,GACC+B,KAAK,iBAAkB,SAASgG,GAC7B,MAAO,SAAWA,EAAE5H,KAAKH,IAC7B,GACCoF,MAAM,OAAQ,SAAS2C,GAEpB,OAAOA,EAAErI,SAAW2E,EAAM0D,EAAEwB,OAAS,SACzC,GACC9H,KAAK,SAASsG,GAEX,GADAA,EAAEsB,OAASxI,EAAAA,OAAUyE,MACjByC,EAAE5H,KAAKH,OAAS8C,EAAe,CAC/B,MAAM0G,EAAMzB,EAAE5H,KAAKH,KACnBsD,EAAoBvD,KAAK,CAACC,KAAMwJ,IAChCjC,EAAmB,CAACiC,IAAQzB,EAE5BA,EAAEsB,OAAOI,QAAQ,aAAa,GAC9B1B,EAAEsB,OAAO1E,GAAG,YAAa,SAAS0D,GAC1BX,EAAOgC,YAEC3B,EAAE4B,WADV1F,EAAI2F,KAAK7B,EAAGM,GAEZpE,EAAI4F,KAAK9B,EAIjB,GACAA,EAAEsB,OAAO1E,GAAG,WAAYV,EAAI4F,KAChC,CACJ,GAEClF,GAAG,YAAa,CAAC0D,EAAON,IAAM/B,EAAQ+B,IACtCpD,GAAG,WAAY,CAAC0D,EAAON,IAAM+B,EAAK/B,IAQvC,IAAIxE,EAEJ,SAASwG,EAAmCC,GACxCnJ,EAAAA,UAAa,aAAa4I,QAAQ,WAAYO,EAAIC,UAAW,GAC7DD,EAAIX,OAAOI,QAAQ,WAAYO,EAAIC,UAAW,GAC9C1G,EAAgByG,CACpB,CAOA,SAASE,IACL9G,EAAMK,oBAAqB,CAC/B,CApBIH,IACAA,EAAsB9B,EAAE2I,OAAO7G,EAAqB,QACpDF,EAAME,oBAAsBA,GAwBhC,MAAM8G,EAAclB,EAAAA,EAAGmB,MAAMC,gBAC7BzJ,EAAAA,UAAa,2CACRiI,KAAKsB,GAEVpE,EAAU,SAASgE,GACfF,EAAKE,GAEDA,EAAI7J,KAAKH,OAAS8C,GAClBoH,IACArJ,EAAAA,UAAa,aAAa4I,QAAQ,YAAY,KAE9CM,EAAmCC,GAC9BhG,IAxBTZ,EAAMG,cAAgBA,EACtBH,EAAMK,oBAAqB,GA4BvBL,EAAMmH,IAAI,kBAAmB,SAASlC,GAClCxH,EAAAA,UAAa,aAAa4I,QAAQ,WAAYO,EAAIC,UAAW,EACjE,GAKR,EAEAG,EAAYzF,GAAG,QAAS,SAAS0D,EAAO2B,GAEhCA,EAAI7J,KAAK2E,IACTrC,EAAQ+H,QAAQC,UAAU,CAAC3F,GAAIkF,EAAI7J,KAAK2E,IAAK,qBAAuBkF,EAAI7J,KAAK2E,GAAI,aAAekF,EAAI7J,KAAK2E,IAI7Gb,EAAI4F,OAEJ7D,EAAQgE,EACZ,GAEAI,EAAYzF,GAAG,WAAY,SAAS0D,EAAO2B,GACnCA,IAAQvC,IAIZxD,EAAI4F,OACJE,EAAmCC,GA/CnC1H,EAAWoI,WAAW,2BAA4BnH,EAAe0C,GAkDjEoC,EAAMsC,kBACV,GAEA,IAAIC,EAAgB,EACpBnG,EAAIE,GAAG,QAAS,SAAS0D,GAErBpE,EAAI4F,OAEJxB,EAAMwC,iBACNxC,EAAMsC,kBAGN,MAAMG,EAAMC,KAAKD,MACjB,KAAIA,EAAMF,EAAgB,KAGtB,OAFAA,EAAgBE,EAKpB,IAAIE,EAAY,GACZ3C,EAAM4C,SAAW,EACjBD,EAAY,KACL3C,EAAM4C,QAAU,IACvBD,EAAY,OAGhB,IAAIhB,EAAM3B,EAAM6C,OAAOC,SAOvB,GALKnB,IAEDA,EAAM/D,GAGQ,OAAd+E,EAAoB,CAGpB,GAAIhB,IAAQ/D,EAAO,CAGf,KAAO+D,EAAIoB,SAAWpB,EAAIoB,OAAOlD,qBAC7B8B,EAAMA,EAAIoB,OAEVpB,EAAIT,MAAQtD,EAAMsD,QAElBS,EAAM/D,EAEd,CAEA,GAAI+D,IAAQ/D,GAAS+D,EAAItK,SAAU,CAG/B,IAAI2L,EAASrB,EAAItK,SAAS,GAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAIqK,EAAItK,SAASE,OAAQD,IACjCqK,EAAItK,SAASC,GAAG2L,YAAcD,EAAOC,cACrCD,EAASrB,EAAItK,SAASC,IAG1B0L,EAAO3L,WAEPsK,EAAMqB,EAEd,MAAYrB,EAAItK,WAEZsK,EAAMA,EAAIoB,QAGdtB,EAAKE,GAAK,EACd,KAAyB,QAAdgB,IAEPhB,EAAM/D,EAAMmF,OACRpB,GACAF,EAAKE,GAAK,IAId/D,EAAM9F,KAAKH,OAAS8C,GACpBL,EAAQ+H,QAAQe,aAAa,CAACzG,GAAI,GAAI,sBAAuB,eAIjE0G,GACJ,GAEA,MAAMC,EAAO/F,EAAE5E,UAAU,QACpBX,KAAKD,GACL8I,QAAQnE,OAAO,QACf9C,KAAK,QAAS,SAASgG,GACpB,OAAOA,EAAErI,UAAYqI,EAAErI,SAASE,OAAS,QAAU,mBACvD,GACC6B,KAAK,SAASsG,GACXA,EAAE2D,QAAU7K,EAAAA,OAAUyE,KAC1B,GAaAoC,EAAOgC,YACP+B,EAAKhK,KAZT,SAAsBsG,GAClB,MAAM4D,EAAM5D,EAAE5H,KAAKH,KAAK4L,QAAQ,KACd7D,EAAE5H,KAAKH,KAAK4L,QAAQ,YACrB,EAEb7D,EAAE8D,aAAe9D,EAAE5H,KAAKH,KACjB2L,GAAO,IACd5D,EAAE8D,aAAe9D,EAAE5H,KAAKH,KAAK8L,UAAUH,EAAM,GAErD,GAIIF,EACKrG,MAAM,YAAa,SAAS2C,GACzB,OAAOmB,EAAAA,EAAG6C,KAAKC,aAAajE,EAAE8D,aAAc9D,EAAEkE,EAClD,GACCR,KAAK,SAAS1D,GACX,OAAOmB,EAAAA,EAAG6C,KAAKG,2BAA2BnE,EAAE8D,aAAc9D,EAAEkE,EAAI,EACpE,IAEJR,EACKrG,MAAM,YAAa,SAAS2C,GACzB,OAAOmB,EAAAA,EAAG6C,KAAKC,aAAajE,EAAE5H,KAAKH,KAAM+H,EAAEkE,EAC/C,GACCR,KAAK,SAAS1D,GACX,OAAOmB,EAAAA,EAAG6C,KAAKG,2BAA2BnE,EAAE5H,KAAKH,KAAM+H,EAAEkE,EAAI,EACjE,GAIRR,EAAKrG,MAAM,UAAW,SAAS2C,GAC3B,OAAIA,EAAEqD,QAAUrD,EAAEqD,OAAOjL,OAAS8F,EAAM9F,MACpC4H,EAAE4B,WAAarE,KAAK6G,YAAYP,QAAQ,OAAS,IAAMtG,KAAK6G,YAAYvM,OACjE,OAEPmI,EAAE4B,YAAa,EACR,OAEf,GAEIjC,EAAOuB,SAAWvB,EAAO0E,eACzBX,EAAKhK,KAAK,SAASsG,GACfmB,EAAAA,EAAGC,WAAWC,OAAOvI,EAAAA,OAAUyE,MAAO,IAC1C,GAGJS,EAA0B,WACtB,SAASsG,EAAoBC,GACrBA,GACAjD,EAAO5H,KAAK,SAASsG,IACZuE,IAAmBvE,EAAE5H,KAAK2E,IAC3BkB,EAAQ+B,EAEhB,EAER,CAEA,MAAMuE,EAAiB/J,EAAUgK,OAEjC9J,EAAQ+J,WAAa,SAASnE,GACtBA,EAAMoE,OAENJ,EADuBhE,EAAMoE,MAAM3H,GAG3C,EAEAuH,EAAoBC,EACxB,EAEA,MAAM9M,EAAOkG,EAAE5E,UAAU,gBAEzB,SAAS4L,EAAOC,EAAG/E,GACf,MAAMgF,EAlcC,IAkccD,EAAE,GACvB1E,EAAO0E,EAEPnN,EAAKuC,KAAK,YAAa,SAASgG,GAC5B,MAAO,cAAgBA,EAAExH,EAAIoM,EAAE,IAAMC,EAAI,KAAO7E,EAAEnH,EAAI+L,EAAE,IAAMC,EAAI,GACtE,GAEAvD,EAAOtH,KAAK,IAAK,SAASgG,GACtB,OAAOA,EAAEkE,EAAIW,CACjB,GA+BIhF,GACA6D,EAAKhK,KA9BT,SAA+BsG,GAKvBA,EAAE5H,KAAK0M,WAAa5G,EAAM9F,KAAK2M,mBAAqB7G,EAAM9F,KAAK2M,oBAAsBhK,IACrFiF,EAAE2D,QAAQtG,MAAM,UAAW,QACvBa,EAAMvG,UAAYuG,EAAMvG,SAASE,OACjC4B,EAAEC,KAAKwE,EAAMvG,SAAU,SAASqN,GAC5BA,EAAErB,QAAQtG,MAAM,UAAW,SAC/B,GAEAa,EAAMyF,QAAQtG,MAAM,UAAW,UAO/Ba,EAAMmF,QACN5J,EAAEC,KAAKwE,EAAMmF,OAAO1L,SAAU,SAASqN,GAC/BA,EAAE5M,KAAKH,OAASiG,EAAM9F,KAAKH,MAC3B+M,EAAErB,QAAQtG,MAAM,UAAW,SAEnC,GAGZ,GAMAqG,EACKrG,MAAM,YAAa,SAAS2C,GACzB,OAAIL,EAAOgC,WACAR,EAAAA,EAAG6C,KAAKC,aAAajE,EAAE8D,aAAc9D,EAAEkE,EAAIW,GAE/C1D,EAAAA,EAAG6C,KAAKC,aAAajE,EAAE5H,KAAKH,KAAM+H,EAAEkE,EAAIW,EACnD,GACCnB,KAAK,SAAS1D,GACX,OAAIL,EAAOgC,WACAR,EAAAA,EAAG6C,KAAKG,2BAA2BnE,EAAE8D,aAAc9D,EAAEkE,EAAIW,EAAI,GAEjE1D,EAAAA,EAAG6C,KAAKG,2BAA2BnE,EAAE5H,KAAKH,KAAM+H,EAAEkE,EAAIW,EAAI,EACrE,EACR,CAGA,SAASI,EAAaf,GAClB,IAAIgB,EAAW,EAAJhB,EA7fJ,GAkgBP,OAJQ,EAAJA,EAAQgB,EAAO,KAEfA,EAAW,EAAJhB,EAAQ,GAEZgB,CACX,CAIA,SAASC,EAAWnF,IACZA,EAAEG,qBAAyBH,EAAEqD,QAAUrD,EAAEqD,OAAOlD,qBAMhDH,EAAE4B,WAAarE,KAAK6G,YAAYP,QAAQ,OAAS,IAAMtG,KAAK6G,YAAYvM,OACxE0F,KAAKF,MAAM+H,QAAU,KALrBpF,EAAE4B,YAAa,EACfrE,KAAKF,MAAM+H,QAAU,OAM7B,CAEA,SAASrD,EAAK/B,EAAGqF,GAOb,GAJA1K,EAAS,WACLU,EAAMM,qBAAwBqE,EAAE5H,KAAKH,OAAS8C,CAClD,GAEImD,IAAU8B,EAGV,OAOJ,GAJIA,EAAE5H,KAAK2E,IACPrC,EAAQ+H,QAAQe,aAAa,CAACzG,GAAIiD,EAAE5H,KAAK2E,IAAK,qBAAuBiD,EAAE5H,KAAK2E,GAAI,aAAeiD,EAAE5H,KAAK2E,KAGrGiD,EAAErI,WAEHqI,EAAIA,EAAEqD,OACFnF,IAAU8B,GAEV,OASR,GALIqF,IACAlD,IACArJ,EAAAA,UAAa,aAAa4I,QAAQ,YAAY,IAG9CxD,EAAMmF,OAAQ,CACd,IAAIiC,EAAIpH,EACR,KAAOoH,GACHA,EAAEnF,qBAAsB,EACxBmF,EAAIA,EAAEjC,MAEd,CAEA,IAAIiC,EAAItF,EACR,KAAOsF,GACHA,EAAEnF,sBAAwBmF,EAAE3N,SAC5B2N,EAAIA,EAAEjC,OAGVnF,EAAQ8B,EAE4B,EAAV9B,EAAMgG,GAAmB,EAAVhG,EAAMgG,EAlkBxC,IAkkB0D,IAExC7I,EAAMI,mBAAqBJ,EAAMQ,qBAEtD8I,EAAO,CAACzG,EAAM1F,EAAG0F,EAAMrF,EAAGoM,EAAa/G,EAAMgG,KAE7CR,EAAKhK,KAAK,SAASsG,GACfmF,EAAWpE,KAAKxD,KAAMyC,EAC1B,IAGmBlH,EAAAA,aACdyM,SAASzK,GACT0K,MAAM,OAAQ,SAASxF,GACpB,MAAMpI,EAAIkB,EAAAA,gBAAmBoH,EAAM,CAAChC,EAAM1F,EAAG0F,EAAMrF,EAAGoM,EAAa/G,EAAMgG,KACzE,OAAO,SAASuB,GACZd,EAAO/M,EAAE6N,GACb,CACJ,GAEO1M,UAAU,QAEhBW,KAAKyL,EAElB,CArFAR,EAAO,CAACzG,EAAM1F,EAAG0F,EAAMrF,EAAGoM,EAAa/G,EAAMgG,IAAKrE,GAuFlD1B,EAAiB9C,EAAMmH,IAAI,YAAa,WACpC9H,EAAQ+H,QAAQC,UAAU,CAAC3F,GAAI,GAAI,sBAAuB,eAC1DkB,EAAQ9B,EACZ,GAEAiC,EAAmB/C,EAAMmH,IAAI,cAAe,SAAShH,GACjDyC,EAAQzC,EACZ,EACJ,CAEA,SAASiI,IACL,MAAMiC,EAAoBrK,EAAMC,mBAAmBuC,WACnD,IAAIpC,EAAqBT,EAAoBkC,IAAIjC,EAAO0K,wCAEnDlK,GAAsBA,EAAqBiK,KAC5CjK,EAAqBiK,EACrB1K,EAAoB4K,IAAI3K,EAAO0K,qCAAsClK,IAGzElB,EAAWoI,WAAW,aAAc+C,EAAmBjK,EAC3D,CAWA,IAAIoK,EACIC,EACAC,EACAC,EAZRC,OAAOC,iBAAiB,SAAUzC,GAElCwC,OAAOC,iBAAiB,eAExB,SAASC,IACLF,OAAOG,oBAAoB,SAAU3C,GACrCwC,OAAOG,oBAAoB,eAAgBD,EAC/C,GAOA9K,EAAMgL,OAAO,qBAAsB,WAE3BR,GAAeA,IACfC,GAAwBA,IACxBC,GAAwBA,IACxBC,GAA6BA,IAIjC,IAAIM,EAAuBrJ,IAE3B,GAAI5B,EAAMC,mBAAmBuC,WAAY,CACrC4F,IAEA,MAAM8C,EAAWC,gBAAgBnL,EAAMC,oBAwBvC,MAAMmL,EAtBO3N,EAAAA,UAAayN,GAMVtG,cACPyG,KAAK,SAASC,EAAGC,GACd,OAAID,EAAEvO,KAAKmL,YAAcqD,EAAExO,KAAKmL,aACpB,EACDoD,EAAEvO,KAAKmL,YAAcqD,EAAExO,KAAKmL,aAE5BoD,EAAEvO,KAAKoJ,MAAQoF,EAAExO,KAAKoJ,MADtB,EAGAmF,EAAEvO,KAAKoJ,MAAQoF,EAAExO,KAAKoJ,OACrB,EAED,CAEf,GAMR,IAAIqF,EACAC,EAGJ,SAASC,EAAoBC,EAAiBnH,GAC1C,MAAMoH,EAAiB,CACnB5C,eAAe,EACf1C,WAAY1E,KAIhB6J,EAAmBG,EAAetF,WAG9BlC,EADAoH,GAGYG,EAFkBC,EAAgB/I,GAAO,GAKzDvD,EAAS,KACLK,EAAoB4K,IAAI3K,EAAOiM,gCAAiCrH,GAChE7B,IAGA/B,GAAoB,GACjB,GACX,CAEA,SAASkL,EAAsB1L,EAAoB2L,EAAqBC,GACpE,IAAK5L,EACD,OAGJT,EAAoB4K,IAAI3K,EAAO0K,qCAAsClK,GAErEoL,EAAmB,CACf5O,KAAM8C,EACNpD,SAAU,IAMd,MAAM2P,EAAW,IAAIC,IACrB,IAAK,IAAI1C,EAAI,EAAGA,GAAKpJ,EAAoBoJ,IACrCyC,EAASE,IAAIJ,EAAoBvC,GAAGzM,KAAK2E,IACrCqK,EAAoBvC,GAAGxB,SAAW+D,EAAoB,IACtDP,EAAiBlP,SAASK,KAAKoP,EAAoBvC,GAAGzM,OAO9D,SAASqP,EAAYhQ,GACjB,IAAKA,EAAKE,SACN,OAEJ,MAAM+P,EAAc,GACpB,IAAK,MAAMC,KAASlQ,EAAKE,SACjB2P,EAASM,IAAID,EAAM5K,KACnB2K,EAAY1P,KAAKqB,EAAEwO,OAAO,CAAC,EAAGF,IAGtClQ,EAAKE,SAAW+P,EAChB,IAAK,MAAMC,KAASlQ,EAAKE,SACrB8P,EAAYE,EAEpB,EAEAF,CAAYZ,GAERQ,GAGAP,EAAmBgB,QAAQC,YAAYjB,GAAoB7J,IAAqB6J,EAIhFrH,EAAYoH,EAHS,CACjBlF,WAAYmF,KAOhBC,EAAoBR,EAE5B,CAEA,MAAM9K,EAAqBT,EAAoBkC,IAAIjC,EAAO0K,sCAC1D,GAAIlK,EACA0L,EAAsB1L,EAAoBgL,OACvC,CACH,MAAMuB,EAAc,CAChB9G,QAAQ,EACRmD,eAAe,EACf1C,WAAY1E,KAEhBwC,EAAY8G,EAAUyB,GACtBhK,GACJ,CAsBA,IAAIiK,EApBJpC,EAAgBxK,EAAMgL,OAAO,eAAgB,SAASzK,GAC9CkM,QAAQC,YAAYnM,IAAiB0K,EACrCA,OAAuB4B,EAI3BvN,EAAS,WACLsB,GAAoB,EA3vBpC,SAA2BL,GAClBkM,QAAQC,YAAYnM,IACrBZ,EAAoB4K,IAAI3K,EAAOkC,8BAA+BvB,EAEtE,CAwvBgBuM,CAAkBvM,GAClBmL,EAAoBR,GAAU,EAClC,EAAG,GACP,GAAG,GAEHT,EAAyBzK,EAAMgL,OAAO,qBAAsB,SAAS5K,GACjE0L,EAAsB1L,EAAoBgL,GAAgB,EAC9D,GAAG,GAMHT,EAA8B3K,EAAMmH,IAAI,8BAA+B,SAASlC,GACxE2H,GACAhK,EAAQgK,EAEhB,GAEAlC,EAAyB1K,EAAMmH,IAAI,gBAAiB,SAASlC,EAAO8H,GAChEH,EAAuBzI,EAAmB4I,EAAcnQ,MACpDgQ,GACAhK,EAAQgK,EAEhB,EACJ,CACJ,GAAG,EACP,CA9zBII,CAAoBhN,EACxB,EA8zBJ,CA51BAyM,QACKQ,OAAO,kDAAmD,CACvD,mDACA,gDAEHC,SAAS,gBAAiB,KAC1BA,SAAS,gBAAiB,uBAC1BC,UAAU,oBAAqBlO,GAEpCA,EAAwBmO,QAAU,CAAC,aAAc,YAAa,uBAAwB,UAAW,WAAY,gBAAiB,SAAU,gBAAiB,gBAAiB,sBAAuB,SAAU,a","sources":["webpack://root-config/./packages/legacy-workbench/src/js/lib/common/circle-packing.js","webpack://root-config/./packages/legacy-workbench/src/js/lib/common/svg-export.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/graphexplore/directives/rdf-class-hierarchy.directive.js"],"sourcesContent":["var CirclePacking = CirclePacking || {};\n\nCirclePacking.SingleChild = function () {\n /*\n Functions that enable single child circles to display properly, see\n http://stackoverflow.com/questions/22307486/d3-js-packed-circle-layout-how-to-adjust-child-radius\n */\n function addPlaceholders(node, first) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n var child = node.children[i];\n addPlaceholders(child);\n }\n\n if (node.children.length === 1) {\n var placeholderSize = node.size * 1.2;\n if (first) {\n placeholderSize = node.children[0].size * 0.1;\n }\n node.children.push({\n name: 'placeholder', size: placeholderSize,\n // children: []\n });\n }\n }\n }\n\n function removePlaceholders(nodes) {\n for (var i = nodes.length - 1; i >= 0; i--) {\n var node = nodes[i];\n\n if (node.data.name === 'placeholder') {\n nodes.splice(i, 1);\n } else {\n if (node.children) {\n removePlaceholders(node.children);\n }\n }\n }\n }\n\n function centerNodes(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n\n if (node.children) {\n if (node.children.length === 1) {\n var offset = node.x - node.children[0].x;\n node.children[0].x += offset;\n reposition(node.children[0], offset);\n }\n }\n }\n\n function reposition(node, offset) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].x += offset;\n reposition(node.children[i], offset);\n }\n }\n }\n }\n\n function makePositionsRelativeToZero(nodes) {\n //use this to have vis centered at 0,0,0 (easier for positioning)\n var offsetX = nodes[0].x;\n var offsetY = nodes[0].y;\n\n for (var i = 0; i < nodes.length; i++) {\n\n var node = nodes[i];\n\n node.x -= offsetX;\n node.y -= offsetY;\n }\n }\n\n return {\n addPlaceholders: addPlaceholders,\n removePlaceholders: removePlaceholders,\n centerNodes: centerNodes,\n makePositionsRelativeToZero: makePositionsRelativeToZero\n }\n}();\n\nexport default CirclePacking;\n","import 'lib/d3.patch.js'\nimport {selectAll} from 'd3';\n\nconst d3 = {selectAll};\nvar SVG = SVG || {};\n\nSVG.Export = function () {\n function getCSSRules(cssSourceFilePath) {\n const cssRules = $('link[href=\"' + cssSourceFilePath + '\"]')[0].sheet.rules;\n let cssStr = \"\";\n _.each(cssRules, function (value) {\n cssStr += value.cssText;\n });\n return cssStr;\n }\n\n function generateBase64ImageSource(svgSelectorClass) {\n if (!svgSelectorClass) {\n svgSelectorClass = \"svg\";\n }\n // add needed xml namespace\n const exportSvg = d3.selectAll(svgSelectorClass)\n .attr(\"version\", \"1.1\")\n .attr(\"xmlns\", \"http://www.w3.org/2000/svg\")\n .node().parentNode.innerHTML;\n\n // convert selected html to base64\n return \"data:image/svg+xml;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(exportSvg)));\n }\n\n return {\n getCSSRules: getCSSRules,\n generateBase64ImageSource: generateBase64ImageSource\n };\n}();\n\nexport default SVG;\n","/* eslint-disable no-invalid-this */\nimport d3tip from 'lib/d3-tip/d3-tip-patch';\nimport CirclePacking from 'lib/common/circle-packing';\nimport D3 from 'lib/common/d3-utils';\nimport * as d3 from 'd3';\nimport SVG from 'lib/common/svg-export';\nimport 'angular/utils/local-storage-adapter';\nimport {service, LicenseContextService} from '@ontotext/workbench-api';\n\nangular\n .module('graphdb.framework.graphexplore.directives.class', [\n 'graphdb.framework.graphexplore.controllers.class',\n 'graphdb.framework.utils.localstorageadapter',\n ])\n .constant(\"ZOOM_DURATION\", 500)\n .constant(\"ROOT_OBJ_NAME\", \"RDF Class Hierarchy\")\n .directive('rdfClassHierarchy', classHierarchyDirective);\n\nclassHierarchyDirective.$inject = ['$rootScope', '$location', 'GraphDataRestService', '$window', '$timeout', '$repositories', 'toastr', 'ZOOM_DURATION', 'ROOT_OBJ_NAME', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction classHierarchyDirective($rootScope, $location, GraphDataRestService, $window, $timeout, $repositories, toastr, ZOOM_DURATION, ROOT_OBJ_NAME, LocalStorageAdapter, LSKeys, $translate) {\n return {\n restrict: 'AE',\n template: '<div id=\"classChart\"></div>',\n scope: {\n classHierarchyData: '=',\n flattenedClassNames: '=',\n selectedClass: '=',\n currentSliderValue: '=',\n showClassInfoPanel: '=',\n showExternalElements: '=',\n hidePrefixes: '=',\n currentBrowserLimit: '=',\n },\n link: linkFunc,\n };\n\n function linkFunc(scope, element, attrs) {\n renderCirclePacking(scope, element);\n }\n\n function renderCirclePacking(scope, element) {\n /**\n * A boolean flag that determines whether the opening of the side info panel\n * should be suppressed when focusing on the chart while a class is selected.\n */\n let suppressPanelOpen = false;\n\n const width = 800;\n const height = 800;\n const diameter = height;\n const margin = 20;\n let tip;\n let rootHierarchy;\n\n const packLayout = d3.pack()\n .size([diameter - margin, diameter - margin]);\n\n const color = d3.scaleLinear()\n .domain([0, 4])\n .range([\"hsl(19, 70%, 90%)\", \"hsl(19, 70%, 50%)\"])\n .interpolate(d3.interpolateHcl);\n\n const svg = d3.select(\"#classChart\")\n .insert(\"svg:svg\", \"h2\")\n .attr(\"viewBox\", \"0 0 \" + width + \" \" + height)\n .attr(\"preserveAspectRatio\", \"xMidYMid meet\")\n .on(\"dblclick.zoom\", null);\n\n function appendMainGroup() {\n return svg.append(\"svg:g\")\n .attrs({\n id: \"main-group\",\n transform: \"translate(\" + width / 2 + \",\" + height / 2 + \")\",\n });\n }\n\n function savePrefixesState(hidePrefixes) {\n if (!angular.isUndefined(hidePrefixes)) {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES, hidePrefixes);\n }\n }\n\n function getPrefixesState() {\n return LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES) === \"true\";\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 const cssRules = SVG.Export.getCSSRules(\"css/rdf-class-hierarchy-labels.css?v=3.3.3-RC1\");\n // inline css rules in a defs tag\n d3.selectAll(\"#main-group\")\n .append(\"defs\");\n $(\"defs\").append('<style type=\"text/css\"><![CDATA[' + cssRules + ']]></style>');\n\n // switch opacity to visible\n d3.selectAll(\"g\")\n .style(\"opacity\", 1);\n\n // convert selected html to base64\n const imgSrc = SVG.Export.generateBase64ImageSource(\"#classChart 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: \"class-hierarchy-\" + $repositories.getActiveRepository() + \".svg\",\n });\n }\n\n scope.hidePrefixes = getPrefixesState();\n\n let g = appendMainGroup();\n\n function fetchClassHierarchy() {\n $rootScope.loader = true;\n $rootScope.hierarchyError = false;\n const selGraphFromCache = LocalStorageAdapter.get(`classHierarchy-selectedGraph-${$repositories.getActiveRepository()}`);\n GraphDataRestService.getClassHierarchyData(selGraphFromCache !== null ? selGraphFromCache.contextID.uri : \"\")\n .success(function(response, status) {\n $rootScope.loader = false;\n if (status === 207) {\n toastr.warning(\n $translate.instant('graphexplore.update.diagram'),\n $translate.instant('graphexplore.repository.data.changed'),\n );\n }\n scope.classHierarchyData = response;\n d3.select(\"#download-svg\").on(\"mouseover\", prepareForSVGImageExport);\n })\n .error(function(response) {\n $rootScope.loader = false;\n $rootScope.hierarchyError = getError(response);\n toastr.error(\n $translate.instant('graphexplore.error.request.failed', {\n name: ROOT_OBJ_NAME,\n error: getError(response),\n }),\n );\n });\n }\n\n const hasData = !!scope.classHierarchyData?.classCount;\n const canUseRepo = $repositories.getActiveRepository() && !$repositories.isSystemRepository();\n\n service(LicenseContextService).onLicenseChanged((license) => {\n if (license?.valid && !hasData && canUseRepo) {\n fetchClassHierarchy();\n }\n });\n\n let autoZoomToPreviousState;\n let doFocus;\n\n let focus;\n let rootFocusEvent;\n let classSearchEvent;\n const flattenedClassData = {};\n\n function drawDiagram(root, config, newFocus, switchPrefixes) {\n if (rootFocusEvent) rootFocusEvent();\n if (classSearchEvent) classSearchEvent();\n // remove old group tag containing the diagram\n d3.selectAll(\"#main-group\").remove();\n\n // append new empty group tag in order to rerender new diagram\n g = appendMainGroup();\n\n // fix for single child classes\n CirclePacking.SingleChild.addPlaceholders(root, true);\n\n rootHierarchy = d3.hierarchy(root);\n rootHierarchy.sum(function(d) {\n return d.size;\n });\n focus = newFocus ? newFocus : rootHierarchy;\n\n packLayout(rootHierarchy);\n\n const nodes = rootHierarchy.descendants();\n let view;\n\n focus.isInFocusTransitive = true;\n\n // fixes for single child classes\n CirclePacking.SingleChild.removePlaceholders(nodes);\n CirclePacking.SingleChild.centerNodes(nodes);\n CirclePacking.SingleChild.makePositionsRelativeToZero(nodes);\n\n if (!tip) {\n tip = d3tip()\n .attr('class', 'd3-tip')\n .customPosition(function(d, event) {\n return {\n top: 'inherit',\n bottom: ($window.innerHeight - event.clientY) + 'px',\n right: ($window.innerWidth - event.clientX) + 'px',\n };\n })\n .html(function(d) {\n return d.data.name;\n });\n svg.call(tip);\n }\n\n const circleGroup = g.selectAll(\"circle\")\n .data(nodes)\n .enter().append(\"g\");\n\n if (config.doFade) {\n circleGroup.each(function(d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n let flattenedClassNames = [];\n\n const circle = circleGroup\n .append(\"circle\")\n .attr(\"class\", function(d) {\n return d.data.role;\n })\n .attr(\"data-test\", function(d) {\n return \"class-\" + d.data.name;\n })\n .attr(\"guide-selector\", function(d) {\n return \"class-\" + d.data.name;\n })\n .style(\"fill\", function(d) {\n //return colors[d.depth % 6];\n return d.children ? color(d.depth) : \"#E0D0D0\";\n })\n .each(function(d) {\n d.circle = d3.select(this);\n if (d.data.name !== ROOT_OBJ_NAME) {\n const key = d.data.name;\n flattenedClassNames.push({name: key});\n flattenedClassData[[key]] = d;\n\n d.circle.classed(\"rdf-class\", true);\n d.circle.on('mouseover', function(event) {\n if (config.noPrefixes) {\n tip.show(d, event);\n } else if (!d.textHidden) {\n tip.hide(d);\n } else {\n tip.show(d, event);\n }\n });\n d.circle.on('mouseout', tip.hide);\n }\n })\n // custom event used when user is following a guide\n .on(\"gdb-focus\", (event, d) => doFocus(d))\n .on(\"gdb-zoom\", (event, d) => zoom(d));\n\n\n if (flattenedClassNames) {\n flattenedClassNames = _.uniqBy(flattenedClassNames, 'name');\n scope.flattenedClassNames = flattenedClassNames;\n }\n\n let selectedClass;\n\n function getCurrentClassDataAndMarkSelected(obj) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n obj.circle.classed(\"selected\", obj.selected = true);\n selectedClass = obj;\n }\n\n function showClassInfoPanel() {\n scope.selectedClass = selectedClass;\n scope.showClassInfoPanel = true;\n }\n\n function closeClassInfoPanel() {\n scope.showClassInfoPanel = false;\n }\n\n function goToDomainRangeGraphView() {\n $rootScope.$broadcast('goToDomainRangeGraphView', selectedClass, focus);\n }\n\n const clickCancel = D3.Click.delayDblClick();\n d3.selectAll(\".parent, .topLevelParent, .child, .root\")\n .call(clickCancel);\n\n doFocus = function(obj) {\n zoom(obj);\n\n if (obj.data.name === ROOT_OBJ_NAME) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n } else {\n getCurrentClassDataAndMarkSelected(obj);\n if (!suppressPanelOpen) {\n showClassInfoPanel();\n }\n\n // FIXME: is it ok to bind this event handler every time and not just once?\n scope.$on('sidePanelClosed', function(event) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n });\n }\n\n\n //do not stop event propagation here\n };\n\n clickCancel.on(\"click\", function(event, obj) {\n // add clicked class to browser history\n if (obj.data.id) {\n $window.history.pushState({id: obj.data.id}, \"classHierarchyPage\" + obj.data.id, \"hierarchy#\" + obj.data.id);\n }\n\n //hide current d3-tip tooltip\n tip.hide();\n\n doFocus(obj);\n });\n\n clickCancel.on(\"dblclick\", function(event, obj) {\n if (obj === root) {\n return;\n }\n // hide current d3-tip tooltip in order not to appear in the next view\n tip.hide();\n getCurrentClassDataAndMarkSelected(obj);\n goToDomainRangeGraphView();\n\n event.stopPropagation();\n });\n\n let lastTimeWheel = 0;\n svg.on('wheel', function(event) {\n // hide current d3-tip tooltip\n tip.hide();\n\n event.preventDefault();\n event.stopPropagation();\n\n // at least 100ms must have passed since last time we updated\n const now = Date.now();\n if (now - lastTimeWheel > 100) {\n lastTimeWheel = now;\n } else {\n return;\n }\n\n let direction = '';\n if (event.deltaY <= -1) {\n direction = 'in';\n } else if (event.deltaY >= 1) {\n direction = 'out';\n }\n\n let obj = event.target.__data__;\n\n if (!obj) {\n // scroll outside the big circle\n obj = focus;\n }\n\n if (direction === 'in') {\n // determine object to zoom to\n\n if (obj !== focus) {\n // consider the object on which the scroll event occurred\n // and find the furthest parent that has no focused children\n while (obj.parent && !obj.parent.isInFocusTransitive) {\n obj = obj.parent;\n }\n if (obj.depth < focus.depth) {\n // however if that parent is of lower depth than the focus we ignore it\n obj = focus;\n }\n }\n\n if (obj === focus && obj.children) {\n // if object is in focus and it has children we zoom to its biggest child\n // TODO: sort children on backend\n let newobj = obj.children[0];\n for (let i = 1; i < obj.children.length; i++) {\n if (obj.children[i].sortingRank > newobj.sortingRank) {\n newobj = obj.children[i];\n }\n }\n if (newobj.children) {\n // Use the child only if it has children\n obj = newobj;\n }\n } else if (!obj.children) {\n // If node has no children use its parent instead\n obj = obj.parent;\n }\n\n zoom(obj, true);\n } else if (direction === 'out') {\n // zooming out simply goes one parent up\n obj = focus.parent;\n if (obj) {\n zoom(obj, true);\n }\n }\n\n if (focus.data.name === ROOT_OBJ_NAME) {\n $window.history.replaceState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n }\n\n // redraw slider on zoom out\n sendSliderData();\n });\n\n const text = g.selectAll(\"text\")\n .data(nodes)\n .enter().append(\"text\")\n .attr(\"class\", function(d) {\n return d.children && d.children.length ? \"label\" : \"label child-label\";\n })\n .each(function(d) {\n d.textSel = d3.select(this);\n });\n\n function trimPrefixes(d) {\n const idx = d.data.name.indexOf(\":\");\n const absUriIdx = d.data.name.indexOf(\"http://\");\n if (absUriIdx > -1) {\n // if we have no prefix available ignore\n d.noPrefixName = d.data.name;\n } else if (idx > -1) {\n d.noPrefixName = d.data.name.substring(idx + 1);\n }\n }\n\n if (config.noPrefixes) {\n text.each(trimPrefixes);\n text\n .style(\"font-size\", function(d) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r);\n })\n .text(function(d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r / 3);\n });\n } else {\n text\n .style(\"font-size\", function(d) {\n return D3.Text.calcFontSize(d.data.name, d.r);\n })\n .text(function(d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r / 3);\n });\n }\n\n // TODO: make this use the full version (same as zoom)\n text.style(\"display\", function(d) {\n if (d.parent && d.parent.data === focus.data) {\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n return null;\n } else {\n d.textHidden = true;\n return \"none\";\n }\n });\n\n if (config.doFade && !config.keepPrevState) {\n text.each(function(d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n autoZoomToPreviousState = function() {\n function focusOnCurrentClass(focusHistoryId) {\n if (focusHistoryId) {\n circle.each(function(d) {\n if (+focusHistoryId === d.data.id) {\n doFocus(d);\n }\n });\n }\n }\n\n const focusHistoryId = $location.hash();\n\n $window.onpopstate = function(event) {\n if (event.state) {\n const focusHistoryId = event.state.id;\n focusOnCurrentClass(focusHistoryId);\n }\n };\n\n focusOnCurrentClass(focusHistoryId);\n };\n\n const node = g.selectAll(\"circle, text\");\n\n function zoomTo(v, switchPrefixes) {\n const k = diameter / v[2];\n view = v;\n\n node.attr(\"transform\", function(d) {\n return \"translate(\" + (d.x - v[0]) * k + \",\" + (d.y - v[1]) * k + \")\";\n });\n\n circle.attr(\"r\", function(d) {\n return d.r * k;\n });\n\n function switchPrefixesInPlace(d) {\n // if uris match with the topLevelParentUri of the focused element\n // or your focus is a top level parent hide its label and if it is not\n // a child element show all of its child labels. If it is a child element\n // only show its label.\n if (d.data.fullName === focus.data.topLevelParentUri || focus.data.topLevelParentUri === ROOT_OBJ_NAME) {\n d.textSel.style(\"display\", \"none\");\n if (focus.children && focus.children.length) {\n _.each(focus.children, function(c) {\n c.textSel.style(\"display\", \"inline\");\n });\n } else {\n focus.textSel.style(\"display\", \"inline\");\n }\n\n // in order to show prefixes of siblings check if the focused\n // element has a parent and show all of its children except\n // for the name of the focused element because you need to see\n // its children\n if (focus.parent) {\n _.each(focus.parent.children, function(c) {\n if (c.data.name !== focus.data.name) {\n c.textSel.style(\"display\", \"inline\");\n }\n });\n }\n }\n }\n\n if (switchPrefixes) {\n text.each(switchPrefixesInPlace);\n }\n\n text\n .style(\"font-size\", function(d) {\n if (config.noPrefixes) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r * k);\n }\n return D3.Text.calcFontSize(d.data.name, d.r * k);\n })\n .text(function(d) {\n if (config.noPrefixes) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r * k / 3);\n }\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r * k / 3);\n });\n }\n\n\n function adjustRadius(r) {\n let newr = r * 2 + margin;\n if (r * 2 / newr < 0.3) {\n // for very small circles we need to adjust\n newr = r * 2 + 2;\n }\n return newr;\n }\n\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)], switchPrefixes);\n\n function textUpdate(d) {\n if (d.isInFocusTransitive || !(d.parent && d.parent.isInFocusTransitive)) {\n // hide labels of classes that are in focus (including children) OR whose parents aren't in focus\n d.textHidden = true;\n this.style.display = \"none\";\n } else {\n // show all other labels\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n this.style.display = \"\";\n }\n }\n\n function zoom(d, shouldClosePanel) {\n // use empty timeout to force the following code to be executed on the next $digest cycle\n // in order to avoid '$digest in progress' error\n $timeout(function() {\n scope.showExternalElements = (d.data.name === ROOT_OBJ_NAME);\n });\n\n if (focus === d) {\n // Node is already zoomed to\n // Important to return before we modify the history, otherwise we choke the browser\n return;\n }\n\n if (d.data.id) {\n $window.history.replaceState({id: d.data.id}, \"classHierarchyPage\" + d.data.id, \"hierarchy#\" + d.data.id);\n }\n\n if (!d.children) {\n // No children - zoom to parent instead\n d = d.parent;\n if (focus === d) {\n // Parent is already zoomed to\n return;\n }\n }\n\n if (shouldClosePanel) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n }\n\n if (focus.parent) {\n let p = focus;\n while (p) {\n p.isInFocusTransitive = false;\n p = p.parent;\n }\n }\n\n let p = d;\n while (p) {\n p.isInFocusTransitive = !!p.children;\n p = p.parent;\n }\n\n focus = d;\n\n const isVerySmallCircle = focus.r * 2 / (focus.r * 2 + margin) < 0.3;\n\n if (isVerySmallCircle || scope.currentSliderValue > scope.currentBrowserLimit) {\n // no fancy animation for slower browsers if above the limit or if zooming to a very small circle\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)]);\n\n text.each(function(d) {\n textUpdate.call(this, d);\n });\n } else {\n // the fancy version for faster browsers\n const transition = d3.transition()\n .duration(ZOOM_DURATION)\n .tween(\"zoom\", function(d) {\n const i = d3.interpolateZoom(view, [focus.x, focus.y, adjustRadius(focus.r)]);\n return function(t) {\n zoomTo(i(t));\n };\n });\n\n transition.selectAll(\"text\")\n // Experimental: hide texts to be hidden on \"start\", show texts to be shown on \"end\"\n .each(textUpdate);\n }\n }\n\n rootFocusEvent = scope.$on('rootFocus', function() {\n $window.history.pushState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n doFocus(rootHierarchy);\n });\n\n classSearchEvent = scope.$on('classSearch', function(selectedClass) {\n doFocus(selectedClass);\n });\n }\n\n function sendSliderData() {\n const currentClassCount = scope.classHierarchyData.classCount;\n let currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n\n if (!currentSliderValue || currentSliderValue > currentClassCount) {\n currentSliderValue = currentClassCount;\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n }\n\n $rootScope.$broadcast(\"classCount\", currentClassCount, currentSliderValue);\n }\n\n window.addEventListener('resize', sendSliderData);\n\n window.addEventListener('beforeunload', removeResizeListener);\n\n function removeResizeListener() {\n window.removeEventListener('resize', sendSliderData);\n window.removeEventListener('beforeunload', removeResizeListener);\n }\n\n let prefixesWatch;\n let currentClassCountWatch;\n let searchedClassBroadcast;\n let onEnterClassSearchBroadcast;\n\n scope.$watch('classHierarchyData', function() {\n // when data changes unregister watchers by calling them\n if (prefixesWatch) prefixesWatch();\n if (currentClassCountWatch) currentClassCountWatch();\n if (searchedClassBroadcast) searchedClassBroadcast();\n if (onEnterClassSearchBroadcast) onEnterClassSearchBroadcast();\n\n // get initial state of prefixes (hidden or not) when changing repositories\n // in order to avoid triggering an unwanted prefixes watch\n let initialPrefixesState = getPrefixesState();\n\n if (scope.classHierarchyData.classCount) {\n sendSliderData();\n\n const rootData = structuredClone(scope.classHierarchyData);\n\n const root = d3.hierarchy(rootData);\n\n function sortRoot(root) {\n // add all classes to a flat array, add parent information\n // and sort according to instancesCount DESC, depth ASC\n\n return root.descendants()\n .sort(function(a, b) {\n if (a.data.sortingRank > b.data.sortingRank) {\n return -1;\n } else if (a.data.sortingRank < b.data.sortingRank) {\n return 1;\n } else if (a.data.depth > b.data.depth) {\n return 1;\n } else if (a.data.depth < b.data.depth) {\n return -1;\n } else {\n return 0;\n }\n });\n }\n\n const sortedChildren = sortRoot(root);\n\n // we start with an empty new rootData\n let filteredRootData;\n let noPrefixesGlobal;\n\n\n function restoreDiagramState(currentRootData, switchPrefixes) {\n const prefixesConfig = {\n keepPrevState: true,\n noPrefixes: getPrefixesState(),\n };\n\n // get noPrefixes flag from drawDiagram configuration params\n noPrefixesGlobal = prefixesConfig.noPrefixes;\n\n if (filteredRootData) {\n drawDiagram(filteredRootData, prefixesConfig, focus, true);\n } else {\n drawDiagram(currentRootData, prefixesConfig, focus, true);\n }\n\n $timeout(() => {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_SWITCH_PREFIXES, switchPrefixes);\n autoZoomToPreviousState();\n // Need to set this to false to enable the info panel to work when selecting a class.\n // The panel opening will be suppressed only when the prefixes are toggled.\n suppressPanelOpen = false;\n }, 70);\n }\n\n function redrawFilteredDiagram(currentSliderValue, sortedChildrenArray, useSlider) {\n if (!currentSliderValue) {\n return;\n }\n\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n\n filteredRootData = {\n name: ROOT_OBJ_NAME,\n children: [],\n };\n\n // walk through the given count of (sortedChildrenArray) classes\n // - record the id of each class we've seen\n // - add the rootData level classes to the new rootData\n const addedIds = new Set();\n for (let k = 1; k <= currentSliderValue; k++) {\n addedIds.add(sortedChildrenArray[k].data.id);\n if (sortedChildrenArray[k].parent === sortedChildrenArray[0]) { // i.e. the parent is the \"class hierarchy\"\n filteredRootData.children.push(sortedChildrenArray[k].data);\n }\n }\n\n // walk through all the classes in the new rootData and only keep those that have an \"added id\"\n // we create separate copies of the arrays in order not to contaminate the original data\n // we also copy each class's object ($.extend ...) for the same reason\n function fixChildren(node) {\n if (!node.children) {\n return;\n }\n const newChildren = [];\n for (const child of node.children) {\n if (addedIds.has(child.id)) {\n newChildren.push($.extend({}, child));\n }\n }\n node.children = newChildren;\n for (const child of node.children) {\n fixChildren(child);\n }\n }\n\n fixChildren(filteredRootData);\n\n if (useSlider) {\n // redraw diagram when slider value changes and persist current state\n // in local storage\n noPrefixesGlobal = angular.isUndefined(noPrefixesGlobal) ? getPrefixesState() : noPrefixesGlobal;\n const redrawConfig = {\n noPrefixes: noPrefixesGlobal,\n };\n drawDiagram(filteredRootData, redrawConfig);\n } else {\n // if the user returns to the diagram with back browser button\n // read the saved state (show/hide prefixes, current slider value)\n // from local storage and render the diagram according to the saved metrics\n restoreDiagramState(rootData);\n }\n }\n\n const currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n if (currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren);\n } else {\n const basicConfig = {\n doFade: true,\n keepPrevState: true,\n noPrefixes: getPrefixesState(),\n };\n drawDiagram(rootData, basicConfig);\n autoZoomToPreviousState();\n }\n\n prefixesWatch = scope.$watch('hidePrefixes', function(hidePrefixes) {\n if (angular.isUndefined(hidePrefixes) || initialPrefixesState) {\n initialPrefixesState = undefined;\n return;\n }\n // if digest overflows a possible fix might be wrapping this in $timeout\n $timeout(function() {\n suppressPanelOpen = true;\n savePrefixesState(hidePrefixes);\n restoreDiagramState(rootData, true);\n }, 50);\n }, true);\n\n currentClassCountWatch = scope.$watch('currentSliderValue', function(currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren, true);\n }, true);\n\n // we handle this event for the cases where we already have searched for a given class and\n // hit enter again on the already selected class in order again react and zoom to it again\n // if we are not at the moment\n let currentSearchedClass;\n onEnterClassSearchBroadcast = scope.$on('onEnterKeypressSearchAction', function(event) {\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n\n searchedClassBroadcast = scope.$on('searchedClass', function(event, searchedClass) {\n currentSearchedClass = flattenedClassData[searchedClass.name];\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n }\n }, true);\n }\n}\n"],"names":["CirclePacking","SingleChild","addPlaceholders","node","first","children","i","length","placeholderSize","size","push","name","removePlaceholders","nodes","data","splice","centerNodes","offset","x","reposition","makePositionsRelativeToZero","offsetX","offsetY","y","d3","selectAll","SVG","Export","getCSSRules","cssSourceFilePath","cssRules","$","sheet","rules","cssStr","_","each","value","cssText","generateBase64ImageSource","svgSelectorClass","exportSvg","attr","parentNode","innerHTML","btoa","unescape","encodeURIComponent","classHierarchyDirective","$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate","restrict","template","scope","classHierarchyData","flattenedClassNames","selectedClass","currentSliderValue","showClassInfoPanel","showExternalElements","hidePrefixes","currentBrowserLimit","link","element","attrs","suppressPanelOpen","tip","rootHierarchy","packLayout","diameter","color","domain","range","interpolate","svg","insert","on","appendMainGroup","append","id","transform","getPrefixesState","get","CLASS_HIERARCHY_HIDE_PREFIXES","prepareForSVGImageExport","style","imgSrc","this","href","download","getActiveRepository","g","hasData","classCount","canUseRepo","isSystemRepository","autoZoomToPreviousState","doFocus","focus","rootFocusEvent","classSearchEvent","service","LicenseContextService","onLicenseChanged","license","valid","loader","hierarchyError","selGraphFromCache","getClassHierarchyData","contextID","uri","success","response","status","warning","instant","error","getError","fetchClassHierarchy","flattenedClassData","drawDiagram","root","config","newFocus","switchPrefixes","remove","sum","d","descendants","view","isInFocusTransitive","d3tip","customPosition","event","top","bottom","innerHeight","clientY","right","innerWidth","clientX","html","call","circleGroup","enter","doFade","D3","Transition","fadeIn","circle","role","depth","key","classed","noPrefixes","textHidden","show","hide","zoom","getCurrentClassDataAndMarkSelected","obj","selected","closeClassInfoPanel","uniqBy","clickCancel","Click","delayDblClick","$on","history","pushState","$broadcast","stopPropagation","lastTimeWheel","preventDefault","now","Date","direction","deltaY","target","__data__","parent","newobj","sortingRank","replaceState","sendSliderData","text","textSel","idx","indexOf","noPrefixName","substring","Text","calcFontSize","r","getTextWithElipsisIfNeeded","textContent","keepPrevState","focusOnCurrentClass","focusHistoryId","hash","onpopstate","state","zoomTo","v","k","fullName","topLevelParentUri","c","adjustRadius","newr","textUpdate","display","shouldClosePanel","p","duration","tween","t","currentClassCount","CLASS_HIERARCHY_CURRENT_SLIDER_VALUE","set","prefixesWatch","currentClassCountWatch","searchedClassBroadcast","onEnterClassSearchBroadcast","window","addEventListener","removeResizeListener","removeEventListener","$watch","initialPrefixesState","rootData","structuredClone","sortedChildren","sort","a","b","filteredRootData","noPrefixesGlobal","restoreDiagramState","currentRootData","prefixesConfig","CLASS_HIERARCHY_SWITCH_PREFIXES","redrawFilteredDiagram","sortedChildrenArray","useSlider","addedIds","Set","add","fixChildren","newChildren","child","has","extend","angular","isUndefined","basicConfig","currentSearchedClass","undefined","savePrefixesState","searchedClass","renderCirclePacking","module","constant","directive","$inject"],"ignoreList":[],"sourceRoot":""}
package/dist/index.html CHANGED
@@ -5,16 +5,16 @@
5
5
  const clean = pathname.slice(0, -1) + search + hash;
6
6
  window.history.replaceState({}, '', clean);
7
7
  }
8
- })();</script><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="X-UA-Compatible" content="ie=edge"><link rel="stylesheet" href="css/splash-screen.css?v=3.3.2"><title>GraphDB Workbench</title><script src="resources/runtime.js?v=3.3.2"></script><meta name="importmap-type" use-injector/><script src="plugin-registry.js?v=3.3.2"></script><script src="plugins.js?v=3.3.2"></script><script>window.wbDevMode = false;</script><script type="injector-importmap">{
8
+ })();</script><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="X-UA-Compatible" content="ie=edge"><link rel="stylesheet" href="css/splash-screen.css?v=3.3.3-RC1"><title>GraphDB Workbench</title><script src="resources/runtime.js?v=3.3.3-RC1"></script><meta name="importmap-type" use-injector/><script src="plugin-registry.js?v=3.3.3-RC1"></script><script src="plugins.js?v=3.3.3-RC1"></script><script>window.wbDevMode = false;</script><script type="injector-importmap">{
9
9
  "imports": {
10
- "single-spa": "./resources/single-spa.min.js?v=3.3.2",
11
- "@ontotext/workbench-api": "./api/ontotext-workbench-api.js?v=3.3.2",
12
- "@ontotext/root-config": "./main.14f083264cd64618d96a.js",
13
- "@ontotext/legacy-workbench": "./legacyWorkbench.40eba9e09196e1483221.js",
14
- "@ontotext/workbench": "./workbench/workbench/workbenchApp.js?v=3.3.2",
15
- "@ontotext/styleguide": "./styleguide.6394d95068fdfd394db1.js?v=3.3.2"
10
+ "single-spa": "./resources/single-spa.min.js?v=3.3.3-RC1",
11
+ "@ontotext/workbench-api": "./api/ontotext-workbench-api.js?v=3.3.3-RC1",
12
+ "@ontotext/root-config": "./main.a67c284710a8b9a98ca2.js",
13
+ "@ontotext/legacy-workbench": "./legacyWorkbench.f1ed8e359786e8adeab2.js",
14
+ "@ontotext/workbench": "./workbench/workbench/workbenchApp.js?v=3.3.3-RC1",
15
+ "@ontotext/styleguide": "./styleguide.6394d95068fdfd394db1.js?v=3.3.3-RC1"
16
16
  }
17
- }</script><meta name="import-map-overrides-domains" content="denylist:prod.example.com"/><script src="resources/import-map-overrides.js?v=3.3.2"></script><script src="resources/import-map-injector.js?v=3.3.2"></script><style>/* Default light/dark background is hardcodded here because our variables are not present yet. */
17
+ }</script><meta name="import-map-overrides-domains" content="denylist:prod.example.com"/><script src="resources/import-map-overrides.js?v=3.3.3-RC1"></script><script src="resources/import-map-injector.js?v=3.3.3-RC1"></script><style>/* Default light/dark background is hardcodded here because our variables are not present yet. */
18
18
  body {
19
19
  background-color: hsla(220, 40%, 7%);
20
20
  }
@@ -25,4 +25,4 @@
25
25
  }</style></head><body><noscript>You need to enable JavaScript to run this app.</noscript><script>window.importMapInjector.initPromise.then(() => {
26
26
  import('@ontotext/root-config');
27
27
  import('@ontotext/styleguide');
28
- });</script><import-map-overrides-full show-when-local-storage="devtools" dev-libs></import-map-overrides-full><figure id="splash-screen"><img decoding="sync" src="assets/graphdb-splash.svg?v=3.3.2" alt="GraphDB Workbench is loading..."></figure><onto-toastr></onto-toastr></body></html>
28
+ });</script><import-map-overrides-full show-when-local-storage="devtools" dev-libs></import-map-overrides-full><figure id="splash-screen"><img decoding="sync" src="assets/graphdb-splash.svg?v=3.3.3-RC1" alt="GraphDB Workbench is loading..."></figure><onto-toastr></onto-toastr></body></html>
@@ -1,4 +1,4 @@
1
- <link href="css/cluster-nodes-configuration.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/cluster-nodes-configuration.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div onto-loader ng-if="loader" class="create-cluster-loader" message="getLoaderMessage" size="100"></div>
4
4
  <div class="add-node-wrapper pull-right mb-1">
@@ -1,4 +1,4 @@
1
- <link href="css/autocomplete-select.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/autocomplete-select.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="autocomplete-select-wrapper">
4
4
  <div class="autocomplete-select">
@@ -1,4 +1,4 @@
1
- <link href="css/dynamic-form.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/dynamic-form.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="dynamic-form-container">
4
4
  <form name="dynamicForm" novalidate class="dynamic-form">
@@ -1,4 +1,4 @@
1
- <link href="css/operations-statuses-monitor.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/operations-statuses-monitor.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div ng-if="activeOperations && activeOperations.operations && activeOperations.operations.length > 0"
4
4
  class="operations-statuses btn-group">
@@ -1,4 +1,4 @@
1
- <link href="css/rdf-resource-search.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/rdf-resource-search.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div ng-cloak>
4
4
  <div id="search-box"
@@ -1,4 +1,4 @@
1
- <link href="css/shuttle-multiselect.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/shuttle-multiselect.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="shuttle-multiselect">
4
4
  <div class="shuttle-panel available-options">
@@ -1,5 +1,5 @@
1
- <link href="css/lib/codemirror/moxer.css?v=3.3.2" rel="stylesheet">
2
- <link href="css/lib/ontotext-yasgui-web-component.css?v=3.3.2" rel="stylesheet">
1
+ <link href="css/lib/codemirror/moxer.css?v=3.3.3-RC1" rel="stylesheet">
2
+ <link href="css/lib/ontotext-yasgui-web-component.css?v=3.3.3-RC1" rel="stylesheet">
3
3
 
4
4
  <ontotext-yasgui
5
5
  class="{{classToApply}}"
@@ -1,4 +1,4 @@
1
- <link href="css/cookie-policy.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/cookie-policy.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="cookie-consent-modal" ng-show="showCookieConsent">
4
4
  <div class="cookie-consent-content">
@@ -1,4 +1,4 @@
1
- <link href="css/cookie-policy.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/cookie-policy.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="cookie-policy-modal">
4
4
  <div class="title">{{'cookie.policy.title' | translate}}</div>
@@ -1,4 +1,4 @@
1
- <link href="css/editable-content.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/editable-content.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
  <div
3
3
  ng-attr-contenteditable="{{!ngDisabled}}"
4
4
  ng-attr-disabled="{{ngDisabled ? true : undefined}}"
@@ -1,2 +1,2 @@
1
- <link href="css/markdown-content.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/markdown-content.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
  <div class="markdown-content" ng-bind-html="markdownContent"></div>
@@ -1,4 +1,4 @@
1
- <link href="css/search-resource-input.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/search-resource-input.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div id="search-resource-box" class="input-group btn-group" ng-class="{'input-group-lg': !radioButtons}" style="white-space: nowrap">
4
4
  <input type="text" class="form-control view-res-input" placeholder="{{placeholder}}" ng-model="searchInput"
@@ -1,5 +1,5 @@
1
- <link href="css/graphql/create-graphql-endpoint.css?v=3.3.2" rel="stylesheet"/>
2
- <link href="css/wizard.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/graphql/create-graphql-endpoint.css?v=3.3.3-RC1" rel="stylesheet"/>
2
+ <link href="css/wizard.css?v=3.3.3-RC1" rel="stylesheet"/>
3
3
 
4
4
  <div class="create-graphql-endpoint-view">
5
5
  <h1 id="title-container">
@@ -1,4 +1,4 @@
1
- <link href="css/graphql/graphql-endpoint-management.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/graphql/graphql-endpoint-management.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="graphql-endpoint-management-view">
4
4
  <h1 id="title-container">
@@ -1,5 +1,5 @@
1
- <link href="css/lib/codemirror/moxer.css?v=3.3.2" rel="stylesheet">
2
- <link href="css/graphql/graphql-playground.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/lib/codemirror/moxer.css?v=3.3.3-RC1" rel="stylesheet">
2
+ <link href="css/graphql/graphql-playground.css?v=3.3.3-RC1" rel="stylesheet"/>
3
3
 
4
4
  <div class="graphql-playground-view">
5
5
  <h1 id="title-container">
@@ -1,4 +1,4 @@
1
- <link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="modal-header">
4
4
  <h3 class="modal-title">{{'graphql.endpoints_management.endpoint_configuration_modal.title' | translate}}</h3>
@@ -1,4 +1,4 @@
1
- <link href="css/graphql/endpoint-generation-failure-result-modal.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/graphql/endpoint-generation-failure-result-modal.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="modal-header">
4
4
  <button type="button" class="close" ng-click="close()"></button>
@@ -1,4 +1,4 @@
1
- <link href="css/graphql/import-endpoint-definition-modal.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/graphql/import-endpoint-definition-modal.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="modal-header px-2">
4
4
  <button type="button" class="close" ng-click="close()"></button>
@@ -31,8 +31,8 @@
31
31
  </ul>
32
32
  </script>
33
33
 
34
- <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.3.2" rel="stylesheet"/>
35
- <link href='css/user.css?v=3.3.2' rel='stylesheet' type='text/css'/>
34
+ <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.3.3-RC1" rel="stylesheet"/>
35
+ <link href='css/user.css?v=3.3.3-RC1' rel='stylesheet' type='text/css'/>
36
36
 
37
37
  <h1>
38
38
  {{pageTitle}}
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/agent-list.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/agent-list.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="agent-list-component">
4
4
  <div class="agents-filter-dropdown btn-group" uib-dropdown>
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/agent-select-menu.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/agent-select-menu.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="btn-group agent-select-menu" uib-dropdown guide-selector="select-agent-dropdown">
4
4
  <button type="button" class="btn btn-secondary dropdown-toggle-btn" uib-dropdown-toggle guide-selector="select-agent-dropdown-toggle"
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/chat-item-details.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/chat-item-details.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="chat-detail">
4
4
  <div class="user-message" ng-if="chatItemDetail.question">
@@ -72,7 +72,8 @@
72
72
  ng-if="queryMethod.queryType === ExplainQueryType.SPARQL"
73
73
  execute-query="{{!queryMethod.errorMessage}}"
74
74
  repository-id="{{repositoryId}}"
75
- query="{{queryMethod.query}}">
75
+ query="{{queryMethod.query}}"
76
+ add-prefixes="true">
76
77
  </open-in-sparql-editor>
77
78
  <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_{{ queryMethod.queryType }}.tooltip"
78
79
  text-to-copy="{{queryMethod.query}}"></copy-to-clipboard>
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/chat-list.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/chat-list.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="chat-list-component">
4
4
  <div class="chat-list">
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/chat-panel.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/chat-panel.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="chat-panel h-100" ng-class="!chat && !askingChatItem ? 'no-content' : ''">
4
4
 
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/agent-instructions-explain-modal.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/agent-instructions-explain-modal.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="modal-header">
4
4
  <button type="button" class="close" ng-click="close()"></button>
@@ -1,6 +1,6 @@
1
- <link href="css/ttyg/agent-settings-modal.css?v=3.3.2" rel="stylesheet"/>
2
- <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.3.2" rel="stylesheet"/>
3
- <link href="css/multiselect-search.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/agent-settings-modal.css?v=3.3.3-RC1" rel="stylesheet"/>
2
+ <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.3.3-RC1" rel="stylesheet"/>
3
+ <link href="css/multiselect-search.css?v=3.3.3-RC1" rel="stylesheet"/>
4
4
 
5
5
  <div class="modal-header">
6
6
  <button type="button" class="close" ng-click="close()"></button>
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/external-integration-configuration-modal.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/external-integration-configuration-modal.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="modal-header">
4
4
  <button type="button" class="close" ng-click="close()"></button>
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/no-agents-view.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/no-agents-view.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="no-agents-view-component" data-test="no-agents-view-component">
4
4
  <div class="content">
@@ -1,4 +1,4 @@
1
- <link href="css/ttyg/ttyg.css?v=3.3.2" rel="stylesheet"/>
1
+ <link href="css/ttyg/ttyg.css?v=3.3.3-RC1" rel="stylesheet"/>
2
2
 
3
3
  <div class="ttyg-view" ng-class="{'help-visible': isHelpVisible}">
4
4
  <h1 id="ttyg-view-title">