graphdb-workbench 3.5.0-TR3 → 3.5.0-TR5

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 (188) hide show
  1. package/dist/{23654.28f7b5a1f2cbac46b505.bundle.js → 23654.2f4c56eca267fda60261.bundle.js} +2 -2
  2. package/dist/{23654.28f7b5a1f2cbac46b505.bundle.js.map → 23654.2f4c56eca267fda60261.bundle.js.map} +1 -1
  3. package/dist/40808.78f81786cadf334f8531.bundle.js +2 -0
  4. package/dist/40808.78f81786cadf334f8531.bundle.js.map +1 -0
  5. package/dist/43239.71707ff04a220130d250.bundle.js +2 -0
  6. package/dist/43239.71707ff04a220130d250.bundle.js.map +1 -0
  7. package/dist/44906.3d40209be900c399a67d.bundle.js +2 -0
  8. package/dist/44906.3d40209be900c399a67d.bundle.js.map +1 -0
  9. package/dist/{45501.b57c0da09b0c710a2ae4.bundle.js → 45501.9eb529ce40a22951f417.bundle.js} +2 -2
  10. package/dist/{45501.b57c0da09b0c710a2ae4.bundle.js.map → 45501.9eb529ce40a22951f417.bundle.js.map} +1 -1
  11. package/dist/54774.474357fa8720f682dad5.bundle.js +2 -0
  12. package/dist/54774.474357fa8720f682dad5.bundle.js.map +1 -0
  13. package/dist/{58328.b15114d6bec21972df60.bundle.js → 58328.ae47dca9b6fd21785b2d.bundle.js} +3 -3
  14. package/dist/{58328.b15114d6bec21972df60.bundle.js.map → 58328.ae47dca9b6fd21785b2d.bundle.js.map} +1 -1
  15. package/dist/{60447.675082fab71ca7e25db4.bundle.js → 60447.57a1b7f57a11d7eb7186.bundle.js} +2 -2
  16. package/dist/{60447.675082fab71ca7e25db4.bundle.js.map → 60447.57a1b7f57a11d7eb7186.bundle.js.map} +1 -1
  17. package/dist/{64709.c88c51016f076cbabc90.bundle.js → 64709.3c6ab6dd64342d260265.bundle.js} +2 -2
  18. package/dist/{64709.c88c51016f076cbabc90.bundle.js.map → 64709.3c6ab6dd64342d260265.bundle.js.map} +1 -1
  19. package/dist/{65677.17f5dcabfc485f1e12eb.bundle.js → 65677.3601a1447e8c705ebe9d.bundle.js} +2 -2
  20. package/dist/{65677.17f5dcabfc485f1e12eb.bundle.js.map → 65677.3601a1447e8c705ebe9d.bundle.js.map} +1 -1
  21. package/dist/{7257.44d40b3d795bb5b63224.bundle.js → 7257.a29aff1ae95e47e808e4.bundle.js} +2 -2
  22. package/dist/{7257.44d40b3d795bb5b63224.bundle.js.map → 7257.a29aff1ae95e47e808e4.bundle.js.map} +1 -1
  23. package/dist/{79146.2855e9b7348cd38dd4e0.bundle.js → 79146.69cc6c97fd6c137bd081.bundle.js} +2 -2
  24. package/dist/{79146.2855e9b7348cd38dd4e0.bundle.js.map → 79146.69cc6c97fd6c137bd081.bundle.js.map} +1 -1
  25. package/dist/80099.6e992ddb259c9c8dd389.bundle.js +2 -0
  26. package/dist/80099.6e992ddb259c9c8dd389.bundle.js.map +1 -0
  27. package/dist/{80933.f525c8a525c14438dd9c.bundle.js → 80933.11ccdbd4e85cb0b0da6e.bundle.js} +2 -2
  28. package/dist/{80933.f525c8a525c14438dd9c.bundle.js.map → 80933.11ccdbd4e85cb0b0da6e.bundle.js.map} +1 -1
  29. package/dist/{82917.b24600c57a3e4a08374e.bundle.js → 82917.0e44aebbb0f0b307a336.bundle.js} +2 -2
  30. package/dist/{82917.b24600c57a3e4a08374e.bundle.js.map → 82917.0e44aebbb0f0b307a336.bundle.js.map} +1 -1
  31. package/dist/{85064.b385fae12f19d1ccaeaa.bundle.js → 85064.86e04d3f61bf9f5c07fe.bundle.js} +2 -2
  32. package/dist/{85064.b385fae12f19d1ccaeaa.bundle.js.map → 85064.86e04d3f61bf9f5c07fe.bundle.js.map} +1 -1
  33. package/dist/{86099.7261b39d7cff80da2a41.bundle.js → 86099.bac9f4c14deeb019ec32.bundle.js} +2 -2
  34. package/dist/{86099.7261b39d7cff80da2a41.bundle.js.map → 86099.bac9f4c14deeb019ec32.bundle.js.map} +1 -1
  35. package/dist/96827.9c566428b7ccbd367b04.bundle.js +2 -0
  36. package/dist/96827.9c566428b7ccbd367b04.bundle.js.map +1 -0
  37. package/dist/assets/i18n/en.json +1 -2
  38. package/dist/assets/i18n/fr.json +1 -2
  39. package/dist/index.html +9 -9
  40. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  41. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  42. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  43. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  44. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  45. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  46. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +2 -2
  47. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  48. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  49. package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
  50. package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
  51. package/dist/js/angular/core/templates/search-resource-input.html +1 -1
  52. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
  53. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  54. package/dist/js/angular/graphql/templates/graphql-playground.html +2 -2
  55. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  56. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  57. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  58. package/dist/js/angular/security/templates/user.html +2 -2
  59. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  60. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  61. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  62. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  63. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  64. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  65. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +3 -3
  66. package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
  67. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  68. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  69. package/dist/{legacyWorkbench.d59df54d7b195790cc81.js → legacyWorkbench.4afca6618ece256d15c7.js} +3 -3
  70. package/dist/{legacyWorkbench.d59df54d7b195790cc81.js.map → legacyWorkbench.4afca6618ece256d15c7.js.map} +1 -1
  71. package/dist/{main.c10b01e0b09d1bc233ba.js → main.aa40457f706547a8ab62.js} +3 -3
  72. package/dist/{main.c10b01e0b09d1bc233ba.js.map → main.aa40457f706547a8ab62.js.map} +1 -1
  73. package/dist/pages/aclmanagement.html +1 -1
  74. package/dist/pages/autocomplete.html +1 -1
  75. package/dist/pages/choose-repository-type.html +1 -1
  76. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  77. package/dist/pages/create-index.html +1 -1
  78. package/dist/pages/dependencies.html +1 -1
  79. package/dist/pages/domainRangeInfo.html +2 -2
  80. package/dist/pages/edit.html +1 -1
  81. package/dist/pages/explore.html +1 -1
  82. package/dist/pages/export.html +1 -1
  83. package/dist/pages/find.html +1 -1
  84. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  85. package/dist/pages/graphs-visualizations.html +7 -7
  86. package/dist/pages/guides.html +1 -1
  87. package/dist/pages/home.html +1 -1
  88. package/dist/pages/import.html +2 -2
  89. package/dist/pages/jdbc-create.html +1 -1
  90. package/dist/pages/jdbc.html +1 -1
  91. package/dist/pages/monitor/backup-and-restore.html +1 -1
  92. package/dist/pages/monitor/queries.html +1 -1
  93. package/dist/pages/monitor/resources.html +1 -1
  94. package/dist/pages/namespaces.html +2 -2
  95. package/dist/pages/plugins.html +1 -1
  96. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  97. package/dist/pages/rdfrank.html +2 -2
  98. package/dist/pages/repositories.html +2 -2
  99. package/dist/pages/repository.html +1 -1
  100. package/dist/pages/similarity-indexes.html +1 -1
  101. package/dist/pages/sparql-editor.html +1 -1
  102. package/dist/pages/sparql-template-create.html +1 -1
  103. package/dist/pages/sparql-templates.html +1 -1
  104. package/dist/pages/ux-test1.html +2 -2
  105. package/dist/pages/webapi.html +2 -2
  106. package/dist/plugins.js +1 -1
  107. package/dist/res/swagger5/index.html +11 -11
  108. package/dist/shared-components/cjs/onto-deprecation-banner_5.cjs.entry.js +1 -1
  109. package/dist/shared-components/cjs/onto-dialog_2.cjs.entry.js +1 -1
  110. package/dist/shared-components/cjs/onto-dropdown.cjs.entry.js +1 -1
  111. package/dist/shared-components/cjs/onto-graph-explore-split-button.cjs.entry.js +1 -1
  112. package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js +1 -1
  113. package/dist/shared-components/cjs/onto-layout.cjs.entry.js +1 -1
  114. package/dist/shared-components/cjs/onto-permission-banner.cjs.entry.js +1 -1
  115. package/dist/shared-components/cjs/onto-test-context.cjs.entry.js +1 -1
  116. package/dist/shared-components/cjs/onto-toastr.cjs.entry.js +1 -1
  117. package/dist/shared-components/cjs/onto-tooltip.cjs.entry.js +1 -1
  118. package/dist/shared-components/cjs/translate-label.cjs.entry.js +1 -1
  119. package/dist/shared-components/collection/components/onto-deprecation-banner/onto-deprecation-banner.css +1 -1
  120. package/dist/shared-components/collection/components/onto-deprecation-banner/onto-deprecation-banner.js +1 -1
  121. package/dist/shared-components/collection/components/onto-dropdown/onto-dropdown.js +1 -1
  122. package/dist/shared-components/collection/components/onto-footer/onto-footer.js +1 -1
  123. package/dist/shared-components/collection/components/onto-graph-explore-split-button/onto-graph-explore-split-button.js +1 -1
  124. package/dist/shared-components/collection/components/onto-header/onto-header.js +1 -1
  125. package/dist/shared-components/collection/components/onto-language-selector/onto-language-selector.js +1 -1
  126. package/dist/shared-components/collection/components/onto-layout/onto-layout.js +1 -1
  127. package/dist/shared-components/collection/components/onto-license-alert/onto-license-alert.js +1 -1
  128. package/dist/shared-components/collection/components/onto-loader/onto-loader.js +1 -1
  129. package/dist/shared-components/collection/components/onto-operations-notification/onto-operations-notification.js +1 -1
  130. package/dist/shared-components/collection/components/onto-permission-banner/onto-permission-banner.js +1 -1
  131. package/dist/shared-components/collection/components/onto-rdf-search/onto-rdf-search.js +1 -1
  132. package/dist/shared-components/collection/components/onto-repository-selector/onto-repository-selector.js +1 -1
  133. package/dist/shared-components/collection/components/onto-search-icon/onto-search-icon.js +1 -1
  134. package/dist/shared-components/collection/components/onto-search-resource-input/onto-search-resource-input.js +1 -1
  135. package/dist/shared-components/collection/components/onto-toastr/onto-toastr.js +1 -1
  136. package/dist/shared-components/collection/components/onto-toggle-switch/onto-toggle-switch.js +1 -1
  137. package/dist/shared-components/collection/components/onto-tooltip/onto-tooltip.js +1 -1
  138. package/dist/shared-components/collection/components/onto-user-login/onto-user-login.js +1 -1
  139. package/dist/shared-components/collection/components/onto-user-menu/onto-user-menu.js +1 -1
  140. package/dist/shared-components/collection/components/translate-label/translate-label.js +1 -1
  141. package/dist/shared-components/esm/onto-deprecation-banner_5.entry.js +1 -1
  142. package/dist/shared-components/esm/onto-dialog_2.entry.js +1 -1
  143. package/dist/shared-components/esm/onto-dropdown.entry.js +1 -1
  144. package/dist/shared-components/esm/onto-graph-explore-split-button.entry.js +1 -1
  145. package/dist/shared-components/esm/onto-language-selector_9.entry.js +1 -1
  146. package/dist/shared-components/esm/onto-layout.entry.js +1 -1
  147. package/dist/shared-components/esm/onto-permission-banner.entry.js +1 -1
  148. package/dist/shared-components/esm/onto-test-context.entry.js +1 -1
  149. package/dist/shared-components/esm/onto-toastr.entry.js +1 -1
  150. package/dist/shared-components/esm/onto-tooltip.entry.js +1 -1
  151. package/dist/shared-components/esm/translate-label.entry.js +1 -1
  152. package/dist/shared-components/shared-components/p-23d30101.entry.js +1 -0
  153. package/dist/shared-components/shared-components/{p-5a0c473d.entry.js → p-34ade607.entry.js} +1 -1
  154. package/dist/shared-components/shared-components/{p-20b1637d.entry.js → p-6541a02d.entry.js} +1 -1
  155. package/dist/shared-components/shared-components/{p-6ce0c1c9.entry.js → p-707656f3.entry.js} +1 -1
  156. package/dist/shared-components/shared-components/{p-fb9651cd.entry.js → p-7d074106.entry.js} +1 -1
  157. package/dist/shared-components/shared-components/p-86d0a2ee.entry.js +1 -0
  158. package/dist/shared-components/shared-components/p-8fb56abc.entry.js +1 -0
  159. package/dist/shared-components/shared-components/{p-ab06eb4f.entry.js → p-98e91ae6.entry.js} +1 -1
  160. package/dist/shared-components/shared-components/{p-eda1cb77.entry.js → p-9ba83beb.entry.js} +2 -2
  161. package/dist/shared-components/shared-components/p-9f2fb166.entry.js +1 -0
  162. package/dist/shared-components/shared-components/p-b46ea034.entry.js +1 -0
  163. package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
  164. package/dist/shared-components/types/components/onto-footer/onto-footer.d.ts +1 -0
  165. package/dist/shared-components/types/components/translate-label/translate-label.d.ts +2 -2
  166. package/dist/shared-components/types/components.d.ts +4 -4
  167. package/package.json +1 -1
  168. package/dist/40808.39a22bb87bfc33dafad7.bundle.js +0 -2
  169. package/dist/40808.39a22bb87bfc33dafad7.bundle.js.map +0 -1
  170. package/dist/43239.1cd1b4be623593e3de58.bundle.js +0 -2
  171. package/dist/43239.1cd1b4be623593e3de58.bundle.js.map +0 -1
  172. package/dist/44906.add6bedebb53f0cc1aaa.bundle.js +0 -2
  173. package/dist/44906.add6bedebb53f0cc1aaa.bundle.js.map +0 -1
  174. package/dist/54774.f5bbd2466f8584d019ff.bundle.js +0 -2
  175. package/dist/54774.f5bbd2466f8584d019ff.bundle.js.map +0 -1
  176. package/dist/80099.a881e961bc3214bf8e18.bundle.js +0 -2
  177. package/dist/80099.a881e961bc3214bf8e18.bundle.js.map +0 -1
  178. package/dist/96827.775ca12817b0a81b610a.bundle.js +0 -2
  179. package/dist/96827.775ca12817b0a81b610a.bundle.js.map +0 -1
  180. package/dist/shared-components/shared-components/p-114ea8c4.entry.js +0 -1
  181. package/dist/shared-components/shared-components/p-79ea666b.entry.js +0 -1
  182. package/dist/shared-components/shared-components/p-7aea3f88.entry.js +0 -1
  183. package/dist/shared-components/shared-components/p-a0b19580.entry.js +0 -1
  184. package/dist/shared-components/shared-components/p-cec2c15d.entry.js +0 -1
  185. /package/dist/{58328.b15114d6bec21972df60.bundle.js.LICENSE.txt → 58328.ae47dca9b6fd21785b2d.bundle.js.LICENSE.txt} +0 -0
  186. /package/dist/{legacyWorkbench.d59df54d7b195790cc81.js.LICENSE.txt → legacyWorkbench.4afca6618ece256d15c7.js.LICENSE.txt} +0 -0
  187. /package/dist/{main.c10b01e0b09d1bc233ba.js.LICENSE.txt → main.aa40457f706547a8ab62.js.LICENSE.txt} +0 -0
  188. /package/dist/shared-components/shared-components/{p-eda1cb77.entry.js.LICENSE.txt → p-9ba83beb.entry.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ export const __webpack_esm_id__=54774;export const __webpack_esm_ids__=[54774];export const __webpack_esm_modules__={48099(e,t,i){i.d(t,{D:()=>n});class n{constructor(){this._dropdownTooltipTrigger="manual"}get name(){return this._name}setName(e){return this._name=e,this}get nameLabelKey(){return this._nameLabelKey}setNameLabelKey(e){return this._nameLabelKey=e,this}get tooltip(){return this._tooltip}setTooltip(e){return this._tooltip=e,this}get tooltipLabelKey(){return this._tooltipLabelKey}setTooltipLabelKey(e){return this._tooltipLabelKey=e,this}get iconClass(){return this._iconClass}setIconClass(e){return this._iconClass=e,this}get iconImage(){return this._iconImage}setIconImage(e){return this._iconImage=e,this}get value(){return this._value}setValue(e){return this._value=e,this}get dropdownTooltipTrigger(){return this._dropdownTooltipTrigger}setDropdownTooltipTrigger(e){return this._dropdownTooltipTrigger=e,this}get cssClass(){return this._cssClass}setCssClass(e){return this._cssClass=e,this}get guideSelector(){return this._guideSelector}setGuideSelector(e){return this._guideSelector=e,this}}},76500(e,t,i){i.d(t,{H:()=>o});const n='button, [href], input:not([type="hidden"]), select, textarea, [tabindex]:not([tabindex="-1"])';class o{static setDocumentBodyOverflow(e){const t=document.body.style.overflow;return document.body.style.overflow=e,t}static hideDocumentBodyOverflow(){return o.setDocumentBodyOverflow("hidden")}static focusNextElement(e,t=n){const i=Array.from(e.querySelectorAll(t));if(i.length>0){const e=i.indexOf(document.activeElement),t=i[(e+1)%i.length];t&&t.focus()}}static focusPreviousElement(e,t=n){const i=Array.from(e.querySelectorAll(t));if(i.length>0){const e=i.indexOf(document.activeElement),t=i[(e-1+i.length)%i.length];t&&t.focus()}}static preventLeavingDialog(e,t){"Tab"===t.key&&(t.preventDefault(),t.shiftKey?o.focusPreviousElement(e):o.focusNextElement(e))}static focusElement(e){const t=document.querySelector(e);null==t||t.focus()}static scrollElementIntoView(e,t={block:"nearest"}){const i=document.querySelector(e);i&&i.scrollIntoView(t)}static waitForElement(e){return new Promise((t,i)=>{const n=new MutationObserver(()=>{try{const i=document.querySelector(e);i&&(n.disconnect(),t(i))}catch(e){n.disconnect(),i(e)}});n.observe(document.body,{subtree:!0,childList:!0,attributes:!0})})}}},54774(e,t,i){i.r(t),i.d(t,{onto_deprecation_banner:()=>c,onto_footer:()=>h,onto_header:()=>g,onto_loader:()=>m,onto_navbar:()=>A});var n=i(18072),o=i(57154),s=i(54096),r=i(76500),a=i(48099),l=i(62394);const c=class{constructor(e){(0,n.r)(this,e),this.closeBanner=(0,n.c)(this,"closeBanner"),this.onClose=()=>{this.closeBanner.emit()}}render(){return(0,n.h)(n.a,{key:"86781f6417e0778a59ce08dde7be09a7a4302dc1"},(0,n.h)("div",{key:"4000306e941d5d22452f550e80ebdc7dccf44f29",class:"deprecation-banner"},(0,n.h)("div",{key:"94c019c2bc90ca5df3f96f005cdff7d31f0d599c",class:"banner-content"},(0,n.h)("div",{key:"295097fc9c5981a409c8be095f6fd9d09b2bb405",class:"banner-message"},(0,n.h)("slot",{key:"8153d3a79b453cc6bb777870a6776c973530f0dc",name:"content"}))),(0,n.h)("button",{key:"cecc3239a6601d0a22b6d1635b2c10ba0ce262ca",type:"button",class:"close-button","aria-label":"Close banner",onClick:this.onClose},(0,n.h)("i",{key:"9ddf4488b5a1bba60ce40795b708fd5d0aa0a84b",class:"ri-close-line"}))))}};c.style=":host{display:block}.deprecation-banner{display:flex;align-items:flex-start;gap:1rem;padding:0.3rem;background:#384252;color:#FFF}.deprecation-banner .banner-content{flex:1;text-align:center}.deprecation-banner .banner-content .banner-message{font-size:1rem}.deprecation-banner .close-button{border:none;outline:0;background:transparent;color:inherit;cursor:pointer}";const h=class{constructor(e){(0,n.r)(this,e),this.subscriptions=new o.SubscriptionList,this.currentYear=(new Date).getFullYear(),this.productInfoContextService=(0,o.service)(o.ProductInfoContextService),this.securityContextService=(0,o.service)(o.SecurityContextService),this.licenseContextService=(0,o.service)(o.LicenseContextService),this.trackingService=(0,o.service)(o.TrackingService)}handleConsentGiven(){this.trackingService.acceptCookiePolicy().then(()=>{this.shouldShowCookieConsent=!1,o.WindowService.getWindow().dispatchEvent(new Event("resize"))})}render(){var e,t,i,o,s;return(0,n.h)(n.a,{key:"d78daf94ec9bf8578d4be26f7ced0040ca167147"},(0,n.h)("div",{key:"5660de5835f3ff252eeb456974cb747552e0d56c",class:"footer-component"},(0,n.h)("a",{key:"93d3c7957ede1fa09100e15ebe896de7c9965468",href:"http://graphdb.ontotext.com",target:"_blank",rel:"noopener noreferrer"},"GraphDB")," ",null===(e=this.productInfo)||void 0===e?void 0:e.productVersion," • ",(0,n.h)("a",{key:"b9dbc1be7fbb251d897920e56807333a0b9e50d3",href:"http://rdf4j.org",target:"_blank",rel:"noopener noreferrer"},"RDF4J")," ",null===(t=this.productInfo)||void 0===t?void 0:t.sesame," • Connectors ",null===(i=this.productInfo)||void 0===i?void 0:i.connectors," • Ontop ",null===(o=this.productInfo)||void 0===o?void 0:o.ontop," • Workbench ",null===(s=this.productInfo)||void 0===s?void 0:s.workbench," • © 2002–",this.currentYear," ",(0,n.h)("a",{key:"662d0f1301ad57b733c0fcb579fcac380c554258",href:"http://ontotext.com",target:"_blank",rel:"noopener noreferrer"},"Ontotext AD"),". ",(0,n.h)("translate-label",{key:"ac8f96b6824bb5bdf9159c407ed4aba4f97b58e3",labelKey:"footer.label.all_rights_reserved"})),this.shouldShowCookieConsent&&(0,n.h)("onto-cookie-consent",{key:"8eadfa955053ba414e9c7231e6ddc0329dc68ad2"}))}connectedCallback(){this.subscribeToProductInfoChange(),this.subscribeToSecurityConfigChange(),this.subscribeToUserChange(),this.subscribeToLicenseChange(),this.subscribeToUserLoginStatusChange()}disconnectedCallback(){this.subscriptions.unsubscribeAll()}subscribeToProductInfoChange(){this.subscriptions.add(this.productInfoContextService.onProductInfoChanged(e=>{this.productInfo=e}))}subscribeToSecurityConfigChange(){this.subscriptions.add(this.securityContextService.onSecurityConfigChanged(()=>{this.setCookieConsentVisibility()}))}subscribeToUserChange(){this.subscriptions.add(this.securityContextService.onAuthenticatedUserChanged(()=>{this.setCookieConsentVisibility()}))}subscribeToUserLoginStatusChange(){this.subscriptions.add(this.securityContextService.onUserLoginStatusChanged(()=>{this.setCookieConsentVisibility()}))}setCookieConsentVisibility(){var e,t;if(!this.securityContextService.getSecurityConfig())return void(this.shouldShowCookieConsent=!1);if(!this.trackingService.isTrackingAllowed())return void(this.shouldShowCookieConsent=!1);const i=this.securityContextService.getIsLoggedIn(),n=null!==(t=null===(e=this.securityContextService.getSecurityConfig())||void 0===e?void 0:e.isFreeAccessEnabled())&&void 0!==t&&t,o=this.trackingService.getCookieConsent();o&&(this.shouldShowCookieConsent=!o.policyAccepted&&(n||i))}subscribeToLicenseChange(){this.subscriptions.add(this.licenseContextService.onLicenseChanged(()=>{this.setCookieConsentVisibility()}))}};h.style=":host{display:block}.footer-component{padding-left:var(--main-content-rl-padding);height:1.875rem}";const d=({repository:e})=>(0,n.h)("div",{class:"repository-selector-dropdown-item"},(0,n.h)("i",{class:"item-icon icon-repo-"+e.type}),(0,n.h)("div",{class:"item-label"},(0,n.h)("div",{class:"repository-id"},e.id),(0,n.h)("div",{class:"repository-location"},e.location?e.location:"Local"))),u="menu.logo.link.title",g=class{constructor(e){(0,n.r)(this,e),this.UPDATE_ACTIVE_OPERATION_TIME_INTERVAL=2e3,this.fibonacciGenerator=new o.FibonacciGenerator,this.monitoringService=o.ServiceProvider.get(o.MonitoringService),this.repositoryContextService=o.ServiceProvider.get(o.RepositoryContextService),this.repositoryLocationContextService=o.ServiceProvider.get(o.RepositoryLocationContextService),this.repositoryService=o.ServiceProvider.get(o.RepositoryService),this.securityContextService=o.ServiceProvider.get(o.SecurityContextService),this.toastrService=o.ServiceProvider.get(o.OntoToastrService),this.namespacesService=o.ServiceProvider.get(o.NamespacesService),this.namespaceContextService=o.ServiceProvider.get(o.NamespacesContextService),this.languageService=o.ServiceProvider.get(o.LanguageService),this.authService=o.ServiceProvider.get(o.AuthenticationService),this.authorizationService=o.ServiceProvider.get(o.AuthorizationService),this.eventService=o.ServiceProvider.get(o.EventService),this.configurationContextService=o.ServiceProvider.get(o.ConfigurationContextService),this.runtimeConfigurationContextService=o.ServiceProvider.get(o.RuntimeConfigurationContextService),this.logger=s.L.logger,this.shouldShowSearch=!0,this.isHomePage=(0,o.isHomePage)(),this.showUserMenu=!1,this.showLoginButton=!1,this.isActiveLocationLoading=!1,this.repositoryItems=[],this.subscriptions=new o.SubscriptionList,this.skipUpdateActiveOperationsTimes=0,this.labels={[u]:s.T.translate(u)},this.canWriteRepo=e=>this.canWriteRepoInLocation(e),this.repositorySizeInfoFetcher=e=>this.repositoryService.getRepositorySizeInfo(e),this.showViewResourceMessage=e=>{e.stopPropagation(),this.toastrService.info(s.T.translate("rdf_search.toasts.use_view_resource")),this.shouldShowSearch=!1,r.H.focusElement("#search-resource-input-home input"),this.eventService.emit({NAME:l.R.RDF_SEARCH_ICON_CLICKED})}}disconnectedCallback(){this.subscriptions.unsubscribeAll(),this.stopOperationPolling()}connectedCallback(){this.currentRepository=this.repositoryContextService.getSelectedRepository(),this.setupTotalRepositoryFormater(),this.setupExpansionRatioFormater(),this.subscribeToEvents(),this.currentRoute=(0,o.getCurrentRoute)(),this.startOperationPolling(),this.onTranslate(u)}render(){var e,t;return(0,n.h)(n.a,{key:"f9130c15e8ca47fe16ebc0d1339f5674e4830174"},(0,n.h)("div",{key:"7c5563100a6f5a00239d3349185d9c5c83ee6f63",class:"header-component"},(0,n.h)("div",{key:"5b80331224df4df9c6e5480e0ceb4a0807a372e0",class:"left-section brand"},(0,n.h)("a",{key:"e34c2a982d60f4b417447e16385a31e92c2b0184",class:"home-page",onClick:(0,o.navigateTo)("./")},(0,n.h)("img",{key:"0289f0c87e50b10336ac7d2ad60d864f83beb982",src:this.applicationLogoPath,class:"big-logo",alt:this.labels[u]}))),(0,n.h)("div",{key:"db66cae8014aa38fd5c7ee3e0f01fdca4ab3b8d0",class:"right-section"},(0,n.h)("onto-search-icon",{key:"5ed7a7cf5d1b5b9c04f0cd13ff4611ec5b408cde",class:"rdf-search-button",onClick:this.showViewResourceMessage,"data-test":"onto-show-view-resource-message",style:{display:this.shouldShowSearch&&this.isHomePage?"block":"none"}}),(0,n.h)("onto-rdf-search",{key:"967c619c13988dcebd07ed958d611c6ce1ddead0","data-test":"onto-open-rdf-search-button",style:{display:this.shouldShowSearch&&!this.isHomePage?"block":"none"}}),(null===(e=this.activeOperations)||void 0===e?void 0:e.allRunningOperations.getItems().length)?(0,n.h)("onto-operations-notification",{activeOperations:this.activeOperations}):"",this.license&&!(null===(t=this.license)||void 0===t?void 0:t.valid)?(0,n.h)("onto-license-alert",{license:this.license}):"",(0,n.h)("onto-repository-selector",{key:"36f2642a081cace5330d6b7459136bf4dbdd4997",currentRepository:this.currentRepository,items:this.repositoryItems,repositorySizeInfoFetcher:this.repositorySizeInfoFetcher,totalTripletsFormatter:this.totalTripletsFormatter,expansionRatioFormatter:this.expansionRatioFormatter,canWriteRepo:this.canWriteRepo}),(0,n.h)("onto-language-selector",{key:"fef020df3cd9cca7849730fb85a9623f137d2086","dropdown-alignment":"right"}),this.showUserMenu&&this.user?(0,n.h)("onto-user-menu",{user:this.user,securityConfig:this.securityConfig}):"",this.showLoginButton?(0,n.h)("onto-user-login",null):"")))}subscribeToEvents(){this.subscribeToSecurityContextChange(),this.subscribeToRepositoryListChanged(),this.subscribeToLicenseChange(),this.subscribeToRepositoryChange(),this.subscribeToActiveRepositoryLocationChange(),this.subscribeToActiveRepoLoadingChange(),this.subscribeToNavigationEnd(),this.subscribeToLanguageChanged(),this.subscribeToAuthenticatedUserChange(),this.subscribeToThemeModeChange()}subscribeToThemeModeChange(){this.subscriptions.add(this.runtimeConfigurationContextService.onThemeModeChanged(e=>{this.applicationLogoPath=this.configurationContextService.getApplicationLogoPath(e)}))}subscribeToRepositoryListChanged(){return this.repositoryContextService.onRepositoryListChanged(e=>{(null==e?void 0:e.getItems().length)?this.initOnRepositoryListChanged(e):this.resetOnMissingRepositories()})}subscribeToLicenseChange(){this.subscriptions.add(o.ServiceProvider.get(o.LicenseContextService).onLicenseChanged(e=>{this.license=e}))}subscribeToRepositoryChange(){this.subscriptions.add(this.repositoryContextService.onSelectedRepositoryChanged(e=>{this.currentRepository=this.repositoryContextService.findRepository(e),this.shouldShowSearch=this.shouldShowRdfSearch(),this.loadNamespaces(),this.updateRepositoryItems()}))}subscribeToSecurityContextChange(){this.subscriptions.add(this.securityContextService.onSecurityConfigChanged(e=>{this.securityConfig=e,setTimeout(()=>{this.updateVisibility()})}))}subscribeToAuthenticatedUserChange(){this.subscriptions.add(this.securityContextService.onAuthenticatedUserChanged(e=>{this.user=e,this.updateRepositoryItems(),this.updateVisibility()}))}subscribeToActiveRepositoryLocationChange(){this.subscriptions.add(this.repositoryLocationContextService.onActiveLocationChanged(()=>{this.shouldShowSearch=this.shouldShowRdfSearch()}))}subscribeToActiveRepoLoadingChange(){this.subscriptions.add(this.repositoryLocationContextService.onIsLoadingChanged(e=>{this.isActiveLocationLoading=e,this.shouldShowSearch=this.shouldShowRdfSearch()}))}subscribeToNavigationEnd(){this.subscriptions.add(this.eventService.subscribe(o.EventName.NAVIGATION_END,()=>{this.shouldShowSearch=this.shouldShowRdfSearch(),this.isHomePage=(0,o.isHomePage)(),this.currentRoute=(0,o.getCurrentRoute)(),this.updateVisibility()}))}subscribeToLanguageChanged(){this.subscriptions.add(o.ServiceProvider.get(o.LanguageContextService).onSelectedLanguageChanged(e=>{this.setupTotalRepositoryFormater(e),this.setupExpansionRatioFormater(e)}))}onTranslate(e){this.subscriptions.add(s.T.onTranslate(e,[],t=>{this.labels[e]=t}))}resetOnMissingRepositories(){this.repositoryItems=[],this.repositoryList=new o.RepositoryList,this.currentRepository=void 0}initOnRepositoryListChanged(e){this.repositoryList=e,this.updateRepositoryItems()}updateRepositoryItems(){this.repositoryItems=this.getRepositoriesDropdownItems()}getRepositoriesDropdownItems(){var e;if(!(null===(e=this.repositoryList)||void 0===e?void 0:e.getItems().length))return[];let t;return this.repositoryList.sortByLocationAndId(),t=this.currentRepository?this.repositoryList.filterByRepository([this.currentRepository]):this.repositoryList.getItems(),t.filter(e=>this.authorizationService.canReadRepo(e)||this.authorizationService.canReadGqlRepo(e)).map(e=>(new a.D).setName((0,n.h)(d,{repository:e})).setValue(e).setGuideSelector(`repository-id-${e.id}`))}canWriteRepoInLocation(e){return this.authorizationService.canWriteRepo(e)}loadNamespaces(){this.currentRepository&&this.authorizationService.canReadRepo(this.currentRepository)&&this.namespacesService.getNamespaces(this.currentRepository.id).then(e=>this.namespaceContextService.updateNamespaces(e))}updateVisibility(){var e,t,i;const n=null===(e=this.securityConfig)||void 0===e?void 0:e.enabled,o=this.authService.isLoggedIn();let s=!1;try{s=this.authService.isAuthenticated()}catch(e){s=!1}const r=null===(i=null===(t=this.securityConfig)||void 0===t?void 0:t.freeAccess)||void 0===i?void 0:i.enabled;this.showLoginButton=n&&r&&!o&&"login"!==this.currentRoute,this.showUserMenu=n&&s&&o,this.shouldShowSearch=this.shouldShowRdfSearch()}startOperationPolling(){clearInterval(this.pollingInterval),this.pollingInterval=o.WindowService.getWindow().setInterval(()=>{this.authService.isAuthenticated()?this.skipUpdateActiveOperationsTimes>0?this.skipUpdateActiveOperationsTimes--:this.currentRepository&&this.monitoringService.getOperations(this.currentRepository.id).then(e=>{o.ObjectUtil.deepEqual(this.activeOperations,e)||(this.activeOperations=e),this.fibonacciGenerator.reset(),this.skipUpdateActiveOperationsTimes=0}).catch(e=>{this.logger.error("Error fetching active operations",e),this.activeOperations=void 0,this.skipUpdateActiveOperationsTimes=this.fibonacciGenerator.next()}):this.activeOperations=void 0},this.UPDATE_ACTIVE_OPERATION_TIME_INTERVAL)}stopOperationPolling(){clearInterval(this.pollingInterval),this.activeOperations=void 0}shouldShowRdfSearch(){return!!this.currentRepository&&(!this.isActiveLocationLoading||"/repository"===(0,o.getPathName)())&&this.authorizationService.canReadRepo(this.currentRepository)}setupTotalRepositoryFormater(e){e||(e=this.languageService.getDefaultLanguage()),this.totalTripletsFormatter=new Intl.NumberFormat(e,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})}setupExpansionRatioFormater(e){e||(e=this.languageService.getDefaultLanguage()),this.expansionRatioFormatter=new Intl.NumberFormat(e,{style:"decimal",minimumFractionDigits:2,maximumFractionDigits:2})}};g.style=":host{display:block}.header-component{display:flex;gap:0.25em;padding:0.3em 1em;font-size:1.1em;background-color:var(--gw-topnav-background)}.header-component .left-section{display:flex;align-items:center;justify-content:center;margin-right:auto}.header-component .right-section{display:flex;align-items:center;justify-content:center;gap:0.3em}.header-component .big-logo{width:180px;height:50px;cursor:pointer}";const m=class{constructor(e){(0,n.r)(this,e),this.size=100,this.loading=!1,this.messageText="",this.targetSelector="",this.ATTACHED_CLASS="onto-loader-attached",this.rawSvg=atob("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZGR0Ij4KPHN2ZwogICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICAgICAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgICAgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgICAgICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4iCiAgICAgICAgdmlld0JveD0iMCAwIDUwIDUwIgogICAgICAgIGlkPSJzdmcyIgogICAgICAgIHZlcnNpb249IjEuMSIKICAgICAgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjAgcjk2NTQiCiAgICAgICAgc29kaXBvZGk6ZG9jbmFtZT0ibmFtZXN2Zy5zdmciPgogICAgPGNpcmNsZSBjeD0iMjEuNSIgY3k9IjcuNSIgcj0iMS41IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjBzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMS41OyAzOyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMzEiIGN5PSIxMCIgcj0iNCIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjE1cyIgdmFsdWVzPSI0OyA4OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0IgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIzNyIgY3k9IjE1IiByPSIyIiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjAuM3MiIHZhbHVlcz0iMjsgNDsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMiIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNDAuNSIgY3k9IjIzLjUiIHI9IjQuNSIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjQ1cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjQuNTsgOTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjUiIGF0dHJpYnV0ZVR5cGU9IlhNTCIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjM5IiBjeT0iMzMiIHI9IjMiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMC42cyIgdmFsdWVzPSIzOyA2OyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIzNC41IiBjeT0iMzguNSIgcj0iMS41IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjAuNzVzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMS41OyAzOyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMjkiIGN5PSI0MiIgcj0iMiIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjlzIiB2YWx1ZXM9IjI7IDQ7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDIiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjIxLjUiIGN5PSI0Mi41IiByPSIyLjUiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMS4wNXMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIyLjU7IDU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41IiBhdHRyaWJ1dGVUeXBlPSJYTUwiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjM5IiByPSI0IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuMnMiIHZhbHVlcz0iNDsgODsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNCIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNyIgY3k9IjMyIiByPSIyIiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuMzVzIiB2YWx1ZXM9IjI7IDQ7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDIiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjUuNSIgY3k9IjI1LjUiIHI9IjIuNSIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIxLjVzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMi41OyA1OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iOCIgY3k9IjE2IiByPSI0IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuNjVzIiB2YWx1ZXM9IjQ7IDg7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjE0IiBjeT0iMTAiIHI9IjMiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMS44cyIgdmFsdWVzPSIzOyA2OyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+Cjwvc3ZnPgo=".split(",")[1]),this.logger=s.L.logger}componentDidLoad(){this.attachToSelector()}render(){return(0,n.h)(n.a,{key:"688a22508c74f7d72f4122ad6b7d34dd4be6ce4e",class:{[this.ATTACHED_CLASS]:!!this.targetSelector,"onto-loader-active":this.loading}},(0,n.h)("div",{key:"46ec9a8f161dd62c22bab137086ebb3943a2aea7",class:"onto-loader","guide-selector":"onto-loader"},(0,n.h)("div",{key:"3eea0d3e2be7b587ca149753f0d5b7fccb6a15ac",class:"loader-spinner",style:{width:this.size+"px",height:this.size+"px"},innerHTML:this.rawSvg}),this.messageText&&(0,n.h)("div",{key:"0c93bfbbf12a57434ff22cc01d69e55e24fd8914",class:"loader-message",style:{"font-size":this.size/4+"px"}},this.messageText)))}attachToSelector(){if(!this.targetSelector)return;const e=document.querySelector(this.targetSelector);if(!e)return this.logger.warn("You tried to attach the loader to an element that does not exist: ",this.targetSelector),void this.loader.classList.remove(this.ATTACHED_CLASS);e.appendChild(this.loader)}get loader(){return(0,n.d)(this)}};m.style=":host(.onto-loader-attached){position:fixed;top:0;left:0;width:100%;height:100%;display:none;align-items:center;justify-content:center}:host{display:none}:host .onto-loader{white-space:nowrap;width:fit-content}:host .onto-loader .loader-spinner{margin-left:auto;margin-right:auto}:host .onto-loader .loader-spinner circle{fill:var(--gw-loader-color)}:host .onto-loader .loader-message{text-align:center}:host(.onto-loader-active){display:flex;visibility:visible !important}";class p{constructor(e){this.type="navbarToggled",this.payload=e}}class I{constructor(e=[]){this._items=e}hasParent(e){return this._items.some(t=>e===t.label)}getModel(){const e=t=>{const i=t.children.map(e);return new b(Object.assign(Object.assign({},t),{children:i}))};return this._items.map(e)}addItem(e){this._items.push(e)}getSelectedRootItem(){return this._items.find(e=>e.selected)}isParentOpened(e){var t;return!!(null===(t=this.getParentItem(e))||void 0===t?void 0:t.open)}getTopLevelItem(e){return this._items.find(t=>t.label===e)}getParentItem(e){return this._items.find(t=>t.label===e.parent)}deselectAll(){this.walk(e=>{e.selected=!1})}closeAll(){this.walk(e=>{this.setOpen(e,!1)})}deselectItem(e){e.selected=!1}selectItem(e){e.label?e.selected=!0:this.selectItem(e.parentModel)}hasSelectedSubmenu(e){return!!e.children&&e.children.some(e=>this.hasSelection(e))}hasSelection(e){return!!e.selected||!!e.children&&e.children.some(e=>this.hasSelection(e))}closeOpened(){const e=this._items.find(e=>e.open);e&&(this.hasSelectedSubmenu(e)&&this.selectItem(e),this.setOpen(e,!1))}open(e){this.walk(e=>{this.setOpen(e,!1)}),this.openItemAndParent(e)}openItemAndParent(e){e.parentModel&&this.openItemAndParent(e.parentModel),this.setOpen(e,!0)}closeOtherParents(e){const t=e.parent;this.walk(e=>{e.label!==t&&this.setOpen(e,!1)})}setOpen(e,t){e.open=t}highlightSelected(){const e=this.getSelectedItem();(null==e?void 0:e.hasParent)&&this.selectItem(this.getParentItem(e))}unhighlightSelected(){const e=this.getSelectedRootItem();e&&e.children.length&&e.open&&this.deselectItem(e)}getSelectedItem(){let e=null;const t=i=>{if(i.selected)return e=i,!0;if(i.children)for(const e of i.children)if(t(e))return!0;return!1};return this._items.some(t),e}expandSelected(){const e=this.getSelectedItem();e&&(e.hasParent?this.open(this.getParentItem(e)):this.open(e))}initSelected(e){this.walk(t=>{var i;let n=e;(null===(i=t.href)||void 0===i?void 0:i.includes("*"))&&(n=this.getWildcardPath(e,t.href));const o=t.href.search(/[?]/);n===(-1===o?t.href:t.href.substring(0,o))&&(t.hasParent&&this.open(t),this.selectItem(t))})}getWildcardPath(e,t){const i=e.split("/"),n=t.split("/");if(i.length!==n.length)return e;const o=[];for(let t=0;t<n.length;t++)if("*"===n[t])o.push("*");else{if(n[t]!==i[t])return e;o.push(n[t])}return o.join("/")}sorted(){return this._items.filter(e=>e.children).forEach(e=>{e.children.sort(I.compare)}),this._items.sort(I.compare),this}static compare(e,t){return e.order-t.order}walk(e){this.walkRecursively(this.items,e)}walkRecursively(e,t){e.forEach(e=>{var i;t(e),(null===(i=e.children)||void 0===i?void 0:i.length)&&this.walkRecursively(e.children,t)})}get items(){return this._items}}class b{constructor(e){var t;this._selected=!1,this._open=!1,this._order=e.order,this._label=e.label,this._labelKey=e.labelKey,this._href=e.href,this._children=[...null!==(t=e.children)&&void 0!==t?t:[]],this._hasParent=e.hasParent,this._parent=e.parent,this._selected=e.selected,this._open=e.open,this._documentationHref=e.documentationHref,this._hrefFun=e.hrefFun,this._editions=e.editions,this._icon=e.icon,this._role=e.role,this._guideSelector=e.guideSelector,this._testSelector=e.testSelector,this._shouldShow=e.shouldShow,this._parentModel=e.parentModel}addChild(e){this.children.push(e),e.setParent(this)}addChildren(...e){e.forEach(e=>{this.addChild(e)})}hasSubmenus(){return"#"===this._href}get parent(){return this._parent}set parent(e){this._parent=e}get order(){return this._order}set order(e){this._order=e}get label(){return this._label}set label(e){this._label=e}get labelKey(){return this._labelKey}set labelKey(e){this._labelKey=e}get documentationHref(){return this._documentationHref}set documentationHref(e){this._documentationHref=e}get href(){return this._href}set href(e){this._href=e}get children(){return this._children}set children(e){this._children=e}get hasParent(){return this._hasParent}set hasParent(e){this._hasParent=e}get selected(){return this._selected}set selected(e){this._selected=e}get open(){return this._open}set open(e){this._open=e}get hrefFun(){return this._hrefFun}set hrefFun(e){this._hrefFun=e}get editions(){return this._editions}set editions(e){this._editions=e}get icon(){return this._icon}set icon(e){this._icon=e}get role(){return this._role}set role(e){this._role=e}get guideSelector(){return this._guideSelector}set guideSelector(e){this._guideSelector=e}get testSelector(){return this._testSelector}set testSelector(e){this._testSelector=e}get parentModel(){return this._parentModel}set parentModel(e){this._parentModel=e}get shouldShow(){return this._shouldShow}set shouldShow(e){this._shouldShow=e}setParent(e){this.parentModel=e,this.hasParent=!!e}}const v=s.L.logger;class C{static map(e,t,i,n){const o=new I;return C.setTopLevelMenuItems(e,o,t),C.setSubmenuItems(e,o,t),i&&C.addRepositoryIdToHrefAttributes(o,i,n),o.sorted()}static addRepositoryIdToHrefAttributes(e,t,i){e.items.forEach(e=>{e.children&&e.children.length>0?e.children.filter(e=>!e.documentationHref).forEach(e=>{e.href=`${e.href}?${i}=${t}`}):e.href=`${e.href}?${i}=${t}`})}static setTopLevelMenuItems(e,t,i){e.forEach(e=>{e.items.filter(e=>!e.parent&&e.shouldShow).forEach(e=>{t.hasParent(e.label)?v.warn("Doubled parent definition: ",e):t.addItem(this.toMenuItemModel(e,void 0,i,e.children))})})}static setSubmenuItems(e,t,i){e.forEach(e=>{e.items.filter(e=>e.parent&&e.shouldShow).forEach(e=>{const n=t.getTopLevelItem(e.parent);null==n||n.addChildren(this.toMenuItemModel(e,n,i,e.children))})})}static toMenuItemModel(e,t,i,n=[]){let s;e.documentationHref&&(s=o.UriUtil.resolveDocumentationUrl(null==i?void 0:i.shortVersion,e.documentationHref));const r=new b({label:e.label,labelKey:e.labelKey,href:s||e.href,documentationHref:e.documentationHref,hrefFun:e.hrefFun,order:e.order,role:e.role,editions:e.editions,icon:e.icon,guideSelector:e.guideSelector,hasParent:!!t,parentModel:t,parent:e.parent,selected:!1,shouldShow:e.shouldShow,testSelector:e.testSelector}),a=n.map(e=>this.toMenuItemModel(e,r,i,e.children));return r.addChildren(...a),r}}const y="menu.buttons.expand",S="menu.buttons.collapse",A=class{constructor(e){(0,n.r)(this,e),this.navbarToggled=(0,n.c)(this,"navbarToggled"),this.productInfoContextService=(0,o.service)(o.ProductInfoContextService),this.repositoryContextService=(0,o.service)(o.RepositoryContextService),this.subscriptions=new o.SubscriptionList,this.resizeHandler=()=>this.adjustAllSubmenus(this.hostElement),this.SUBMENU_VERTICAL_MARGIN=8,this.MIN_SUBMENU_HEIGHT=100,this.labels={[y]:s.T.translate(y),[S]:s.T.translate(S)},this.isCollapsedByUser=!1,this.isFirstRepositoryChange=!0,this.isCollapsed=!1}navbarCollapsedChange(e){this.isCollapsed=!e,this.isCollapsed&&!this.isCollapsedByUser?this.expandNavbar():this.collapseNavbar(),this.navbarToggled.emit(new p(this.isCollapsed))}menuItemsChanged(e){this.init(e)}init(e){const t=this.repositoryContextService.getSelectedRepository(),i=C.map(e||[],this.productInfo,null==t?void 0:t.id,o.REPOSITORY_ID_PARAM);i.initSelected((0,o.getCurrentRoute)()),this.menuModel=i}select(e,t){e.preventDefault(),this.clearAllOpenedSubmenuStyles(),t.hasSubmenus()||(e.ctrlKey?(0,o.openInNewTab)(t.href):(0,o.navigate)(t.href)),t.children.length?t.open?(this.menuModel.closeAll(),this.menuModel.hasSelectedSubmenu(t)&&this.menuModel.selectItem(t)):(this.menuModel.closeOpened(),this.menuModel.open(t),this.menuModel.hasSelectedSubmenu(t)&&this.menuModel.deselectItem(t)):this.menuModel.closeOtherParents(t),this.isCollapsed&&this.menuModel.isParentOpened(t)&&this.menuModel.closeOpened(),this.refreshNavbar(),this.adjustAllSubmenus(this.hostElement)}subscribeToNavigationEnd(){this.subscriptions.add((0,o.service)(o.EventService).subscribe(o.EventName.NAVIGATION_END,()=>{this.selectItemByUrl()}))}selectItemByUrl(){this.menuModel&&(this.menuModel.deselectAll(),this.menuModel.closeAll(),(0,o.isHomePage)()||this.menuModel.initSelected((0,o.getCurrentRoute)()),this.refreshNavbar(),this.adjustAllSubmenus(this.hostElement))}toggleNavbar(){this.isCollapsed?(this.isCollapsedByUser=!1,this.menuModel.expandSelected(),this.menuModel.unhighlightSelected(),this.expandNavbar(),this.clearAllOpenedSubmenuStyles()):(this.isCollapsedByUser=!0,this.menuModel.highlightSelected(),this.menuModel.closeOpened(),this.collapseNavbar(),this.clearAllOpenedSubmenuStyles()),this.refreshNavbar(),this.adjustAllSubmenus(this.hostElement),this.navbarToggled.emit(new p(this.isCollapsed))}collapseNavbar(){this.hostElement.querySelector(".navbar-component").classList.add("collapsed"),this.isCollapsed=!0}expandNavbar(){this.isCollapsedByUser||(this.hostElement.querySelector(".navbar-component").classList.remove("collapsed"),this.isCollapsed=!1)}refreshNavbar(){var e;(null===(e=this.menuModel)||void 0===e?void 0:e.items)&&(this.menuModel=new I(this.menuModel.items))}onLanguageChanged(){this.refreshNavbar()}onTranslate(e){this.subscriptions.add(s.T.onTranslate(e,[],t=>{this.labels[e]=t,this.onLanguageChanged()}))}toggleNavbarHandler(){return()=>this.toggleNavbar()}adjustSubmenuMaxHeight(e,t=this.SUBMENU_VERTICAL_MARGIN){if(!e||"function"!=typeof e.getBoundingClientRect)return;const i=e.closest(".menu-element");if(!i)return;const n=e.getBoundingClientRect(),o=i.getBoundingClientRect(),s=window.innerHeight,r=o.top-t+o.height,a=s-o.bottom+o.height-t;let l,c=!1;a>=n.height?l=a:r>=n.height?(l=r,c=!0):a>r?(l=a,c=!1):(l=r,c=!0),c?(e.style.bottom="0",e.style.top="auto"):(e.style.top="0",e.style.bottom="auto"),e.style.maxHeight=`${Math.max(this.MIN_SUBMENU_HEIGHT,l)}px`,e.style.overflowY="auto"}adjustAllSubmenus(e,t=this.SUBMENU_VERTICAL_MARGIN){requestAnimationFrame(()=>{e&&"function"==typeof e.querySelectorAll&&this.getAllOpenedSubmenus(e).forEach(e=>this.adjustSubmenuMaxHeight(e,t))})}getAllOpenedSubmenus(e){return Array.from(e.querySelectorAll(".navbar-component.collapsed .menu-element.open .sub-menu"))}getAllSubmenus(e){return Array.from(e.querySelectorAll(".navbar-component .menu-element .sub-menu"))}clearAllOpenedSubmenuStyles(){this.getAllSubmenus(this.hostElement).forEach(e=>{e.style.maxHeight="",e.style.overflowY="",e.style.top="",e.style.bottom=""})}componentWillLoad(){this.init(this.menuItems)}connectedCallback(){this.subscribeToNavigationEnd(),this.subscribeToProductInfoChanges(),this.subscribeToRepositoryChange(),this.onTranslate(y),this.onTranslate(S),window.addEventListener("resize",this.resizeHandler)}disconnectedCallback(){this.subscriptions.unsubscribeAll(),window.removeEventListener("resize",this.resizeHandler)}handleSelectMenuItem(e){return t=>{this.select(t,e)}}render(){if(this.menuModel)return(0,n.h)(n.a,null,(0,n.h)("ul",{class:"navbar-component"},(0,n.h)("li",{class:"navbar-toggle"},(0,n.h)("a",{class:"toggle-menu no-underline",title:this.isCollapsed?this.labels[y]:this.labels[S],onClick:this.toggleNavbarHandler()},(0,n.h)("i",{class:"chevron "+(this.isCollapsed?"ri-arrow-right-s-line":"ri-arrow-left-s-line")}))),this.menuModel.items.map(e=>(0,n.h)("li",{key:e.labelKey,class:{"menu-element":!0,open:e.open},"data-test":e.testSelector,"guide-selector":e.guideSelector},e.children.length>0&&(0,n.h)(n.F,null,(0,n.h)("div",{class:{"menu-element-root":!0,active:e.selected},onClick:this.handleSelectMenuItem(e)},(0,n.h)("span",{class:`menu-item-icon ${e.icon}`})," ",(0,n.h)("translate-label",{class:"menu-item",labelKey:e.labelKey}),!this.isCollapsed&&(0,n.h)("i",{class:"chevron ri-arrow-right-s-line "+(e.open?" open":"")})),(0,n.h)("ul",{class:"sub-menu"},(0,n.h)("li",{key:e.labelKey,class:"submenu-title"},(0,n.h)("translate-label",{labelKey:e.labelKey})),e.children.map(e=>(0,n.h)("li",{key:e.labelKey,class:{"sub-menu-item":!0,active:e.selected},"data-test":e.testSelector,"guide-selector":e.guideSelector},e.documentationHref?(0,n.h)("a",{class:"sub-menu-link external-link",href:e.href,target:"_blank",rel:"noopener noreferrer"},(0,n.h)("translate-label",{class:"menu-item",labelKey:e.labelKey}),e.icon&&(0,n.h)("span",{class:`text-muted ${e.icon}`})):(0,n.h)("a",{class:"sub-menu-link",href:e.href,onClick:this.handleSelectMenuItem(e)},(0,n.h)("translate-label",{class:"menu-item",labelKey:e.labelKey}),e.icon&&(0,n.h)("span",{class:`text-muted ${e.icon}`})))))),0===e.children.length&&(0,n.h)("a",{class:{"menu-element-root":!0,active:e.selected},href:e.href,onClick:this.handleSelectMenuItem(e)},(0,n.h)("span",{class:`menu-item-icon ${e.icon}`})," ",(0,n.h)("translate-label",{class:"menu-item",labelKey:e.labelKey}))))))}subscribeToProductInfoChanges(){this.subscriptions.add(this.productInfoContextService.onProductInfoChanged(e=>this.productInfo=e))}subscribeToRepositoryChange(){this.subscriptions.add(this.repositoryContextService.onSelectedRepositoryChanged(()=>{this.isFirstRepositoryChange?this.isFirstRepositoryChange=!1:this.init(this.menuItems)}))}get hostElement(){return(0,n.d)(this)}static get watchers(){return{navbarCollapsed:["navbarCollapsedChange"],menuItems:["menuItemsChanged"]}}};A.style=':host{display:block}.navbar-component{width:15rem;position:fixed;font-weight:400;z-index:1010;margin:0;padding:0;-moz-transition:width 0.2s ease-in;-o-transition:width 0.2s ease-in;-webkit-transition:width 0.2s ease-in;transition:width 0.2s ease-in;height:calc(100% - 60px);overflow-y:auto;overflow-x:hidden}@media screen and (max-height: 475px){.navbar-component.collapsed{position:absolute}}.navbar-component li{list-style:none;cursor:pointer}.navbar-component li a{text-decoration:none}.navbar-component li a.sub-menu-link:not([href=""]):not([tabindex]):hover{text-decoration:none !important}.navbar-component .sub-menu-item a.sub-menu-link:not([href]) translate-label.menu-item{padding-right:3.5px}.navbar-component a.sub-menu-link:not([href]):hover .menu-item,.navbar-component a.sub-menu-link[href=""]:hover .menu-item{text-decoration-line:underline !important}.navbar-component li .menu-element-root:hover,.navbar-component .sub-menu li:hover{text-decoration-line:none !important}.navbar-component li .menu-element-root:hover .menu-item-icon,.navbar-component .menu-element.open .menu-item-icon{transform:scale(1.1)}.navbar-component .menu-element.open .sub-menu .menu-item-icon{transform:scale(0.5)}.navbar-component .menu-element{position:relative}.navbar-component .menu-element-root{padding:0.8em;display:flex;align-items:center;line-height:2.5rem;position:relative;z-index:100;-moz-transition:all 0.18s ease-out;-o-transition:all 0.18s ease-out;-webkit-transition:all 0.18s ease-out;transition:all 0.18s ease-out;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.navbar-component .menu-item-icon{font-size:1.6rem;width:2.5rem;vertical-align:middle;text-align:center;transform:scale(0.9);display:inline-block;-moz-transition:all 0.18s ease-out;-o-transition:all 0.18s ease-out;-webkit-transition:all 0.18s ease-out;transition:all 0.18s ease-out;pointer-events:none}.navbar-component .menu-element-root .menu-item{pointer-events:none}.navbar-component .chevron{margin-left:auto;font-size:1rem;transition:all 0.2s ease-in;pointer-events:none;color:var(--gw-sidenav-menuitem-icon-second-color)}.navbar-component .chevron.open{transform:rotate(90deg)}.navbar-component :not(.brand) .menu-element-root{font-size:1.1rem}.navbar-component .brand a{display:block;position:relative;z-index:5}.navbar-component .sub-menu{position:relative;padding:0;z-index:110}.navbar-component .sub-menu li{display:none}.navbar-component .sub-menu li a{padding:0.5em 0.8em 0.5em 1.3em;display:block}.navbar-component .sub-menu li.active a{font-weight:500}.navbar-component .menu-element.open ul li{display:block}.navbar-component.collapsed{width:4.375rem;overflow:visible;height:auto}.navbar-component.collapsed .menu-element.open .sub-menu{position:absolute;top:0;left:4.375rem;width:15rem}.navbar-component.collapsed .menu-element .menu-item,.navbar-component.collapsed .menu-element .sub-menu li{display:none}.navbar-component.collapsed .menu-element.open .menu-item,.navbar-component.collapsed .menu-element.open .sub-menu li{display:block}.navbar-component.collapsed .menu-element.open .menu-element-root .menu-item{display:none}.navbar-component.collapsed .menu-element.open .sub-menu-item .sub-menu-link{background-color:var(--gw-sidenav-submenuitem-open-background)}.navbar-component.collapsed .menu-element-root{overflow:visible}.navbar-component .menu-element.open ul li.submenu-title,.navbar-component .submenu-title{display:none}.navbar-component.collapsed .menu-element.open ul li.submenu-title{display:block;font-size:1.2em;font-weight:500;text-overflow:ellipsis;overflow:hidden;padding:0.5em 0.8rem 0.7em 0.8rem;background-color:var(--gw-sidenav-submenuitem-open-background)}.navbar-component.collapsed .menu-element.open .sub-menu.align-bottom{bottom:0;top:auto}.navbar-component.collapsed .menu-element ul:before{display:none}.navbar-toggle{padding:0.3em 0}.toggle-menu{display:flex;flex-direction:column;align-items:flex-end;font-size:1em;line-height:1.5;padding:0 0.3em;z-index:101;cursor:pointer;background-color:var(--gw-sidenav-togglebutton-background);color:var(--gw-sidenav-togglebutton-color)}.toggle-menu:hover{color:var(--gw-sidenav-togglebutton-hover-color);background-color:var(--gw-sidenav-togglebutton-hover-background)}.toggle-menu [class^=icon-]{transition:all 0.2s ease-in;display:inline-block}.toggle-menu:hover [class^=icon-]{transform:scale(1.1)}.navbar-component{background-color:var(--gw-sidenav-background)}.navbar-component .menu-element .menu-element-root:not(.active){background-color:var(--gw-sidenav-menuitem-background);color:var(--gw-sidenav-menuitem-color)}.navbar-component .menu-element .menu-element-root .menu-item-icon,.navbar-component .menu-element .menu-element-root .menu-item{color:var(--gw-sidenav-menuitem-icon-color)}.navbar-component .menu-element .menu-element-root:hover,.navbar-component .menu-element .menu-element-root:hover .menu-item{background-color:var(--gw-sidenav-menuitem-hover-background);color:var(--gw-sidenav-menuitem-hover-color)}.navbar-component .menu-element .menu-element-root:hover .menu-item-icon{color:var(--gw-sidenav-menuitem-hover-icon-color)}.navbar-component .menu-element:not(.open):has(.menu-element-root.active){background-color:var(--gw-sidenav-menuitem-selected-background);color:var(--gw-sidenav-menuitem-selected-color);border-right:0.25em solid var(--gw-border-color-primary)}.navbar-component .menu-element .menu-element-root.active .menu-item,.navbar-component .menu-element .menu-element-root.active .menu-item-icon{color:var(--gw-sidenav-menuitem-selected-color)}.navbar-component .menu-element .menu-element-root.active .menu-item{color:var(--gw-sidenav-menuitem-selected-icon-color)}.navbar-component .menu-element.open,.navbar-component .menu-element.open .menu-element-root{background-color:var(--gw-sidenav-menuitem-open-background);color:var(--gw-sidenav-menuitem-open-color)}.navbar-component .menu-element:has(.menu-element-root.active) .menu-item-icon,.navbar-component .menu-element:has(.menu-element-root.active) .menu-item{color:var(--gw-sidenav-menuitem-selected-icon-color)}.navbar-component .menu-element .sub-menu-item .menu-item{color:var(--gw-sidenav-submenuitem-color);font-weight:400}.navbar-component .menu-element .sub-menu-item:hover .menu-item{color:var(--gw-sidenav-submenuitem-hover-color)}.navbar-component .menu-element .sub-menu-item.active{color:var(--gw-sidenav-submenuitem-selected-color);background-color:var(--gw-sidenav-submenuitem-selected-background);border-right:0.25em solid var(--gw-border-color-primary)}.navbar-component .menu-element .sub-menu-item.active .menu-item{color:var(--gw-sidenav-submenuitem-selected-color)}'},62394(e,t,i){var n;i.d(t,{R:()=>n}),function(e){e.SUGGESTION_SELECTED_EVENT="suggestion-selected-event",e.TABLE_VIEW="table",e.VISUAL_VIEW="visual",e.RDF_SEARCH_ICON_CLICKED="rdfSearchIconClicked"}(n||(n={}))},54096(e,t,i){i.d(t,{L:()=>s,T:()=>a,s:()=>o});var n=i(57154);function o(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}class s{static get logger(){return n.Loggers.getLoggerInstance("SharedComponents")}}class r{constructor(){this.languageContextService=n.ServiceProvider.get(n.LanguageContextService),this.translationChangedObservers={},this.logger=s.logger,this.defaultBundle=this.languageContextService.getDefaultBundle(),this.subscribeToBundleChange()}onTranslate(e,t=[],i=()=>{}){this.translationChangedObservers[e]=this.translationChangedObservers[e]||[];const n={parameters:t,callback:i};return this.translationChangedObservers[e].push(n),i(this.translate(e,t)),()=>{const t=this.translationChangedObservers[e].indexOf(n);-1!==t&&this.translationChangedObservers[e].splice(t,1)}}translate(e,t){return this.translateInLocale(e,t)}translateInLocale(e,t){let i=this.translateFromBundle(this.currentBundle,e);return i||(i=this.translateFromBundle(this.defaultBundle,e)),i?(i=this.applyParameters(i,t),o(i)):(this.logger.warn(`Missing translation for key: [${e}]`),e)}translateFromBundle(e,t){if(!e)return;let i=e[t];return"string"!=typeof i&&(i=this.translateAsJsonObject(e,t)),i}translateAsJsonObject(e,t){if(!t)return;let i=t.split(".");return this.getTranslation(e,i)}getTranslation(e,t){if(!t||!e)return;const i=e[t.splice(0,1)[0]];return 0===t.length?i:"string"!=typeof i?t.length>0?this.getTranslation(i,t):i:void 0}applyParameters(e,t){return t?t.reduce((e,t)=>r.replaceAll(e,t),e):e}static replaceAll(e,t){return t?e.split(`{{${t.key}}}`).join(t.value):e}notifyTranslationsChanged(){Object.keys(this.translationChangedObservers).forEach(e=>{(this.translationChangedObservers[e]||[]).forEach(t=>t.callback(this.translate(e,t.parameters)))})}subscribeToBundleChange(){this.languageChangeSubscription=this.languageContextService.onLanguageBundleChanged(e=>{e&&(this.currentBundle=e,this.notifyTranslationsChanged())})}destroy(){this.languageChangeSubscription&&this.languageChangeSubscription()}}const a=new r}};
2
+ //# sourceMappingURL=54774.474357fa8720f682dad5.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"54774.474357fa8720f682dad5.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/shared-components/dist/esm/dropdown-item-WQYHXM0G.js","webpack://root-config/./packages/shared-components/dist/esm/html-util-C8DO915D.js","webpack://root-config/./packages/shared-components/dist/esm/onto-deprecation-banner_5.entry.js","webpack://root-config/./packages/shared-components/dist/esm/resource-search-constants-CY5yXafk.js","webpack://root-config/./packages/shared-components/dist/esm/translation.service-CyWR_ReZ.js"],"sourcesContent":["/**\n * Model that holds a dropdown item configuration.\n */\nclass DropdownItem {\n constructor() {\n /**\n * Specifies the events that trigger the dropdown item tooltip to appear. Multiple event names should be separated by spaces.\n */\n this._dropdownTooltipTrigger = 'manual';\n }\n get name() {\n return this._name;\n }\n setName(value) {\n this._name = value;\n return this;\n }\n get nameLabelKey() {\n return this._nameLabelKey;\n }\n setNameLabelKey(value) {\n this._nameLabelKey = value;\n return this;\n }\n get tooltip() {\n return this._tooltip;\n }\n setTooltip(value) {\n this._tooltip = value;\n return this;\n }\n get tooltipLabelKey() {\n return this._tooltipLabelKey;\n }\n setTooltipLabelKey(value) {\n this._tooltipLabelKey = value;\n return this;\n }\n get iconClass() {\n return this._iconClass;\n }\n setIconClass(value) {\n this._iconClass = value;\n return this;\n }\n get iconImage() {\n return this._iconImage;\n }\n setIconImage(value) {\n this._iconImage = value;\n return this;\n }\n get value() {\n return this._value;\n }\n setValue(value) {\n this._value = value;\n return this;\n }\n get dropdownTooltipTrigger() {\n return this._dropdownTooltipTrigger;\n }\n setDropdownTooltipTrigger(value) {\n this._dropdownTooltipTrigger = value;\n return this;\n }\n get cssClass() {\n return this._cssClass;\n }\n setCssClass(value) {\n this._cssClass = value;\n return this;\n }\n get guideSelector() {\n return this._guideSelector;\n }\n setGuideSelector(value) {\n this._guideSelector = value;\n return this;\n }\n}\n\nexport { DropdownItem as D };\n","const INTERACTIVE_ELEMENTS_SELECTOR = 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\nclass HtmlUtil {\n /**\n * Setter for the document body overflow property.\n *\n * @param newOverflow - the new overflow value.\n *\n * @return the old overflow value.\n */\n static setDocumentBodyOverflow(newOverflow) {\n const oldOverflow = document.body.style.overflow;\n document.body.style.overflow = newOverflow;\n return oldOverflow;\n }\n /**\n * Hides the document body overflow.\n *\n * @return the value of overflow before set it to hidden.\n */\n static hideDocumentBodyOverflow() {\n return HtmlUtil.setDocumentBodyOverflow('hidden');\n }\n /**\n * Focuses the next element within a specified parent element based on the <code>activeElementSelector</code>, that selects all elements to be focused.\n *\n * @param parentElement - The parent element containing the focusable elements.\n * @param activeElementSelector - The CSS selector for identifying focusable elements.\n */\n static focusNextElement(parentElement, activeElementSelector = INTERACTIVE_ELEMENTS_SELECTOR) {\n const focusableElements = Array.from(parentElement.querySelectorAll(activeElementSelector));\n if (focusableElements.length > 0) {\n const currentIndex = focusableElements.indexOf(document.activeElement);\n const nextIndex = (currentIndex + 1) % focusableElements.length;\n const nextActiveElement = focusableElements[nextIndex];\n if (nextActiveElement) {\n nextActiveElement.focus();\n }\n }\n }\n /**\n * Focuses the previous element within a specified parent element based on the <code>activeElementSelector</code>, that selects all elements to be focused.\n *\n * @param parentElement - The parent element containing the focusable elements.\n * @param activeElementSelector - The CSS selector for identifying focusable elements.\n */\n static focusPreviousElement(parentElement, activeElementSelector = INTERACTIVE_ELEMENTS_SELECTOR) {\n const focusableElements = Array.from(parentElement.querySelectorAll(activeElementSelector));\n if (focusableElements.length > 0) {\n const currentIndex = focusableElements.indexOf(document.activeElement);\n const previousIndex = (currentIndex - 1 + focusableElements.length) % focusableElements.length;\n const previousActiveElement = focusableElements[previousIndex];\n if (previousActiveElement) {\n previousActiveElement.focus();\n }\n }\n }\n static preventLeavingDialog(hostElement, ev) {\n if (ev.key === 'Tab') {\n ev.preventDefault();\n if (ev.shiftKey) {\n HtmlUtil.focusPreviousElement(hostElement);\n }\n else {\n HtmlUtil.focusNextElement(hostElement);\n }\n }\n }\n /**\n * Focuses an element in the document based on the provided CSS selector.\n *\n * @param selector - A CSS selector string used to identify the element to focus.\n * This should be a valid CSS selector that uniquely identifies the target element.\n */\n static focusElement(selector) {\n const element = document.querySelector(selector);\n element === null || element === void 0 ? void 0 : element.focus();\n }\n /**\n * Scrolls an element into the visible area of its scrollable container.\n *\n * @param elementSelector - A CSS selector string used to identify the element to scroll into view.\n * This should be a valid CSS selector that uniquely identifies the target element.\n * @param options the scroll into view options.\n */\n static scrollElementIntoView(elementSelector, options = { block: 'nearest' }) {\n const element = document.querySelector(elementSelector);\n if (!element) {\n return;\n }\n element.scrollIntoView(options);\n }\n /**\n * Waits for an element to appear in the DOM by observing DOM mutations.\n * This function creates a MutationObserver that watches for changes in the document body\n * and resolves with the element once it becomes available.\n *\n * @param selector - A CSS selector string used to identify the element to wait for.\n * This should be a valid CSS selector that uniquely identifies the target element.\n *\n * @returns A Promise that resolves with the found HTMLElement when it appears in the DOM,\n * or rejects if an error occurs during the observation process.\n */\n static waitForElement(selector) {\n return new Promise((resolve, reject) => {\n const observer = new MutationObserver(() => {\n try {\n const element = document.querySelector(selector);\n if (element) {\n observer.disconnect();\n resolve(element);\n }\n }\n catch (error) {\n observer.disconnect();\n reject(error);\n }\n });\n observer.observe(document.body, { subtree: true, childList: true, attributes: true });\n });\n }\n}\n\nexport { HtmlUtil as H };\n","import { r as registerInstance, c as createEvent, h, a as Host, d as getElement, F as Fragment } from './index-BntG-4Sv.js';\nimport { SubscriptionList, service, ProductInfoContextService, SecurityContextService, LicenseContextService, TrackingService, WindowService, FibonacciGenerator, ServiceProvider, MonitoringService, RepositoryContextService, RepositoryLocationContextService, RepositoryService, OntoToastrService, NamespacesService, NamespacesContextService, LanguageService, AuthenticationService, AuthorizationService, EventService, ConfigurationContextService, RuntimeConfigurationContextService, isHomePage, getCurrentRoute, navigateTo, EventName, LanguageContextService, RepositoryList, ObjectUtil, getPathName, UriUtil, REPOSITORY_ID_PARAM, openInNewTab, navigate } from '@ontotext/workbench-api';\nimport { L as LoggerProvider, T as TranslationService } from './translation.service-CyWR_ReZ.js';\nimport { H as HtmlUtil } from './html-util-C8DO915D.js';\nimport { D as DropdownItem } from './dropdown-item-WQYHXM0G.js';\nimport { R as ResourceSearchConstants } from './resource-search-constants-CY5yXafk.js';\n\nconst ontoDeprecationBannerCss = \":host{display:block}.deprecation-banner{display:flex;align-items:flex-start;gap:1rem;padding:0.3rem;background:#384252;color:#FFF}.deprecation-banner .banner-content{flex:1;text-align:center}.deprecation-banner .banner-content .banner-message{font-size:1rem}.deprecation-banner .close-button{border:none;outline:0;background:transparent;color:inherit;cursor:pointer}\";\n\nconst OntoDeprecationBanner = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.closeBanner = createEvent(this, \"closeBanner\");\n this.onClose = () => {\n this.closeBanner.emit();\n };\n }\n render() {\n return (h(Host, { key: '86781f6417e0778a59ce08dde7be09a7a4302dc1' }, h(\"div\", { key: '4000306e941d5d22452f550e80ebdc7dccf44f29', class: \"deprecation-banner\" }, h(\"div\", { key: '94c019c2bc90ca5df3f96f005cdff7d31f0d599c', class: \"banner-content\" }, h(\"div\", { key: '295097fc9c5981a409c8be095f6fd9d09b2bb405', class: \"banner-message\" }, h(\"slot\", { key: '8153d3a79b453cc6bb777870a6776c973530f0dc', name: \"content\" }))), h(\"button\", { key: 'cecc3239a6601d0a22b6d1635b2c10ba0ce262ca', type: \"button\", class: \"close-button\", \"aria-label\": \"Close banner\", onClick: this.onClose }, h(\"i\", { key: '9ddf4488b5a1bba60ce40795b708fd5d0aa0a84b', class: \"ri-close-line\" })))));\n }\n};\nOntoDeprecationBanner.style = ontoDeprecationBannerCss;\n\nconst ontoFooterCss = \":host{display:block}.footer-component{padding-left:var(--main-content-rl-padding);height:1.875rem}\";\n\nconst OntoFooter = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /** List of subscriptions to manage component lifecycle */\n this.subscriptions = new SubscriptionList();\n /** Current year for copyright display */\n this.currentYear = new Date().getFullYear();\n this.productInfoContextService = service(ProductInfoContextService);\n this.securityContextService = service(SecurityContextService);\n this.licenseContextService = service(LicenseContextService);\n this.trackingService = service(TrackingService);\n }\n handleConsentGiven() {\n this.trackingService.acceptCookiePolicy()\n .then(() => {\n this.shouldShowCookieConsent = false;\n // Trigger a resize event so the layout can recalculate the navbar height now that the cookie banner is removed.\n WindowService.getWindow().dispatchEvent(new Event('resize'));\n });\n }\n render() {\n var _a, _b, _c, _d, _e;\n return (h(Host, { key: 'd78daf94ec9bf8578d4be26f7ced0040ca167147' }, h(\"div\", { key: '5660de5835f3ff252eeb456974cb747552e0d56c', class: \"footer-component\" }, h(\"a\", { key: '93d3c7957ede1fa09100e15ebe896de7c9965468', href: \"http://graphdb.ontotext.com\", target: \"_blank\", rel: \"noopener noreferrer\" }, \"GraphDB\"), \"\\u00A0\", (_a = this.productInfo) === null || _a === void 0 ? void 0 :\n _a.productVersion, \" \\u2022\\u00A0\", h(\"a\", { key: 'b9dbc1be7fbb251d897920e56807333a0b9e50d3', href: \"http://rdf4j.org\", target: \"_blank\", rel: \"noopener noreferrer\" }, \"RDF4J\"), \"\\u00A0\", (_b = this.productInfo) === null || _b === void 0 ? void 0 :\n _b.sesame, \" \\u2022 Connectors \", (_c = this.productInfo) === null || _c === void 0 ? void 0 :\n _c.connectors, \" \\u2022 Ontop \", (_d = this.productInfo) === null || _d === void 0 ? void 0 :\n _d.ontop, \" \\u2022 Workbench \", (_e = this.productInfo) === null || _e === void 0 ? void 0 :\n _e.workbench, \" \\u2022 \\u00A9 2002\\u2013\", this.currentYear, \"\\u00A0\", h(\"a\", { key: '662d0f1301ad57b733c0fcb579fcac380c554258', href: \"http://ontotext.com\", target: \"_blank\", rel: \"noopener noreferrer\" }, \"Ontotext AD\"), \".\\u00A0\", h(\"translate-label\", { key: 'ac8f96b6824bb5bdf9159c407ed4aba4f97b58e3', labelKey: 'footer.label.all_rights_reserved' })), this.shouldShowCookieConsent && h(\"onto-cookie-consent\", { key: '8eadfa955053ba414e9c7231e6ddc0329dc68ad2' })));\n }\n // ========================\n // Lifecycle methods\n // ========================\n connectedCallback() {\n this.subscribeToProductInfoChange();\n this.subscribeToSecurityConfigChange();\n this.subscribeToUserChange();\n this.subscribeToLicenseChange();\n this.subscribeToUserLoginStatusChange();\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n subscribeToProductInfoChange() {\n this.subscriptions.add(this.productInfoContextService.onProductInfoChanged((productInfo) => {\n this.productInfo = productInfo;\n }));\n }\n subscribeToSecurityConfigChange() {\n this.subscriptions.add(this.securityContextService.onSecurityConfigChanged(() => {\n this.setCookieConsentVisibility();\n }));\n }\n subscribeToUserChange() {\n // TODO: move to cookieService, when the authenticatedUser is available synchronously\n this.subscriptions.add(this.securityContextService.onAuthenticatedUserChanged(() => {\n this.setCookieConsentVisibility();\n }));\n }\n subscribeToUserLoginStatusChange() {\n this.subscriptions.add(this.securityContextService.onUserLoginStatusChanged(() => {\n this.setCookieConsentVisibility();\n }));\n }\n /**\n * Determines whether the cookie consent banner should be shown based on the user's authentication status, license\n * type, and cookie consent status.\n * The banner is shown if the user has not accepted the cookie policy and either has free access or is logged in,\n * provided that tracking is allowed by the license. Otherwise, the banner is hidden.\n */\n setCookieConsentVisibility() {\n var _a, _b;\n // The security config may not be loaded yet, e.g. when the component connects before the security bootstrap has\n // finished. Visibility will be recalculated by the security config subscription once the config is available.\n if (!this.securityContextService.getSecurityConfig()) {\n this.shouldShowCookieConsent = false;\n return;\n }\n if (!this.trackingService.isTrackingAllowed()) {\n this.shouldShowCookieConsent = false;\n return;\n }\n const isLoggedIn = this.securityContextService.getIsLoggedIn();\n const isFreeAccessEnabled = (_b = (_a = this.securityContextService.getSecurityConfig()) === null || _a === void 0 ? void 0 : _a.isFreeAccessEnabled()) !== null && _b !== void 0 ? _b : false;\n const cookieConsent = this.trackingService.getCookieConsent();\n if (cookieConsent) {\n this.shouldShowCookieConsent = !cookieConsent.policyAccepted && (isFreeAccessEnabled || isLoggedIn);\n }\n }\n subscribeToLicenseChange() {\n this.subscriptions.add(this.licenseContextService.onLicenseChanged(() => {\n this.setCookieConsentVisibility();\n }));\n }\n};\nOntoFooter.style = ontoFooterCss;\n\n/**\n *\n * A StencilJS functional component that renders a repository item in the repository selector dropdown. It displays the repository's\n * icon, ID, and location. If no location is specified, it shows \"Local\" as the default. This component also allows for\n * dynamic rendering of repository details as part of a list of selectable items.\n *\n * @example\n * <SelectorItemButton repository={repository}></>\n *\n */\nconst SelectorItemButton = ({ repository }) => {\n return (h(\"div\", { class: \"repository-selector-dropdown-item\" },\n h(\"i\", { class: 'item-icon icon-repo-' + repository.type }),\n h(\"div\", { class: \"item-label\" },\n h(\"div\", { class: \"repository-id\" }, repository.id),\n h(\"div\", { class: \"repository-location\" }, repository.location ? repository.location : 'Local'))));\n};\n\nconst ontoHeaderCss = \":host{display:block}.header-component{display:flex;gap:0.25em;padding:0.3em 1em;font-size:1.1em;background-color:var(--gw-topnav-background)}.header-component .left-section{display:flex;align-items:center;justify-content:center;margin-right:auto}.header-component .right-section{display:flex;align-items:center;justify-content:center;gap:0.3em}.header-component .big-logo{width:180px;height:50px;cursor:pointer}\";\n\nconst labelKeys$1 = {\n LOGO_LINK: 'menu.logo.link.title'\n};\nconst OntoHeader = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n // ========================\n // Services\n // ========================\n this.UPDATE_ACTIVE_OPERATION_TIME_INTERVAL = 2000;\n this.fibonacciGenerator = new FibonacciGenerator();\n this.monitoringService = ServiceProvider.get(MonitoringService);\n this.repositoryContextService = ServiceProvider.get(RepositoryContextService);\n this.repositoryLocationContextService = ServiceProvider.get(RepositoryLocationContextService);\n this.repositoryService = ServiceProvider.get(RepositoryService);\n this.securityContextService = ServiceProvider.get(SecurityContextService);\n this.toastrService = ServiceProvider.get(OntoToastrService);\n this.namespacesService = ServiceProvider.get(NamespacesService);\n this.namespaceContextService = ServiceProvider.get(NamespacesContextService);\n this.languageService = ServiceProvider.get(LanguageService);\n this.authService = ServiceProvider.get(AuthenticationService);\n this.authorizationService = ServiceProvider.get(AuthorizationService);\n this.eventService = ServiceProvider.get(EventService);\n this.configurationContextService = ServiceProvider.get(ConfigurationContextService);\n this.runtimeConfigurationContextService = ServiceProvider.get(RuntimeConfigurationContextService);\n this.logger = LoggerProvider.logger;\n /** Whether the search component should appear */\n this.shouldShowSearch = true;\n this.isHomePage = isHomePage();\n this.showUserMenu = false;\n this.showLoginButton = false;\n // ========================\n // Private\n // ========================\n this.isActiveLocationLoading = false;\n this.repositoryItems = [];\n /** Array of subscription cleanup functions */\n this.subscriptions = new SubscriptionList();\n this.skipUpdateActiveOperationsTimes = 0;\n this.labels = {\n [labelKeys$1.LOGO_LINK]: TranslationService.translate(labelKeys$1.LOGO_LINK)\n };\n this.canWriteRepo = (repo) => {\n return this.canWriteRepoInLocation(repo);\n };\n this.repositorySizeInfoFetcher = (repo) => {\n return this.repositoryService.getRepositorySizeInfo(repo);\n };\n this.showViewResourceMessage = (event) => {\n event.stopPropagation();\n this.toastrService.info(TranslationService.translate('rdf_search.toasts.use_view_resource'));\n this.shouldShowSearch = false;\n HtmlUtil.focusElement('#search-resource-input-home input');\n this.eventService.emit({ NAME: ResourceSearchConstants.RDF_SEARCH_ICON_CLICKED });\n };\n }\n // ========================\n // Lifecycle methods\n // ========================\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n this.stopOperationPolling();\n }\n connectedCallback() {\n this.currentRepository = this.repositoryContextService.getSelectedRepository();\n this.setupTotalRepositoryFormater();\n this.setupExpansionRatioFormater();\n this.subscribeToEvents();\n this.currentRoute = getCurrentRoute();\n this.startOperationPolling();\n this.onTranslate(labelKeys$1.LOGO_LINK);\n }\n render() {\n var _a, _b;\n return (h(Host, { key: 'f9130c15e8ca47fe16ebc0d1339f5674e4830174' }, h(\"div\", { key: '7c5563100a6f5a00239d3349185d9c5c83ee6f63', class: \"header-component\" }, h(\"div\", { key: '5b80331224df4df9c6e5480e0ceb4a0807a372e0', class: \"left-section brand\" }, h(\"a\", { key: 'e34c2a982d60f4b417447e16385a31e92c2b0184', class: \"home-page\", onClick: navigateTo('./') }, h(\"img\", { key: '0289f0c87e50b10336ac7d2ad60d864f83beb982', src: this.applicationLogoPath, class: \"big-logo\", alt: this.labels[labelKeys$1.LOGO_LINK] }))), h(\"div\", { key: 'db66cae8014aa38fd5c7ee3e0f01fdca4ab3b8d0', class: \"right-section\" }, h(\"onto-search-icon\", { key: '5ed7a7cf5d1b5b9c04f0cd13ff4611ec5b408cde', class: \"rdf-search-button\", onClick: this.showViewResourceMessage, \"data-test\": \"onto-show-view-resource-message\", style: { display: this.shouldShowSearch && this.isHomePage ? 'block' : 'none' } }), h(\"onto-rdf-search\", { key: '967c619c13988dcebd07ed958d611c6ce1ddead0', \"data-test\": \"onto-open-rdf-search-button\", style: { display: this.shouldShowSearch && !this.isHomePage ? 'block' : 'none' } }), ((_a = this.activeOperations) === null || _a === void 0 ? void 0 : _a.allRunningOperations.getItems().length)\n ? h(\"onto-operations-notification\", { activeOperations: this.activeOperations })\n : '', this.license && !((_b = this.license) === null || _b === void 0 ? void 0 : _b.valid) ?\n h(\"onto-license-alert\", { license: this.license }) : '', h(\"onto-repository-selector\", { key: '36f2642a081cace5330d6b7459136bf4dbdd4997', currentRepository: this.currentRepository, items: this.repositoryItems, repositorySizeInfoFetcher: this.repositorySizeInfoFetcher, totalTripletsFormatter: this.totalTripletsFormatter, expansionRatioFormatter: this.expansionRatioFormatter, canWriteRepo: this.canWriteRepo }), h(\"onto-language-selector\", { key: 'fef020df3cd9cca7849730fb85a9623f137d2086', \"dropdown-alignment\": \"right\" }), this.showUserMenu && this.user ?\n h(\"onto-user-menu\", { user: this.user, securityConfig: this.securityConfig }) : '', this.showLoginButton ? h(\"onto-user-login\", null) : ''))));\n }\n // ========================\n // Subscriptions\n // ========================\n subscribeToEvents() {\n this.subscribeToSecurityContextChange();\n this.subscribeToRepositoryListChanged();\n this.subscribeToLicenseChange();\n this.subscribeToRepositoryChange();\n this.subscribeToActiveRepositoryLocationChange();\n this.subscribeToActiveRepoLoadingChange();\n this.subscribeToNavigationEnd();\n this.subscribeToLanguageChanged();\n this.subscribeToAuthenticatedUserChange();\n this.subscribeToThemeModeChange();\n }\n subscribeToThemeModeChange() {\n this.subscriptions.add(this.runtimeConfigurationContextService.onThemeModeChanged((themeMode) => {\n this.applicationLogoPath = this.configurationContextService.getApplicationLogoPath(themeMode);\n }));\n }\n subscribeToRepositoryListChanged() {\n return this.repositoryContextService.onRepositoryListChanged((repositories) => {\n if (!(repositories === null || repositories === void 0 ? void 0 : repositories.getItems().length)) {\n this.resetOnMissingRepositories();\n }\n else {\n this.initOnRepositoryListChanged(repositories);\n }\n });\n }\n subscribeToLicenseChange() {\n this.subscriptions.add(ServiceProvider.get(LicenseContextService)\n .onLicenseChanged((license) => {\n this.license = license;\n }));\n }\n subscribeToRepositoryChange() {\n this.subscriptions.add(this.repositoryContextService.onSelectedRepositoryChanged((repositoryReference) => {\n // The observer can receive a reference (having id and location), so we need to find the full repository object.\n this.currentRepository = this.repositoryContextService.findRepository(repositoryReference);\n this.shouldShowSearch = this.shouldShowRdfSearch();\n this.loadNamespaces();\n this.updateRepositoryItems();\n }));\n }\n subscribeToSecurityContextChange() {\n this.subscriptions.add(this.securityContextService.onSecurityConfigChanged((config) => {\n this.securityConfig = config;\n setTimeout(() => {\n this.updateVisibility();\n });\n }));\n }\n subscribeToAuthenticatedUserChange() {\n this.subscriptions.add(this.securityContextService.onAuthenticatedUserChanged((user) => {\n this.user = user;\n this.updateRepositoryItems();\n this.updateVisibility();\n }));\n }\n subscribeToActiveRepositoryLocationChange() {\n this.subscriptions.add(this.repositoryLocationContextService.onActiveLocationChanged(() => {\n this.shouldShowSearch = this.shouldShowRdfSearch();\n }));\n }\n subscribeToActiveRepoLoadingChange() {\n this.subscriptions.add(this.repositoryLocationContextService.onIsLoadingChanged((isLoading) => {\n this.isActiveLocationLoading = isLoading;\n this.shouldShowSearch = this.shouldShowRdfSearch();\n }));\n }\n subscribeToNavigationEnd() {\n this.subscriptions.add(this.eventService.subscribe(EventName.NAVIGATION_END, () => {\n this.shouldShowSearch = this.shouldShowRdfSearch();\n this.isHomePage = isHomePage();\n this.currentRoute = getCurrentRoute();\n this.updateVisibility();\n }));\n }\n subscribeToLanguageChanged() {\n this.subscriptions.add(ServiceProvider.get(LanguageContextService)\n .onSelectedLanguageChanged((language) => {\n this.setupTotalRepositoryFormater(language);\n this.setupExpansionRatioFormater(language);\n }));\n }\n onTranslate(key) {\n this.subscriptions.add(TranslationService.onTranslate(key, [], (translation) => {\n this.labels[key] = translation;\n }));\n }\n // ========================\n // Repository Logic\n // ========================\n resetOnMissingRepositories() {\n this.repositoryItems = [];\n this.repositoryList = new RepositoryList();\n this.currentRepository = undefined;\n }\n initOnRepositoryListChanged(repositories) {\n this.repositoryList = repositories;\n this.updateRepositoryItems();\n }\n updateRepositoryItems() {\n this.repositoryItems = this.getRepositoriesDropdownItems();\n }\n getRepositoriesDropdownItems() {\n var _a;\n if (!((_a = this.repositoryList) === null || _a === void 0 ? void 0 : _a.getItems().length)) {\n return [];\n }\n this.repositoryList.sortByLocationAndId();\n let repositories;\n if (this.currentRepository) {\n repositories = this.repositoryList.filterByRepository([this.currentRepository]);\n }\n else {\n repositories = this.repositoryList.getItems();\n }\n return repositories\n .filter((repository) => this.authorizationService.canReadRepo(repository) || this.authorizationService.canReadGqlRepo(repository))\n .map((repository) => {\n return new DropdownItem()\n .setName(h(SelectorItemButton, { repository: repository }))\n .setValue(repository)\n .setGuideSelector(`repository-id-${repository.id}`);\n });\n }\n canWriteRepoInLocation(repository) {\n return this.authorizationService.canWriteRepo(repository);\n }\n loadNamespaces() {\n if (!this.currentRepository || !this.authorizationService.canReadRepo(this.currentRepository)) {\n return;\n }\n // TODO: check why loaction not used maybe it is added in autorization interceptor\n this.namespacesService.getNamespaces(this.currentRepository.id)\n .then((namespaces) => this.namespaceContextService.updateNamespaces(namespaces));\n }\n updateVisibility() {\n var _a, _b, _c;\n const isSecurityEnabled = (_a = this.securityConfig) === null || _a === void 0 ? void 0 : _a.enabled;\n const isLoggedIn = this.authService.isLoggedIn();\n let isAuthenticated = false;\n try {\n isAuthenticated = this.authService.isAuthenticated();\n }\n catch (_d) {\n isAuthenticated = false;\n }\n const isFreeAccessEnabled = (_c = (_b = this.securityConfig) === null || _b === void 0 ? void 0 : _b.freeAccess) === null || _c === void 0 ? void 0 : _c.enabled;\n this.showLoginButton = isSecurityEnabled && isFreeAccessEnabled && !isLoggedIn && this.currentRoute !== 'login';\n this.showUserMenu = isSecurityEnabled && isAuthenticated && isLoggedIn;\n this.shouldShowSearch = this.shouldShowRdfSearch();\n }\n // ========================\n // Monitoring and pooling\n // ========================\n startOperationPolling() {\n clearInterval(this.pollingInterval);\n this.pollingInterval = WindowService.getWindow().setInterval(() => {\n if (!this.authService.isAuthenticated()) {\n this.activeOperations = undefined;\n return;\n }\n if (this.skipUpdateActiveOperationsTimes > 0) {\n // Requested to skip this run, the number of skips is a Fibonacci sequence when errors are consecutive.\n this.skipUpdateActiveOperationsTimes--;\n return;\n }\n if (!this.currentRepository) {\n return;\n }\n this.monitoringService\n .getOperations(this.currentRepository.id)\n .then((operations) => {\n if (!ObjectUtil.deepEqual(this.activeOperations, operations)) {\n this.activeOperations = operations;\n }\n this.fibonacciGenerator.reset();\n this.skipUpdateActiveOperationsTimes = 0;\n })\n .catch((error) => {\n this.logger.error('Error fetching active operations', error);\n this.activeOperations = undefined;\n this.skipUpdateActiveOperationsTimes = this.fibonacciGenerator.next();\n });\n }, this.UPDATE_ACTIVE_OPERATION_TIME_INTERVAL);\n }\n stopOperationPolling() {\n clearInterval(this.pollingInterval);\n this.activeOperations = undefined;\n }\n // ========================\n // Render logic\n // ========================\n shouldShowRdfSearch() {\n return !!this.currentRepository &&\n (!this.isActiveLocationLoading || getPathName() === '/repository') &&\n this.authorizationService.canReadRepo(this.currentRepository);\n }\n // ========================\n // Language, formatting\n // ========================\n setupTotalRepositoryFormater(language) {\n if (!language) {\n language = this.languageService.getDefaultLanguage();\n }\n this.totalTripletsFormatter = new Intl.NumberFormat(language, {\n style: 'decimal',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n }\n setupExpansionRatioFormater(language) {\n if (!language) {\n language = this.languageService.getDefaultLanguage();\n }\n this.expansionRatioFormatter = new Intl.NumberFormat(language, {\n style: 'decimal',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n });\n }\n};\nOntoHeader.style = ontoHeaderCss;\n\nconst ontoLoaderSvg = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZGR0Ij4KPHN2ZwogICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICAgICAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgICAgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgICAgICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4iCiAgICAgICAgdmlld0JveD0iMCAwIDUwIDUwIgogICAgICAgIGlkPSJzdmcyIgogICAgICAgIHZlcnNpb249IjEuMSIKICAgICAgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjAgcjk2NTQiCiAgICAgICAgc29kaXBvZGk6ZG9jbmFtZT0ibmFtZXN2Zy5zdmciPgogICAgPGNpcmNsZSBjeD0iMjEuNSIgY3k9IjcuNSIgcj0iMS41IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjBzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMS41OyAzOyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMzEiIGN5PSIxMCIgcj0iNCIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjE1cyIgdmFsdWVzPSI0OyA4OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0IgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIzNyIgY3k9IjE1IiByPSIyIiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjAuM3MiIHZhbHVlcz0iMjsgNDsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMiIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNDAuNSIgY3k9IjIzLjUiIHI9IjQuNSIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjQ1cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjQuNTsgOTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjUiIGF0dHJpYnV0ZVR5cGU9IlhNTCIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjM5IiBjeT0iMzMiIHI9IjMiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMC42cyIgdmFsdWVzPSIzOyA2OyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIzNC41IiBjeT0iMzguNSIgcj0iMS41IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjAuNzVzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMS41OyAzOyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMjkiIGN5PSI0MiIgcj0iMiIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjlzIiB2YWx1ZXM9IjI7IDQ7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDIiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjIxLjUiIGN5PSI0Mi41IiByPSIyLjUiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMS4wNXMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIyLjU7IDU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41IiBhdHRyaWJ1dGVUeXBlPSJYTUwiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjM5IiByPSI0IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuMnMiIHZhbHVlcz0iNDsgODsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNCIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNyIgY3k9IjMyIiByPSIyIiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuMzVzIiB2YWx1ZXM9IjI7IDQ7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDIiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjUuNSIgY3k9IjI1LjUiIHI9IjIuNSIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIxLjVzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMi41OyA1OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iOCIgY3k9IjE2IiByPSI0IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuNjVzIiB2YWx1ZXM9IjQ7IDg7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjE0IiBjeT0iMTAiIHI9IjMiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMS44cyIgdmFsdWVzPSIzOyA2OyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+Cjwvc3ZnPgo=';\n\nconst ontoLoaderCss = \":host(.onto-loader-attached){position:fixed;top:0;left:0;width:100%;height:100%;display:none;align-items:center;justify-content:center}:host{display:none}:host .onto-loader{white-space:nowrap;width:fit-content}:host .onto-loader .loader-spinner{margin-left:auto;margin-right:auto}:host .onto-loader .loader-spinner circle{fill:var(--gw-loader-color)}:host .onto-loader .loader-message{text-align:center}:host(.onto-loader-active){display:flex;visibility:visible !important}\";\n\nconst OntoLoader = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * Size of the loader in pixels (width and height).\n */\n this.size = 100;\n /**\n * Whether the loader is currently active and should be displayed.\n */\n this.loading = false;\n /**\n * Optional message text to display below the loader.\n */\n this.messageText = '';\n /**\n * CSS selector of a DOM element to attach the loader to as a centered overlay.\n */\n this.targetSelector = '';\n this.ATTACHED_CLASS = 'onto-loader-attached';\n this.rawSvg = atob(ontoLoaderSvg.split(',')[1]);\n this.logger = LoggerProvider.logger;\n }\n componentDidLoad() {\n this.attachToSelector();\n }\n render() {\n return (h(Host, { key: '688a22508c74f7d72f4122ad6b7d34dd4be6ce4e', class: { [this.ATTACHED_CLASS]: !!this.targetSelector, 'onto-loader-active': this.loading } }, h(\"div\", { key: '46ec9a8f161dd62c22bab137086ebb3943a2aea7', class: \"onto-loader\", \"guide-selector\": \"onto-loader\" }, h(\"div\", { key: '3eea0d3e2be7b587ca149753f0d5b7fccb6a15ac', class: \"loader-spinner\", style: { 'width': this.size + 'px', 'height': this.size + 'px' }, innerHTML: this.rawSvg }), this.messageText && h(\"div\", { key: '0c93bfbbf12a57434ff22cc01d69e55e24fd8914', class: \"loader-message\", style: { 'font-size': (this.size / 4) + 'px' } }, this.messageText))));\n }\n attachToSelector() {\n if (!this.targetSelector) {\n return;\n }\n const target = document.querySelector(this.targetSelector);\n if (!target) {\n this.logger.warn('You tried to attach the loader to an element that does not exist: ', this.targetSelector);\n this.loader.classList.remove(this.ATTACHED_CLASS);\n return;\n }\n target.appendChild(this.loader);\n }\n get loader() { return getElement(this); }\n};\nOntoLoader.style = ontoLoaderCss;\n\n/**\n * Event fired when the navbar is toggled by the user.\n */\nclass NavbarToggledEvent {\n /**\n * Constructs the event.\n * @param isOpened - Whether the navbar is opened.\n */\n constructor(isOpened) {\n this.type = 'navbarToggled';\n this.payload = isOpened;\n }\n}\n\n/**\n * The UI model for the navbar component.\n */\nclass NavbarModel {\n /**\n * Creates a new instance of the navbar model.\n * @param items The model items. If no items are provided, the model will be empty by default.\n */\n constructor(items = []) {\n this._items = items;\n }\n hasParent(parentLabel) {\n return this._items.some((parentItem) => parentLabel === parentItem.label);\n }\n /**\n * Clones the model. This method is useful when the model needs to be modified without affecting the original model.\n * @return The cloned model.\n */\n getModel() {\n const cloneItem = (item) => {\n const clonedChildren = item.children.map(cloneItem);\n return new NavbarItemModel(Object.assign(Object.assign({}, item), { children: clonedChildren }));\n };\n return this._items.map(cloneItem);\n }\n /**\n * Adds a new top level item to the model. The sub menu items should be added separately as children before calling\n * this method.\n * @param item The item to be added.\n */\n addItem(item) {\n this._items.push(item);\n }\n /**\n * Returns the selected root item.\n * @return The selected root item or null if no item is selected.\n */\n getSelectedRootItem() {\n return this._items.find((item) => item.selected);\n }\n /**\n * Checks if the parent of the provided item is opened.\n * @param item The menu item for which the parent needs to be checked.\n * @return True if the parent is opened, false otherwise. If the item has no parent, the method returns false.\n */\n isParentOpened(item) {\n var _a;\n return !!((_a = this.getParentItem(item)) === null || _a === void 0 ? void 0 : _a.open);\n }\n /**\n * Returns the top level menu item with the given label.\n * @param parent The label of the top level menu item. Each menu item has a label which identifies it in the model.\n * The label comes from the main menu plugin definition and should be unique for each menu item.\n * @return The top level menu item or undefined if no item is found.\n */\n getTopLevelItem(parent) {\n return this._items.find((item) => item.label === parent);\n }\n /**\n * Returns the top level menu item with the same label as the parent property of the provided item.\n * @param item The menu item for which the parent is needed.\n * @return The parent menu item or undefined if no parent is found.\n */\n getParentItem(item) {\n return this._items.find((i) => i.label === item.parent);\n }\n /**\n * Deselects all menu items.\n */\n deselectAll() {\n this.walk((item) => {\n item.selected = false;\n });\n }\n /**\n * Closes all opened top level menu items.\n */\n closeAll() {\n this.walk((item) => {\n this.setOpen(item, false);\n });\n }\n /**\n * Deselects a top level menu item. When a menu item is selected it is highlighted in the UI.\n * @param item The top level menu item to be deselected.\n */\n deselectItem(item) {\n item.selected = false;\n }\n /**\n * Selects a top level menu item. When a menu item is selected it is highlighted in the UI.\n * @param item The top level menu item to be selected.\n */\n selectItem(item) {\n if (item.label) {\n item.selected = true;\n }\n else {\n this.selectItem(item.parentModel);\n }\n }\n /**\n * Checks if a top level menu item has a selected submenu.\n * @param item The top level menu item to be checked.\n * @return True if the top level menu item has a selected submenu, false otherwise.\n */\n hasSelectedSubmenu(item) {\n if (!item.children) {\n return false;\n }\n return item.children.some(child => this.hasSelection(child));\n }\n /**\n * Recursively checks if any submenu (child or nested) is selected.\n * @param {NavbarItemModel} item - The submenu item to check.\n * @return {boolean} True if selected, or if any descendant is selected.\n */\n hasSelection(item) {\n if (item.selected) {\n return true;\n }\n if (item.children) {\n return item.children.some(child => this.hasSelection(child));\n }\n return false;\n }\n /**\n * Marks an opened top level menu item as closed. If the item has a selected submenu, then the top level menu item\n * is marked as selected to indicate that the submenu is active.\n */\n closeOpened() {\n const opened = this._items.find((item) => item.open);\n if (opened) {\n if (this.hasSelectedSubmenu(opened)) {\n this.selectItem(opened);\n }\n this.setOpen(opened, false);\n }\n }\n /**\n * Opens a top level menu item and closes all other top level menu items.\n * @param item The top level menu item to be opened.\n */\n open(item) {\n this.walk((item) => {\n this.setOpen(item, false);\n });\n this.openItemAndParent(item);\n }\n openItemAndParent(item) {\n if (item.parentModel) {\n this.openItemAndParent(item.parentModel);\n }\n this.setOpen(item, true);\n }\n /**\n * Closes all top level menu items except the one that is the parent of the current item.\n * @param currentItem The current menu item.\n */\n closeOtherParents(currentItem) {\n const parent = currentItem.parent;\n this.walk((item) => {\n if (item.label !== parent) {\n this.setOpen(item, false);\n }\n });\n }\n /**\n * Sets the open state of a menu item.\n * @param item The menu item to be updated.\n * @param open The open state to be set.\n */\n setOpen(item, open) {\n item.open = open;\n }\n /**\n * Highlights the selected menu item by selecting its parent if it has one.\n * This is useful when the navbar is collapsed. This operation is the opposite of the unhighlightSelected method.\n */\n highlightSelected() {\n const selectedItem = this.getSelectedItem();\n if (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.hasParent) {\n this.selectItem(this.getParentItem(selectedItem));\n }\n }\n /**\n * Unhighlights the selected opened menu item if it has a submenu. This is useful when the navbar is going to be expanded.\n * This operation is the opposite of the highlightSelected method.\n */\n unhighlightSelected() {\n const selectedRootItem = this.getSelectedRootItem();\n if (selectedRootItem && selectedRootItem.children.length && selectedRootItem.open) {\n this.deselectItem(selectedRootItem);\n }\n }\n /**\n * Finds out the selected menu item. It can be a top level menu item or a submenu item.\n * @return The selected menu item or null if no item is selected.\n */\n getSelectedItem() {\n let selectedItem = null;\n const findSelected = (item) => {\n if (item.selected) {\n selectedItem = item;\n return true;\n }\n if (item.children) {\n for (const child of item.children) {\n if (findSelected(child)) {\n return true;\n }\n }\n }\n return false;\n };\n this._items.some(findSelected);\n return selectedItem;\n }\n expandSelected() {\n const selectedItem = this.getSelectedItem();\n if (selectedItem) {\n if (selectedItem.hasParent) {\n this.open(this.getParentItem(selectedItem));\n }\n else {\n this.open(selectedItem);\n }\n }\n }\n /**\n * Finds out the menu item by its href property and marks it as selected if it is a top level menu. If the menu item\n * is a sub menu, it marks its parent as opened and the sub menu item as selected.\n * @param selectedMenu The href of the menu item to be selected.\n */\n initSelected(selectedMenu) {\n this.walk((item) => {\n var _a;\n let path = selectedMenu;\n if ((_a = item.href) === null || _a === void 0 ? void 0 : _a.includes('*')) {\n path = this.getWildcardPath(selectedMenu, item.href);\n }\n // Remove query parameters from href before comparison because we have added them dynamically earlier.\n const separatorIndex = item.href.search(/[?]/);\n // If no separator is found, use the full length of the href.\n const cleanHref = separatorIndex === -1 ? item.href : item.href.substring(0, separatorIndex);\n if (path === cleanHref) {\n if (item.hasParent) {\n this.open(item);\n }\n this.selectItem(item);\n }\n });\n }\n /**\n * Compares a given path against a href pattern that may contain wildcards.\n * This function is used to match menu item hrefs that include wildcard segments.\n *\n * @param path - The actual path to compare against the href pattern.\n * @param href - The href pattern that may contain wildcards ('*').\n * @returns A string representing the matched path. If the path matches the href pattern,\n * it returns a version of the href where wildcards are preserved. If there's no match,\n * it returns the original path unchanged.\n */\n getWildcardPath(path, href) {\n const pathParts = path.split('/');\n const hrefParts = href.split('/');\n if (pathParts.length !== hrefParts.length) {\n return path; // Path and href have different number of segments, no match\n }\n const resultParts = [];\n for (let i = 0; i < hrefParts.length; i++) {\n if (hrefParts[i] === '*') {\n resultParts.push('*');\n }\n else if (hrefParts[i] !== pathParts[i]) {\n return path; // Mismatch in non-wildcard segment\n }\n else {\n resultParts.push(hrefParts[i]);\n }\n }\n return resultParts.join('/');\n }\n /**\n * Sorts the menu items by their order property.\n * @return {this} The sorted model.\n */\n sorted() {\n this._items\n .filter((item) => item.children)\n .forEach((item) => {\n item.children.sort(NavbarModel.compare);\n });\n this._items.sort(NavbarModel.compare);\n return this;\n }\n static compare(a, b) {\n return a.order - b.order;\n }\n /**\n * Walks recursively through the model and executes the provided callback for each item.\n * @param callback The callback to be executed for each item.\n */\n walk(callback) {\n this.walkRecursively(this.items, callback);\n }\n /**\n * Recursively walks through a list of navbar items and applies the callback.\n * @param items The items to walk through.\n * @param callback The callback to execute on each item.\n */\n walkRecursively(items, callback) {\n items.forEach((item) => {\n var _a;\n callback(item);\n if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {\n this.walkRecursively(item.children, callback);\n }\n });\n }\n get items() {\n return this._items;\n }\n}\n/**\n * The model for a single menu item.\n */\nclass NavbarItemModel {\n constructor(data) {\n var _a;\n this._selected = false;\n this._open = false;\n this._order = data.order;\n this._label = data.label;\n this._labelKey = data.labelKey;\n this._href = data.href;\n this._children = [...(_a = data.children) !== null && _a !== void 0 ? _a : []];\n this._hasParent = data.hasParent;\n this._parent = data.parent;\n this._selected = data.selected;\n this._open = data.open;\n this._documentationHref = data.documentationHref;\n this._hrefFun = data.hrefFun;\n this._editions = data.editions;\n this._icon = data.icon;\n this._role = data.role;\n this._guideSelector = data.guideSelector;\n this._testSelector = data.testSelector;\n this._shouldShow = data.shouldShow;\n this._parentModel = data.parentModel;\n }\n addChild(child) {\n this.children.push(child);\n child.setParent(this);\n }\n addChildren(...children) {\n children.forEach((child) => {\n this.addChild(child);\n });\n }\n /**\n * Determines whether the current menu item has submenus.\n * In this context, items with a href value of '#' are treated as parent items\n * and are expected to have submenus. This behavior is due to the fact that\n * all top-level items are registered with href set to '#' when added to the PluginRegistry.\n *\n * @returns {boolean} True if the item is a parent (has submenus), otherwise false.\n */\n hasSubmenus() {\n return this._href === '#';\n }\n get parent() {\n return this._parent;\n }\n set parent(value) {\n this._parent = value;\n }\n get order() {\n return this._order;\n }\n set order(value) {\n this._order = value;\n }\n get label() {\n return this._label;\n }\n set label(value) {\n this._label = value;\n }\n get labelKey() {\n return this._labelKey;\n }\n set labelKey(value) {\n this._labelKey = value;\n }\n get documentationHref() {\n return this._documentationHref;\n }\n set documentationHref(value) {\n this._documentationHref = value;\n }\n get href() {\n return this._href;\n }\n set href(value) {\n this._href = value;\n }\n get children() {\n return this._children;\n }\n set children(value) {\n this._children = value;\n }\n get hasParent() {\n return this._hasParent;\n }\n set hasParent(value) {\n this._hasParent = value;\n }\n get selected() {\n return this._selected;\n }\n set selected(value) {\n this._selected = value;\n }\n get open() {\n return this._open;\n }\n set open(value) {\n this._open = value;\n }\n get hrefFun() {\n return this._hrefFun;\n }\n set hrefFun(value) {\n this._hrefFun = value;\n }\n get editions() {\n return this._editions;\n }\n set editions(value) {\n this._editions = value;\n }\n get icon() {\n return this._icon;\n }\n set icon(value) {\n this._icon = value;\n }\n get role() {\n return this._role;\n }\n set role(value) {\n this._role = value;\n }\n get guideSelector() {\n return this._guideSelector;\n }\n set guideSelector(value) {\n this._guideSelector = value;\n }\n get testSelector() {\n return this._testSelector;\n }\n set testSelector(value) {\n this._testSelector = value;\n }\n get parentModel() {\n return this._parentModel;\n }\n set parentModel(value) {\n this._parentModel = value;\n }\n get shouldShow() {\n return this._shouldShow;\n }\n set shouldShow(value) {\n this._shouldShow = value;\n }\n setParent(parent) {\n this.parentModel = parent;\n this.hasParent = !!parent;\n }\n}\n\nconst logger = LoggerProvider.logger;\nclass NavbarService {\n /**\n * Maps external menu plugins to navbar model.\n * @param navbarPlugins Plugin definitions for the main menu.\n * @param productInfo The product info.\n * @param currentRepositoryId The current repository id.\n * @param repositoryIdParamName The name of the repository id query parameter.\n * @returns The navbar model.\n */\n static map(navbarPlugins, productInfo, currentRepositoryId, repositoryIdParamName) {\n const navbarModel = new NavbarModel();\n NavbarService.setTopLevelMenuItems(navbarPlugins, navbarModel, productInfo);\n NavbarService.setSubmenuItems(navbarPlugins, navbarModel, productInfo);\n if (currentRepositoryId) {\n NavbarService.addRepositoryIdToHrefAttributes(navbarModel, currentRepositoryId, repositoryIdParamName);\n }\n return navbarModel.sorted();\n }\n static addRepositoryIdToHrefAttributes(navbarModel, currentRepositoryId, repositoryIdParamName) {\n navbarModel.items.forEach((item) => {\n const hasChildren = item.children && item.children.length > 0;\n if (!hasChildren) {\n item.href = `${item.href}?${repositoryIdParamName}=${currentRepositoryId}`;\n }\n else {\n item.children\n // External links don't need repositoryId param\n .filter((childItem) => !childItem.documentationHref)\n .forEach((childItem) => {\n childItem.href = `${childItem.href}?${repositoryIdParamName}=${currentRepositoryId}`;\n });\n }\n });\n }\n /**\n * Adds the current repositoryId as a query parameter to href attribute of each menu item which does not have children\n * or documentationHref (external link).\n * @param navbarModel The navbar model.\n * @param currentRepositoryId The current repository id.\n * @param repositoryIdParamName The name of the repository id query parameter.\n */\n static setTopLevelMenuItems(navbarPlugins, navbarModel, productInfo) {\n navbarPlugins.forEach((menuPlugin) => {\n menuPlugin.items\n .filter((item) => !item.parent && item.shouldShow)\n .forEach((item) => {\n if (navbarModel.hasParent(item.label)) {\n logger.warn('Doubled parent definition: ', item);\n }\n else {\n navbarModel.addItem(this.toMenuItemModel(item, undefined, productInfo, item.children));\n }\n });\n });\n }\n static setSubmenuItems(navbarPlugins, navbarModel, productInfo) {\n navbarPlugins.forEach((menuPlugin) => {\n menuPlugin.items\n .filter((item) => item.parent && item.shouldShow)\n .forEach((item) => {\n const topLevelItem = navbarModel.getTopLevelItem(item.parent);\n // Some submenu items in the external menu model have children which is unusual.\n // I'm not sure if and where these children are used. For now, I'm ignoring them.\n topLevelItem === null || topLevelItem === void 0 ? void 0 : topLevelItem.addChildren(this.toMenuItemModel(item, topLevelItem, productInfo, item.children));\n });\n });\n }\n static toMenuItemModel(item, parent, productInfo, children = []) {\n let externalLink;\n if (item.documentationHref) {\n externalLink = UriUtil.resolveDocumentationUrl(productInfo === null || productInfo === void 0 ? void 0 : productInfo.shortVersion, item.documentationHref);\n }\n const itemModel = new NavbarItemModel({\n label: item.label,\n labelKey: item.labelKey,\n href: externalLink || item.href,\n documentationHref: item.documentationHref,\n hrefFun: item.hrefFun,\n order: item.order,\n role: item.role,\n editions: item.editions,\n icon: item.icon,\n guideSelector: item.guideSelector,\n hasParent: !!parent,\n parentModel: parent,\n parent: item.parent,\n selected: false,\n shouldShow: item.shouldShow,\n testSelector: item.testSelector,\n });\n const childrenModels = children.map((childrenItem) => this.toMenuItemModel(childrenItem, itemModel, productInfo, childrenItem.children));\n itemModel.addChildren(...childrenModels);\n return itemModel;\n }\n ;\n}\n\nconst ontoNavbarCss = \":host{display:block}.navbar-component{width:15rem;position:fixed;font-weight:400;z-index:1010;margin:0;padding:0;-moz-transition:width 0.2s ease-in;-o-transition:width 0.2s ease-in;-webkit-transition:width 0.2s ease-in;transition:width 0.2s ease-in;height:calc(100% - 60px);overflow-y:auto;overflow-x:hidden}@media screen and (max-height: 475px){.navbar-component.collapsed{position:absolute}}.navbar-component li{list-style:none;cursor:pointer}.navbar-component li a{text-decoration:none}.navbar-component li a.sub-menu-link:not([href=\\\"\\\"]):not([tabindex]):hover{text-decoration:none !important}.navbar-component .sub-menu-item a.sub-menu-link:not([href]) translate-label.menu-item{padding-right:3.5px}.navbar-component a.sub-menu-link:not([href]):hover .menu-item,.navbar-component a.sub-menu-link[href=\\\"\\\"]:hover .menu-item{text-decoration-line:underline !important}.navbar-component li .menu-element-root:hover,.navbar-component .sub-menu li:hover{text-decoration-line:none !important}.navbar-component li .menu-element-root:hover .menu-item-icon,.navbar-component .menu-element.open .menu-item-icon{transform:scale(1.1)}.navbar-component .menu-element.open .sub-menu .menu-item-icon{transform:scale(0.5)}.navbar-component .menu-element{position:relative}.navbar-component .menu-element-root{padding:0.8em;display:flex;align-items:center;line-height:2.5rem;position:relative;z-index:100;-moz-transition:all 0.18s ease-out;-o-transition:all 0.18s ease-out;-webkit-transition:all 0.18s ease-out;transition:all 0.18s ease-out;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.navbar-component .menu-item-icon{font-size:1.6rem;width:2.5rem;vertical-align:middle;text-align:center;transform:scale(0.9);display:inline-block;-moz-transition:all 0.18s ease-out;-o-transition:all 0.18s ease-out;-webkit-transition:all 0.18s ease-out;transition:all 0.18s ease-out;pointer-events:none}.navbar-component .menu-element-root .menu-item{pointer-events:none}.navbar-component .chevron{margin-left:auto;font-size:1rem;transition:all 0.2s ease-in;pointer-events:none;color:var(--gw-sidenav-menuitem-icon-second-color)}.navbar-component .chevron.open{transform:rotate(90deg)}.navbar-component :not(.brand) .menu-element-root{font-size:1.1rem}.navbar-component .brand a{display:block;position:relative;z-index:5}.navbar-component .sub-menu{position:relative;padding:0;z-index:110}.navbar-component .sub-menu li{display:none}.navbar-component .sub-menu li a{padding:0.5em 0.8em 0.5em 1.3em;display:block}.navbar-component .sub-menu li.active a{font-weight:500}.navbar-component .menu-element.open ul li{display:block}.navbar-component.collapsed{width:4.375rem;overflow:visible;height:auto}.navbar-component.collapsed .menu-element.open .sub-menu{position:absolute;top:0;left:4.375rem;width:15rem}.navbar-component.collapsed .menu-element .menu-item,.navbar-component.collapsed .menu-element .sub-menu li{display:none}.navbar-component.collapsed .menu-element.open .menu-item,.navbar-component.collapsed .menu-element.open .sub-menu li{display:block}.navbar-component.collapsed .menu-element.open .menu-element-root .menu-item{display:none}.navbar-component.collapsed .menu-element.open .sub-menu-item .sub-menu-link{background-color:var(--gw-sidenav-submenuitem-open-background)}.navbar-component.collapsed .menu-element-root{overflow:visible}.navbar-component .menu-element.open ul li.submenu-title,.navbar-component .submenu-title{display:none}.navbar-component.collapsed .menu-element.open ul li.submenu-title{display:block;font-size:1.2em;font-weight:500;text-overflow:ellipsis;overflow:hidden;padding:0.5em 0.8rem 0.7em 0.8rem;background-color:var(--gw-sidenav-submenuitem-open-background)}.navbar-component.collapsed .menu-element.open .sub-menu.align-bottom{bottom:0;top:auto}.navbar-component.collapsed .menu-element ul:before{display:none}.navbar-toggle{padding:0.3em 0}.toggle-menu{display:flex;flex-direction:column;align-items:flex-end;font-size:1em;line-height:1.5;padding:0 0.3em;z-index:101;cursor:pointer;background-color:var(--gw-sidenav-togglebutton-background);color:var(--gw-sidenav-togglebutton-color)}.toggle-menu:hover{color:var(--gw-sidenav-togglebutton-hover-color);background-color:var(--gw-sidenav-togglebutton-hover-background)}.toggle-menu [class^=icon-]{transition:all 0.2s ease-in;display:inline-block}.toggle-menu:hover [class^=icon-]{transform:scale(1.1)}.navbar-component{background-color:var(--gw-sidenav-background)}.navbar-component .menu-element .menu-element-root:not(.active){background-color:var(--gw-sidenav-menuitem-background);color:var(--gw-sidenav-menuitem-color)}.navbar-component .menu-element .menu-element-root .menu-item-icon,.navbar-component .menu-element .menu-element-root .menu-item{color:var(--gw-sidenav-menuitem-icon-color)}.navbar-component .menu-element .menu-element-root:hover,.navbar-component .menu-element .menu-element-root:hover .menu-item{background-color:var(--gw-sidenav-menuitem-hover-background);color:var(--gw-sidenav-menuitem-hover-color)}.navbar-component .menu-element .menu-element-root:hover .menu-item-icon{color:var(--gw-sidenav-menuitem-hover-icon-color)}.navbar-component .menu-element:not(.open):has(.menu-element-root.active){background-color:var(--gw-sidenav-menuitem-selected-background);color:var(--gw-sidenav-menuitem-selected-color);border-right:0.25em solid var(--gw-border-color-primary)}.navbar-component .menu-element .menu-element-root.active .menu-item,.navbar-component .menu-element .menu-element-root.active .menu-item-icon{color:var(--gw-sidenav-menuitem-selected-color)}.navbar-component .menu-element .menu-element-root.active .menu-item{color:var(--gw-sidenav-menuitem-selected-icon-color)}.navbar-component .menu-element.open,.navbar-component .menu-element.open .menu-element-root{background-color:var(--gw-sidenav-menuitem-open-background);color:var(--gw-sidenav-menuitem-open-color)}.navbar-component .menu-element:has(.menu-element-root.active) .menu-item-icon,.navbar-component .menu-element:has(.menu-element-root.active) .menu-item{color:var(--gw-sidenav-menuitem-selected-icon-color)}.navbar-component .menu-element .sub-menu-item .menu-item{color:var(--gw-sidenav-submenuitem-color);font-weight:400}.navbar-component .menu-element .sub-menu-item:hover .menu-item{color:var(--gw-sidenav-submenuitem-hover-color)}.navbar-component .menu-element .sub-menu-item.active{color:var(--gw-sidenav-submenuitem-selected-color);background-color:var(--gw-sidenav-submenuitem-selected-background);border-right:0.25em solid var(--gw-border-color-primary)}.navbar-component .menu-element .sub-menu-item.active .menu-item{color:var(--gw-sidenav-submenuitem-selected-color)}\";\n\nconst labelKeys = {\n EXPAND: 'menu.buttons.expand',\n COLLAPSE: 'menu.buttons.collapse',\n};\nconst OntoNavbar = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.navbarToggled = createEvent(this, \"navbarToggled\");\n this.productInfoContextService = service(ProductInfoContextService);\n this.repositoryContextService = service(RepositoryContextService);\n this.subscriptions = new SubscriptionList();\n this.resizeHandler = () => this.adjustAllSubmenus(this.hostElement);\n this.SUBMENU_VERTICAL_MARGIN = 8;\n this.MIN_SUBMENU_HEIGHT = 100;\n this.labels = {\n [labelKeys.EXPAND]: TranslationService.translate(labelKeys.EXPAND),\n [labelKeys.COLLAPSE]: TranslationService.translate(labelKeys.COLLAPSE),\n };\n /**\n * Flag indicating whether the navbar is collapsed in result of toggle action initiated by the user. This is needed\n * in cases where the browser window is resized which is an operation that should not override the user's choice\n * regarding the navbar collapsed state, e.g. if the user has manually collapsed the navbar and then resizes the\n * window, the navbar should remain collapsed.\n */\n this.isCollapsedByUser = false;\n this.isFirstRepositoryChange = true;\n /**\n * Controls the expanded/collapsed state of the navbar.\n */\n this.isCollapsed = false;\n }\n navbarCollapsedChange(collapsed) {\n this.isCollapsed = !collapsed;\n if (this.isCollapsed && !this.isCollapsedByUser) {\n this.expandNavbar();\n }\n else {\n this.collapseNavbar();\n }\n this.navbarToggled.emit(new NavbarToggledEvent(this.isCollapsed));\n }\n menuItemsChanged(menuItems) {\n this.init(menuItems);\n }\n init(menuItems) {\n const selectedRepository = this.repositoryContextService.getSelectedRepository();\n const internalModel = NavbarService.map(menuItems || [], this.productInfo, selectedRepository === null || selectedRepository === void 0 ? void 0 : selectedRepository.id, REPOSITORY_ID_PARAM);\n internalModel.initSelected(getCurrentRoute());\n this.menuModel = internalModel;\n }\n select(event, menuItem) {\n event.preventDefault();\n this.clearAllOpenedSubmenuStyles();\n // Skip navigation when the selected item is a parent menu because it has no associated navigation.\n if (!menuItem.hasSubmenus()) {\n if (event.ctrlKey) {\n openInNewTab(menuItem.href);\n }\n else {\n navigate(menuItem.href);\n }\n }\n if (menuItem.children.length) {\n if (!menuItem.open) {\n this.menuModel.closeOpened();\n this.menuModel.open(menuItem);\n if (this.menuModel.hasSelectedSubmenu(menuItem)) {\n this.menuModel.deselectItem(menuItem);\n }\n }\n else {\n this.menuModel.closeAll();\n if (this.menuModel.hasSelectedSubmenu(menuItem)) {\n this.menuModel.selectItem(menuItem);\n }\n }\n }\n else {\n this.menuModel.closeOtherParents(menuItem);\n }\n // When the navbar is collapsed then find if the selected item has active children and mark the item as selected\n // to allow it to be highlighted in the collapsed state.\n if (this.isCollapsed && this.menuModel.isParentOpened(menuItem)) {\n this.menuModel.closeOpened();\n }\n this.refreshNavbar();\n this.adjustAllSubmenus(this.hostElement);\n }\n subscribeToNavigationEnd() {\n this.subscriptions.add(service(EventService).subscribe(EventName.NAVIGATION_END, () => {\n this.selectItemByUrl();\n }));\n }\n selectItemByUrl() {\n if (!this.menuModel) {\n return;\n }\n this.menuModel.deselectAll();\n this.menuModel.closeAll();\n if (!isHomePage()) {\n this.menuModel.initSelected(getCurrentRoute());\n }\n this.refreshNavbar();\n this.adjustAllSubmenus(this.hostElement);\n }\n toggleNavbar() {\n if (!this.isCollapsed) {\n this.isCollapsedByUser = true;\n this.menuModel.highlightSelected();\n this.menuModel.closeOpened();\n this.collapseNavbar();\n this.clearAllOpenedSubmenuStyles();\n }\n else {\n this.isCollapsedByUser = false;\n this.menuModel.expandSelected();\n this.menuModel.unhighlightSelected();\n this.expandNavbar();\n this.clearAllOpenedSubmenuStyles();\n }\n this.refreshNavbar();\n this.adjustAllSubmenus(this.hostElement);\n this.navbarToggled.emit(new NavbarToggledEvent(this.isCollapsed));\n }\n collapseNavbar() {\n this.hostElement.querySelector('.navbar-component').classList.add('collapsed');\n this.isCollapsed = true;\n }\n expandNavbar() {\n if (!this.isCollapsedByUser) {\n this.hostElement.querySelector('.navbar-component').classList.remove('collapsed');\n this.isCollapsed = false;\n }\n }\n refreshNavbar() {\n var _a;\n if (!((_a = this.menuModel) === null || _a === void 0 ? void 0 : _a.items)) {\n return;\n }\n this.menuModel = new NavbarModel(this.menuModel.items);\n }\n onLanguageChanged() {\n this.refreshNavbar();\n }\n onTranslate(key) {\n this.subscriptions.add(TranslationService.onTranslate(key, [], (translation) => {\n this.labels[key] = translation;\n this.onLanguageChanged();\n }));\n }\n toggleNavbarHandler() {\n return () => this.toggleNavbar();\n }\n /**\n * Adjust the max height of a submenu to ensure it fits within the viewport.\n * The submenu will be positioned either below or above its parent menu item based on available space.\n * @param sub The submenu element to adjust.\n * @param margin Margin in pixels to apply when calculating available space. This ensures some space between the\n * submenu and the viewport edge.\n */\n adjustSubmenuMaxHeight(sub, margin = this.SUBMENU_VERTICAL_MARGIN) {\n if (!sub || typeof sub.getBoundingClientRect !== 'function') {\n return;\n }\n const parentElement = sub.closest('.menu-element');\n if (!parentElement) {\n return;\n }\n const subRect = sub.getBoundingClientRect();\n const parentRect = parentElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n // Calculate available space above and below the parent menu item\n const spaceAbove = parentRect.top - margin + parentRect.height;\n const spaceBelow = viewportHeight - parentRect.bottom + parentRect.height - margin;\n // Determine optimal positioning and max height\n let maxHeight;\n let shouldAlignBottom = false;\n if (spaceBelow >= subRect.height) {\n // Enough space below - align to top of parent\n maxHeight = spaceBelow;\n }\n else if (spaceAbove >= subRect.height) {\n // Not enough space below but enough above - align to bottom of parent\n maxHeight = spaceAbove;\n shouldAlignBottom = true;\n }\n else {\n // Not enough space in either direction - use larger space and make scrollable\n if (spaceBelow > spaceAbove) {\n maxHeight = spaceBelow;\n shouldAlignBottom = false;\n }\n else {\n maxHeight = spaceAbove;\n shouldAlignBottom = true;\n }\n }\n // Apply positioning\n if (shouldAlignBottom) {\n sub.style.bottom = '0';\n sub.style.top = 'auto';\n }\n else {\n sub.style.top = '0';\n sub.style.bottom = 'auto';\n }\n sub.style.maxHeight = `${Math.max(this.MIN_SUBMENU_HEIGHT, maxHeight)}px`;\n sub.style.overflowY = 'auto';\n }\n /**\n * Adjust all submenus that are currently open.\n * @param host The host element containing the navbar.\n * @param margin Margin in pixels to apply when calculating available space. This ensures some space between the\n * submenu and the viewport edge.\n */\n adjustAllSubmenus(host, margin = this.SUBMENU_VERTICAL_MARGIN) {\n // run after paint so DOM is in final state\n requestAnimationFrame(() => {\n if (!host || typeof host.querySelectorAll !== 'function') {\n return;\n }\n this.getAllOpenedSubmenus(host).forEach((s) => this.adjustSubmenuMaxHeight(s, margin));\n });\n }\n getAllOpenedSubmenus(host) {\n return Array.from(host.querySelectorAll('.navbar-component.collapsed .menu-element.open .sub-menu'));\n }\n getAllSubmenus(host) {\n return Array.from(host.querySelectorAll('.navbar-component .menu-element .sub-menu'));\n }\n clearAllOpenedSubmenuStyles() {\n this.getAllSubmenus(this.hostElement).forEach((s) => {\n s.style.maxHeight = '';\n s.style.overflowY = '';\n s.style.top = '';\n s.style.bottom = '';\n });\n }\n // ========================\n // Lifecycle methods\n // ========================\n componentWillLoad() {\n this.init(this.menuItems);\n }\n connectedCallback() {\n this.subscribeToNavigationEnd();\n this.subscribeToProductInfoChanges();\n this.subscribeToRepositoryChange();\n // subscribe to language change events for each label\n this.onTranslate(labelKeys.EXPAND);\n this.onTranslate(labelKeys.COLLAPSE);\n window.addEventListener('resize', this.resizeHandler);\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n window.removeEventListener('resize', this.resizeHandler);\n }\n handleSelectMenuItem(item) {\n return (event) => {\n this.select(event, item);\n };\n }\n render() {\n if (!this.menuModel) {\n return;\n }\n return (h(Host, null, h(\"ul\", { class: \"navbar-component\" }, h(\"li\", { class: \"navbar-toggle\" }, h(\"a\", { class: \"toggle-menu no-underline\", title: this.isCollapsed ? this.labels[labelKeys.EXPAND] : this.labels[labelKeys.COLLAPSE], onClick: this.toggleNavbarHandler() }, h(\"i\", { class: `chevron ${this.isCollapsed ? 'ri-arrow-right-s-line' : 'ri-arrow-left-s-line'}` }))), this.menuModel.items.map((item) => (h(\"li\", { key: item.labelKey, class: { 'menu-element': true, 'open': item.open }, \"data-test\": item.testSelector, \"guide-selector\": item.guideSelector }, item.children.length > 0 &&\n h(Fragment, null, h(\"div\", { class: { 'menu-element-root': true, 'active': item.selected }, onClick: this.handleSelectMenuItem(item) }, h(\"span\", { class: `menu-item-icon ${item.icon}` }), \"\\u00A0\", h(\"translate-label\", { class: \"menu-item\", labelKey: item.labelKey }), !this.isCollapsed && h(\"i\", { class: `chevron ri-arrow-right-s-line ${item.open ? ' open' : ''}` })), h(\"ul\", { class: \"sub-menu\" }, h(\"li\", { key: item.labelKey, class: \"submenu-title\" }, h(\"translate-label\", { labelKey: item.labelKey })), item.children.map((submenu) => (h(\"li\", { key: submenu.labelKey, class: { 'sub-menu-item': true, 'active': submenu.selected }, \"data-test\": submenu.testSelector, \"guide-selector\": submenu.guideSelector }, submenu.documentationHref ?\n h(\"a\", { class: \"sub-menu-link external-link\", href: submenu.href, target: \"_blank\", rel: \"noopener noreferrer\" }, h(\"translate-label\", { class: \"menu-item\", labelKey: submenu.labelKey }), submenu.icon &&\n h(\"span\", { class: `text-muted ${submenu.icon}` }))\n :\n h(\"a\", { class: \"sub-menu-link\", href: submenu.href, onClick: this.handleSelectMenuItem(submenu) }, h(\"translate-label\", { class: \"menu-item\", labelKey: submenu.labelKey }), submenu.icon &&\n h(\"span\", { class: `text-muted ${submenu.icon}` }))))))), item.children.length === 0 &&\n h(\"a\", { class: { 'menu-element-root': true, 'active': item.selected }, href: item.href, onClick: this.handleSelectMenuItem(item) }, h(\"span\", { class: `menu-item-icon ${item.icon}` }), \"\\u00A0\", h(\"translate-label\", { class: \"menu-item\", labelKey: item.labelKey }))))))));\n }\n subscribeToProductInfoChanges() {\n this.subscriptions.add(this.productInfoContextService.onProductInfoChanged((productInfo) => this.productInfo = productInfo));\n }\n subscribeToRepositoryChange() {\n this.subscriptions.add(this.repositoryContextService.onSelectedRepositoryChanged(() => {\n if (this.isFirstRepositoryChange) {\n this.isFirstRepositoryChange = false;\n return;\n }\n this.init(this.menuItems);\n }));\n }\n get hostElement() { return getElement(this); }\n static get watchers() { return {\n \"navbarCollapsed\": [\"navbarCollapsedChange\"],\n \"menuItems\": [\"menuItemsChanged\"]\n }; }\n};\nOntoNavbar.style = ontoNavbarCss;\n\nexport { OntoDeprecationBanner as onto_deprecation_banner, OntoFooter as onto_footer, OntoHeader as onto_header, OntoLoader as onto_loader, OntoNavbar as onto_navbar };\n","var ResourceSearchConstants;\n(function (ResourceSearchConstants) {\n ResourceSearchConstants[\"SUGGESTION_SELECTED_EVENT\"] = \"suggestion-selected-event\";\n ResourceSearchConstants[\"TABLE_VIEW\"] = \"table\";\n ResourceSearchConstants[\"VISUAL_VIEW\"] = \"visual\";\n ResourceSearchConstants[\"RDF_SEARCH_ICON_CLICKED\"] = \"rdfSearchIconClicked\";\n})(ResourceSearchConstants || (ResourceSearchConstants = {}));\n\nexport { ResourceSearchConstants as R };\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 if (!key) {\n return;\n }\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":["DropdownItem","constructor","this","_dropdownTooltipTrigger","name","_name","setName","value","nameLabelKey","_nameLabelKey","setNameLabelKey","tooltip","_tooltip","setTooltip","tooltipLabelKey","_tooltipLabelKey","setTooltipLabelKey","iconClass","_iconClass","setIconClass","iconImage","_iconImage","setIconImage","_value","setValue","dropdownTooltipTrigger","setDropdownTooltipTrigger","cssClass","_cssClass","setCssClass","guideSelector","_guideSelector","setGuideSelector","INTERACTIVE_ELEMENTS_SELECTOR","HtmlUtil","setDocumentBodyOverflow","newOverflow","oldOverflow","document","body","style","overflow","hideDocumentBodyOverflow","focusNextElement","parentElement","activeElementSelector","focusableElements","Array","from","querySelectorAll","length","currentIndex","indexOf","activeElement","nextActiveElement","focus","focusPreviousElement","previousActiveElement","preventLeavingDialog","hostElement","ev","key","preventDefault","shiftKey","focusElement","selector","element","querySelector","scrollElementIntoView","elementSelector","options","block","scrollIntoView","waitForElement","Promise","resolve","reject","observer","MutationObserver","disconnect","error","observe","subtree","childList","attributes","OntoDeprecationBanner","hostRef","registerInstance","closeBanner","createEvent","onClose","emit","render","h","Host","class","type","onClick","OntoFooter","subscriptions","SubscriptionList","currentYear","Date","getFullYear","productInfoContextService","service","ProductInfoContextService","securityContextService","SecurityContextService","licenseContextService","LicenseContextService","trackingService","TrackingService","handleConsentGiven","acceptCookiePolicy","then","shouldShowCookieConsent","WindowService","getWindow","dispatchEvent","Event","_a","_b","_c","_d","_e","href","target","rel","productInfo","productVersion","sesame","connectors","ontop","workbench","labelKey","connectedCallback","subscribeToProductInfoChange","subscribeToSecurityConfigChange","subscribeToUserChange","subscribeToLicenseChange","subscribeToUserLoginStatusChange","disconnectedCallback","unsubscribeAll","add","onProductInfoChanged","onSecurityConfigChanged","setCookieConsentVisibility","onAuthenticatedUserChanged","onUserLoginStatusChanged","getSecurityConfig","isTrackingAllowed","isLoggedIn","getIsLoggedIn","isFreeAccessEnabled","cookieConsent","getCookieConsent","policyAccepted","onLicenseChanged","SelectorItemButton","repository","id","location","labelKeys$1","OntoHeader","UPDATE_ACTIVE_OPERATION_TIME_INTERVAL","fibonacciGenerator","FibonacciGenerator","monitoringService","ServiceProvider","get","MonitoringService","repositoryContextService","RepositoryContextService","repositoryLocationContextService","RepositoryLocationContextService","repositoryService","RepositoryService","toastrService","OntoToastrService","namespacesService","NamespacesService","namespaceContextService","NamespacesContextService","languageService","LanguageService","authService","AuthenticationService","authorizationService","AuthorizationService","eventService","EventService","configurationContextService","ConfigurationContextService","runtimeConfigurationContextService","RuntimeConfigurationContextService","logger","LoggerProvider","shouldShowSearch","isHomePage","showUserMenu","showLoginButton","isActiveLocationLoading","repositoryItems","skipUpdateActiveOperationsTimes","labels","TranslationService","translate","canWriteRepo","repo","canWriteRepoInLocation","repositorySizeInfoFetcher","getRepositorySizeInfo","showViewResourceMessage","event","stopPropagation","info","NAME","ResourceSearchConstants","RDF_SEARCH_ICON_CLICKED","stopOperationPolling","currentRepository","getSelectedRepository","setupTotalRepositoryFormater","setupExpansionRatioFormater","subscribeToEvents","currentRoute","getCurrentRoute","startOperationPolling","onTranslate","navigateTo","src","applicationLogoPath","alt","display","activeOperations","allRunningOperations","getItems","license","valid","items","totalTripletsFormatter","expansionRatioFormatter","user","securityConfig","subscribeToSecurityContextChange","subscribeToRepositoryListChanged","subscribeToRepositoryChange","subscribeToActiveRepositoryLocationChange","subscribeToActiveRepoLoadingChange","subscribeToNavigationEnd","subscribeToLanguageChanged","subscribeToAuthenticatedUserChange","subscribeToThemeModeChange","onThemeModeChanged","themeMode","getApplicationLogoPath","onRepositoryListChanged","repositories","initOnRepositoryListChanged","resetOnMissingRepositories","onSelectedRepositoryChanged","repositoryReference","findRepository","shouldShowRdfSearch","loadNamespaces","updateRepositoryItems","config","setTimeout","updateVisibility","onActiveLocationChanged","onIsLoadingChanged","isLoading","subscribe","EventName","NAVIGATION_END","LanguageContextService","onSelectedLanguageChanged","language","translation","repositoryList","RepositoryList","undefined","getRepositoriesDropdownItems","sortByLocationAndId","filterByRepository","filter","canReadRepo","canReadGqlRepo","map","getNamespaces","namespaces","updateNamespaces","isSecurityEnabled","enabled","isAuthenticated","freeAccess","clearInterval","pollingInterval","setInterval","getOperations","operations","ObjectUtil","deepEqual","reset","catch","next","getPathName","getDefaultLanguage","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","OntoLoader","size","loading","messageText","targetSelector","ATTACHED_CLASS","rawSvg","atob","split","componentDidLoad","attachToSelector","innerHTML","warn","loader","classList","remove","appendChild","getElement","NavbarToggledEvent","isOpened","payload","NavbarModel","_items","hasParent","parentLabel","some","parentItem","label","getModel","cloneItem","item","clonedChildren","children","NavbarItemModel","Object","assign","addItem","push","getSelectedRootItem","find","selected","isParentOpened","getParentItem","open","getTopLevelItem","parent","i","deselectAll","walk","closeAll","setOpen","deselectItem","selectItem","parentModel","hasSelectedSubmenu","child","hasSelection","closeOpened","opened","openItemAndParent","closeOtherParents","currentItem","highlightSelected","selectedItem","getSelectedItem","unhighlightSelected","selectedRootItem","findSelected","expandSelected","initSelected","selectedMenu","path","includes","getWildcardPath","separatorIndex","search","substring","pathParts","hrefParts","resultParts","join","sorted","forEach","sort","compare","a","b","order","callback","walkRecursively","data","_selected","_open","_order","_label","_labelKey","_href","_children","_hasParent","_parent","_documentationHref","documentationHref","_hrefFun","hrefFun","_editions","editions","_icon","icon","_role","role","_testSelector","testSelector","_shouldShow","shouldShow","_parentModel","addChild","setParent","addChildren","hasSubmenus","NavbarService","navbarPlugins","currentRepositoryId","repositoryIdParamName","navbarModel","setTopLevelMenuItems","setSubmenuItems","addRepositoryIdToHrefAttributes","childItem","menuPlugin","toMenuItemModel","topLevelItem","externalLink","UriUtil","resolveDocumentationUrl","shortVersion","itemModel","childrenModels","childrenItem","labelKeys","OntoNavbar","navbarToggled","resizeHandler","adjustAllSubmenus","SUBMENU_VERTICAL_MARGIN","MIN_SUBMENU_HEIGHT","isCollapsedByUser","isFirstRepositoryChange","isCollapsed","navbarCollapsedChange","collapsed","expandNavbar","collapseNavbar","menuItemsChanged","menuItems","init","selectedRepository","internalModel","REPOSITORY_ID_PARAM","menuModel","select","menuItem","clearAllOpenedSubmenuStyles","ctrlKey","openInNewTab","navigate","refreshNavbar","selectItemByUrl","toggleNavbar","onLanguageChanged","toggleNavbarHandler","adjustSubmenuMaxHeight","sub","margin","getBoundingClientRect","closest","subRect","parentRect","viewportHeight","window","innerHeight","spaceAbove","top","height","spaceBelow","bottom","maxHeight","shouldAlignBottom","Math","max","overflowY","host","requestAnimationFrame","getAllOpenedSubmenus","s","getAllSubmenus","componentWillLoad","subscribeToProductInfoChanges","addEventListener","removeEventListener","handleSelectMenuItem","title","Fragment","submenu","watchers","sanitizeHTML","html","createElement","Loggers","getLoggerInstance","TranslationServiceClassDefinition","languageContextService","translationChangedObservers","defaultBundle","getDefaultBundle","subscribeToBundleChange","messageLabelKey","translationParameter","translationCallback","parameters","index","splice","translateInLocale","translateFromBundle","currentBundle","applyParameters","bundle","translateAsJsonObject","getTranslation","jsonObject","jsonOrTranslation","reduce","parameter","replaceAll","notifyTranslationsChanged","keys","eventName","languageChangeSubscription","onLanguageBundleChanged","destroy"],"sourceRoot":""}