graphdb-workbench 3.2.0-RC1 → 3.2.0-RC2
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.
- package/dist/{38644.763094ed8176a107ad43.bundle.js → 38644.08569e93394c46036f53.bundle.js} +2 -2
- package/dist/{38644.763094ed8176a107ad43.bundle.js.map → 38644.08569e93394c46036f53.bundle.js.map} +1 -1
- package/dist/{39518.7dd8fe04651f2fdbc846.bundle.js → 39518.2923a17f1d69e5a0d957.bundle.js} +2 -2
- package/dist/{39518.7dd8fe04651f2fdbc846.bundle.js.map → 39518.2923a17f1d69e5a0d957.bundle.js.map} +1 -1
- package/dist/{53174.4a1ebee9fa3f2bcebf90.bundle.js → 53174.42c4b8519fa16f6eedc1.bundle.js} +2 -2
- package/dist/53174.42c4b8519fa16f6eedc1.bundle.js.map +1 -0
- package/dist/60560.1a6c5df198a1426b0fb7.bundle.js +2 -0
- package/dist/60560.1a6c5df198a1426b0fb7.bundle.js.map +1 -0
- package/dist/{67888.00b7ea58032ed4b8bfcb.bundle.js → 67888.d6afafad6e3a017cb8b3.bundle.js} +2 -2
- package/dist/{67888.00b7ea58032ed4b8bfcb.bundle.js.map → 67888.d6afafad6e3a017cb8b3.bundle.js.map} +1 -1
- package/dist/{7815.182dcef7161cdc589db7.bundle.js → 7815.49f59c286fc0d0b306ab.bundle.js} +2 -2
- package/dist/{7815.182dcef7161cdc589db7.bundle.js.map → 7815.49f59c286fc0d0b306ab.bundle.js.map} +1 -1
- package/dist/82206.d593f5b11aa103af5e3d.bundle.js +2 -0
- package/dist/82206.d593f5b11aa103af5e3d.bundle.js.map +1 -0
- package/dist/{82926.d6c48c23b6e1f89b3d8a.bundle.js → 82926.51d23e16d60e02dc4133.bundle.js} +2 -2
- package/dist/{82926.d6c48c23b6e1f89b3d8a.bundle.js.map → 82926.51d23e16d60e02dc4133.bundle.js.map} +1 -1
- package/dist/94519.783661f9e08288cddc88.bundle.js +2 -0
- package/dist/94519.783661f9e08288cddc88.bundle.js.map +1 -0
- package/dist/{99448.30713a59be1313c4b089.bundle.js → 99448.8c045dc098cc67d199aa.bundle.js} +2 -2
- package/dist/{99448.30713a59be1313c4b089.bundle.js.map → 99448.8c045dc098cc67d199aa.bundle.js.map} +1 -1
- package/dist/css/bootstrap-graphdb-theme.css +1 -1
- package/dist/css/clustermanagement.css +1 -1
- package/dist/css/graphql/graphql-playground.css +1 -1
- package/dist/css/graphs-vizualizations.css +1 -1
- package/dist/css/lib/ontotext-yasgui-web-component.css +1 -1
- package/dist/css/repositories.css +1 -1
- package/dist/css/shepherd-custom.css +1 -1
- package/dist/css/shuttle-multiselect.css +1 -1
- package/dist/i18n/locale-en.json +4 -4
- package/dist/i18n/locale-fr.json +4 -4
- package/dist/index.html +9 -9
- package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
- package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
- package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
- package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
- package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
- package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
- package/dist/js/angular/core/templates/search-resource-input.html +1 -1
- package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
- package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
- package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
- package/dist/js/angular/security/templates/user.html +5 -5
- package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +3 -3
- package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
- package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
- package/dist/legacyWorkbench.f089c68483807d9f2f74.js +3 -0
- package/dist/{legacyWorkbench.59130589967739705b23.js.map → legacyWorkbench.f089c68483807d9f2f74.js.map} +1 -1
- package/dist/{main.1183256fc7ce9d0d3fa3.js → main.f4b1fbec182d8427ee8a.js} +3 -3
- package/dist/{main.1183256fc7ce9d0d3fa3.js.map → main.f4b1fbec182d8427ee8a.js.map} +1 -1
- package/dist/pages/aclmanagement.html +2 -2
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +1 -1
- package/dist/pages/createConnector.html +3 -0
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +8 -8
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/home.html +1 -1
- package/dist/pages/import.html +2 -2
- package/dist/pages/jdbc-create.html +1 -1
- package/dist/pages/jdbc.html +1 -1
- package/dist/pages/login.html +1 -1
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +1 -1
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +1 -1
- package/dist/pages/repository.html +1 -1
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-editor.html +1 -1
- package/dist/pages/sparql-template-create.html +1 -1
- package/dist/pages/sparql-templates.html +1 -1
- package/dist/pages/ux-test1.html +3 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger5/index.html +11 -11
- package/dist/shared-components/cjs/onto-cookie-consent_2.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-footer_5.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js +1 -1
- package/dist/shared-components/collection/components/onto-cookie-consent/onto-cookie-consent.css +1 -1
- package/dist/shared-components/collection/components/onto-navbar/onto-navbar.css +1 -1
- package/dist/shared-components/collection/components/onto-operations-notification/onto-operations-notification.css +1 -1
- package/dist/shared-components/esm/onto-cookie-consent_2.entry.js +1 -1
- package/dist/shared-components/esm/onto-footer_5.entry.js +1 -1
- package/dist/shared-components/esm/onto-language-selector_9.entry.js +1 -1
- package/dist/shared-components/shared-components/{p-79cc3329.entry.js → p-46732fef.entry.js} +1 -1
- package/dist/shared-components/shared-components/p-6ca5791e.entry.js +1 -0
- package/dist/shared-components/shared-components/p-7df9e540.entry.js +1 -0
- package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
- package/dist/styleguide.bc9dcbaac347a57319f2.js +2 -0
- package/dist/styleguide.bc9dcbaac347a57319f2.js.map +1 -0
- package/package.json +1 -1
- package/dist/53174.4a1ebee9fa3f2bcebf90.bundle.js.map +0 -1
- package/dist/60560.0a055f16e4792468aabb.bundle.js +0 -2
- package/dist/60560.0a055f16e4792468aabb.bundle.js.map +0 -1
- package/dist/82206.cebb3d642554cf3e0113.bundle.js +0 -2
- package/dist/82206.cebb3d642554cf3e0113.bundle.js.map +0 -1
- package/dist/94519.32958f75080cd121b880.bundle.js +0 -2
- package/dist/94519.32958f75080cd121b880.bundle.js.map +0 -1
- package/dist/legacyWorkbench.59130589967739705b23.js +0 -3
- package/dist/shared-components/shared-components/p-09a97d11.entry.js +0 -1
- package/dist/shared-components/shared-components/p-12b2f278.entry.js +0 -1
- package/dist/styleguide.26e57b17e3dafc7b6bbe.js +0 -2
- package/dist/styleguide.26e57b17e3dafc7b6bbe.js.map +0 -1
- /package/dist/{legacyWorkbench.59130589967739705b23.js.LICENSE.txt → legacyWorkbench.f089c68483807d9f2f74.js.LICENSE.txt} +0 -0
- /package/dist/{main.1183256fc7ce9d0d3fa3.js.LICENSE.txt → main.f4b1fbec182d8427ee8a.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_esm_id__=82206;export const __webpack_esm_ids__=[82206];export const __webpack_esm_modules__={28499:(e,t,o)=>{var r;o.d(t,{D:()=>r}),function(e){e.RIGHT="right",e.LEFT="left"}(r||(r={}))},44123:(e,t,o)=>{var r;o.d(t,{O:()=>r}),function(e){e.LEFT="left",e.RIGHT="right",e.TOP="top",e.BOTTOM="bottom",e.AUTO="auto"}(r||(r={}))},79939:(e,t,o)=>{o.d(t,{L:()=>n,T:()=>a,s:()=>s});var r=o(57154);function s(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}class n{static get logger(){return r.Loggers.getLoggerInstance("SharedComponents")}}class i{constructor(){this.languageContextService=r.ServiceProvider.get(r.LanguageContextService),this.translationChangedObservers={},this.logger=n.logger,this.defaultBundle=this.languageContextService.getDefaultBundle(),this.subscribeToBundleChange()}onTranslate(e,t=[],o=()=>{}){this.translationChangedObservers[e]=this.translationChangedObservers[e]||[];const r={parameters:t,callback:o};return this.translationChangedObservers[e].push(r),o(this.translate(e,t)),()=>{const t=this.translationChangedObservers[e].indexOf(r);-1!==t&&this.translationChangedObservers[e].splice(t,1)}}translate(e,t){return this.translateInLocale(e,t)}translateInLocale(e,t){let o=this.translateFromBundle(this.currentBundle,e);return o||(o=this.translateFromBundle(this.defaultBundle,e)),o?(o=this.applyParameters(o,t),s(o)):(this.logger.warn(`Missing translation for key: [${e}]`),e)}translateFromBundle(e,t){if(!e)return;let o=e[t];return"string"!=typeof o&&(o=this.translateAsJsonObject(e,t)),o}translateAsJsonObject(e,t){let o=t.split(".");return this.getTranslation(e,o)}getTranslation(e,t){if(!t||!e)return;const o=e[t.splice(0,1)[0]];return 0===t.length?o:"string"!=typeof o?t.length>0?this.getTranslation(o,t):o:void 0}applyParameters(e,t){return t?t.reduce((e,t)=>i.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 i},81491:(e,t,o)=>{o.d(t,{H:()=>s});const r='button, [href], input:not([type="hidden"]), select, textarea, [tabindex]:not([tabindex="-1"])';class s{static setDocumentBodyOverflow(e){const t=document.body.style.overflow;return document.body.style.overflow=e,t}static hideDocumentBodyOverflow(){return s.setDocumentBodyOverflow("hidden")}static focusNextElement(e,t=r){const o=Array.from(e.querySelectorAll(t));if(o.length>0){const e=o.indexOf(document.activeElement),t=o[(e+1)%o.length];t&&t.focus()}}static focusPreviousElement(e,t=r){const o=Array.from(e.querySelectorAll(t));if(o.length>0){const e=o.indexOf(document.activeElement),t=o[(e-1+o.length)%o.length];t&&t.focus()}}static preventLeavingDialog(e,t){"Tab"===t.key&&(t.preventDefault(),t.shiftKey?s.focusPreviousElement(e):s.focusNextElement(e))}static focusElement(e){const t=document.querySelector(e);null==t||t.focus()}static scrollElementIntoView(e,t={block:"nearest"}){const o=document.querySelector(e);o&&o.scrollIntoView(t)}static waitForElement(e){return new Promise((t,o)=>{const r=new MutationObserver(()=>{try{const o=document.querySelector(e);o&&(r.disconnect(),t(o))}catch(e){r.disconnect(),o(e)}});r.observe(document.body,{subtree:!0,childList:!0,attributes:!0})})}}},82206:(e,t,o)=>{o.r(t),o.d(t,{onto_language_selector:()=>d,onto_license_alert:()=>u,onto_operations_notification:()=>b,onto_rdf_search:()=>m,onto_repository_selector:()=>f,onto_search_icon:()=>y,onto_search_resource_input:()=>w,onto_user_login:()=>S,onto_user_menu:()=>k});var r=o(87848),s=o(87050),n=o(57154),i=o(28499),a=o(44123),l=o(79939),c=o(81491);const d=class{constructor(e){(0,r.r)(this,e),this.languageService=n.ServiceProvider.get(n.LanguageService),this.languageContextService=n.ServiceProvider.get(n.LanguageContextService),this.items=[],this.dropdownAlignment=i.D.LEFT}connectedCallback(){this.onLanguageChangeSubscription=this.languageContextService.onSelectedLanguageChanged(e=>this.changeLanguage(e)),this.items=this.getLanguageDropdownOptions()}disconnectedCallback(){this.onLanguageChangeSubscription&&this.onLanguageChangeSubscription()}render(){var e,t;return(0,r.h)(r.a,{key:"faabdc9c474b053c32f4ae2c45cd79bd6166a255"},(0,r.h)("onto-dropdown",{key:"e15d2c8478c85c3a37c99d22f91602ea17730e67",class:"onto-language-selector",onValueChanged:this.valueChangeHandler(),dropdownButtonNameLabelKey:this.currentLanguage?void 0:"language_selector.toggle_menu.label",dropdownButtonName:null!==(e=this.currentLanguage)&&void 0!==e?e:void 0,dropdownButtonTooltipLabelKey:this.currentLanguage?"language_selector.toggle_menu.tooltip":"language_selector.toggle_menu.label",dropdownAlignment:null!==(t=this.dropdownAlignment)&&void 0!==t?t:i.D.RIGHT,dropdownTooltipTrigger:"mouseenter focus",iconClass:"icon-translation",items:this.items,"auto-close":!0}))}valueChangeHandler(){return e=>this.onSelectedLanguageChanged(e)}changeLanguage(e){let t=e;t||(t=this.languageService.getDefaultLanguage()),this.currentLanguage=t,this.items=this.getLanguageDropdownOptions()}onSelectedLanguageChanged(e){this.languageContextService.updateSelectedLanguage(e.detail)}getLanguageDropdownOptions(){return this.languageService.getSupportedLanguages().map(e=>{const t=this.currentLanguage===e?"icon-tick":"";return(new s.D).setNameLabelKey(`language_selector.language.${e}.label`).setTooltipLabelKey(`language_selector.language.${e}.tooltip.`+(this.currentLanguage===e?"selected":"not_selected")).setIconClass(t).setCssClass(e).setValue(e).setDropdownTooltipTrigger("mouseenter focus")})}};d.style=":host{display:block}onto-language-selector{display:block}onto-language-selector .onto-dropdown{height:100%}onto-language-selector .onto-dropdown.open .onto-dropdown-button{height:fit-content}onto-language-selector .onto-dropdown.closed .onto-dropdown-button{background-color:transparent}onto-language-selector .onto-dropdown.closed .onto-dropdown-button .icon-translation{font-size:1.5em}onto-language-selector .onto-dropdown.closed .onto-dropdown-button:hover{background-color:var(--gw-button-secondary-hover-background)}";const u=class{constructor(e){(0,r.r)(this,e)}render(){var e;return(0,r.h)(r.a,{key:"0067db786bd82713daab8282753d3f93aec0ec38","tooltip-content":null===(e=this.license)||void 0===e?void 0:e.message,"tooltip-placement":a.O.BOTTOM,"data-test":"onto-license-alert"},(0,r.h)("button",{key:"b85276c21bc7686e7d9b00ba5123aa73b5013a19",class:"onto-license-alert onto-btn",onClick:(0,n.navigateTo)("license")},(0,r.h)("span",{key:"7e3d93a7afe21e6b2a4b7706205c5aac60f3fde2",class:"icon-warning"}),(0,r.h)("translate-label",{key:"42f0bfeefdf7d758f5d2ad3f473f1b24f777f1dc",labelKey:"license_alert.label"})))}};u.style=":host{display:block}.onto-license-alert{animation:fade-button 2s infinite;--fade-color:var(--gw-error-light);border:1px solid transparent !important}.onto-license-alert:hover{text-decoration:none;background-color:var(--gw-error-light) !important;border-color:var(--gw-error-light) !important}.onto-license-alert:hover span{transform:scale(1.2)}.onto-license-alert span{transition:transform 0.15s ease-out}.onto-license-alert .icon-warning{margin-right:0.2em;line-height:0.75;font-size:1.4em;display:inline-block;vertical-align:middle}";const p={[n.OperationGroup.BACKUP]:"ri-archive-line",[n.OperationGroup.QUERY]:"ri-arrow-left-right-line",[n.OperationGroup.CLUSTER]:"ri-organization-chart",[n.OperationGroup.IMPORT]:"icon-import"},h={[n.OperationStatus.WARNING]:"status-warning",[n.OperationStatus.INFORMATION]:"status-information",[n.OperationStatus.CRITICAL]:"status-critical"},g={[n.OperationStatus.WARNING]:"onto-btn-fade-warning",[n.OperationStatus.CRITICAL]:"onto-btn-fade-danger"},b=class{constructor(e){(0,r.r)(this,e),this.isOpen=!1,this.toggleDropdown=e=>{e.stopPropagation(),this.isOpen=!this.isOpen}}handleOutsideClick(){this.isOpen&&(this.isOpen=!1)}render(){var e;return this.operationGroups=n.MapperProvider.get(n.OperationGroupSummaryListMapper).mapToModel(this.activeOperations.toOperationsGroupSummary()),(0,r.h)("section",{key:"095aef34c3a9ba5b5bf39e581946b36f5610df9d",class:"operations-statuses"},(0,r.h)("button",{key:"e7cb1898eb6bfd222ae51c895e8c72078940da6e",class:`operations-statuses-dropdown-toggle ${this.isOpen?"open":"closed"} ${null!==(e=g[this.activeOperations.status])&&void 0!==e?e:""}`,onClick:this.toggleDropdown},this.operationGroups.getItems().map(e=>(0,r.h)("section",{key:e.id,class:"operation-status-header"},(0,r.h)("i",{class:`${p[e.group]} ${h[e.status]}`}),e.totalOperations?(0,r.h)("sup",{class:"running-operation-count tag-info"},e.totalOperations):"")),(0,r.h)("i",{key:"247f4f98e3d91d851e978d73413c5d00101f2d0b",class:"ri-arrow-down-s-line "+(this.isOpen?"rotate-180":"")})),this.isOpen&&(0,r.h)("ul",{key:"8121c8133a185d2271526d4cca11ee318bc06b99",class:"operations-dropdown"},(0,r.h)("section",{key:"3d53bcbbef30e807e4b139db673d32868facd82b",class:"operations-statuses-content"},this.activeOperations.allRunningOperations.getItems().map(e=>(0,r.h)("li",{key:e.id},(0,r.h)("a",{class:`operation-status-content onto-btn no-underline ${h[e.status]}`,target:"_blank",onClick:(0,n.navigateTo)(e.href)},(0,r.h)("i",{class:p[e.group]}),(0,r.h)("span",{class:"operation-status-label"},(0,r.h)("translate-label",{labelKey:`operations_notification.links.${e.labelKey}`})),(0,r.h)("span",{class:"operation-number"},e.count?(0,r.h)("span",{class:"operation-status-running-operation-count"},e.count):"")))))))}get el(){return(0,r.g)(this)}};b.style=".operations-statuses{position:relative}.operations-statuses .operations-statuses-dropdown-toggle{display:flex;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;border:1px solid transparent;padding:0.4rem 1rem;font-size:1rem;gap:0.75em;transition:all 0.15s ease-out}.operations-statuses .operations-statuses-dropdown-toggle:hover{background-color:#d4d4d4;border-color:#d4d4d4}.operations-statuses .operations-statuses-dropdown-toggle:hover i:not(.ri-arrow-down-s-line){transform:scale(1.2)}.operations-statuses .operations-statuses-dropdown-toggle:focus{outline:none}.operations-statuses .operations-statuses-dropdown-toggle.open{background-color:#bbb !important;border-color:#bbb !important}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-header{display:flex}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-header .running-operation-count{color:white;padding:1px 2px;line-height:1;align-self:center;top:-1em;font-size:60%}.operations-statuses .operations-dropdown{position:absolute;right:0;z-index:1000;border:none;background-color:var(--gw-primary-base, #9e2b0a);border-radius:0;list-style:none;padding:0;-moz-transition:all 150ms ease-out;-o-transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out;transition:all 150ms ease-out}.operations-statuses .operations-dropdown .operations-statuses-content{display:flex;flex-direction:column;background-color:#bbb;margin:0}.operations-statuses .operations-dropdown .operations-statuses-content li:first-child{margin-top:5px}.operations-statuses .operations-dropdown .operations-statuses-content li:last-child{margin-bottom:5px}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content{display:flex;flex-direction:row;margin:5px 10px;align-items:center;justify-content:start;cursor:pointer;text-decoration:none;width:auto;gap:0.5em;background-color:var(--gw-button-secondary-background);border-color:var(--gw-button-secondary-border-color)}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content i{width:8.33%}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-number{min-width:50px;display:block}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-number .operation-status-running-operation-count{display:block;width:100%;color:white;border-radius:2px;padding:3px 2px 2px;text-align:center;font-size:75%;background-color:var(--gw-info-dark, #004177) !important}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-status-content>*{padding:0}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-status-label{width:66.66%;padding-left:5px;line-height:0;text-align:start}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content:hover{text-decoration:none;background-color:var(--gw-button-secondary-hover-background);border-color:var(--gw-button-secondary-hover-border-color)}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content:hover i{transform:scale(1.2)}.operations-statuses .status-information{color:var(--gw-message-info-color, #004177) !important}.operations-statuses .status-warning{color:var(--gw-message-warning-color, #7e2308) !important}.operations-statuses .status-critical{color:var(--gw-message-error-color, #a31425) !important}.operations-statuses i{padding-left:3px;padding-right:3px;font-size:1.1em;line-height:1.6rem !important;align-content:center;transition:transform 0.15s ease-out}.operations-statuses i.ri-arrow-down-s-line{color:rgba(0, 0, 0, 0.35);transition:all 0.2s ease-in}.operations-statuses .icon-import{font-size:21px}";const m=class{constructor(e){(0,r.r)(this,e),this.subscriptions=new n.SubscriptionList,this.eventService=n.ServiceProvider.get(n.EventService),this.resourceSearchStorageService=n.ServiceProvider.get(n.ResourceSearchStorageService),this.RDF_CONTEXT="rdfSearchContext",this.isOpen=!1,this.redirectUrl=n.UriUtil.RESOURCE_URL}handleClick(e){var t;this.isOpen&&((null===(t=this.rdfSearchRef)||void 0===t?void 0:t.contains(e.target))||(this.isOpen=!1))}connectedCallback(){this.onSuggestionSelected()}disconnectedCallback(){this.subscriptions.unsubscribeAll()}componentDidRender(){this.focusSearchInput()}componentDidLoad(){this.buttonConfig=this.createButtonConfig()}render(){return(0,r.h)("section",{key:"fb63b11874e6049ea060d7f8bf2b9ce00a2bc78c",ref:e=>this.rdfSearchRef=e,class:"onto-rdf-search",onKeyDown:this.onKeyDown(),"data-test":"onto-rdf-search-component"},(0,r.h)("section",{key:"1c7f6a7e9951011e1c62e2f24c912c8c2813c404",class:"search-area "+(this.isOpen?"visible":"invisible")},(0,r.h)("i",{key:"e6f8e37067378b674c1ff4ad8ac105cd472972a5",onClick:this.setIsOpen(!1),"tooltip-content":l.T.translate("rdf_search.tooltips.close_search_area"),"tooltip-placement":a.O.BOTTOM,"data-test":"onto-rdf-resource-search-close-btn",class:"ri-close-line close-btn"}),(0,r.h)("onto-search-resource-input",{key:"a2b41801185618be5658c27bce1e4a05a3820dc7",buttonConfig:this.buttonConfig,preserveSearch:!0,isHidden:!this.isOpen,"data-test":"onto-rdf-resource-search-input",context:this.RDF_CONTEXT})),this.isOpen?"":(0,r.h)("onto-search-icon",{onClick:this.setIsOpen(!0)}))}setIsOpen(e){return()=>{this.isOpen=e,this.isOpen&&this.loadSelectedViewFromStorage()}}createButtonConfig(){return new n.SearchButtonConfig({isRadio:!0,buttons:[this.createSearchButton(s.R.TABLE_VIEW,"rdf_search.buttons.table",()=>{this.redirectUrl=n.UriUtil.RESOURCE_URL,this.resourceSearchStorageService.setSelectedView(s.R.TABLE_VIEW)},!0),this.createSearchButton(s.R.VISUAL_VIEW,"rdf_search.buttons.visual",()=>{this.redirectUrl=n.UriUtil.GRAPHS_VISUALIZATIONS_URL,this.resourceSearchStorageService.setSelectedView(s.R.VISUAL_VIEW)},!1)]})}createSearchButton(e,t,o,r){return new n.SearchButton({label:l.T.translate(t),id:e,callback:o,selected:r})}onSuggestionSelected(){this.subscriptions.add(this.eventService.subscribe(s.R.SUGGESTION_SELECTED_EVENT,e=>{if(e.getContext()===this.RDF_CONTEXT){const t=e.getSuggestion().getOverrideToVisual()?n.UriUtil.GRAPHS_VISUALIZATIONS_URL:this.redirectUrl;(0,n.openInNewTab)(n.UriUtil.createAutocompleteRedirect(t,e.getSuggestion().getValue()))}}))}onKeyDown(){return e=>{"Escape"===e.key&&(this.isOpen=!1)}}focusSearchInput(){this.isOpen&&c.H.focusElement(`#${this.RDF_CONTEXT}`)}loadSelectedViewFromStorage(){const e=this.resourceSearchStorageService.getSelectedView();if(e){const t=this.buttonConfig.getButtons().find(t=>t.id===e);t&&(this.buttonConfig=this.buttonConfig.selectButton(t))}}};m.style=".onto-rdf-search{display:flex;align-items:center;font-size:1.4em;height:auto}.onto-rdf-search .search-area{white-space:nowrap;text-align:start;font-weight:300;max-width:100vw;position:fixed;right:3em;z-index:1;display:block;width:60vw;-webkit-transition:top 0.3s ease-in, opacity 0.5s ease;transition:top 0.3s ease-in, opacity 0.5s ease;box-shadow:0 3px 6px rgba(0, 0, 0, 0.1);border-radius:0;margin-bottom:1em;padding:1.6rem;border:1px solid rgba(0, 0, 0, 0.125);color:var(--gw-dialog-color);background-color:var(--gw-dialog-background)}.onto-rdf-search .search-area.visible{top:40px;opacity:1}.onto-rdf-search .search-area.invisible{top:-550px;opacity:0}.onto-rdf-search .search-area .close-btn{display:block;position:absolute;top:0;right:0;font-size:1.5rem}.onto-rdf-search i{cursor:pointer;color:var(--gw-primary-base);transition:all 0.15s ease-out}.onto-rdf-search i.ri-search-line,.onto-rdf-search i.close-btn{padding:0.5rem 0.8rem}.onto-rdf-search i:hover{transform:scale(1.2)}";const v=({repository:e,defaultToggleButtonName:t,location:o})=>{var s;const n=e?"repository-selection active-repository":"repository-selection no-selected-repository";return(0,r.h)("div",{class:n,"data-test":"repository-selection"},e&&(0,r.h)("i",{class:"button-icon icon-repo-"+e.type})," ",null!==(s=null==e?void 0:e.id)&&void 0!==s?s:t,o)},f=class{constructor(e){(0,r.r)(this,e),this.repositoryContextService=n.ServiceProvider.get(n.RepositoryContextService),this.subscriptions=[]}onItemsChanged(e){(null==e?void 0:e.length)?this.dropdownItems=this.attachTooltipsToItems(this.items):this.dropdownItems=[]}connectedCallback(){var e;this.subscriptions.push(...this.subscribeToTranslationChanged()),(null===(e=this.items)||void 0===e?void 0:e.length)?this.dropdownItems=this.attachTooltipsToItems(this.items):this.dropdownItems=[]}disconnectedCallback(){this.subscriptions.forEach(e=>e())}render(){const e=(0,r.h)(v,{key:"bf5de32d81929056bbdf4c16a228cbe3dd7d2cdf",repository:this.currentRepository,defaultToggleButtonName:this.getButtonLabel(),location:this.getLocation()});return(0,r.h)(r.a,{key:"ad2c4f2fee7b98d840bf0881ec571d7279dcdea5"},(0,r.h)("onto-dropdown",Object.assign({key:"442ac676b56db755c45caf45fd0216ed050334ba",class:"onto-repository-selector","data-test":"onto-repository-selector",onValueChanged:this.onValueChanged(),dropdownButtonName:e,dropdownButtonTooltip:this.createTooltipFunctionForRepository(this.currentRepository)},this.currentRepository?{dropdownButtonGuideSelector:`repository-id-${this.currentRepository.id}`}:{},{dropdownTooltipTrigger:"mouseenter focus",dropdownAlignment:i.D.RIGHT,tooltipPlacement:this.tooltipAlignment,tooltipTheme:"light-border",items:this.dropdownItems,"auto-close":!0})))}attachTooltipsToItems(e){return e?e.map(e=>e.setTooltip(this.createTooltipFunctionForRepository(e.value))):[]}tooltipAlignment(e){return e?a.O.LEFT:a.O.BOTTOM}onValueChanged(){return e=>this.onRepositoryChanged(e.detail)}createTooltipFunctionForRepository(e){return async()=>{if(!e)return"";const t=await this.repositorySizeInfoFetcher(e);return this.buildRepositoryTooltipHtml(e,t)}}buildRepositoryTooltipHtml(e,t){let o=`\n <div class="repository-tooltip-title">\n <span class="label">${l.T.translate("repository-selector.tooltip.repository")}</span>\n <span class="value">${e.id}</span>\n </div>\n <div class="repository-tooltip-content">\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.location")}:</div>\n <div class="value">${e.location?e.location:l.T.translate("repository-selector.tooltip.local")}</div>\n </div>\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.type")}:</div>\n <div class="value">${l.T.translate("repository-selector.tooltip.types."+(e.type||"unknown"))}</div>\n </div>\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.access")}:</div>\n <div class="value">${l.T.translate(this.canWriteRepo(e)?"repository-selector.tooltip.accesses.read_write":"repository-selector.tooltip.accesses.read")}</div>\n </div>`;return o+=this.buildRepositorySizeInfoHtml(t),o+="</div>",o}buildRepositorySizeInfoHtml(e){if(!e||e.total<0)return"";let t=`\n <div class="repository-tooltip-row total">\n <div class="label">${l.T.translate("repository-selector.tooltip.repository-size.total")}:</div>\n <div class="value">${this.totalTripletsFormatter.format(e.total)}</div>\n </div>`;if(e.explicit>=0&&(t+=`\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.repository-size.explicit")}:</div>\n <div class="value">${this.totalTripletsFormatter.format(e.explicit)}</div>\n </div>`),e.inferred>=0&&(t+=`\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.repository-size.inferred")}:</div>\n <div class="value">${this.totalTripletsFormatter.format(e.inferred)}</div>\n </div>`),e.total>=0){let o="-";e.explicit>0&&(o=this.totalTripletsFormatter.format(e.total/e.explicit)),t+=`\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.repository-size.expansion_ratio")}:</div>\n <div class="value">${o}</div>\n </div>`}return t}subscribeToTranslationChanged(){return[l.T.onTranslate("repository-selector.btn.toggle",[],e=>{this.defaultToggleButtonName=e}),l.T.onTranslate("repository-selector.btn.no_repositories",[],e=>{this.noRepositoriesButtonMessage=e})]}onRepositoryChanged(e){this.repositoryContextService.updateSelectedRepository(e)}getLocation(){var e;return(null===(e=this.currentRepository)||void 0===e?void 0:e.location)?`@${n.UriUtil.shortenIri(this.currentRepository.location)}`:""}getButtonLabel(){var e;return(null===(e=this.items)||void 0===e?void 0:e.length)?this.defaultToggleButtonName:this.noRepositoriesButtonMessage}static get watchers(){return{items:["onItemsChanged"]}}};f.style=":host{display:block}.onto-repository-selector .onto-dropdown.closed .onto-dropdown-button{background-color:var(--gw-button-secondary-background);color:var(--gw-button-secondary-background)}.onto-repository-selector .onto-dropdown.closed .onto-dropdown-button:hover{background-color:var(--gw-button-secondary-hover-background);color:var(--gw-button-secondary-hover-color)}.onto-repository-selector .repository-selector-dropdown-item{display:flex;align-items:center;gap:0.4em}.onto-repository-selector .repository-selector-dropdown-item .item-icon{font-size:1.4em}.onto-repository-selector .repository-selector-dropdown-item .item-label{line-height:0.75em;display:inline-block;vertical-align:middle;text-align:left}.onto-repository-selector .repository-selector-dropdown-item .item-label .repository-id{line-height:0.75em}.onto-repository-selector .repository-selector-dropdown-item .item-label .repository-location{font-weight:300;font-size:0.75em;margin-top:0.4em;display:inline-block;max-width:120px;text-overflow:ellipsis;overflow:hidden}.tippy-box[data-theme=light-border]{border-radius:0}.tippy-box[data-theme=light-border].tippy-box[data-placement*=left]>.tippy-arrow:before{border-left-color:var(--gw-dialog-background)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=left]>.tippy-arrow:after{border-left-color:var(--gw-dialog-border-color)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=top]>.tippy-arrow:before{border-top-color:var(--gw-dialog-background)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=top]>.tippy-arrow:after{border-top-color:var(--gw-dialog-border-color)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=right]>.tippy-arrow:before{border-right-color:var(--gw-dialog-background)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=right]>.tippy-arrow:after{border-right-color:var(--gw-dialog-border-color)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=bottom]>.tippy-arrow:before{border-bottom-color:var(--gw-dialog-background)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=bottom]>.tippy-arrow:after{border-bottom-color:var(--gw-dialog-border-color)}.tippy-box[data-theme=light-border] .tippy-content{padding:0;color:var(--gw-dialog-color);border:1px solid var(--gw-dialog-border-color);box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color)}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-title{font-size:1rem;font-weight:400;padding:8px 14px;background-color:var(--gw-dialog-background);border-bottom:var(--gw-dialog-border-color) 1px solid}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-title .value{word-wrap:break-word}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-content{background-color:var(--gw-dialog-background);padding:1.5rem 0.5rem;display:flex;flex-direction:column;gap:0.8em;font-weight:400;font-size:0.875rem}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row{display:flex;flex-direction:row;justify-content:space-between}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row.total{margin-top:1.2em}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row .value{margin-left:0.6em}";const y=class{constructor(e){(0,r.r)(this,e),this.tooltipKey="rdf_search.labels.search",this.subscriptions=new n.SubscriptionList}connectedCallback(){this.onTooltipChange()}disconnectedCallback(){this.subscriptions.unsubscribeAll()}render(){return(0,r.h)("i",{key:"33ac85ef454f5a8de8e24217d92950219df84f7a","tooltip-content":this.tooltipLabel,"tooltip-placement":a.O.BOTTOM,class:"onto-search-icon ri-search-line"})}onTooltipChange(){this.subscriptions.add(l.T.onTranslate(this.tooltipKey,[],e=>this.tooltipLabel=e))}};y.style=".onto-search-icon{cursor:pointer;color:var(--gw-primary-base, #9e2b0a);transition:all 0.15s ease-out;font-size:1.6rem}.onto-search-icon.ri-search-line{padding:0.5rem 0.8rem}.onto-search-icon:hover{transform:scale(1.2)}";const w=class{constructor(e){(0,r.r)(this,e),this.autocompleteService=n.ServiceProvider.get(n.AutocompleteService),this.autocompleteContextService=n.ServiceProvider.get(n.AutocompleteContextService),this.autocompleteStorageService=n.ServiceProvider.get(n.AutocompleteStorageService),this.resourceSearchStorageService=n.ServiceProvider.get(n.ResourceSearchStorageService),this.toastrService=n.ServiceProvider.get(n.OntoToastrService),this.eventService=n.ServiceProvider.get(n.EventService),this.namespaceContextService=n.ServiceProvider.get(n.NamespacesContextService),this.subscriptions=new n.SubscriptionList,this.autocompleteWarningShown=!1,this.skipValidation=!1,this.isHidden=!1,this.isAutocompleteEnabled=!1,this.handleInput=e=>{const t=e.target;t.value?(this.setInputValue(t.value),this.checkForAutocomplete()):this.clearInput()},this.clearInput=()=>{this.setInputValue(""),this.preserveSearch&&this.resourceSearchStorageService.clearStoredSearch()},this.onKeyDown=e=>{switch(e.key){case"Enter":this.onEnter(e);break;case"Escape":this.onEscape();break;case"ArrowUp":this.onArrowUp(e);break;case"ArrowDown":this.onArrowDown(e)}}}onVisibilityChange(e){var t;e?null===(t=this.searchResult)||void 0===t||t.clearSuggestions():this.setInputValue(this.resourceSearchStorageService.getInputValue())}connectedCallback(){this.onAutocompleteEnabledChange(),this.onNamespaceChange(),this.loadInputFromStorage()}disconnectedCallback(){this.subscriptions.unsubscribeAll()}render(){var e,t,o;return(0,r.h)("section",{key:"c038af36fa4270f35dab06147536206eab600ce5",class:"search-resources-input"},(0,r.h)("div",{key:"d9b3044c17de9765bd3cbc724ab76bb13e823136",class:"input-row"},(0,r.h)("span",{key:"297d9e5f94d414f227349b79f26f277e3c246c39",class:"input-wrapper"},(0,r.h)("input",{key:"65db17686344b92e8fb59cba15e48538da26c07e",value:this.inputValue,id:this.context,type:"text",autocomplete:"off",placeholder:`${l.T.translate("rdf_search.labels.search")}...`,ref:e=>this.inputRef=e,onKeyDown:this.onKeyDown,"data-test":this.context,onInput:this.handleInput}),(null===(e=this.inputValue)||void 0===e?void 0:e.length)?(0,r.h)("i",{onClick:this.clearInput,"tooltip-content":l.T.translate("rdf_search.tooltips.clear"),"tooltip-placement":a.O.BOTTOM,class:"ri-close-line clear-input"}):""),null===(t=this.buttonConfig)||void 0===t?void 0:t.getButtons().getItems().map(e=>(0,r.h)("button",{key:e.label,onClick:this.handleButtonClick(e),class:e.selected?"selected":""},e.label))),(0,r.h)("span",{key:"cfb1aa194945352f33b786eb7bf2bae98c6e9ea2",class:"hint"},l.T.translate("rdf_search.labels.hint")),(0,r.h)("section",{key:"e17c4e528f8c05ed983df81e2c364356170dac12",class:"autocomplete-results-wrapper","data-test":"onto-autocomplete-results"},null===(o=this.searchResult)||void 0===o?void 0:o.getSuggestions().getItems().map(e=>(0,r.h)("p",{key:e.getId(),onClick:this.onSuggestionClick(e),"data-test":"onto-autocomplete-suggestion",onMouseMove:this.hoverSuggestion(e),class:`${e.isHovered()?"hovered":""} ${e.isSelected()?"selected":""}`,innerHTML:e.getDescription()}))))}handleButtonClick(e){return()=>this.buttonConfig=this.buttonConfig.selectButton(e)}loadAutocompleteResults(){var e;this.inputValue?this.isAutocompleteEnabled&&this.autocompleteService.search(this.inputValue).then(e=>{this.onResultsReceived(e)}):null===(e=this.searchResult)||void 0===e||e.clearSuggestions()}hoverSuggestion(e){return()=>this.searchResult=this.searchResult.hoverSuggestion(e)}onAutocompleteEnabledChange(){this.isAutocompleteEnabled=this.autocompleteStorageService.isEnabled(),this.subscriptions.add(this.autocompleteContextService.onAutocompleteEnabledChanged(e=>{this.isAutocompleteEnabled=null!=e?e:this.isAutocompleteEnabled}))}checkForAutocomplete(){if(this.inputValue.length>0&&!this.isAutocompleteEnabled&&!this.autocompleteWarningShown){this.autocompleteWarningShown=!0;const e=l.T.translate("rdf_search.toasts.autocomplete_is_off");this.toastrService.warning(`<a class="no-underline" style="font-weight: 500">${e}</a>`,{onClick:(0,n.navigateTo)("autocomplete"),removeOnClick:!0})}}onSuggestionClick(e){return t=>{e.setOverrideToVisual(t.ctrlKey||t.metaKey),this.searchRdfResource(e)}}searchRdfResource(e){e.getType()===n.SuggestionType.PREFIX?this.expandPrefix(e):(this.notifyRdfResourceSelected(e),this.preserveSearch&&this.resourceSearchStorageService.setLastSelected(e))}notifyRdfResourceSelected(e){var t;this.searchResult=null===(t=this.searchResult)||void 0===t?void 0:t.selectSuggestion(e),this.eventService.emit({NAME:s.R.SUGGESTION_SELECTED_EVENT,payload:new n.SuggestionSelectedPayload(e,this.context)})}expandPrefix(e){this.setInputValue(this.namespaces.getByPrefix(e.getValue())),this.inputRef.focus()}setInputValue(e){this.inputValue=e,this.preserveSearch&&this.resourceSearchStorageService.setInputValue(this.inputValue),this.loadAutocompleteResults()}onNamespaceChange(){this.subscriptions.add(this.namespaceContextService.onNamespacesChanged(e=>{this.namespaces=e}))}onEnter(e){var t;let o=null===(t=this.searchResult)||void 0===t?void 0:t.getHoveredSuggestion();o||(o=new n.Suggestion({value:n.UriUtil.removeAngleBrackets(this.inputValue),type:n.SuggestionType.URI})),o.setOverrideToVisual(e.ctrlKey||e.metaKey),this.validateAndSearch(o)}onArrowUp(e){this.searchResult=this.searchResult.hoverPreviousSuggestion(),this.displaySuggestion(e)}onArrowDown(e){this.searchResult=this.searchResult.hoverNextSuggestion(),this.displaySuggestion(e)}displaySuggestion(e){e.preventDefault(),this.inputRef.value=this.searchResult.getHoveredSuggestion().getValue(),this.scrollToSuggestionBySelector("p.hovered")}getSuggestionValue(e){return e.getType()===n.SuggestionType.PREFIX?this.namespaces.getByPrefix(e.getValue()):e.getValue()}scrollToSuggestionBySelector(e,t){c.H.waitForElement(e).then(()=>{c.H.scrollElementIntoView(e,t)})}validateAndSearch(e){if(!this.skipValidation){if(!e.getValue())return void this.toastrService.error(l.T.translate("rdf_search.toasts.empty_input"));if(!n.UriUtil.isValidUri(this.getSuggestionValue(e)))return void this.toastrService.error(l.T.translate("rdf_search.toasts.invalid_uri"))}this.searchRdfResource(e)}onEscape(){this.preserveSearch||this.clearInput()}loadInputFromStorage(){this.preserveSearch&&(this.inputValue=this.resourceSearchStorageService.getInputValue()||"")}onResultsReceived(e){const t=null==e?void 0:e.getByValue(this.resourceSearchStorageService.getLastSelectedValue());t&&this.preserveSearch?(e.hoverSuggestion(t),this.searchResult=e.selectSuggestion(t),this.scrollToSuggestionBySelector("p.hovered.selected",{block:"start"})):(this.searchResult=e.hoverFirstSuggestion(),this.scrollToSuggestionBySelector("p.hovered",{block:"start"}))}static get watchers(){return{isHidden:["onVisibilityChange"]}}};w.style=".search-resources-input{padding-right:20px}.search-resources-input .input-row{gap:3px;display:flex;flex-wrap:wrap}.search-resources-input .input-row .input-wrapper{position:relative;display:flex;flex:1;min-width:20vw}.search-resources-input .input-row .input-wrapper input{min-width:inherit;flex:1;padding:0.5rem 0.75rem;font-size:1rem;line-height:1.25;color:var(--gw-form-field-color);background-color:var(--gw-form-field-background);background-image:none;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid var(--gw-form-field-border-color)}.search-resources-input .input-row .input-wrapper input:focus{outline:0;color:var(--gw-form-field-color);border-color:var(--gw-form-field-focus-border-color)}.search-resources-input .input-row i.ri-close-line{position:absolute;right:10px;top:7px;z-index:10;font-size:1.6rem}.search-resources-input .input-row button{display:inline-block;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;transition:all 0.15s ease-out;user-select:none;border:1px solid transparent;padding:0.5rem 1rem;font-size:1rem;color:var(--gw-button-secondary-color);background-color:var(--gw-button-secondary-background)}.search-resources-input .input-row button.selected{background-color:var(--gw-button-primary-background);color:var(--gw-button-primary-color)}.search-resources-input .input-row button:focus{outline:none}.search-resources-input .input-row button:hover:not(.selected){background-color:var(--gw-button-secondary-hover-background);border-color:var(--gw-button-secondary-hover-color)}.search-resources-input .hint{font-size:0.8rem;color:#818a91}.search-resources-input .autocomplete-results-wrapper{margin-top:6px;max-height:204px;overflow:auto}.search-resources-input .autocomplete-results-wrapper p{font-size:1.1rem;line-height:1.5;color:var(--gw-autocomplete-option-color);background-color:var(--gw-autocomplete-background);margin-bottom:0;padding:5px 25px;cursor:pointer}.search-resources-input .autocomplete-results-wrapper p b{color:var(--gw-secondary-base, #003663)}.search-resources-input .autocomplete-results-wrapper p.selected{background-color:var(--autocomplete-background-selected, #02A99A)}.search-resources-input .autocomplete-results-wrapper p.hovered:not(.selected),.search-resources-input .autocomplete-results-wrapper p:hover:not(.selected){background-color:var(--autocomplete-background, rgba(2, 169, 143, 0.3019607843))}";const S=class{constructor(e){(0,r.r)(this,e)}render(){return(0,r.h)("section",{key:"010f4db017da2ab91bc79de27658d255de92d5f4",class:"onto-user-login"},(0,r.h)("button",{key:"f3e4019d86f6950a57186bb73dbfd60d1bc03362",onClick:(0,n.navigateTo)("login")},(0,r.h)("i",{key:"42a5ef90e9b768c8d283cdd8c3e6fb2160c33f16",class:"icon-arrow-right"}),(0,r.h)("translate-label",{key:"9f61abfd1f3be13bca10d1d6db4d774accbb2f85",class:"user-login-label",labelKey:"user_menu.login"})))}};S.style=":root{--onto-user-login-color:var(--gw-secondary-base, var(--base-text-color))}.onto-user-login{position:relative;width:fit-content}.onto-user-login button{display:flex;color:var(--onto-user-login-color);flex-direction:row;line-height:1.5;font-weight:400;font-size:1rem;text-align:center;user-select:none;border:1px solid transparent;padding:0.4em 1rem;cursor:pointer;white-space:nowrap;place-items:center;transition:all 0.15s ease-out}.onto-user-login button .user-login-label{padding:0 0.4rem}.onto-user-login button:hover{background-color:#d4d4d4;border-color:#d4d4d4}.onto-user-login button:hover .ri-user-fill{transform:scale(1.2)}.onto-user-login button:focus{outline:none}.onto-user-login button i{color:var(--user-menu-primary-color);line-height:0.75;font-size:1.2em;transition:0.15s ease-out}.onto-user-login button i.ri-arrow-down-s-line{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}";const k=class{constructor(e){(0,r.r)(this,e),this.logout=()=>{n.ServiceProvider.get(n.AuthenticationService).logout()},this.toggleDropdown=()=>{this.isOpen=!this.isOpen},this.handleOutsideClick=e=>{this.isOpen&&!this.hostElement.contains(e.target)&&(this.isOpen=!1)}}connectedCallback(){document.addEventListener("click",this.handleOutsideClick)}disconnectedCallback(){document.removeEventListener("click",this.handleOutsideClick)}render(){var e;return(0,r.h)("section",{key:"294141ded29aca49a790c51e791262d4626b80ab",class:"onto-user-menu"},(0,r.h)("div",{key:"1e7c1a6ea8e9766840b5c72c7ceecdfaf838c865",class:"dropdown-toggle-wrapper",onClick:this.toggleDropdown},(0,r.h)("button",{key:"413bb997a92cb55ef56ee7ae45463e10c176540c",class:this.isOpen?"open":""},(0,r.h)("i",{key:"2c5806a5a49429b709753a9a009146b578b191ed",class:"ri-user-line ri-lg"}),(0,r.h)("span",{key:"1a59a9218b7a680c47d77c6e016659721d17aea4",class:"username"},this.user.username),(0,r.h)("i",{key:"dea9929dc6bd6280336fe3a7cc1d062d4c9f54c3",class:"ri-arrow-down-s-line "+(this.isOpen?"rotate-180":"")})),this.isOpen?(0,r.h)("section",{class:"onto-user-menu-dropdown"},(0,r.h)("translate-label",{onClick:(0,n.navigateTo)("settings"),labelKey:"user_menu.my_settings"}),(null===(e=this.securityConfig)||void 0===e?void 0:e.hasExternalAuthUser)?"":(0,r.h)("translate-label",{onClick:this.logout,labelKey:"user_menu.logout"})):""))}get hostElement(){return(0,r.g)(this)}};k.style=".onto-user-menu{position:relative;width:fit-content}.onto-user-menu button{display:flex;flex-direction:row;line-height:1.5;font-weight:400;font-size:1rem;text-align:center;user-select:none;border:1px solid transparent;padding:0.4em 1rem;cursor:pointer;white-space:nowrap;place-items:center;transition:all 0.15s ease-out;background-color:var(--gw-button-secondary-background);color:var(--gw-button-secondary-color)}.onto-user-menu button:hover{background-color:var(--gw-button-secondary-hover-background);color:var(--gw-button-secondary-hover-color)}.onto-user-menu button:hover .ri-user-line{transform:scale(1.2)}.onto-user-menu button:focus{outline:none}.onto-user-menu button.open{color:white;background-color:var(--gw-primary-base);border-color:var(--gw-primary-base)}.onto-user-menu button.open .ri-user-line{color:var(--icon-on-primary-color, rgba(255, 255, 255, 0.8))}.onto-user-menu button.open:hover .ri-user-line{transform:scale(1.2)}.onto-user-menu button .username{padding:0 5px}.onto-user-menu button i{color:var(--gw-primary-base);transition:0.15s ease-out}.onto-user-menu button i.ri-arrow-down-s-line{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}.onto-user-menu .onto-user-menu-dropdown{position:absolute;z-index:1000;display:flex;flex-direction:column;cursor:pointer;text-decoration:none;right:0;min-width:7rem;font-size:1rem;width:100%;color:var(--gw-primary-contrast-color);background-color:var(--gw-primary-base)}.onto-user-menu .onto-user-menu-dropdown translate-label{padding:0.4rem 1rem;user-select:none;white-space:nowrap;font-weight:400}.onto-user-menu .onto-user-menu-dropdown translate-label:hover,.onto-user-menu .onto-user-menu-dropdown translate-label:focus{background-color:rgba(0, 0, 0, 0.1)}"},87050:(e,t,o)=>{o.d(t,{D:()=>r,R:()=>s});class r{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 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}}var s;!function(e){e.SUGGESTION_SELECTED_EVENT="suggestion-selected-event",e.TABLE_VIEW="table",e.VISUAL_VIEW="visual",e.RDF_SEARCH_ICON_CLICKED="rdfSearchIconClicked"}(s||(s={}))}};
|
|
2
|
+
//# sourceMappingURL=82206.d593f5b11aa103af5e3d.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"82206.d593f5b11aa103af5e3d.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/shared-components/dist/esm/dropdown-item-alignment-DghTf3pJ.js","webpack://root-config/./packages/shared-components/dist/esm/onto-tooltip-placement-D_J2-9CG.js","webpack://root-config/./packages/shared-components/dist/esm/translation.service-nljGIprK.js","webpack://root-config/./packages/shared-components/dist/esm/html-util-C8DO915D.js","webpack://root-config/./packages/shared-components/dist/esm/onto-language-selector_9.entry.js","webpack://root-config/./packages/shared-components/dist/esm/resource-search-constants-CapzAxJp.js"],"sourcesContent":["var DropdownItemAlignment;\n(function (DropdownItemAlignment) {\n DropdownItemAlignment[\"RIGHT\"] = \"right\";\n DropdownItemAlignment[\"LEFT\"] = \"left\";\n})(DropdownItemAlignment || (DropdownItemAlignment = {}));\n\nexport { DropdownItemAlignment as D };\n","var OntoTooltipPlacement;\n(function (OntoTooltipPlacement) {\n OntoTooltipPlacement[\"LEFT\"] = \"left\";\n OntoTooltipPlacement[\"RIGHT\"] = \"right\";\n OntoTooltipPlacement[\"TOP\"] = \"top\";\n OntoTooltipPlacement[\"BOTTOM\"] = \"bottom\";\n OntoTooltipPlacement[\"AUTO\"] = \"auto\";\n})(OntoTooltipPlacement || (OntoTooltipPlacement = {}));\n\nexport { OntoTooltipPlacement as O };\n","import { Loggers, ServiceProvider, LanguageContextService } from '@ontotext/workbench-api';\n\nfunction sanitizeHTML(html) {\n const element = document.createElement('textarea');\n element.innerHTML = html;\n return element.value;\n}\n\nconst MODULE_NAME = 'SharedComponents';\n/**\n * Logger for the Shared Components module.\n */\nclass LoggerProvider {\n /**\n * Gets the logger instance for the Shared Components module.\n *\n * @returns LoggerService instance for the Shared Components module\n */\n static get logger() {\n return Loggers.getLoggerInstance(MODULE_NAME);\n }\n}\n\n/**\n * Service responsible for translation operations in the component.\n */\nclass TranslationServiceClassDefinition {\n constructor() {\n this.languageContextService = ServiceProvider.get(LanguageContextService);\n this.translationChangedObservers = {};\n this.logger = LoggerProvider.logger;\n // log with background color\n this.defaultBundle = this.languageContextService.getDefaultBundle();\n this.subscribeToBundleChange();\n }\n /**\n * Translates the <code>messageLabelKey</code> with <code>translationParameter</code> and call <code>translationCallback</code> with translation of current language.\n * The <code>translationCallback</code> is called upon subscription and whenever the selected language is changed.\n *\n * @param messageLabelKey - The label key for the translation.\n * @param translationParameter - Parameters, if needed, for translation.\n * @param translationCallback - A function to be called when translating the `messageLabelKey`.\n * @returns A function that, when called, unsubscribes the provided callback from further translation updates.\n */\n onTranslate(messageLabelKey, translationParameter = [], translationCallback = () => { }) {\n this.translationChangedObservers[messageLabelKey] = this.translationChangedObservers[messageLabelKey] || [];\n const observer = { parameters: translationParameter, callback: translationCallback };\n this.translationChangedObservers[messageLabelKey].push(observer);\n translationCallback(this.translate(messageLabelKey, translationParameter));\n return () => {\n const index = this.translationChangedObservers[messageLabelKey].indexOf(observer);\n if (index !== -1) {\n this.translationChangedObservers[messageLabelKey].splice(index, 1);\n }\n };\n }\n /**\n * Translates the provided key using the currently selected language by applying the parameters if\n * provided.\n * @param key The key for the label which needs to be translated.\n * @param parameters Optional parameters which to be applied during the translation.\n */\n translate(key, parameters) {\n return this.translateInLocale(key, parameters);\n }\n /**\n * Translates a given key into the specified locale. If parameters are provided,\n * they will be applied to the translation.\n *\n * @param key - The translation key, which can be dot-separated for nested translations.\n * @param parameters - Optional parameters to be substituted into the translation string.\n * @returns The translated string with parameters applied if available, or the key itself if not found.\n */\n translateInLocale(key, parameters) {\n // Attempt to retrieve the translation from the specified locale's bundle.\n let translation = this.translateFromBundle(this.currentBundle, key);\n // If not found, fall back to the default language bundle.\n if (!translation) {\n translation = this.translateFromBundle(this.defaultBundle, key);\n }\n // If translation was found, apply any parameters provided and return the result.\n if (translation) {\n translation = this.applyParameters(translation, parameters);\n return sanitizeHTML(translation);\n }\n this.logger.warn(`Missing translation for key: [${key}]`);\n return key;\n }\n /**\n * Retrieves a translation from a specified translation bundle using the given key.\n * If the key represents a nested JSON path, it attempts to resolve the key as such.\n *\n * @param bundle - The translation bundle for the specified locale.\n * @param key - The key to translate, which may be a simple key or dot-separated for nested keys.\n * @returns The translation string if found, or `undefined` if not available.\n */\n translateFromBundle(bundle, key) {\n if (!bundle) {\n return undefined;\n }\n // Try to retrieve the translation directly if it is defined as a whole string,\n // for instance as \"some_function.btn.label\".\n let translation = bundle[key];\n // If not found, attempt to retrieve the translation if it is defined as a JSON object.\n if (typeof translation !== 'string') {\n translation = this.translateAsJsonObject(bundle, key);\n }\n return translation;\n }\n /**\n * Resolves a nested translation key by treating it as a path in a JSON object.\n * For example, if the key is \"some.key.path\", this method will navigate through\n * the JSON object structure to retrieve the value at that path.\n *\n * @param bundle - The translation bundle containing nested keys.\n * @param key - The dot-separated key representing the path to the translation.\n * @returns The translation string if found, or `undefined` if the path does not exist.\n */\n translateAsJsonObject(bundle, key) {\n let path = key.split('.');\n return this.getTranslation(bundle, path);\n }\n /**\n * Recursively navigates through a JSON object based on a path array to retrieve\n * a translation string. Each element in the path array represents a nested key.\n *\n * @param jsonObject - The current JSON object or nested object being searched.\n * @param path - An array representing the path to the translation, where each element is a key.\n * @returns The translation string if found, or `undefined` if the path does not exist.\n */\n getTranslation(jsonObject, path) {\n // Stop the recursion if path or reach the inner element\n if (!path || !jsonObject) {\n return undefined;\n }\n const jsonOrTranslation = jsonObject[path.splice(0, 1)[0]];\n if (path.length === 0) {\n return jsonOrTranslation;\n }\n if (typeof jsonOrTranslation !== 'string') {\n // continue if the inner element is not reached.\n if (path.length > 0) {\n return this.getTranslation(jsonOrTranslation, path);\n }\n return jsonOrTranslation;\n }\n return undefined;\n }\n applyParameters(translation, parameters) {\n if (parameters) {\n return parameters.reduce(\n // replace all occurrence of parameter key with parameter value.\n (translation, parameter) => TranslationServiceClassDefinition.replaceAll(translation, parameter), translation);\n }\n return translation;\n }\n static replaceAll(translation, parameter) {\n return parameter ? translation.split(`{{${parameter.key}}}`).join(parameter.value) : translation;\n }\n notifyTranslationsChanged() {\n Object.keys(this.translationChangedObservers).forEach((eventName) => {\n const observers = this.translationChangedObservers[eventName] || [];\n observers.forEach((observer) => observer.callback(this.translate(eventName, observer.parameters)));\n });\n }\n subscribeToBundleChange() {\n this.languageChangeSubscription = this.languageContextService.onLanguageBundleChanged((bundle) => {\n if (bundle) {\n this.currentBundle = bundle;\n this.notifyTranslationsChanged();\n }\n });\n }\n destroy() {\n if (this.languageChangeSubscription) {\n this.languageChangeSubscription();\n }\n }\n}\nconst TranslationService = new TranslationServiceClassDefinition();\n\nexport { LoggerProvider as L, TranslationService as T, sanitizeHTML as s };\n","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, h, a as Host, g as getElement } from './index-I_gcXFWK.js';\nimport { D as DropdownItem, R as ResourceSearchConstants } from './resource-search-constants-CapzAxJp.js';\nimport { ServiceProvider, LanguageService, LanguageContextService, navigateTo, MapperProvider, OperationGroupSummaryListMapper, OperationStatus, OperationGroup, SubscriptionList, EventService, ResourceSearchStorageService, UriUtil, SearchButtonConfig, SearchButton, openInNewTab, RepositoryContextService, AutocompleteService, AutocompleteContextService, AutocompleteStorageService, OntoToastrService, NamespacesContextService, SuggestionType, SuggestionSelectedPayload, Suggestion, AuthenticationService } from '@ontotext/workbench-api';\nimport { D as DropdownItemAlignment } from './dropdown-item-alignment-DghTf3pJ.js';\nimport { O as OntoTooltipPlacement } from './onto-tooltip-placement-D_J2-9CG.js';\nimport { T as TranslationService } from './translation.service-nljGIprK.js';\nimport { H as HtmlUtil } from './html-util-C8DO915D.js';\n\nconst ontoLanguageSelectorCss = \":host{display:block}onto-language-selector{display:block}onto-language-selector .onto-dropdown{height:100%}onto-language-selector .onto-dropdown.open .onto-dropdown-button{height:fit-content}onto-language-selector .onto-dropdown.closed .onto-dropdown-button{background-color:transparent}onto-language-selector .onto-dropdown.closed .onto-dropdown-button .icon-translation{font-size:1.5em}onto-language-selector .onto-dropdown.closed .onto-dropdown-button:hover{background-color:var(--gw-button-secondary-hover-background)}\";\n\nconst OntoLanguageSelector = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.languageService = ServiceProvider.get(LanguageService);\n this.languageContextService = ServiceProvider.get(LanguageContextService);\n this.items = [];\n /**\n * Specifies the dropdown items' alignment. If not provided, the items and the dropdown button will be aligned to the left.\n *\n */\n this.dropdownAlignment = DropdownItemAlignment.LEFT;\n }\n connectedCallback() {\n this.onLanguageChangeSubscription = this.languageContextService.onSelectedLanguageChanged((newLanguage) => this.changeLanguage(newLanguage));\n this.items = this.getLanguageDropdownOptions();\n }\n disconnectedCallback() {\n if (this.onLanguageChangeSubscription) {\n this.onLanguageChangeSubscription();\n }\n }\n render() {\n var _a, _b;\n return (h(Host, { key: 'faabdc9c474b053c32f4ae2c45cd79bd6166a255' }, h(\"onto-dropdown\", { key: 'e15d2c8478c85c3a37c99d22f91602ea17730e67', class: 'onto-language-selector', onValueChanged: this.valueChangeHandler(), dropdownButtonNameLabelKey: !this.currentLanguage ? 'language_selector.toggle_menu.label' : undefined, dropdownButtonName: (_a = this.currentLanguage) !== null && _a !== void 0 ? _a : undefined, dropdownButtonTooltipLabelKey: this.currentLanguage ? 'language_selector.toggle_menu.tooltip' : 'language_selector.toggle_menu.label', dropdownAlignment: (_b = this.dropdownAlignment) !== null && _b !== void 0 ? _b : DropdownItemAlignment.RIGHT, dropdownTooltipTrigger: 'mouseenter focus', iconClass: 'icon-translation', items: this.items, \"auto-close\": true })));\n }\n valueChangeHandler() {\n return (newLanguage) => this.onSelectedLanguageChanged(newLanguage);\n }\n changeLanguage(newLanguage) {\n let selectedLanguage = newLanguage;\n if (!selectedLanguage) {\n selectedLanguage = this.languageService.getDefaultLanguage();\n }\n this.currentLanguage = selectedLanguage;\n this.items = this.getLanguageDropdownOptions();\n }\n onSelectedLanguageChanged(newLanguageEvent) {\n this.languageContextService.updateSelectedLanguage(newLanguageEvent.detail);\n }\n getLanguageDropdownOptions() {\n return this.languageService.getSupportedLanguages().map((locale) => {\n const iconClass = this.currentLanguage === locale ? 'icon-tick' : '';\n return new DropdownItem()\n .setNameLabelKey(`language_selector.language.${locale}.label`)\n .setTooltipLabelKey(`language_selector.language.${locale}.tooltip.` + (this.currentLanguage === locale ? 'selected' : 'not_selected'))\n .setIconClass(iconClass)\n .setCssClass(locale)\n .setValue(locale)\n .setDropdownTooltipTrigger('mouseenter focus');\n });\n }\n};\nOntoLanguageSelector.style = ontoLanguageSelectorCss;\n\nconst ontoLicenseAlertCss = \":host{display:block}.onto-license-alert{animation:fade-button 2s infinite;--fade-color:var(--gw-error-light);border:1px solid transparent !important}.onto-license-alert:hover{text-decoration:none;background-color:var(--gw-error-light) !important;border-color:var(--gw-error-light) !important}.onto-license-alert:hover span{transform:scale(1.2)}.onto-license-alert span{transition:transform 0.15s ease-out}.onto-license-alert .icon-warning{margin-right:0.2em;line-height:0.75;font-size:1.4em;display:inline-block;vertical-align:middle}\";\n\nconst OntoLicenseAlert = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n render() {\n var _a;\n return (h(Host, { key: '0067db786bd82713daab8282753d3f93aec0ec38', \"tooltip-content\": (_a = this.license) === null || _a === void 0 ? void 0 : _a.message, \"tooltip-placement\": OntoTooltipPlacement.BOTTOM, \"data-test\": 'onto-license-alert' }, h(\"button\", { key: 'b85276c21bc7686e7d9b00ba5123aa73b5013a19', class: \"onto-license-alert onto-btn\", onClick: navigateTo('license') }, h(\"span\", { key: '7e3d93a7afe21e6b2a4b7706205c5aac60f3fde2', class: \"icon-warning\" }), h(\"translate-label\", { key: '42f0bfeefdf7d758f5d2ad3f473f1b24f777f1dc', labelKey: 'license_alert.label' }))));\n }\n};\nOntoLicenseAlert.style = ontoLicenseAlertCss;\n\nconst ontoOperationsNotificationCss = \".operations-statuses{position:relative}.operations-statuses .operations-statuses-dropdown-toggle{display:flex;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;border:1px solid transparent;padding:0.4rem 1rem;font-size:1rem;gap:0.75em;transition:all 0.15s ease-out}.operations-statuses .operations-statuses-dropdown-toggle:hover{background-color:#d4d4d4;border-color:#d4d4d4}.operations-statuses .operations-statuses-dropdown-toggle:hover i:not(.ri-arrow-down-s-line){transform:scale(1.2)}.operations-statuses .operations-statuses-dropdown-toggle:focus{outline:none}.operations-statuses .operations-statuses-dropdown-toggle.open{background-color:#bbb !important;border-color:#bbb !important}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-header{display:flex}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-header .running-operation-count{color:white;padding:1px 2px;line-height:1;align-self:center;top:-1em;font-size:60%}.operations-statuses .operations-dropdown{position:absolute;right:0;z-index:1000;border:none;background-color:var(--gw-primary-base, #9e2b0a);border-radius:0;list-style:none;padding:0;-moz-transition:all 150ms ease-out;-o-transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out;transition:all 150ms ease-out}.operations-statuses .operations-dropdown .operations-statuses-content{display:flex;flex-direction:column;background-color:#bbb;margin:0}.operations-statuses .operations-dropdown .operations-statuses-content li:first-child{margin-top:5px}.operations-statuses .operations-dropdown .operations-statuses-content li:last-child{margin-bottom:5px}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content{display:flex;flex-direction:row;margin:5px 10px;align-items:center;justify-content:start;cursor:pointer;text-decoration:none;width:auto;gap:0.5em;background-color:var(--gw-button-secondary-background);border-color:var(--gw-button-secondary-border-color)}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content i{width:8.33%}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-number{min-width:50px;display:block}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-number .operation-status-running-operation-count{display:block;width:100%;color:white;border-radius:2px;padding:3px 2px 2px;text-align:center;font-size:75%;background-color:var(--gw-info-dark, #004177) !important}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-status-content>*{padding:0}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-status-label{width:66.66%;padding-left:5px;line-height:0;text-align:start}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content:hover{text-decoration:none;background-color:var(--gw-button-secondary-hover-background);border-color:var(--gw-button-secondary-hover-border-color)}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content:hover i{transform:scale(1.2)}.operations-statuses .status-information{color:var(--gw-message-info-color, #004177) !important}.operations-statuses .status-warning{color:var(--gw-message-warning-color, #7e2308) !important}.operations-statuses .status-critical{color:var(--gw-message-error-color, #a31425) !important}.operations-statuses i{padding-left:3px;padding-right:3px;font-size:1.1em;line-height:1.6rem !important;align-content:center;transition:transform 0.15s ease-out}.operations-statuses i.ri-arrow-down-s-line{color:rgba(0, 0, 0, 0.35);transition:all 0.2s ease-in}.operations-statuses .icon-import{font-size:21px}\";\n\nconst operationGroupToIcon = {\n [OperationGroup.BACKUP]: 'ri-archive-line',\n [OperationGroup.QUERY]: 'ri-arrow-left-right-line',\n [OperationGroup.CLUSTER]: 'ri-organization-chart',\n // TODO: change import icon to font awesome one, when available\n [OperationGroup.IMPORT]: 'icon-import'\n};\nconst operationStatusToWarningClass = {\n [OperationStatus.WARNING]: 'status-warning',\n [OperationStatus.INFORMATION]: 'status-information',\n [OperationStatus.CRITICAL]: 'status-critical'\n};\nconst operationStatusToFadeClass = {\n [OperationStatus.WARNING]: 'onto-btn-fade-warning',\n [OperationStatus.CRITICAL]: 'onto-btn-fade-danger'\n};\nconst OntoOperationsNotification = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /** Whether the dropdown menu is open or closed */\n this.isOpen = false;\n this.toggleDropdown = (event) => {\n event.stopPropagation();\n this.isOpen = !this.isOpen;\n };\n }\n handleOutsideClick() {\n if (this.isOpen) {\n this.isOpen = false;\n }\n }\n render() {\n var _a;\n this.operationGroups = MapperProvider\n .get(OperationGroupSummaryListMapper)\n .mapToModel(this.activeOperations.toOperationsGroupSummary());\n return (h(\"section\", { key: '095aef34c3a9ba5b5bf39e581946b36f5610df9d', class: \"operations-statuses\" }, h(\"button\", { key: 'e7cb1898eb6bfd222ae51c895e8c72078940da6e', class: `operations-statuses-dropdown-toggle ${this.isOpen ? 'open' : 'closed'} ${(_a = operationStatusToFadeClass[this.activeOperations.status]) !== null && _a !== void 0 ? _a : ''}`, onClick: this.toggleDropdown }, this.operationGroups.getItems().map((groupSummary) => (h(\"section\", { key: groupSummary.id, class: \"operation-status-header\" }, h(\"i\", { class: `${operationGroupToIcon[groupSummary.group]} ${operationStatusToWarningClass[groupSummary.status]}` }), groupSummary.totalOperations\n ? h(\"sup\", { class: \"running-operation-count tag-info\" }, groupSummary.totalOperations)\n : ''))), h(\"i\", { key: '247f4f98e3d91d851e978d73413c5d00101f2d0b', class: `ri-arrow-down-s-line ${this.isOpen ? 'rotate-180' : ''}` })), this.isOpen &&\n h(\"ul\", { key: '8121c8133a185d2271526d4cca11ee318bc06b99', class: \"operations-dropdown\" }, h(\"section\", { key: '3d53bcbbef30e807e4b139db673d32868facd82b', class: \"operations-statuses-content\" }, this.activeOperations.allRunningOperations.getItems().map((operation) => (h(\"li\", { key: operation.id }, h(\"a\", { class: `operation-status-content onto-btn no-underline ${operationStatusToWarningClass[operation.status]}`, target: \"_blank\", onClick: navigateTo(operation.href) }, h(\"i\", { class: operationGroupToIcon[operation.group] }), h(\"span\", { class: \"operation-status-label\" }, h(\"translate-label\", { labelKey: `operations_notification.links.${operation.labelKey}` })), h(\"span\", { class: \"operation-number\" }, operation.count\n ? h(\"span\", { class: \"operation-status-running-operation-count\" }, operation.count)\n : '')))))))));\n }\n get el() { return getElement(this); }\n};\nOntoOperationsNotification.style = ontoOperationsNotificationCss;\n\nconst ontoRdfSearchCss = \".onto-rdf-search{display:flex;align-items:center;font-size:1.4em;height:auto}.onto-rdf-search .search-area{white-space:nowrap;text-align:start;font-weight:300;max-width:100vw;position:fixed;right:3em;z-index:1;display:block;width:60vw;-webkit-transition:top 0.3s ease-in, opacity 0.5s ease;transition:top 0.3s ease-in, opacity 0.5s ease;box-shadow:0 3px 6px rgba(0, 0, 0, 0.1);border-radius:0;margin-bottom:1em;padding:1.6rem;border:1px solid rgba(0, 0, 0, 0.125);color:var(--gw-dialog-color);background-color:var(--gw-dialog-background)}.onto-rdf-search .search-area.visible{top:40px;opacity:1}.onto-rdf-search .search-area.invisible{top:-550px;opacity:0}.onto-rdf-search .search-area .close-btn{display:block;position:absolute;top:0;right:0;font-size:1.5rem}.onto-rdf-search i{cursor:pointer;color:var(--gw-primary-base);transition:all 0.15s ease-out}.onto-rdf-search i.ri-search-line,.onto-rdf-search i.close-btn{padding:0.5rem 0.8rem}.onto-rdf-search i:hover{transform:scale(1.2)}\";\n\nconst OntoRdfSearch = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.subscriptions = new SubscriptionList();\n this.eventService = ServiceProvider.get(EventService);\n this.resourceSearchStorageService = ServiceProvider.get(ResourceSearchStorageService);\n this.RDF_CONTEXT = 'rdfSearchContext';\n this.isOpen = false;\n this.redirectUrl = UriUtil.RESOURCE_URL;\n }\n /**\n * Handles click events on the window.\n * Closes the search area if it's open and the click is outside the search area.\n * @param event - The MouseEvent object.\n */\n handleClick(event) {\n var _a;\n if (!this.isOpen) {\n return;\n }\n if (!((_a = this.rdfSearchRef) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {\n this.isOpen = false;\n }\n }\n connectedCallback() {\n this.onSuggestionSelected();\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n componentDidRender() {\n this.focusSearchInput();\n }\n componentDidLoad() {\n this.buttonConfig = this.createButtonConfig();\n }\n render() {\n return (h(\"section\", { key: 'fb63b11874e6049ea060d7f8bf2b9ce00a2bc78c', ref: (ref) => this.rdfSearchRef = ref, class: \"onto-rdf-search\", onKeyDown: this.onKeyDown(), \"data-test\": 'onto-rdf-search-component' }, h(\"section\", { key: '1c7f6a7e9951011e1c62e2f24c912c8c2813c404', class: `search-area ${this.isOpen ? 'visible' : 'invisible'}` }, h(\"i\", { key: 'e6f8e37067378b674c1ff4ad8ac105cd472972a5', onClick: this.setIsOpen(false), \"tooltip-content\": TranslationService.translate('rdf_search.tooltips.close_search_area'), \"tooltip-placement\": OntoTooltipPlacement.BOTTOM, \"data-test\": 'onto-rdf-resource-search-close-btn', class: \"ri-close-line close-btn\" }), h(\"onto-search-resource-input\", { key: 'a2b41801185618be5658c27bce1e4a05a3820dc7', buttonConfig: this.buttonConfig, preserveSearch: true, isHidden: !this.isOpen, \"data-test\": 'onto-rdf-resource-search-input', context: this.RDF_CONTEXT })), !this.isOpen ? h(\"onto-search-icon\", { onClick: this.setIsOpen(true) }) : ''));\n }\n /**\n * Creates a function to set the open state of the search area.\n * @param isOpen - Boolean indicating whether the search area should be open.\n */\n setIsOpen(isOpen) {\n return () => {\n this.isOpen = isOpen;\n if (this.isOpen) {\n this.loadSelectedViewFromStorage();\n }\n };\n }\n /**\n * Creates the configuration for search buttons.\n * @returns A SearchButtonConfig object with radio buttons for table and visual search.\n */\n createButtonConfig() {\n return new SearchButtonConfig({\n isRadio: true,\n buttons: [\n this.createSearchButton(ResourceSearchConstants.TABLE_VIEW, 'rdf_search.buttons.table', () => {\n this.redirectUrl = UriUtil.RESOURCE_URL;\n this.resourceSearchStorageService.setSelectedView(ResourceSearchConstants.TABLE_VIEW);\n }, true),\n this.createSearchButton(ResourceSearchConstants.VISUAL_VIEW, 'rdf_search.buttons.visual', () => {\n this.redirectUrl = UriUtil.GRAPHS_VISUALIZATIONS_URL;\n this.resourceSearchStorageService.setSelectedView(ResourceSearchConstants.VISUAL_VIEW);\n }, false)\n ]\n });\n }\n /**\n * Creates a search button with the given parameters.\n * @param id - The id for the button.\n * @param labelKey - The key for the button's label translation.\n * @param callback - The function to be called when the button is clicked.\n * @param selected - Boolean indicating whether the button should be initially selected.\n * @returns A SearchButton object.\n */\n createSearchButton(id, labelKey, callback, selected) {\n return new SearchButton({\n label: TranslationService.translate(labelKey),\n id,\n callback,\n selected\n });\n }\n onSuggestionSelected() {\n this.subscriptions.add(this.eventService.subscribe(ResourceSearchConstants.SUGGESTION_SELECTED_EVENT, (payload) => {\n if (payload.getContext() === this.RDF_CONTEXT) {\n const redirectUrl = payload.getSuggestion().getOverrideToVisual()\n ? UriUtil.GRAPHS_VISUALIZATIONS_URL\n : this.redirectUrl;\n openInNewTab(UriUtil.createAutocompleteRedirect(redirectUrl, payload.getSuggestion().getValue()));\n }\n }));\n }\n onKeyDown() {\n return (event) => {\n if (event.key === 'Escape') {\n this.isOpen = false;\n }\n };\n }\n focusSearchInput() {\n if (this.isOpen) {\n HtmlUtil.focusElement(`#${this.RDF_CONTEXT}`);\n }\n }\n loadSelectedViewFromStorage() {\n const selectedView = this.resourceSearchStorageService.getSelectedView();\n if (selectedView) {\n const selectedButton = this.buttonConfig.getButtons().find((button) => button.id === selectedView);\n if (selectedButton) {\n this.buttonConfig = this.buttonConfig.selectButton(selectedButton);\n }\n }\n }\n};\nOntoRdfSearch.style = ontoRdfSearchCss;\n\n/**\n *\n * A StencilJS component that renders a repository selection. The element displays the repository's icon and ID\n * if a repository is selected; otherwise, it shows a translated toggle button name. The component dynamically\n * updates the name when the translation changes.\n *\n * @example\n * <RepositorySelection repository={repository}></>\n *\n */\nconst RepositorySelection = ({ repository, defaultToggleButtonName, location }) => {\n var _a;\n const className = repository ? 'repository-selection active-repository' : 'repository-selection no-selected-repository';\n return (h(\"div\", { class: className, \"data-test\": 'repository-selection' },\n repository && h(\"i\", { class: 'button-icon icon-repo-' + repository.type }),\n \"\\u00A0\", (_a = repository === null || repository === void 0 ? void 0 : repository.id) !== null && _a !== void 0 ? _a : defaultToggleButtonName,\n location));\n};\n\nconst ontoRepositorySelectorCss = \":host{display:block}.onto-repository-selector .onto-dropdown.closed .onto-dropdown-button{background-color:var(--gw-button-secondary-background);color:var(--gw-button-secondary-background)}.onto-repository-selector .onto-dropdown.closed .onto-dropdown-button:hover{background-color:var(--gw-button-secondary-hover-background);color:var(--gw-button-secondary-hover-color)}.onto-repository-selector .repository-selector-dropdown-item{display:flex;align-items:center;gap:0.4em}.onto-repository-selector .repository-selector-dropdown-item .item-icon{font-size:1.4em}.onto-repository-selector .repository-selector-dropdown-item .item-label{line-height:0.75em;display:inline-block;vertical-align:middle;text-align:left}.onto-repository-selector .repository-selector-dropdown-item .item-label .repository-id{line-height:0.75em}.onto-repository-selector .repository-selector-dropdown-item .item-label .repository-location{font-weight:300;font-size:0.75em;margin-top:0.4em;display:inline-block;max-width:120px;text-overflow:ellipsis;overflow:hidden}.tippy-box[data-theme=light-border]{border-radius:0}.tippy-box[data-theme=light-border].tippy-box[data-placement*=left]>.tippy-arrow:before{border-left-color:var(--gw-dialog-background)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=left]>.tippy-arrow:after{border-left-color:var(--gw-dialog-border-color)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=top]>.tippy-arrow:before{border-top-color:var(--gw-dialog-background)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=top]>.tippy-arrow:after{border-top-color:var(--gw-dialog-border-color)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=right]>.tippy-arrow:before{border-right-color:var(--gw-dialog-background)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=right]>.tippy-arrow:after{border-right-color:var(--gw-dialog-border-color)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=bottom]>.tippy-arrow:before{border-bottom-color:var(--gw-dialog-background)}.tippy-box[data-theme=light-border].tippy-box[data-placement*=bottom]>.tippy-arrow:after{border-bottom-color:var(--gw-dialog-border-color)}.tippy-box[data-theme=light-border] .tippy-content{padding:0;color:var(--gw-dialog-color);border:1px solid var(--gw-dialog-border-color);box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color)}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-title{font-size:1rem;font-weight:400;padding:8px 14px;background-color:var(--gw-dialog-background);border-bottom:var(--gw-dialog-border-color) 1px solid}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-title .value{word-wrap:break-word}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-content{background-color:var(--gw-dialog-background);padding:1.5rem 0.5rem;display:flex;flex-direction:column;gap:0.8em;font-weight:400;font-size:0.875rem}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row{display:flex;flex-direction:row;justify-content:space-between}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row.total{margin-top:1.2em}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row .value{margin-left:0.6em}\";\n\nconst OntoRepositorySelector = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.repositoryContextService = ServiceProvider.get(RepositoryContextService);\n this.subscriptions = [];\n }\n /**\n * Re-applies tooltip functions to all dropdown items when the items prop changes.\n */\n onItemsChanged(newItems) {\n if (!(newItems === null || newItems === void 0 ? void 0 : newItems.length)) {\n this.dropdownItems = [];\n return;\n }\n this.dropdownItems = this.attachTooltipsToItems(this.items);\n }\n connectedCallback() {\n var _a;\n this.subscriptions.push(...this.subscribeToTranslationChanged());\n // Manually apply tooltip functions to each item on first mount.\n if ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length) {\n this.dropdownItems = this.attachTooltipsToItems(this.items);\n }\n else {\n this.dropdownItems = [];\n }\n }\n /**\n * Cleans up the subscriptions when the component is removed from the DOM to avoid memory leaks.\n * This method unsubscribes from both the repository change and selected repository change events.\n */\n disconnectedCallback() {\n this.subscriptions.forEach((subscription) => subscription());\n }\n render() {\n const repositorySelection = h(RepositorySelection, { key: 'bf5de32d81929056bbdf4c16a228cbe3dd7d2cdf', repository: this.currentRepository, defaultToggleButtonName: this.getButtonLabel(), location: this.getLocation() });\n return (h(Host, { key: 'ad2c4f2fee7b98d840bf0881ec571d7279dcdea5' }, h(\"onto-dropdown\", Object.assign({ key: '442ac676b56db755c45caf45fd0216ed050334ba', class: 'onto-repository-selector', \"data-test\": 'onto-repository-selector', onValueChanged: this.onValueChanged(), dropdownButtonName: repositorySelection, dropdownButtonTooltip: this.createTooltipFunctionForRepository(this.currentRepository) }, (this.currentRepository ? { 'dropdownButtonGuideSelector': `repository-id-${this.currentRepository.id}` } : {}), { dropdownTooltipTrigger: 'mouseenter focus', dropdownAlignment: DropdownItemAlignment.RIGHT, tooltipPlacement: this.tooltipAlignment, tooltipTheme: 'light-border', items: this.dropdownItems, \"auto-close\": true }))));\n }\n attachTooltipsToItems(items) {\n if (!items) {\n return [];\n }\n return items.map((item) => item.setTooltip(this.createTooltipFunctionForRepository(item.value)));\n }\n tooltipAlignment(isOpen) {\n if (isOpen) {\n return OntoTooltipPlacement.LEFT;\n }\n return OntoTooltipPlacement.BOTTOM;\n }\n onValueChanged() {\n return (valueChangeEvent) => this.onRepositoryChanged(valueChangeEvent.detail);\n }\n /**\n * Returns an async function that generates HTML tooltip content for the given repository.\n */\n createTooltipFunctionForRepository(repository) {\n return async () => {\n if (!repository) {\n return '';\n }\n const repositorySizeInfo = await this.repositorySizeInfoFetcher(repository);\n return this.buildRepositoryTooltipHtml(repository, repositorySizeInfo);\n };\n }\n /**\n * Builds the complete HTML string used as tooltip content for a repository.\n */\n buildRepositoryTooltipHtml(repository, repositorySizeInfo) {\n let html = `\n <div class=\"repository-tooltip-title\">\n <span class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository')}</span>\n <span class=\"value\">${repository.id}</span>\n </div>\n <div class=\"repository-tooltip-content\">\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.location')}:</div>\n <div class=\"value\">${repository.location ? repository.location : TranslationService.translate('repository-selector.tooltip.local')}</div>\n </div>\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.type')}:</div>\n <div class=\"value\">${TranslationService.translate('repository-selector.tooltip.types.' + (repository.type || 'unknown'))}</div>\n </div>\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.access')}:</div>\n <div class=\"value\">${TranslationService.translate(this.canWriteRepo(repository) ? 'repository-selector.tooltip.accesses.read_write' : 'repository-selector.tooltip.accesses.read')}</div>\n </div>`;\n html += this.buildRepositorySizeInfoHtml(repositorySizeInfo);\n html += '</div>';\n return html;\n }\n /**\n * Builds the repository size section of the tooltip.\n */\n buildRepositorySizeInfoHtml(repositorySizeInfo) {\n if (!repositorySizeInfo || repositorySizeInfo.total < 0) {\n return '';\n }\n let html = `\n <div class=\"repository-tooltip-row total\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository-size.total')}:</div>\n <div class=\"value\">${this.totalTripletsFormatter.format(repositorySizeInfo.total)}</div>\n </div>`;\n if (repositorySizeInfo.explicit >= 0) {\n html += `\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository-size.explicit')}:</div>\n <div class=\"value\">${this.totalTripletsFormatter.format(repositorySizeInfo.explicit)}</div>\n </div>`;\n }\n if (repositorySizeInfo.inferred >= 0) {\n html += `\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository-size.inferred')}:</div>\n <div class=\"value\">${this.totalTripletsFormatter.format(repositorySizeInfo.inferred)}</div>\n </div>`;\n }\n if (repositorySizeInfo.total >= 0) {\n let value = '-';\n if (repositorySizeInfo.explicit > 0) {\n value = this.totalTripletsFormatter.format(repositorySizeInfo.total / repositorySizeInfo.explicit);\n }\n html += `\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository-size.expansion_ratio')}:</div>\n <div class=\"value\">${value}</div>\n </div>`;\n }\n return html;\n }\n subscribeToTranslationChanged() {\n return [\n TranslationService.onTranslate('repository-selector.btn.toggle', [], (toggleButtonName) => {\n this.defaultToggleButtonName = toggleButtonName;\n }),\n TranslationService.onTranslate('repository-selector.btn.no_repositories', [], (noRepositoriesButtonMessage) => {\n this.noRepositoriesButtonMessage = noRepositoriesButtonMessage;\n })\n ];\n }\n onRepositoryChanged(selectedRepository) {\n this.repositoryContextService.updateSelectedRepository(selectedRepository);\n }\n getLocation() {\n var _a;\n if (!((_a = this.currentRepository) === null || _a === void 0 ? void 0 : _a.location)) {\n return '';\n }\n return `@${UriUtil.shortenIri(this.currentRepository.location)}`;\n }\n getButtonLabel() {\n var _a;\n return ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length)\n ? this.defaultToggleButtonName\n : this.noRepositoriesButtonMessage;\n }\n static get watchers() { return {\n \"items\": [\"onItemsChanged\"]\n }; }\n};\nOntoRepositorySelector.style = ontoRepositorySelectorCss;\n\nconst ontoSearchIconCss = \".onto-search-icon{cursor:pointer;color:var(--gw-primary-base, #9e2b0a);transition:all 0.15s ease-out;font-size:1.6rem}.onto-search-icon.ri-search-line{padding:0.5rem 0.8rem}.onto-search-icon:hover{transform:scale(1.2)}\";\n\nconst OntoSearchIcon = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.tooltipKey = 'rdf_search.labels.search';\n this.subscriptions = new SubscriptionList();\n }\n // ========================\n // Lifecycle methods\n // ========================\n connectedCallback() {\n this.onTooltipChange();\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n render() {\n return (h(\"i\", { key: '33ac85ef454f5a8de8e24217d92950219df84f7a', \"tooltip-content\": this.tooltipLabel, \"tooltip-placement\": OntoTooltipPlacement.BOTTOM, class: \"onto-search-icon ri-search-line\" }));\n }\n onTooltipChange() {\n this.subscriptions.add(TranslationService.onTranslate(this.tooltipKey, [], (translation) => this.tooltipLabel = translation));\n }\n};\nOntoSearchIcon.style = ontoSearchIconCss;\n\nconst ontoSearchResourceInputCss = \".search-resources-input{padding-right:20px}.search-resources-input .input-row{gap:3px;display:flex;flex-wrap:wrap}.search-resources-input .input-row .input-wrapper{position:relative;display:flex;flex:1;min-width:20vw}.search-resources-input .input-row .input-wrapper input{min-width:inherit;flex:1;padding:0.5rem 0.75rem;font-size:1rem;line-height:1.25;color:var(--gw-form-field-color);background-color:var(--gw-form-field-background);background-image:none;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid var(--gw-form-field-border-color)}.search-resources-input .input-row .input-wrapper input:focus{outline:0;color:var(--gw-form-field-color);border-color:var(--gw-form-field-focus-border-color)}.search-resources-input .input-row i.ri-close-line{position:absolute;right:10px;top:7px;z-index:10;font-size:1.6rem}.search-resources-input .input-row button{display:inline-block;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;transition:all 0.15s ease-out;user-select:none;border:1px solid transparent;padding:0.5rem 1rem;font-size:1rem;color:var(--gw-button-secondary-color);background-color:var(--gw-button-secondary-background)}.search-resources-input .input-row button.selected{background-color:var(--gw-button-primary-background);color:var(--gw-button-primary-color)}.search-resources-input .input-row button:focus{outline:none}.search-resources-input .input-row button:hover:not(.selected){background-color:var(--gw-button-secondary-hover-background);border-color:var(--gw-button-secondary-hover-color)}.search-resources-input .hint{font-size:0.8rem;color:#818a91}.search-resources-input .autocomplete-results-wrapper{margin-top:6px;max-height:204px;overflow:auto}.search-resources-input .autocomplete-results-wrapper p{font-size:1.1rem;line-height:1.5;color:var(--gw-autocomplete-option-color);background-color:var(--gw-autocomplete-background);margin-bottom:0;padding:5px 25px;cursor:pointer}.search-resources-input .autocomplete-results-wrapper p b{color:var(--gw-secondary-base, #003663)}.search-resources-input .autocomplete-results-wrapper p.selected{background-color:var(--autocomplete-background-selected, #02A99A)}.search-resources-input .autocomplete-results-wrapper p.hovered:not(.selected),.search-resources-input .autocomplete-results-wrapper p:hover:not(.selected){background-color:var(--autocomplete-background, rgba(2, 169, 143, 0.3019607843))}\";\n\nconst OntoSearchResourceInput = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.autocompleteService = ServiceProvider.get(AutocompleteService);\n this.autocompleteContextService = ServiceProvider.get(AutocompleteContextService);\n this.autocompleteStorageService = ServiceProvider.get(AutocompleteStorageService);\n this.resourceSearchStorageService = ServiceProvider.get(ResourceSearchStorageService);\n this.toastrService = ServiceProvider.get(OntoToastrService);\n this.eventService = ServiceProvider.get(EventService);\n this.namespaceContextService = ServiceProvider.get(NamespacesContextService);\n this.subscriptions = new SubscriptionList();\n this.autocompleteWarningShown = false;\n /** Whether the rdf resource pre-search validation should be skipped. */\n this.skipValidation = false;\n /**\n * Whether the search component is currently hidden. Can be shown/hidden in the RDF search\n */\n this.isHidden = false;\n /**\n * Whether the autocomplete setting is enabled.\n */\n this.isAutocompleteEnabled = false;\n /**\n * Updates the local inputValue with the html input element's value.'\n */\n this.handleInput = (event) => {\n const target = event.target;\n if (!target.value) {\n this.clearInput();\n return;\n }\n this.setInputValue(target.value);\n this.checkForAutocomplete();\n };\n /**\n * Clears the search input field.\n */\n this.clearInput = () => {\n this.setInputValue('');\n if (this.preserveSearch) {\n this.resourceSearchStorageService.clearStoredSearch();\n }\n };\n this.onKeyDown = (event) => {\n switch (event.key) {\n case 'Enter':\n this.onEnter(event);\n break;\n case 'Escape':\n this.onEscape();\n break;\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n }\n };\n }\n onVisibilityChange(isHidden) {\n var _a;\n if (isHidden) {\n (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.clearSuggestions();\n }\n else {\n this.setInputValue(this.resourceSearchStorageService.getInputValue());\n }\n }\n connectedCallback() {\n this.onAutocompleteEnabledChange();\n this.onNamespaceChange();\n this.loadInputFromStorage();\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n render() {\n var _a, _b, _c;\n return (h(\"section\", { key: 'c038af36fa4270f35dab06147536206eab600ce5', class: \"search-resources-input\" }, h(\"div\", { key: 'd9b3044c17de9765bd3cbc724ab76bb13e823136', class: \"input-row\" }, h(\"span\", { key: '297d9e5f94d414f227349b79f26f277e3c246c39', class: \"input-wrapper\" }, h(\"input\", { key: '65db17686344b92e8fb59cba15e48538da26c07e', value: this.inputValue, id: this.context, type: \"text\", autocomplete: \"off\", placeholder: `${TranslationService.translate('rdf_search.labels.search')}...`, ref: (ref) => this.inputRef = ref, onKeyDown: this.onKeyDown, \"data-test\": this.context, onInput: this.handleInput }), ((_a = this.inputValue) === null || _a === void 0 ? void 0 : _a.length) ?\n h(\"i\", { onClick: this.clearInput, \"tooltip-content\": TranslationService.translate('rdf_search.tooltips.clear'), \"tooltip-placement\": OntoTooltipPlacement.BOTTOM, class: \"ri-close-line clear-input\" }) : ''), (_b = this.buttonConfig) === null || _b === void 0 ? void 0 :\n _b.getButtons().getItems().map((button) => (h(\"button\", { key: button.label, onClick: this.handleButtonClick(button), class: `${button.selected ? 'selected' : ''}` }, button.label)))), h(\"span\", { key: 'cfb1aa194945352f33b786eb7bf2bae98c6e9ea2', class: \"hint\" }, TranslationService.translate('rdf_search.labels.hint')), h(\"section\", { key: 'e17c4e528f8c05ed983df81e2c364356170dac12', class: \"autocomplete-results-wrapper\", \"data-test\": 'onto-autocomplete-results' }, (_c = this.searchResult) === null || _c === void 0 ? void 0 : _c.getSuggestions().getItems().map((suggestion) => (h(\"p\", { key: suggestion.getId(), onClick: this.onSuggestionClick(suggestion), \"data-test\": 'onto-autocomplete-suggestion', onMouseMove: this.hoverSuggestion(suggestion), class: `${suggestion.isHovered() ? 'hovered' : ''} ${suggestion.isSelected() ? 'selected' : ''}`, innerHTML: suggestion.getDescription() }))))));\n }\n /**\n * Handles the click event for a search button.\n * If the button configuration is set to radio mode and the clicked button is not selected,\n * it deselects all other buttons and selects the clicked one.\n * @param {SearchButton} button - The button that was clicked.\n */\n handleButtonClick(button) {\n return () => this.buttonConfig = this.buttonConfig.selectButton(button);\n }\n loadAutocompleteResults() {\n var _a;\n if (!this.inputValue) {\n (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.clearSuggestions();\n return;\n }\n if (this.isAutocompleteEnabled) {\n this.autocompleteService.search(this.inputValue)\n .then((searchResult) => {\n this.onResultsReceived(searchResult);\n });\n }\n }\n hoverSuggestion(suggestion) {\n return () => this.searchResult = this.searchResult.hoverSuggestion(suggestion);\n }\n onAutocompleteEnabledChange() {\n this.isAutocompleteEnabled = this.autocompleteStorageService.isEnabled();\n this.subscriptions.add(this.autocompleteContextService.onAutocompleteEnabledChanged((enabled) => {\n this.isAutocompleteEnabled = enabled !== null && enabled !== void 0 ? enabled : this.isAutocompleteEnabled;\n }));\n }\n checkForAutocomplete() {\n if (this.inputValue.length > 0 && !this.isAutocompleteEnabled && !this.autocompleteWarningShown) {\n this.autocompleteWarningShown = true;\n const message = TranslationService.translate('rdf_search.toasts.autocomplete_is_off');\n this.toastrService.warning(`<a class=\"no-underline\" style=\"font-weight: 500\">${message}</a>`, {\n onClick: navigateTo('autocomplete'),\n removeOnClick: true\n });\n }\n }\n onSuggestionClick(suggestion) {\n return (event) => {\n suggestion.setOverrideToVisual(event.ctrlKey || event.metaKey);\n this.searchRdfResource(suggestion);\n };\n }\n searchRdfResource(suggestion) {\n if (suggestion.getType() === SuggestionType.PREFIX) {\n this.expandPrefix(suggestion);\n }\n else {\n this.notifyRdfResourceSelected(suggestion);\n if (this.preserveSearch) {\n this.resourceSearchStorageService.setLastSelected(suggestion);\n }\n }\n }\n notifyRdfResourceSelected(suggestion) {\n var _a;\n this.searchResult = (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.selectSuggestion(suggestion);\n this.eventService.emit({\n NAME: ResourceSearchConstants.SUGGESTION_SELECTED_EVENT,\n payload: new SuggestionSelectedPayload(suggestion, this.context)\n });\n }\n expandPrefix(suggestion) {\n this.setInputValue(this.namespaces.getByPrefix(suggestion.getValue()));\n this.inputRef.focus();\n }\n setInputValue(value) {\n this.inputValue = value;\n if (this.preserveSearch) {\n this.resourceSearchStorageService.setInputValue(this.inputValue);\n }\n this.loadAutocompleteResults();\n }\n onNamespaceChange() {\n this.subscriptions.add(this.namespaceContextService.onNamespacesChanged((namespaces) => {\n this.namespaces = namespaces;\n }));\n }\n onEnter(event) {\n var _a;\n let selectedSuggestion = (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.getHoveredSuggestion();\n if (!selectedSuggestion) {\n selectedSuggestion = new Suggestion({\n value: UriUtil.removeAngleBrackets(this.inputValue),\n type: SuggestionType.URI\n });\n }\n selectedSuggestion.setOverrideToVisual(event.ctrlKey || event.metaKey);\n this.validateAndSearch(selectedSuggestion);\n }\n onArrowUp(event) {\n this.searchResult = this.searchResult.hoverPreviousSuggestion();\n this.displaySuggestion(event);\n }\n onArrowDown(event) {\n this.searchResult = this.searchResult.hoverNextSuggestion();\n this.displaySuggestion(event);\n }\n displaySuggestion(event) {\n event.preventDefault();\n // Update the input directly, because the value should only be displayed,\n // without triggering a new search and altering the autocomplete results\n this.inputRef.value = this.searchResult.getHoveredSuggestion().getValue();\n this.scrollToSuggestionBySelector('p.hovered');\n }\n getSuggestionValue(suggestion) {\n return suggestion.getType() === SuggestionType.PREFIX\n ? this.namespaces.getByPrefix(suggestion.getValue())\n : suggestion.getValue();\n }\n scrollToSuggestionBySelector(selector, options) {\n HtmlUtil.waitForElement(selector)\n .then(() => {\n HtmlUtil.scrollElementIntoView(selector, options);\n });\n }\n validateAndSearch(suggestion) {\n if (!this.skipValidation) {\n if (!suggestion.getValue()) {\n this.toastrService.error(TranslationService.translate('rdf_search.toasts.empty_input'));\n return;\n }\n if (!UriUtil.isValidUri(this.getSuggestionValue(suggestion))) {\n this.toastrService.error(TranslationService.translate('rdf_search.toasts.invalid_uri'));\n return;\n }\n }\n this.searchRdfResource(suggestion);\n }\n onEscape() {\n if (this.preserveSearch) {\n return;\n }\n this.clearInput();\n }\n loadInputFromStorage() {\n if (!this.preserveSearch) {\n return;\n }\n this.inputValue = this.resourceSearchStorageService.getInputValue() || '';\n }\n onResultsReceived(searchResult) {\n const lastSelected = searchResult === null || searchResult === void 0 ? void 0 : searchResult.getByValue(this.resourceSearchStorageService.getLastSelectedValue());\n if (lastSelected && this.preserveSearch) {\n // No need to reassign twice in the same thread tick. One will trigger the re-render\n searchResult.hoverSuggestion(lastSelected);\n this.searchResult = searchResult.selectSuggestion(lastSelected);\n this.scrollToSuggestionBySelector('p.hovered.selected', { block: 'start' });\n }\n else {\n this.searchResult = searchResult.hoverFirstSuggestion();\n this.scrollToSuggestionBySelector('p.hovered', { block: 'start' });\n }\n }\n static get watchers() { return {\n \"isHidden\": [\"onVisibilityChange\"]\n }; }\n};\nOntoSearchResourceInput.style = ontoSearchResourceInputCss;\n\nconst ontoUserLoginCss = \":root{--onto-user-login-color:var(--gw-secondary-base, var(--base-text-color))}.onto-user-login{position:relative;width:fit-content}.onto-user-login button{display:flex;color:var(--onto-user-login-color);flex-direction:row;line-height:1.5;font-weight:400;font-size:1rem;text-align:center;user-select:none;border:1px solid transparent;padding:0.4em 1rem;cursor:pointer;white-space:nowrap;place-items:center;transition:all 0.15s ease-out}.onto-user-login button .user-login-label{padding:0 0.4rem}.onto-user-login button:hover{background-color:#d4d4d4;border-color:#d4d4d4}.onto-user-login button:hover .ri-user-fill{transform:scale(1.2)}.onto-user-login button:focus{outline:none}.onto-user-login button i{color:var(--user-menu-primary-color);line-height:0.75;font-size:1.2em;transition:0.15s ease-out}.onto-user-login button i.ri-arrow-down-s-line{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}\";\n\nconst OntoUserLogin = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n render() {\n return (h(\"section\", { key: '010f4db017da2ab91bc79de27658d255de92d5f4', class: \"onto-user-login\" }, h(\"button\", { key: 'f3e4019d86f6950a57186bb73dbfd60d1bc03362', onClick: navigateTo('login') }, h(\"i\", { key: '42a5ef90e9b768c8d283cdd8c3e6fb2160c33f16', class: \"icon-arrow-right\" }), h(\"translate-label\", { key: '9f61abfd1f3be13bca10d1d6db4d774accbb2f85', class: \"user-login-label\", labelKey: \"user_menu.login\" }))));\n }\n};\nOntoUserLogin.style = ontoUserLoginCss;\n\nconst ontoUserMenuCss = \".onto-user-menu{position:relative;width:fit-content}.onto-user-menu button{display:flex;flex-direction:row;line-height:1.5;font-weight:400;font-size:1rem;text-align:center;user-select:none;border:1px solid transparent;padding:0.4em 1rem;cursor:pointer;white-space:nowrap;place-items:center;transition:all 0.15s ease-out;background-color:var(--gw-button-secondary-background);color:var(--gw-button-secondary-color)}.onto-user-menu button:hover{background-color:var(--gw-button-secondary-hover-background);color:var(--gw-button-secondary-hover-color)}.onto-user-menu button:hover .ri-user-line{transform:scale(1.2)}.onto-user-menu button:focus{outline:none}.onto-user-menu button.open{color:white;background-color:var(--gw-primary-base);border-color:var(--gw-primary-base)}.onto-user-menu button.open .ri-user-line{color:var(--icon-on-primary-color, rgba(255, 255, 255, 0.8))}.onto-user-menu button.open:hover .ri-user-line{transform:scale(1.2)}.onto-user-menu button .username{padding:0 5px}.onto-user-menu button i{color:var(--gw-primary-base);transition:0.15s ease-out}.onto-user-menu button i.ri-arrow-down-s-line{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}.onto-user-menu .onto-user-menu-dropdown{position:absolute;z-index:1000;display:flex;flex-direction:column;cursor:pointer;text-decoration:none;right:0;min-width:7rem;font-size:1rem;width:100%;color:var(--gw-primary-contrast-color);background-color:var(--gw-primary-base)}.onto-user-menu .onto-user-menu-dropdown translate-label{padding:0.4rem 1rem;user-select:none;white-space:nowrap;font-weight:400}.onto-user-menu .onto-user-menu-dropdown translate-label:hover,.onto-user-menu .onto-user-menu-dropdown translate-label:focus{background-color:rgba(0, 0, 0, 0.1)}\";\n\nconst OntoUserMenu = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * Log out the current user.\n */\n this.logout = () => {\n ServiceProvider.get(AuthenticationService).logout();\n };\n /**\n * Toggles the dropdown menu's open state.\n *\n * @returns A function that toggles the `isOpen` state between true and false.\n */\n this.toggleDropdown = () => {\n this.isOpen = !this.isOpen;\n };\n /**\n * Closes the dropdown if the user clicks outside the component.\n */\n this.handleOutsideClick = (event) => {\n if (this.isOpen && !this.hostElement.contains(event.target)) {\n this.isOpen = false;\n }\n };\n }\n connectedCallback() {\n document.addEventListener('click', this.handleOutsideClick);\n }\n disconnectedCallback() {\n document.removeEventListener('click', this.handleOutsideClick);\n }\n render() {\n var _a;\n return (h(\"section\", { key: '294141ded29aca49a790c51e791262d4626b80ab', class: 'onto-user-menu' }, h(\"div\", { key: '1e7c1a6ea8e9766840b5c72c7ceecdfaf838c865', class: 'dropdown-toggle-wrapper', onClick: this.toggleDropdown }, h(\"button\", { key: '413bb997a92cb55ef56ee7ae45463e10c176540c', class: `${this.isOpen ? 'open' : ''}` }, h(\"i\", { key: '2c5806a5a49429b709753a9a009146b578b191ed', class: 'ri-user-line ri-lg' }), h(\"span\", { key: '1a59a9218b7a680c47d77c6e016659721d17aea4', class: 'username' }, this.user.username), h(\"i\", { key: 'dea9929dc6bd6280336fe3a7cc1d062d4c9f54c3', class: `ri-arrow-down-s-line ${this.isOpen ? 'rotate-180' : ''}` })), this.isOpen ?\n h(\"section\", { class: 'onto-user-menu-dropdown' }, h(\"translate-label\", { onClick: navigateTo('settings'), labelKey: 'user_menu.my_settings' }), !((_a = this.securityConfig) === null || _a === void 0 ? void 0 : _a.hasExternalAuthUser) ?\n h(\"translate-label\", { onClick: this.logout, labelKey: 'user_menu.logout' }) : '') : '')));\n }\n get hostElement() { return getElement(this); }\n};\nOntoUserMenu.style = ontoUserMenuCss;\n\nexport { OntoLanguageSelector as onto_language_selector, OntoLicenseAlert as onto_license_alert, OntoOperationsNotification as onto_operations_notification, OntoRdfSearch as onto_rdf_search, OntoRepositorySelector as onto_repository_selector, OntoSearchIcon as onto_search_icon, OntoSearchResourceInput as onto_search_resource_input, OntoUserLogin as onto_user_login, OntoUserMenu as onto_user_menu };\n","/**\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 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\nvar 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 { DropdownItem as D, ResourceSearchConstants as R };\n"],"names":["DropdownItemAlignment","OntoTooltipPlacement","sanitizeHTML","html","element","document","createElement","innerHTML","value","LoggerProvider","logger","Loggers","getLoggerInstance","TranslationServiceClassDefinition","constructor","this","languageContextService","ServiceProvider","get","LanguageContextService","translationChangedObservers","defaultBundle","getDefaultBundle","subscribeToBundleChange","onTranslate","messageLabelKey","translationParameter","translationCallback","observer","parameters","callback","push","translate","index","indexOf","splice","key","translateInLocale","translation","translateFromBundle","currentBundle","applyParameters","warn","bundle","translateAsJsonObject","path","split","getTranslation","jsonObject","jsonOrTranslation","length","reduce","parameter","replaceAll","join","notifyTranslationsChanged","Object","keys","forEach","eventName","languageChangeSubscription","onLanguageBundleChanged","destroy","TranslationService","INTERACTIVE_ELEMENTS_SELECTOR","HtmlUtil","setDocumentBodyOverflow","newOverflow","oldOverflow","body","style","overflow","hideDocumentBodyOverflow","focusNextElement","parentElement","activeElementSelector","focusableElements","Array","from","querySelectorAll","currentIndex","activeElement","nextActiveElement","focus","focusPreviousElement","previousActiveElement","preventLeavingDialog","hostElement","ev","preventDefault","shiftKey","focusElement","selector","querySelector","scrollElementIntoView","elementSelector","options","block","scrollIntoView","waitForElement","Promise","resolve","reject","MutationObserver","disconnect","error","observe","subtree","childList","attributes","OntoLanguageSelector","hostRef","registerInstance","languageService","LanguageService","items","dropdownAlignment","LEFT","connectedCallback","onLanguageChangeSubscription","onSelectedLanguageChanged","newLanguage","changeLanguage","getLanguageDropdownOptions","disconnectedCallback","render","_a","_b","h","Host","class","onValueChanged","valueChangeHandler","dropdownButtonNameLabelKey","currentLanguage","undefined","dropdownButtonName","dropdownButtonTooltipLabelKey","RIGHT","dropdownTooltipTrigger","iconClass","selectedLanguage","getDefaultLanguage","newLanguageEvent","updateSelectedLanguage","detail","getSupportedLanguages","map","locale","DropdownItem","setNameLabelKey","setTooltipLabelKey","setIconClass","setCssClass","setValue","setDropdownTooltipTrigger","OntoLicenseAlert","license","message","BOTTOM","onClick","navigateTo","labelKey","operationGroupToIcon","OperationGroup","BACKUP","QUERY","CLUSTER","IMPORT","operationStatusToWarningClass","OperationStatus","WARNING","INFORMATION","CRITICAL","operationStatusToFadeClass","OntoOperationsNotification","isOpen","toggleDropdown","event","stopPropagation","handleOutsideClick","operationGroups","MapperProvider","OperationGroupSummaryListMapper","mapToModel","activeOperations","toOperationsGroupSummary","status","getItems","groupSummary","id","group","totalOperations","allRunningOperations","operation","target","href","count","el","getElement","OntoRdfSearch","subscriptions","SubscriptionList","eventService","EventService","resourceSearchStorageService","ResourceSearchStorageService","RDF_CONTEXT","redirectUrl","UriUtil","RESOURCE_URL","handleClick","rdfSearchRef","contains","onSuggestionSelected","unsubscribeAll","componentDidRender","focusSearchInput","componentDidLoad","buttonConfig","createButtonConfig","ref","onKeyDown","setIsOpen","preserveSearch","isHidden","context","loadSelectedViewFromStorage","SearchButtonConfig","isRadio","buttons","createSearchButton","ResourceSearchConstants","TABLE_VIEW","setSelectedView","VISUAL_VIEW","GRAPHS_VISUALIZATIONS_URL","selected","SearchButton","label","add","subscribe","SUGGESTION_SELECTED_EVENT","payload","getContext","getSuggestion","getOverrideToVisual","openInNewTab","createAutocompleteRedirect","getValue","selectedView","getSelectedView","selectedButton","getButtons","find","button","selectButton","RepositorySelection","repository","defaultToggleButtonName","location","className","type","OntoRepositorySelector","repositoryContextService","RepositoryContextService","onItemsChanged","newItems","dropdownItems","attachTooltipsToItems","subscribeToTranslationChanged","subscription","repositorySelection","currentRepository","getButtonLabel","getLocation","assign","dropdownButtonTooltip","createTooltipFunctionForRepository","tooltipPlacement","tooltipAlignment","tooltipTheme","item","setTooltip","valueChangeEvent","onRepositoryChanged","async","repositorySizeInfo","repositorySizeInfoFetcher","buildRepositoryTooltipHtml","canWriteRepo","buildRepositorySizeInfoHtml","total","totalTripletsFormatter","format","explicit","inferred","toggleButtonName","noRepositoriesButtonMessage","selectedRepository","updateSelectedRepository","shortenIri","watchers","OntoSearchIcon","tooltipKey","onTooltipChange","tooltipLabel","OntoSearchResourceInput","autocompleteService","AutocompleteService","autocompleteContextService","AutocompleteContextService","autocompleteStorageService","AutocompleteStorageService","toastrService","OntoToastrService","namespaceContextService","NamespacesContextService","autocompleteWarningShown","skipValidation","isAutocompleteEnabled","handleInput","setInputValue","checkForAutocomplete","clearInput","clearStoredSearch","onEnter","onEscape","onArrowUp","onArrowDown","onVisibilityChange","searchResult","clearSuggestions","getInputValue","onAutocompleteEnabledChange","onNamespaceChange","loadInputFromStorage","_c","inputValue","autocomplete","placeholder","inputRef","onInput","handleButtonClick","getSuggestions","suggestion","getId","onSuggestionClick","onMouseMove","hoverSuggestion","isHovered","isSelected","getDescription","loadAutocompleteResults","search","then","onResultsReceived","isEnabled","onAutocompleteEnabledChanged","enabled","warning","removeOnClick","setOverrideToVisual","ctrlKey","metaKey","searchRdfResource","getType","SuggestionType","PREFIX","expandPrefix","notifyRdfResourceSelected","setLastSelected","selectSuggestion","emit","NAME","SuggestionSelectedPayload","namespaces","getByPrefix","onNamespacesChanged","selectedSuggestion","getHoveredSuggestion","Suggestion","removeAngleBrackets","URI","validateAndSearch","hoverPreviousSuggestion","displaySuggestion","hoverNextSuggestion","scrollToSuggestionBySelector","getSuggestionValue","isValidUri","lastSelected","getByValue","getLastSelectedValue","hoverFirstSuggestion","OntoUserLogin","OntoUserMenu","logout","AuthenticationService","addEventListener","removeEventListener","user","username","securityConfig","hasExternalAuthUser","_dropdownTooltipTrigger","name","_name","setName","nameLabelKey","_nameLabelKey","tooltip","_tooltip","tooltipLabelKey","_tooltipLabelKey","_iconClass","_value","cssClass","_cssClass","guideSelector","_guideSelector","setGuideSelector"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_esm_id__=82926;export const __webpack_esm_ids__=[82926];export const __webpack_esm_modules__={82926:()=>{function t(){return{link:function(t,e,o){t.$watch("file.status",function(){"IMPORTING"!==t.file.status&&"UPLOADING"!==t.file.status||!$(e).has("object").length>0&&$(e).append('<object width="'+o.size+'" height="'+o.size+'" data="js/angular/templates/loader/ot-loader.svg?v=3.2.0-
|
|
2
|
-
//# sourceMappingURL=82926.
|
|
1
|
+
export const __webpack_esm_id__=82926;export const __webpack_esm_ids__=[82926];export const __webpack_esm_modules__={82926:()=>{function t(){return{link:function(t,e,o){t.$watch("file.status",function(){"IMPORTING"!==t.file.status&&"UPLOADING"!==t.file.status||!$(e).has("object").length>0&&$(e).append('<object width="'+o.size+'" height="'+o.size+'" data="js/angular/templates/loader/ot-loader.svg?v=3.2.0-RC2">{{\'common.loading\' | translate}}</object>')})}}}angular.module("graphdb.framework.import.directives.import-progress-indicator",[]).directive("ImportProgressIndicator",t),t.$inject=[]}};
|
|
2
|
+
//# sourceMappingURL=82926.51d23e16d60e02dc4133.bundle.js.map
|
package/dist/{82926.d6c48c23b6e1f89b3d8a.bundle.js.map → 82926.51d23e16d60e02dc4133.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"82926.
|
|
1
|
+
{"version":3,"file":"82926.51d23e16d60e02dc4133.bundle.js","mappings":"gIASA,SAASA,IACL,MAAO,CACHC,KAAM,SAAUC,EAAOC,EAASC,GAC5BF,EAAMG,OAAO,cAAe,WACE,cAAtBH,EAAMI,KAAKC,QAAgD,cAAtBL,EAAMI,KAAKC,SAC3CC,EAAEL,GAASM,IAAI,UAAUC,OAAS,GACnCF,EAAEL,GAASQ,OAAO,kBAAoBP,EAAKQ,KAAO,aAAeR,EAAKQ,KAAO,6GAGzF,EACJ,EAER,CAnBAC,QACKC,OAAO,gEAHI,IAIXC,UAAU,0BAA2Bf,GAE1CA,EAAwBgB,QAAU,E","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/import/directives/import-progress-indicator.directive.js"],"sourcesContent":["const modules = [];\n\nangular\n .module('graphdb.framework.import.directives.import-progress-indicator', modules)\n .directive('ImportProgressIndicator', ImportProgressIndicator);\n\nImportProgressIndicator.$inject = [];\n\n// importDirectives.directive('filesOntoLoader',\nfunction ImportProgressIndicator() {\n return {\n link: function (scope, element, attr) {\n scope.$watch('file.status', function () {\n if (scope.file.status === 'IMPORTING' || scope.file.status === 'UPLOADING') {\n if (!$(element).has('object').length > 0) {\n $(element).append('<object width=\"' + attr.size + '\" height=\"' + attr.size + '\" data=\"js/angular/templates/loader/ot-loader.svg?v=3.2.0-RC2\">{{\\'common.loading\\' | translate}}</object>');\n }\n }\n });\n }\n };\n}\n"],"names":["ImportProgressIndicator","link","scope","element","attr","$watch","file","status","$","has","length","append","size","angular","module","directive","$inject"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_esm_id__=94519;export const __webpack_esm_ids__=[48184,48581,53174,57952,70962,94519];export const __webpack_esm_modules__={48184:(t,e,n)=>{n.d(e,{U:()=>s});const s={LEADER:"LEADER",FOLLOWER:"FOLLOWER",CANDIDATE:"CANDIDATE",OUT_OF_SYNC_BLANK:"OUT_OF_SYNC_BLANK"}},53174:(t,e,n)=>{n.d(e,{N:()=>o});var s=n(48184),a=n(70962);const o={getLegendNodes:function(){const t=[];return t.push({nodeState:s.U.LEADER,customText:"node_state_leader"}),t.push({nodeState:s.U.FOLLOWER,customText:"node_state_follower"}),t.push({nodeState:s.U.OUT_OF_SYNC_BLANK,customText:"node_state_out_of_sync"}),t.forEach((t,e)=>t.id=e),t},getSyncStatuses:()=>[{labelKey:"node_state_candidate",classes:"remixicon",icon:""},{labelKey:"node_state_no_cluster",classes:"remixicon",icon:""},{labelKey:"link_state_out_of_sync",classes:"remixicon",icon:""},{labelKey:"node_state_no_connection",classes:"remixicon",icon:""},{labelKey:"node_state_read_only",classes:"remixicon",icon:""},{labelKey:"node_state_restricted",classes:"remixicon",icon:""},{labelKey:"recovery_state.searching_for_node",classes:"remixicon",icon:""},{labelKey:"recovery_state.waiting_for_snapshot",classes:"remixicon",icon:""},{labelKey:"recovery_state.building_snapshot",classes:"remixicon",icon:""},{labelKey:"recovery_state.sending_snapshot",classes:"remixicon",icon:""},{labelKey:"recovery_state.receiving_snapshot",classes:"remixicon",icon:""},{labelKey:"recovery_state.applying_snapshot",classes:"remixicon",icon:""}],getLegendLinks:function(){const t=[];return t.push({status:a.gC.IN_SYNC,linkTypeKey:"link_state_in_sync"}),t.push({status:a.gC.SYNCING,linkTypeKey:"link_state_syncing"}),t.push({status:a.gC.OUT_OF_SYNC,linkTypeKey:"link_state_out_of_sync"}),t.push({status:a.gC.RECEIVING_SNAPSHOT,linkTypeKey:"link_state_receiving_snapshot"}),t.forEach((t,e)=>t.id=e),t},SVG_NODE_WIDTH:15,PADDING_LEFT:12,PADDING_TOP:12,TITLE_PADDING_TOP:15,TITLE_FONT_SIZE:13,TITLE_FONT_WEIGHT:700,TITLE_LINE_HEIGHT:18,LEGEND_ITEM_FONT_SIZE:11,LEGEND_ITEM_ICON_FONT_SIZE:15,LEGEND_ITEM_FONT_WEIGHT:400,LEGEND_ITEM_LINE_HEIGHT:13,LEGEND_ITEM_PADDING_LEFT:27,LEGEND_ITEMS_PADDING_TOP:40,LEGEND_ITEM_PADDING_TOP:8,BACKGROUND_PADDING:24}},57952:(t,e,n)=>{n.d(e,{$$:()=>f,CQ:()=>G,D6:()=>L,HF:()=>T,Iz:()=>A,J5:()=>N,Wg:()=>R,Xl:()=>u,ZC:()=>C,_D:()=>m,cZ:()=>O,cy:()=>D,dB:()=>E,kI:()=>g,r_:()=>I,ss:()=>x});var s=n(70962),a=n(98980),o=n(93462);const r={line:o.line,select:o.select},c={ontoOrange:"var(--gw-primary-base)",ontoBlue:"var(--gw-secondary-base)",ontoGreen:"var(--gw-tertiary-base)",ontoGrey:"var(--gw-neutral-base)"},i={[s.gC.IN_SYNC]:c.ontoBlue,[s.gC.SYNCING]:c.ontoBlue,[s.gC.OUT_OF_SYNC]:c.ontoGrey,[s.gC.RECEIVING_SNAPSHOT]:c.ontoBlue},l={[s.gC.IN_SYNC]:"none",[s.gC.SYNCING]:"10 10",[s.gC.OUT_OF_SYNC]:"10 10",[s.gC.RECEIVING_SNAPSHOT]:"10 10"},_={REMIXICON:"REMIXICON",ICOMOON:"ICOMOON"},d=40;function N(t){return r.select(t).append("svg").classed("cluster-diagram",!0)}function E(t){const e=t.append("g");return e.append("circle").classed("cluster-zone",!0).style("fill","transparent").style("stroke-width","4"),e}function u(t,e,n,s=!1){if(e.select(".cluster-zone").classed("no-cluster",!t).classed("has-access",s),t)e.selectAll("#no-cluster-zone").remove();else{const t=e.append("g").attr("id","no-cluster-zone");t.append("text").attr("id","no-cluster-label").text(n.no_cluster_configured).attr("y",-50).classed("h2",!0).style("text-anchor","middle"),s&&t.append("text").attr("id","create-cluster-label").classed("h3",!0).text(n.create_cluster_btn).style("text-anchor","middle"),t.append("text").attr("y",130).attr("class","icon-any repo").attr("fill",c.ontoOrange).style("text-anchor","middle").classed("settings-icon",!0).text("")}}function I(t,e,n){t||(e.select("#no-cluster-zone #no-cluster-label").text(n.no_cluster_configured),e.select("#no-cluster-zone #create-cluster-label").text(n.create_cluster_btn))}function O(t,e,n){t.attr("transform",()=>`translate(${e}, ${n})`)}function g(t,e,n){const s=t.enter().append("g").attr("id","node-group").classed("legend",n),a=s.merge(t).attr("id","node-group").classed("legend",n);return function(t,e){const n=Math.sqrt(3)/2,s=[[e+0,0],[e/2+0,e*n+0],[-e/2+0,e*n+0],[0-e,0],[-e/2+0,-e*n+0],[e/2+0,-e*n+0],[e+0,0],[e/2+0,e*n+0]];t.selectAll("path.area").data([s]).enter().append("path").attr("class","node member").attr("stroke-width","10").attr("stroke-linejoin","round").attr("d",r.line())}(s,e),t.exit().remove(),s.append("text").attr("class","icon-any node-icon"),n||function(t,e){const n=t.append("g");n.append("rect").attr("class","id-host-background").attr("rx",6),n.append("rect").attr("class","node-info-background").attr("rx",6),n.append("text").attr("y",e+25).attr("class","id id-host"),n.append("text").attr("y",e+55).attr("class","node-info-text")}(s,e),a}function T(t){!function(t){t.select(".node-icon").each(function(t){const e=(n=t,(0,a.isEmpty)(n.recoveryStatus)?function(t){return p[t.nodeState]||{icon:"",font:""}}(t):function(t){const e=t.recoveryStatus;return e&&e.state&&h[e.state]||{icon:"",font:""}}(t));var n;r.select(this).classed("icon-any",e.font===_.ICOMOON).classed("remixicon",e.font===_.REMIXICON).text(e.icon)})}(t),function(t){t.select(".node.member").classed("leader",t=>t.nodeState===s.UY.LEADER).classed("follower",t=>t.nodeState===s.UY.FOLLOWER).classed("candidate",t=>t.nodeState===s.UY.CANDIDATE).classed("other",t=>t.nodeState!==s.UY.LEADER&&t.nodeState!==s.UY.FOLLOWER&&t.nodeState!==s.UY.CANDIDATE)}(t),function(t){t.select(".id.id-host").each(function(t){t.labelNode=this}).text(function(t){return t.hostname}),t.select(".id-host-background").attr("width",function(t){return r.select(t.labelNode).node().getBBox().width+10}).attr("height",function(t){return r.select(t.labelNode).node().getBBox().height+10}).attr("x",function(t){return r.select(t.labelNode).node().getBBox().x-5}).attr("y",function(t){return r.select(t.labelNode).node().getBBox().y-5})}(t),function(t){let e,n;t.select(".node-info-text").each(function(t){t.infoNode=this}).select(function(){return this.parentNode}).append("foreignObject").attr("width",function(t){let s="";(0,a.isEmpty)(t.recoveryStatus)||(s=y(t));const o=S(s);return e=o.height,n=o.width,n}).attr("height",function(t){return e}).attr("x",function(t){return-n/2}).attr("y",function(t){return 78}).classed("hidden",function(t){return(0,a.isEmpty)(t.recoveryStatus)}).style("font-size","12px").style("font-weight","400").style("text-align","center").style("padding","4px").style("background","#EEEEEE").style("border-radius","6px").attr("class","node-info-fo").append("xhtml:div").html(function(t){return y(t)}),t.select(".node-info-text").remove(),function(t){t.select(".node-info-fo").each(function(t){const e=r.select(this);if((0,a.isEmpty)(t.recoveryStatus))return void e.attr("width",0);const n=y(t),s=t.recoveryStatus.message&&t.recoveryStatus.message.length>d&&n!==t.recoveryStatus.message,o=s?n:t.recoveryStatus.message,c=S(n),i=S(t.recoveryStatus.message);e.on(".tooltip",null),s&&function(t,e,n,s,a){t.on("mouseover.tooltip",()=>{t.attr("width",a.width).attr("height",a.height).attr("x",-a.width/2).html(`<div>${e}</div>`)}),t.on("mouseout.tooltip",()=>{t.attr("width",n.width).attr("height",n.height).attr("x",-n.width/2).html(`<div>${s}</div>`)})}(e,t.recoveryStatus.message,c,o,i),e.attr("width",c.width).attr("height",c.height).attr("x",-c.width/2).html(`<div>${o}</div>`)})}(t)}(t)}const h={[s.vQ.SEARCHING_FOR_NODE]:{icon:"",font:_.REMIXICON},[s.vQ.WAITING_FOR_SNAPSHOT]:{icon:"",font:_.REMIXICON},[s.vQ.RECEIVING_SNAPSHOT]:{icon:"",font:_.REMIXICON},[s.vQ.APPLYING_SNAPSHOT]:{icon:"",font:_.REMIXICON},[s.vQ.BUILDING_SNAPSHOT]:{icon:"",font:_.REMIXICON},[s.vQ.SENDING_SNAPSHOT]:{icon:"",font:_.REMIXICON},[s.vQ.RECOVERY_OPERATION_FAILURE_WARNING]:{icon:"",font:_.ICOMOON}},p={[s.UY.CANDIDATE]:{icon:"",font:_.ICOMOON},[s.UY.NO_CONNECTION]:{icon:"",font:_.ICOMOON},[s.UY.OUT_OF_SYNC]:{icon:"",font:_.ICOMOON},[s.UY.READ_ONLY]:{icon:"",font:_.ICOMOON},[s.UY.RESTRICTED]:{icon:"",font:_.ICOMOON}};function y(t){return t.recoveryStatus.message&&t.recoveryStatus.message.length>d?t.recoveryStatus.message.substring(0,d)+"...":t.recoveryStatus.message||""}function S(t){const e=document.createElement("div");e.innerHTML=t,e.style.padding="4px",e.style.position="absolute",e.style.visibility="hidden",e.style.fontSize="12px",e.style.fontWeight="400",e.style.textAlign="center",e.style.height="auto",e.style.width="auto",e.style.whiteSpace="nowrap",document.body.appendChild(e);const n=e.getBoundingClientRect(),s=n.height,a=n.width;return document.body.removeChild(e),{height:s,width:a}}function D(t){t.enter().append("path").classed("link",!0),t.exit().remove()}function f(t,e){t.attr("class",t=>`link ${t.id.replaceAll(":","-")}`).attr("stroke",m).style("stroke-dasharray",G).style("marker-mid",t=>A(t,C.BIG)).attr("d",t=>function(t,e){const n=e.find(e=>e.address===t.source),s=e.find(e=>e.address===t.target),a=s.x-n.x,o=s.y-n.y,r=Math.sqrt(a*a+o*o),c=a/r,i=o/r,l=n.x+55*c,_=n.y+55*i,d=s.x-55*c,N=s.y-55*i;return"M"+l+","+_+"L"+(l+d)/2+","+(_+N)/2+"L"+d+","+N}(t,e))}const C={SMALL:{name:"small",size:3},BIG:{name:"big",size:5}};function L(t,e){t.append("svg:defs").append("svg:marker").attr("id",`arrowhead_${e.name}`).attr("viewBox",`0 0 ${2*e.size} ${2*e.size}`).attr("refX",e.size).attr("refY",e.size).attr("markerWidth",e.size).attr("markerHeight",e.size).attr("orient","auto-start-reverse").append("path").attr("d",`M 0 0 L ${2*e.size} ${e.size} L 0 ${2*e.size} z`).style("fill","var(--gw-secondary-base)")}function A(t,e){if(t.status===s.gC.RECEIVING_SNAPSHOT)return`url(#arrowhead_${e.name})`}function m(t){return i[t.status]||"none"}function G(t){return l[t.status]||"none"}function x(t,e,n,s){t.attr("transform",(a,o)=>{const r=2*Math.PI*o/t.size(),c=e+Math.cos(r)*s,i=n+Math.sin(r)*s;return a.x=c,a.y=i,`translate(${c}, ${i})`})}function R(){r.select(document).selectAll(".node-info-fo").on(".tooltip",null)}},70962:(t,e,n)=>{n.d(e,{UY:()=>s,gC:()=>o,vQ:()=>a,zB:()=>r});const s={LEADER:"LEADER",FOLLOWER:"FOLLOWER",CANDIDATE:"CANDIDATE",OUT_OF_SYNC:"OUT_OF_SYNC",NO_CONNECTION:"NO_CONNECTION",READ_ONLY:"READ_ONLY",RESTRICTED:"RESTRICTED",NO_CLUSTER:"NO_CLUSTER"},a={SEARCHING_FOR_NODE:"SEARCHING_FOR_NODE",WAITING_FOR_SNAPSHOT:"WAITING_FOR_SNAPSHOT",RECEIVING_SNAPSHOT:"RECEIVING_SNAPSHOT",APPLYING_SNAPSHOT:"APPLYING_SNAPSHOT",BUILDING_SNAPSHOT:"BUILDING_SNAPSHOT",SENDING_SNAPSHOT:"SENDING_SNAPSHOT",RECOVERY_OPERATION_FAILURE_WARNING:"RECOVERY_OPERATION_FAILURE_WARNING"},o={IN_SYNC:"IN_SYNC",OUT_OF_SYNC:"OUT_OF_SYNC",SYNCING:"SYNCING",NO_CONNECTION:"NO_CONNECTION",RECEIVING_SNAPSHOT:"RECEIVING_SNAPSHOT"},r={PRIMARY_NODE:"PRIMARY_NODE",SECONDARY_NODE:"SECONDARY_NODE"}},94519:(t,e,n)=>{var s=n(53174),a=n(57952),o=n(70962);const r={select:n(93462).select};function c(t,e,n,c){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-legend.html",scope:{},link:i=>{i.hideLegend=!0;const l=[];let _,d,N;i.toggleLegend=()=>{i.hideLegend=!i.hideLegend,_.classed("hidden-legend",i.hideLegend)};const E=()=>{const t=e.getClusterViewD3Container();g(t),T(),u(_),I(),O(),h(),p()},u=t=>{S(t,"cluster_management.cluster_graphical_view.legend_title_node_state");const e=t.selectAll(".node-group").data(s.N.getLegendNodes()),n=a.kI(e,s.N.SVG_NODE_WIDTH,!0);a.HF(n),n.attr("transform",function(t,e){return h(),`translate(${s.N.LEGEND_ITEM_PADDING_LEFT}, ${d+s.N.LEGEND_ITEM_PADDING_TOP})`}).append("text").classed("links-statuses",!0).style("font-weight",s.N.LEGEND_ITEM_FONT_WEIGHT).attr("x",s.N.PADDING_LEFT+s.N.SVG_NODE_WIDTH).attr("y",3).text(function(t){return D(this,"cluster_management.cluster_graphical_view."+t.customText)})},I=()=>{S(_,"cluster_management.cluster_graphical_view.legend_title_sync_status");const t=_.selectAll(".sync-statuses-group").data(s.N.getSyncStatuses()).enter().append("g").attr("class","sync-statuses-group"),e=new Map;t.append("text").attr("class",t=>`sync-status ${t.classes}`).attr("x",s.N.LEGEND_ITEM_PADDING_LEFT-10).attr("y",function(t,n){const a=n*(20+s.N.LEGEND_ITEM_PADDING_TOP)+d+s.N.LEGEND_ITEMS_PADDING_TOP;return e.set(n,a),a}).text(function(t){return t.icon});const n=(s.N.LEGEND_ITEM_ICON_FONT_SIZE-s.N.LEGEND_ITEM_FONT_SIZE)/2;t.append("text").style("font-weight",s.N.LEGEND_ITEM_FONT_WEIGHT).text(function(t){return D(this,"cluster_management.cluster_graphical_view."+t.labelKey)}).attr("x",s.N.LEGEND_ITEM_PADDING_LEFT+s.N.LEGEND_ITEM_FONT_SIZE).attr("y",function(t,s){return e.get(s)-n}).classed("links-statuses",!0)},O=()=>{S(_,"cluster_management.cluster_graphical_view.legend_title_link_states");const t=_.selectAll(".link-states-group").data(s.N.getLegendLinks()).enter().append("g").attr("class","link-state"),e=new Map;t.append("path").classed("link",!0).attr("stroke-dasharray",a.CQ).attr("stroke",a._D).attr("d",(t,n)=>{const a=n*(s.N.LEGEND_ITEM_FONT_SIZE+s.N.LEGEND_ITEM_PADDING_TOP)+d+s.N.LEGEND_ITEMS_PADDING_TOP,r=N/2;let c;if(e.set(n,a),t.status===o.gC.RECEIVING_SNAPSHOT){const t=r/2;c=`M${s.N.PADDING_LEFT} ${a} L${t} ${a} L${r} ${a}`}else c=`M${s.N.PADDING_LEFT} ${a} ${r} ${a}`;return c}).style("marker-mid",t=>a.Iz(t,a.ZC.SMALL)),t.append("text").style("font-size",s.N.LEGEND_ITEM_FONT_SIZE).style("line-height",s.N.LEGEND_ITEM_LINE_HEIGHT).style("font-weight",s.N.LEGEND_ITEM_FONT_WEIGHT).text(function(t){return D(this,"cluster_management.cluster_graphical_view."+t.linkTypeKey)}).attr("x",N/2+s.N.LEGEND_ITEM_PADDING_LEFT).attr("y",function(t,n){return e.get(n)+4}).classed("links-statuses",!0)},g=t=>{_=t.append("g").classed("hidden-legend",i.hideLegend).classed("cluster-legend-group",!0)},T=()=>{_.append("rect").attr("class","legend-background")},h=()=>{_.call(t=>{d=t.node().getBBox().height}),N=y(_)+30},p=()=>{const t=y(_);_.select(".legend-background").attr("height",d+3*s.N.PADDING_TOP).attr("width",t+s.N.BACKGROUND_PADDING).attr("rx","6")},y=t=>{let e=0;return t.selectAll(":not(.legend-background)").each(function(){const t=this.getBBox();e=Math.max(e,t.width)}),e},S=(t,e)=>t.append("text").attr("class","legend-title").attr("x",s.N.PADDING_LEFT).style("font-size",s.N.TITLE_FONT_SIZE).style("font-weight",s.N.TITLE_FONT_WEIGHT).style("line-height",s.N.TITLE_LINE_HEIGHT).text(function(){return D(this,e)}).attr("y",()=>(h(),d+s.N.TITLE_PADDING_TOP)),D=(e,s)=>(l.push(t.$on("$translateChangeSuccess",()=>{r.select(e).text(n.instant(s)),p()})),n.instant(s)),f=()=>{i.hideLegend=!0,_.classed("hidden-legend",i.hideLegend)};c.on("keydown",t=>{"Escape"===t.key&&f()}),l.push(e.onClusterViewD3ContainerUpdated(E)),i.$on("$destroy",()=>{c.off("keydown",f),l.forEach(t=>t())}),E()}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-legend",[]).directive("clusterLegend",c),c.$inject=["$rootScope","ClusterViewContextService","$translate","$document"]}};
|
|
2
|
+
//# sourceMappingURL=94519.783661f9e08288cddc88.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"94519.783661f9e08288cddc88.bundle.js","mappings":"oLAAO,MAAMA,EAAY,CACrBC,OAAQ,SACRC,SAAU,WACVC,UAAW,YAEXC,kBAAmB,oB,6DCFvB,MAAMC,EA+FK,CACHC,eA3EmB,WACnB,MAAMC,EAAc,GAMpB,OALAA,EAAYC,KAAK,CAACC,UAAWT,EAAAA,EAAUC,OAAQS,WAAY,sBAC3DH,EAAYC,KAAK,CAACC,UAAWT,EAAAA,EAAUE,SAAUQ,WAAY,wBAE7DH,EAAYC,KAAK,CAACC,UAAWT,EAAAA,EAAUI,kBAAmBM,WAAY,2BACtEH,EAAYI,QAAQ,CAACC,EAAMC,IAAUD,EAAKE,GAAKD,GACxCN,CACX,EAoEIQ,gBAxDoBA,IACb,CACH,CACIC,SAAU,uBACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,wBACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,yBACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,2BACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,uBACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,wBACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,oCACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,sCACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,mCACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,kCACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,oCACVC,QAAS,YACTC,KAAM,KACP,CACCF,SAAU,mCACVC,QAAS,YACTC,KAAM,MAQdC,eAnEmB,WACnB,MAAMC,EAAQ,GAMd,OALAA,EAAMZ,KAAK,CAACa,OAAQC,EAAAA,GAAUC,QAASC,YAAa,uBACpDJ,EAAMZ,KAAK,CAACa,OAAQC,EAAAA,GAAUG,QAASD,YAAa,uBACpDJ,EAAMZ,KAAK,CAACa,OAAQC,EAAAA,GAAUI,YAAaF,YAAa,2BACxDJ,EAAMZ,KAAK,CAACa,OAAQC,EAAAA,GAAUK,mBAAoBH,YAAa,kCAC/DJ,EAAMT,QAAQ,CAACiB,EAAMf,IAAUe,EAAKd,GAAKD,GAClCO,CACX,EA4DIS,eAlGmB,GAmGnBC,aAjGiB,GAkGjBC,YAjGgB,GAkGhBC,kBAhGsB,GAiGtBC,gBAhGoB,GAiGpBC,kBAhGsB,IAiGtBC,kBAhGsB,GAiGtBC,sBA5F0B,GA6F1BC,2BA9F+B,GA+F/BC,wBA7F4B,IA8F5BC,wBA7F4B,GA8F5BC,yBA7F6BV,GA8F7BW,yBApG6B,GAqG7BC,wBApG4B,EAqG5BC,mBA9FuBb,G,gNClB/B,MAAMc,EAAK,CACTC,KAAI,OACJC,OAAMA,EAAAA,QAGFC,EAAgB,CAClBC,WAAY,yBACZC,SAAU,2BACVC,UAAW,0BACXC,SAAU,0BAGRC,EAAkB,CACpB,CAAC9B,EAAAA,GAAUC,SAAUwB,EAAcE,SACnC,CAAC3B,EAAAA,GAAUG,SAAUsB,EAAcE,SACnC,CAAC3B,EAAAA,GAAUI,aAAcqB,EAAcI,SACvC,CAAC7B,EAAAA,GAAUK,oBAAqBoB,EAAcE,UAG5CI,EAAiB,CAEnB,CAAC/B,EAAAA,GAAUC,SAAU,OAErB,CAACD,EAAAA,GAAUG,SAAU,QAErB,CAACH,EAAAA,GAAUI,aAAc,QAEzB,CAACJ,EAAAA,GAAUK,oBAAqB,SAG9B2B,EAAO,CACTC,UAAW,YACXC,QAAS,WAGPC,EAAoB,GAEnB,SAASC,EAAwBC,GACpC,OAAOf,EAAGE,OAAOa,GACZC,OAAO,OACPC,QAAQ,mBAAmB,EACpC,CAEO,SAASC,EAAkBC,GAC9B,MAAMC,EAAcD,EAAOH,OAAO,KAMlC,OALAI,EACKJ,OAAO,UACPC,QAAQ,gBAAgB,GACxBI,MAAM,OAAQ,eACdA,MAAM,eAAgB,KACpBD,CACX,CAEO,SAASE,EAAqBC,EAAYH,EAAaI,EAAiBC,GAAY,GAMvF,GALAL,EACKlB,OAAO,iBACPe,QAAQ,cAAeM,GACvBN,QAAQ,aAAcQ,GAEvBF,EACAH,EAAYM,UAAU,oBAAoBC,aACvC,CACH,MAAMC,EAAYR,EACbJ,OAAO,KACPa,KAAK,KAAM,mBAChBD,EACKZ,OAAO,QACPa,KAAK,KAAM,oBACXC,KAAKN,EAAgBO,uBACrBF,KAAK,KAAM,IACXZ,QAAQ,MAAM,GACdI,MAAM,cAAe,UACtBI,GACAG,EAAUZ,OAAO,QACZa,KAAK,KAAM,wBACXZ,QAAQ,MAAM,GACda,KAAKN,EAAgBQ,oBACrBX,MAAM,cAAe,UAE9BO,EAAUZ,OAAO,QACZa,KAAK,IAAK,KACVA,KAAK,QAAS,iBACdA,KAAK,OAAQ1B,EAAcC,YAC3BiB,MAAM,cAAe,UACrBJ,QAAQ,iBAAiB,GACzBa,KAAK,IACd,CACJ,CAEO,SAASG,EAAwBV,EAAYH,EAAaI,GACzDD,IAGJH,EAAYlB,OAAO,sCACd4B,KAAKN,EAAgBO,uBAC1BX,EAAYlB,OAAO,0CACd4B,KAAKN,EAAgBQ,oBAC9B,CAEO,SAASE,EAAYnB,EAASoB,EAAGC,GACpCrB,EAAQc,KAAK,YAAa,IACf,aAAaM,MAAMC,KAElC,CAEO,SAASC,EAAYC,EAAkBC,EAAYC,GACtD,MAAMC,EAAYH,EAAiBI,QAC9B1B,OAAO,KACPa,KAAK,KAAM,cACXZ,QAAQ,SAAUuB,GAEjBG,EAAqBF,EACtBG,MAAMN,GACNT,KAAK,KAAM,cACXZ,QAAQ,SAAUuB,GAYvB,OAoVG,SAAuBC,EAAWI,GACrC,MAAMC,EAAQC,KAAKC,KAAK,GAAK,EAGvBC,EAAS,CAAC,CAACJ,EAFH,EACA,GAC2B,CAACA,EAAS,EAFrC,EAEgDA,EAASC,EADzD,GACwE,EAAED,EAAS,EAFnF,EAE8FA,EAASC,EADvG,GAEV,CAHU,EAGRD,EAFQ,GAGV,EAAEA,EAAS,EAJD,GAIaA,EAASC,EAHtB,GAGqC,CAACD,EAAS,EAJ/C,GAI2DA,EAASC,EAHpE,GAGmF,CAACD,EAJpF,EACA,GAIV,CAACA,EAAS,EALA,EAKWA,EAASC,EAJpB,IAKPL,EACFf,UAAU,aACVwB,KAAK,CAACD,IACNP,QACA1B,OAAO,QACPa,KAAK,QAAS,eACdA,KAAK,eAAgB,MACrBA,KAAK,kBAAmB,SACxBA,KAAK,IAAK7B,EAAGC,OACtB,CA/WIkD,CAAcV,EAAWF,GACzBD,EAAiBc,OAAOzB,SAExBc,EACKzB,OAAO,QACPa,KAAK,QAAS,sBAEdW,GAMT,SAA4Ba,EAAcd,GACtC,MAAMe,EAAeD,EAAarC,OAAO,KAEzCsC,EACKtC,OAAO,QACPa,KAAK,QAAS,sBACdA,KAAK,KAAM,GAEhByB,EACKtC,OAAO,QACPa,KAAK,QAAS,wBACdA,KAAK,KAAM,GAEhByB,EACKtC,OAAO,QACPa,KAAK,IAAKU,EAAa,IACvBV,KAAK,QAAS,cAEnByB,EACKtC,OAAO,QACPa,KAAK,IAAKU,EAAa,IACvBV,KAAK,QAAS,iBACvB,CA3BQ0B,CAAmBd,EAAWF,GAE3BI,CACX,CA0BO,SAASa,EAAYC,IAoB5B,SAAyBA,GACrBA,EAAMvD,OAAO,cACRwD,KAAK,SAAUC,GACZ,MAAMC,GAQQ5F,EARoB2F,GASlCE,EAAAA,EAAAA,SAAQ7F,EAAK8F,gBA+BzB,SAAyB9F,GAErB,OADiB+F,EAAe/F,EAAKH,YACR,CAACS,KAAM,GAAIoC,KAAM,GAClD,CA3C4EsD,CAAgBL,GA8B5F,SAA6B3F,GACzB,MAAMS,EAAST,EAAK8F,eAEpB,OAAKrF,GAAWA,EAAOwF,OAIhBC,EAAQzF,EAAOwF,QAHX,CAAC3F,KAAM,GAAIoC,KAAM,GAIhC,CAtCmDyD,CAAoBR,IAQvE,IAA0B3F,EAPdgC,EAAGE,OAAOkE,MACLnD,QAAQ,WAAY2C,EAASlD,OAASA,EAAKE,SAC3CK,QAAQ,YAAa2C,EAASlD,OAASA,EAAKC,WAC5CmB,KAAK8B,EAAStF,KACvB,EACR,CA5BI+F,CAAgBZ,GAMpB,SAA4BA,GACxBA,EACKvD,OAAO,gBACPe,QAAQ,SAAWjD,GAASA,EAAKH,YAAcT,EAAAA,GAAUC,QACzD4D,QAAQ,WAAajD,GAASA,EAAKH,YAAcT,EAAAA,GAAUE,UAC3D2D,QAAQ,YAAcjD,GAASA,EAAKH,YAAcT,EAAAA,GAAUG,WAC5D0D,QAAQ,QAAUjD,GACRA,EAAKH,YAAcT,EAAAA,GAAUC,QAChCW,EAAKH,YAAcT,EAAAA,GAAUE,UAC7BU,EAAKH,YAAcT,EAAAA,GAAUG,UAE7C,CAhBI+G,CAAmBb,GA8LvB,SAAiCA,GAC7BA,EACKvD,OAAO,eACPwD,KAAK,SAAUC,GACZA,EAAEY,UAAYH,IAClB,GACCtC,KAAK,SAAU6B,GACZ,OAAOA,EAAEa,QACb,GAGJf,EACKvD,OAAO,uBACP2B,KAAK,QAAS,SAAU8B,GACrB,OAAO3D,EAAGE,OAAOyD,EAAEY,WAAWvG,OAAOyG,UAAUC,MAAQ,EAC3D,GACC7C,KAAK,SAAU,SAAU8B,GACtB,OAAO3D,EAAGE,OAAOyD,EAAEY,WAAWvG,OAAOyG,UAAUE,OAAS,EAC5D,GACC9C,KAAK,IAAK,SAAU8B,GACjB,OAAO3D,EAAGE,OAAOyD,EAAEY,WAAWvG,OAAOyG,UAAUtC,EAAI,CACvD,GACCN,KAAK,IAAK,SAAU8B,GACjB,OAAO3D,EAAGE,OAAOyD,EAAEY,WAAWvG,OAAOyG,UAAUrC,EAAI,CACvD,EACR,CAtNIwC,CAAwBnB,GAiE5B,SAA6BA,GACzB,IAAIoB,EACAC,EAEJrB,EAAMvD,OAAO,mBACRwD,KAAK,SAAUC,GACZA,EAAEoB,SAAWX,IACjB,GACClE,OAAO,WACJ,OAAOkE,KAAKY,UAChB,GACChE,OAAO,iBACPa,KAAK,QAAS,SAAU8B,GACrB,IAAIsB,EAAe,IACdpB,EAAAA,EAAAA,SAAQF,EAAEG,kBACXmB,EAAeC,EAA4BvB,IAE/C,MAAMwB,EAAOC,EAA2BH,GAGxC,OAFAJ,EAAeM,EAAKR,OACpBG,EAAcK,EAAKT,MACZI,CACX,GACCjD,KAAK,SAAU,SAAU8B,GACtB,OAAOkB,CACX,GACChD,KAAK,IAAK,SAAU8B,GACjB,OAASmB,EAAc,CAC3B,GACCjD,KAAK,IAAK,SAAU8B,GACjB,OAAO,EACX,GACC1C,QAAQ,SAAU,SAAU0C,GACzB,OAAOE,EAAAA,EAAAA,SAAQF,EAAEG,eACrB,GACCzC,MAAM,YAAa,QACnBA,MAAM,cAAe,OACrBA,MAAM,aAAc,UACpBA,MAAM,UAAW,OACjBA,MAAM,aAAc,WACpBA,MAAM,gBAAiB,OACvBQ,KAAK,QAAS,gBACdb,OAAO,aACPqE,KAAK,SAAU1B,GACZ,OAAOuB,EAA4BvB,EACvC,GAGJF,EAAMvD,OAAO,mBAAmByB,SAiDpC,SAA4B8B,GACxBA,EAAMvD,OAAO,iBACRwD,KAAK,SAAUC,GACZ,MAAM2B,EAAStF,EAAGE,OAAOkE,MACzB,IAAIP,EAAAA,EAAAA,SAAQF,EAAEG,gBAEV,YADAwB,EAAOzD,KAAK,QAAS,GAGzB,MAAMoD,EAAeC,EAA4BvB,GAC3C4B,EAAY5B,EAAEG,eAAe0B,SAAW7B,EAAEG,eAAe0B,QAAQC,OAAS5E,GAAqBoE,IAAiBtB,EAAEG,eAAe0B,QACjIE,EAAiBH,EAAYN,EAAetB,EAAEG,eAAe0B,QAC7DG,EAAgBP,EAA2BH,GAC3CW,EAAWR,EAA2BzB,EAAEG,eAAe0B,SAC7DF,EAAOO,GAAG,WAAY,MAElBN,GAhChB,SAAmCD,EAAQE,EAASG,EAAeD,EAAgBE,GAC/EN,EAAOO,GAAG,oBAAqB,KAC3BP,EACKzD,KAAK,QAAS+D,EAASlB,OACvB7C,KAAK,SAAU+D,EAASjB,QACxB9C,KAAK,KAAM+D,EAASlB,MAAQ,GAC5BW,KAAK,QAAQG,aAEtBF,EAAOO,GAAG,mBAAoB,KAC1BP,EACKzD,KAAK,QAAS8D,EAAcjB,OAC5B7C,KAAK,SAAU8D,EAAchB,QAC7B9C,KAAK,KAAM8D,EAAcjB,MAAQ,GACjCW,KAAK,QAAQK,YAE1B,CAkBgBI,CAA0BR,EAAQ3B,EAAEG,eAAe0B,QAASG,EAAeD,EAAgBE,GAI/FN,EACKzD,KAAK,QAAS8D,EAAcjB,OAC5B7C,KAAK,SAAU8D,EAAchB,QAC7B9C,KAAK,KAAM8D,EAAcjB,MAAQ,GACjCW,KAAK,QAAQK,UACtB,EACR,CAzEIK,CAAmBtC,EACvB,CAlHIuC,CAAoBvC,EACxB,CA8BA,MAAMS,EAAU,CACZ,CAAC+B,EAAAA,GAAcC,oBAAqB,CAAC5H,KAAM,IAAUoC,KAAMA,EAAKC,WAChE,CAACsF,EAAAA,GAAcE,sBAAuB,CAAC7H,KAAM,IAAUoC,KAAMA,EAAKC,WAClE,CAACsF,EAAAA,GAAclH,oBAAqB,CAACT,KAAM,IAAUoC,KAAMA,EAAKC,WAChE,CAACsF,EAAAA,GAAcG,mBAAoB,CAAC9H,KAAM,IAAUoC,KAAMA,EAAKC,WAC/D,CAACsF,EAAAA,GAAcI,mBAAoB,CAAC/H,KAAM,IAAUoC,KAAMA,EAAKC,WAC/D,CAACsF,EAAAA,GAAcK,kBAAmB,CAAChI,KAAM,IAAUoC,KAAMA,EAAKC,WAC9D,CAACsF,EAAAA,GAAcM,oCAAqC,CAACjI,KAAM,IAAUoC,KAAMA,EAAKE,UAG9EmD,EAAiB,CACnB,CAAC3G,EAAAA,GAAUG,WAAY,CAACe,KAAM,IAAUoC,KAAMA,EAAKE,SACnD,CAACxD,EAAAA,GAAUoJ,eAAgB,CAAClI,KAAM,IAAUoC,KAAMA,EAAKE,SACvD,CAACxD,EAAAA,GAAU0B,aAAc,CAACR,KAAM,IAAUoC,KAAMA,EAAKE,SACrD,CAACxD,EAAAA,GAAUqJ,WAAY,CAACnI,KAAM,IAAUoC,KAAMA,EAAKE,SACnD,CAACxD,EAAAA,GAAUsJ,YAAa,CAACpI,KAAM,IAAUoC,KAAMA,EAAKE,UAsExD,SAASsE,EAA4BlH,GACjC,OAAOA,EAAK8F,eAAe0B,SAAWxH,EAAK8F,eAAe0B,QAAQC,OAAS5E,EACvE7C,EAAK8F,eAAe0B,QAAQmB,UAAU,EAAG9F,GAAqB,MAAQ7C,EAAK8F,eAAe0B,SAAW,EAC7G,CAEA,SAASJ,EAA2BtD,GAChC,MAAM8E,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAYjF,EAChB8E,EAAIvF,MAAM2F,QAAU,MACpBJ,EAAIvF,MAAM4F,SAAW,WACrBL,EAAIvF,MAAM6F,WAAa,SACvBN,EAAIvF,MAAM8F,SAAW,OACrBP,EAAIvF,MAAM+F,WAAa,MACvBR,EAAIvF,MAAMgG,UAAY,SACtBT,EAAIvF,MAAMsD,OAAS,OACnBiC,EAAIvF,MAAMqD,MAAQ,OAClBkC,EAAIvF,MAAMiG,WAAa,SAEvBT,SAASU,KAAKC,YAAYZ,GAC1B,MAAMzB,EAAOyB,EAAIa,wBACX9C,EAASQ,EAAKR,OACdD,EAAQS,EAAKT,MAGnB,OAFAmC,SAASU,KAAKG,YAAYd,GAEnB,CAACjC,SAAQD,QACpB,CA0EO,SAASiD,EAAYC,GACxBA,EAAiBlF,QACZ1B,OAAO,QACPC,QAAQ,QAAQ,GAErB2G,EAAiBxE,OAAOzB,QAC5B,CAEO,SAASkG,EAAYD,EAAkBnE,GAC1CmE,EACK/F,KAAK,QAAU7C,GAGL,QADSA,EAAKd,GAAG4J,WAAW,IAAK,QAG3CjG,KAAK,SAAUkG,GACf1G,MAAM,mBAAoB2G,GAC1B3G,MAAM,aAAerC,GAASiJ,EAAajJ,EAAMkJ,EAAaC,MAC9DtG,KAAK,IAAM7C,GAsCpB,SAA4BA,EAAMyE,GAC9B,MAAM2E,EAAS3E,EAAM4E,KAAMrK,GAASA,EAAKsK,UAAYtJ,EAAKoJ,QACpDG,EAAS9E,EAAM4E,KAAMrK,GAASA,EAAKsK,UAAYtJ,EAAKuJ,QACpDC,EAASD,EAAOpG,EAAIiG,EAAOjG,EAC3BsG,EAASF,EAAOnG,EAAIgG,EAAOhG,EAC3BsG,EAAO3F,KAAKC,KAAKwF,EAASA,EAASC,EAASA,GAC5CE,EAAQH,EAASE,EACjBE,EAAQH,EAASC,EAIjBG,EAAUT,EAAOjG,EAFD,GAEsBwG,EACtCG,EAAUV,EAAOhG,EAHD,GAGsBwG,EACtCG,EAAUR,EAAOpG,EAHD,GAGsBwG,EACtCK,EAAUT,EAAOnG,EAJD,GAIsBwG,EAM5C,MAAO,IAAMC,EAAU,IAAMC,EAAU,KAJpBD,EAAUE,GAAW,EAIiB,KAHtCD,EAAUE,GAAW,EAIpC,IAAMD,EAAU,IAAMC,CAC9B,CA5D6BC,CAAmBjK,EAAMyE,GACtD,CAEO,MAAMyE,EAAe,CACxBgB,MAAO,CAACC,KAAM,QAASC,KAAM,GAC7BjB,IAAK,CAACgB,KAAM,MAAOC,KAAM,IAGtB,SAASC,EAAaC,EAAKC,GAC9BD,EAAItI,OAAO,YAAYA,OAAO,cACzBa,KAAK,KAAM,aAAa0H,EAAOJ,QAC/BtH,KAAK,UAAW,OAAqB,EAAd0H,EAAOH,QAA0B,EAAdG,EAAOH,QACjDvH,KAAK,OAAQ0H,EAAOH,MACpBvH,KAAK,OAAQ0H,EAAOH,MACpBvH,KAAK,cAAe0H,EAAOH,MAC3BvH,KAAK,eAAgB0H,EAAOH,MAC5BvH,KAAK,SAAU,sBACfb,OAAO,QACPa,KAAK,IAAK,WAAyB,EAAd0H,EAAOH,QAAYG,EAAOH,YAA0B,EAAdG,EAAOH,UAClE/H,MAAM,OAAQ,2BACvB,CAEO,SAAS4G,EAAajJ,EAAMuK,GAC/B,GAAIvK,EAAKP,SAAWC,EAAAA,GAAUK,mBAC1B,MAAO,kBAAkBwK,EAAOJ,OAExC,CAEO,SAASpB,EAAa/I,GAEzB,OADkBwB,EAAgBxB,EAAKP,SACnB,MACxB,CAEO,SAASuJ,EAAahJ,GAEzB,OADkByB,EAAezB,EAAKP,SAClB,MACxB,CA0BO,SAAS+K,EAA2BnG,EAAcoG,EAAcC,EAAcC,GACjFtG,EACKxB,KAAK,YAAa,CAAC7D,EAAMC,KAGtB,MAAM2L,EAAQ,EAAI7G,KAAK8G,GAAK5L,EAAQoF,EAAa+F,OAC3CjH,EAAIsH,EAAe1G,KAAK+G,IAAIF,GAASD,EACrCvH,EAAIsH,EAAe3G,KAAKgH,IAAIH,GAASD,EAG3C,OAFA3L,EAAKmE,EAAIA,EACTnE,EAAKoE,EAAIA,EACF,aAAaD,MAAMC,MAEtC,CAqBO,SAAS4H,IACZhK,EAAGE,OAAO2G,UAAUnF,UAAU,iBAAiBmE,GAAG,WAAY,KAClE,C,+DC3eO,MAAMzI,EAAY,CACrBC,OAAQ,SACRC,SAAU,WACVC,UAAW,YACXuB,YAAa,cACb0H,cAAe,gBACfC,UAAW,YACXC,WAAY,aACZuD,WAAY,cAGHhE,EAAgB,CACzBC,mBAAoB,qBACpBC,qBAAsB,uBACtBpH,mBAAoB,qBACpBqH,kBAAmB,oBACnBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,mCAAoC,sCAG3B7H,EAAY,CACrBC,QAAS,UACTG,YAAa,cACbD,QAAS,UACT2H,cAAe,gBAEfzH,mBAAoB,sBAGXmL,EAAgB,CACzBC,aAAc,eACdC,eAAgB,iB,uDC1BpB,MAAMpK,EAAK,CAACE,O,SAAMA,QAOlB,SAASmK,EAAcC,EAAYC,EAA2BC,EAAYC,GACtE,MAAO,CACHC,SAAU,IACVC,YAAa,6DACbC,MAAO,CAAC,EACR5L,KAAO6L,IAMHA,EAAOC,YAAa,EAMpB,MAAMC,EAAgB,GACtB,IAAIC,EACAC,EACAC,EAMJL,EAAOM,aAAe,KAClBN,EAAOC,YAAcD,EAAOC,WAC5BE,EAAY/J,QAAQ,gBAAiB4J,EAAOC,aAOhD,MAAMM,EAAOA,KACT,MAAMC,EAAyBd,EAA0Be,4BACzDC,EAAkBF,GAClBG,IACAC,EAAcT,GACdU,IACAC,IACAC,IACAC,KAGEJ,EAAiBT,IACnBc,EAASd,EAAa,qEACtB,MAAMe,EAAiBf,EAClBtJ,UAAU,eACVwB,KAAKzF,EAAAA,EAA6BC,kBACjCsO,EAAsBC,EAAAA,GAAgBF,EAAgBtO,EAAAA,EAA6BwB,gBAAgB,GACzGgN,EAAAA,GAAgBD,GAEhBA,EACKnK,KAAK,YAAa,SAAU8B,EAAGuI,GAE5B,OADAN,IACO,aAAanO,EAAAA,EAA6BmC,6BAA6BqL,EAAexN,EAAAA,EAA6BqC,0BAC9H,GACCkB,OAAO,QACPC,QAAQ,kBAAkB,GAC1BI,MAAM,cAAe5D,EAAAA,EAA6BiC,yBAClDmC,KAAK,IAAKpE,EAAAA,EAA6ByB,aAAezB,EAAAA,EAA6BwB,gBACnF4C,KAAK,IAVe,GAWpBC,KAAK,SAAU6B,GACZ,OAAOwI,EAAsB/H,KAAM,6CAA+CT,EAAE7F,WACxF,IAGF4N,EAAgBA,KAClBI,EAASd,EAAa,sEACtB,MAAMoB,EAAqBpB,EAAYtJ,UAAU,wBAC5CwB,KAAKzF,EAAAA,EAA6BU,mBAClCuE,QACA1B,OAAO,KACPa,KAAK,QAAS,uBAEbwK,EAAO,IAAIC,IAEjBF,EACKpL,OAAO,QACPa,KAAK,QAAU8B,GAAM,eAAeA,EAAEtF,WACtCwD,KAAK,IAAKpE,EAAAA,EAA6BmC,yBAA2B,IAClEiC,KAAK,IAAK,SAAU8B,EAAG1F,GACpB,MAAMsO,EAAStO,GAAS,GAAKR,EAAAA,EAA6BqC,yBAA2BmL,EAAexN,EAAAA,EAA6BoC,yBAEjI,OADAwM,EAAKG,IAAIvO,EAAOsO,GACTA,CACX,GACCzK,KAAK,SAAU6B,GACZ,OAAOA,EAAErF,IACb,GAEJ,MAAMmO,GAAgBhP,EAAAA,EAA6BgC,2BAA6BhC,EAAAA,EAA6B+B,uBAAyB,EACtI4M,EACKpL,OAAO,QACPK,MAAM,cAAe5D,EAAAA,EAA6BiC,yBAClDoC,KAAK,SAAU6B,GACZ,OAAOwI,EAAsB/H,KAAM,6CAA+CT,EAAEvF,SACxF,GACCyD,KAAK,IAAKpE,EAAAA,EAA6BmC,yBAA2BnC,EAAAA,EAA6B+B,uBAC/FqC,KAAK,IAAK,SAAU8B,EAAG1F,GACpB,OAAOoO,EAAKK,IAAIzO,GAASwO,CAC7B,GACCxL,QAAQ,kBAAkB,IAG7B0K,EAAWA,KACbG,EAASd,EAAa,sEACtB,MAAM2B,EAAkB3B,EAAYtJ,UAAU,sBACzCwB,KAAKzF,EAAAA,EAA6Bc,kBAClCmE,QACA1B,OAAO,KACPa,KAAK,QAAS,cAGbwK,EAAO,IAAIC,IAEjBK,EACK3L,OAAO,QACPC,QAAQ,QAAQ,GAChBY,KAAK,mBAAoBoK,EAAAA,IACzBpK,KAAK,SAAUoK,EAAAA,IACfpK,KAAK,IAAK,CAAC7C,EAAMf,KACd,MAAMmE,EAAInE,GAASR,EAAAA,EAA6B+B,sBAAwB/B,EAAAA,EAA6BqC,yBAA2BmL,EAAexN,EAAAA,EAA6BoC,yBACtK+M,EAAY1B,EAAc,EAEhC,IAAIjL,EACJ,GAFAoM,EAAKG,IAAIvO,EAAOmE,GAEZpD,EAAKP,SAAWC,EAAAA,GAAUK,mBAAoB,CAC9C,MAAM8N,EAAeD,EAAY,EAGjC3M,EAAO,IAAIxC,EAAAA,EAA6ByB,gBAAgBkD,MAAMyK,KAAgBzK,MAAMwK,KAAaxK,GACrG,MACInC,EAAO,IAAIxC,EAAAA,EAA6ByB,gBAAgBkD,KAAKwK,KAAaxK,IAE9E,OAAOnC,IAEVoB,MAAM,aAAerC,GAASiN,EAAAA,GAAiBjN,EAAMkJ,EAAAA,GAAagB,QAEvEyD,EACK3L,OAAO,QACPK,MAAM,YAAa5D,EAAAA,EAA6B+B,uBAChD6B,MAAM,cAAe5D,EAAAA,EAA6BkC,yBAClD0B,MAAM,cAAe5D,EAAAA,EAA6BiC,yBAClDoC,KAAK,SAAU6B,GACZ,OAAOwI,EAAsB/H,KAAM,6CAA+CT,EAAE/E,YACxF,GACCiD,KAAK,IAAKqJ,EAAY,EAAIzN,EAAAA,EAA6BmC,0BACvDiC,KAAK,IAAK,SAAU8B,EAAG1F,GACpB,OAAOoO,EAAKK,IAAIzO,GAAS,CAC7B,GACCgD,QAAQ,kBAAkB,IAO7BsK,EAAqBF,IACvBL,EAAcK,EAAuBrK,OAAO,KACvCC,QAAQ,gBAAiB4J,EAAOC,YAChC7J,QAAQ,wBAAwB,IAGnCuK,EAAyBA,KAC3BR,EAAYhK,OAAO,QACda,KAAK,QAAS,sBAGjB+J,EAAyBA,KAC3BZ,EACK8B,KAAMnJ,IACHsH,EAAetH,EAAE3F,OAAOyG,UAAUE,SAE1CuG,EAAc6B,EAAsB/B,GAAe,IAGjDa,EAAyBA,KAC3B,MAAMmB,EAAWD,EAAsB/B,GACvCA,EAAY9K,OAAO,sBACd2B,KAAK,SAAUoJ,EAA0D,EAA3CxN,EAAAA,EAA6B0B,aAC3D0C,KAAK,QAASmL,EAAWvP,EAAAA,EAA6BsC,oBACtD8B,KAAK,KAAM,MAGdkL,EAAyB5L,IAC3B,IAAI6L,EAAW,EAOf,OALA7L,EAAOO,UAAU,4BAA4BgC,KAAK,WAC9C,MAAMuJ,EAAO7I,KAAKK,UAClBuI,EAAWjK,KAAKmK,IAAIF,EAAUC,EAAKvI,MACvC,GAEOsI,GAULlB,EAAWA,CAACd,EAAa5M,IACpB4M,EACFhK,OAAO,QACPa,KAAK,QAAS,gBACdA,KAAK,IAAKpE,EAAAA,EAA6ByB,cACvCmC,MAAM,YAAa5D,EAAAA,EAA6B4B,iBAChDgC,MAAM,cAAe5D,EAAAA,EAA6B6B,mBAClD+B,MAAM,cAAe5D,EAAAA,EAA6B8B,mBAClDuC,KAAK,WACF,OAAOqK,EAAsB/H,KAAMhG,EACvC,GACCyD,KAAK,IAAK,KACP+J,IACOX,EAAexN,EAAAA,EAA6B2B,oBAIzD+M,EAAwBA,CAACgB,EAAY/O,KACvC2M,EAAcnN,KAAK0M,EAAW8C,IAAI,0BAA2B,KACzDpN,EAAGE,OAAOiN,GAAYrL,KAAK0I,EAAW6C,QAAQjP,IAC9CyN,OAGGrB,EAAW6C,QAAQjP,IAQxBkP,EAAcA,KAChBzC,EAAOC,YAAa,EACpBE,EAAY/J,QAAQ,gBAAiB4J,EAAOC,aAYhDL,EAAU5E,GAAG,UATM0H,IACG,WAAdA,EAAMC,KACNF,MAQRvC,EAAcnN,KAAK2M,EAA0BkD,gCAAgCrC,IAG7EP,EAAOuC,IAAI,WAvBgBM,KACvBjD,EAAUkD,IAAI,UAAWL,GACzBvC,EAAchN,QAAS6P,GAAiBA,OAuB5CxC,KAGZ,CAtQAyC,QAAQC,OAAO,gEADC,IAEXC,UAAU,gBAAiB1D,GAEhCA,EAAc2D,QAAU,CAAC,aAAc,4BAA6B,aAAc,Y","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/node-state.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/cluster-management-constants.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/clustermanagement/services/cluster-drawing.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/states.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/clustermanagement/directives/cluster-legend.directive.js"],"sourcesContent":["export const NodeState = {\n LEADER: 'LEADER',\n FOLLOWER: 'FOLLOWER',\n CANDIDATE: 'CANDIDATE',\n // node without icon\n OUT_OF_SYNC_BLANK: 'OUT_OF_SYNC_BLANK'\n};\n","import {NodeState} from \"./node-state\";\nimport {LinkState} from \"./states\";\n\nconst CLUSTER_MANAGEMENT_CONSTANTS = (function () {\n const SVG_NODE_WIDTH = 15;\n\n const PADDING_LEFT = 12;\n const PADDING_TOP = 12;\n\n const TITLE_PADDING_TOP = 15;\n const TITLE_FONT_SIZE = 13;\n const TITLE_FONT_WEIGHT = 700;\n const TITLE_LINE_HEIGHT = 18;\n\n const LEGEND_ITEMS_PADDING_TOP = 40;\n const LEGEND_ITEM_PADDING_TOP = 8;\n const LEGEND_ITEM_ICON_FONT_SIZE = 15;\n const LEGEND_ITEM_FONT_SIZE = 11;\n const LEGEND_ITEM_FONT_WEIGHT = 400;\n const LEGEND_ITEM_LINE_HEIGHT = 13;\n const LEGEND_ITEM_PADDING_LEFT = PADDING_LEFT + SVG_NODE_WIDTH;\n\n const BACKGROUND_PADDING = PADDING_LEFT * 2;\n\n const getLegendNodes = function () {\n const legendNodes = [];\n legendNodes.push({nodeState: NodeState.LEADER, customText: 'node_state_leader'});\n legendNodes.push({nodeState: NodeState.FOLLOWER, customText: 'node_state_follower'});\n // the out of sync node in the leged should not have an icon\n legendNodes.push({nodeState: NodeState.OUT_OF_SYNC_BLANK, customText: 'node_state_out_of_sync'});\n legendNodes.forEach((node, index) => node.id = index);\n return legendNodes;\n };\n\n const getLegendLinks = function () {\n const links = [];\n links.push({status: LinkState.IN_SYNC, linkTypeKey: 'link_state_in_sync'});\n links.push({status: LinkState.SYNCING, linkTypeKey: 'link_state_syncing'});\n links.push({status: LinkState.OUT_OF_SYNC, linkTypeKey: 'link_state_out_of_sync'});\n links.push({status: LinkState.RECEIVING_SNAPSHOT, linkTypeKey: 'link_state_receiving_snapshot'});\n links.forEach((link, index) => link.id = index);\n return links;\n };\n\n const getSyncStatuses = () => {\n return [\n {\n labelKey: 'node_state_candidate',\n classes: 'remixicon',\n icon: '\\ueb81', //ri-checkbox-circle-line\n }, {\n labelKey: 'node_state_no_cluster',\n classes: 'remixicon',\n icon: '\\ueb99', //ri-close-line\n }, {\n labelKey: 'link_state_out_of_sync',\n classes: 'remixicon',\n icon: '\\uea21', //ri-alert-line\n }, {\n labelKey: 'node_state_no_connection',\n classes: 'remixicon',\n icon: '\\ueeb1', //ri-link-unlink\n }, {\n labelKey: 'node_state_read_only',\n classes: 'remixicon',\n icon: '\\uece2', //ri-file-forbid-line\n }, {\n labelKey: 'node_state_restricted',\n classes: 'remixicon',\n icon: '\\uee71', //ri-key-line\n }, {\n labelKey: 'recovery_state.searching_for_node',\n classes: 'remixicon',\n icon: '\\uf045', //ri-question-line\n }, {\n labelKey: 'recovery_state.waiting_for_snapshot',\n classes: 'remixicon',\n icon: '\\uf20f', //ri-time-line\n }, {\n labelKey: 'recovery_state.building_snapshot',\n classes: 'remixicon',\n icon: '\\uf3a7', //ri-archive-2-line\n }, {\n labelKey: 'recovery_state.sending_snapshot',\n classes: 'remixicon',\n icon: '\\uf24a', //ri-upload-2-line\n }, {\n labelKey: 'recovery_state.receiving_snapshot',\n classes: 'remixicon',\n icon: '\\uec54', //ri-download-2-line\n }, {\n labelKey: 'recovery_state.applying_snapshot',\n classes: 'remixicon',\n icon: '\\uec30', //ri-device-recover-line\n },\n ];\n };\n\n return {\n getLegendNodes,\n getSyncStatuses,\n getLegendLinks,\n SVG_NODE_WIDTH,\n PADDING_LEFT,\n PADDING_TOP,\n TITLE_PADDING_TOP,\n TITLE_FONT_SIZE,\n TITLE_FONT_WEIGHT,\n TITLE_LINE_HEIGHT,\n LEGEND_ITEM_FONT_SIZE,\n LEGEND_ITEM_ICON_FONT_SIZE,\n LEGEND_ITEM_FONT_WEIGHT,\n LEGEND_ITEM_LINE_HEIGHT,\n LEGEND_ITEM_PADDING_LEFT,\n LEGEND_ITEMS_PADDING_TOP,\n LEGEND_ITEM_PADDING_TOP,\n BACKGROUND_PADDING\n };\n})();\n\nexport {\n CLUSTER_MANAGEMENT_CONSTANTS\n};\n","import {LinkState, NodeState, RecoveryState} from \"../../models/clustermanagement/states\";\nimport {isEmpty} from \"lodash\";\nimport {select, line} from 'd3';\n\nconst d3 = {\n line,\n select\n};\n\nconst clusterColors = {\n ontoOrange: 'var(--gw-primary-base)',\n ontoBlue: 'var(--gw-secondary-base)',\n ontoGreen: 'var(--gw-tertiary-base)',\n ontoGrey: 'var(--gw-neutral-base)'\n};\n\nconst linkStateColors = {\n [LinkState.IN_SYNC]: clusterColors.ontoBlue,\n [LinkState.SYNCING]: clusterColors.ontoBlue,\n [LinkState.OUT_OF_SYNC]: clusterColors.ontoGrey,\n [LinkState.RECEIVING_SNAPSHOT]: clusterColors.ontoBlue\n};\n\nconst linkStateStyle = {\n // solid line\n [LinkState.IN_SYNC]: 'none',\n // dashed line\n [LinkState.SYNCING]: '10 10',\n // dashed line\n [LinkState.OUT_OF_SYNC]: '10 10',\n // dashed line\n [LinkState.RECEIVING_SNAPSHOT]: '10 10'\n};\n\nconst font = {\n REMIXICON: 'REMIXICON',\n ICOMOON: 'ICOMOON',\n};\n\nconst shortMessageLimit = 40;\n\nexport function createClusterSvgElement(element) {\n return d3.select(element)\n .append('svg')\n .classed('cluster-diagram', true);\n}\n\nexport function createClusterZone(parent) {\n const clusterZone = parent.append('g');\n clusterZone\n .append(\"circle\")\n .classed('cluster-zone', true)\n .style('fill', 'transparent')\n .style('stroke-width', '4');\n return clusterZone;\n}\n\nexport function setCreateClusterZone(hasCluster, clusterZone, translationsMap, hasAccess = false) {\n clusterZone\n .select('.cluster-zone')\n .classed('no-cluster', !hasCluster)\n .classed('has-access', hasAccess);\n\n if (hasCluster) {\n clusterZone.selectAll('#no-cluster-zone').remove();\n } else {\n const textGroup = clusterZone\n .append('g')\n .attr(\"id\", \"no-cluster-zone\");\n textGroup\n .append('text')\n .attr('id', 'no-cluster-label')\n .text(translationsMap.no_cluster_configured)\n .attr('y', -50)\n .classed('h2', true)\n .style('text-anchor', \"middle\");\n if (hasAccess) {\n textGroup.append('text')\n .attr('id', 'create-cluster-label')\n .classed('h3', true)\n .text(translationsMap.create_cluster_btn)\n .style('text-anchor', \"middle\");\n }\n textGroup.append('text')\n .attr('y', 130)\n .attr('class', 'icon-any repo')\n .attr('fill', clusterColors.ontoOrange)\n .style('text-anchor', \"middle\")\n .classed('settings-icon', true)\n .text(\"\\ue92b\");\n }\n}\n\nexport function updateClusterZoneLabels(hasCluster, clusterZone, translationsMap) {\n if (hasCluster) {\n return;\n }\n clusterZone.select('#no-cluster-zone #no-cluster-label')\n .text(translationsMap.no_cluster_configured);\n clusterZone.select('#no-cluster-zone #create-cluster-label')\n .text(translationsMap.create_cluster_btn);\n}\n\nexport function moveElement(element, x, y) {\n element.attr('transform', () => {\n return `translate(${x}, ${y})`;\n });\n}\n\nexport function createNodes(nodesDataBinding, nodeRadius, isLegend) {\n const nodeGroup = nodesDataBinding.enter()\n .append('g')\n .attr('id', 'node-group')\n .classed('legend', isLegend);\n\n const nodeUpdateElements = nodeGroup\n .merge(nodesDataBinding)\n .attr('id', 'node-group')\n .classed('legend', isLegend);\n\n createHexagon(nodeGroup, nodeRadius);\n nodesDataBinding.exit().remove();\n\n nodeGroup\n .append('text')\n .attr('class', 'icon-any node-icon');\n\n if (!isLegend) {\n addHostnameToNodes(nodeGroup, nodeRadius, isLegend);\n }\n return nodeUpdateElements;\n}\n\nfunction addHostnameToNodes(nodeElements, nodeRadius) {\n const nodeTextHost = nodeElements.append('g');\n\n nodeTextHost\n .append('rect')\n .attr('class', 'id-host-background')\n .attr('rx', 6);\n\n nodeTextHost\n .append('rect')\n .attr('class', 'node-info-background')\n .attr('rx', 6);\n\n nodeTextHost\n .append('text')\n .attr('y', nodeRadius + 25)\n .attr('class', 'id id-host');\n\n nodeTextHost\n .append('text')\n .attr('y', nodeRadius + 55)\n .attr('class', 'node-info-text');\n}\n\nexport function updateNodes(nodes) {\n updateNodesIcon(nodes);\n updateNodesClasses(nodes);\n updateNodesHostnameText(nodes);\n updateNodesInfoText(nodes);\n}\n\nfunction updateNodesClasses(nodes) {\n nodes\n .select('.node.member')\n .classed('leader', (node) => node.nodeState === NodeState.LEADER)\n .classed('follower', (node) => node.nodeState === NodeState.FOLLOWER)\n .classed('candidate', (node) => node.nodeState === NodeState.CANDIDATE)\n .classed('other', (node) => {\n return node.nodeState !== NodeState.LEADER &&\n node.nodeState !== NodeState.FOLLOWER &&\n node.nodeState !== NodeState.CANDIDATE;\n });\n}\n\nfunction updateNodesIcon(nodes) {\n nodes.select('.node-icon')\n .each(function (d) {\n const iconType = hasRecoveryState(d) ? getNodeInfoIconType(d) : getNodeIconType(d);\n d3.select(this)\n .classed('icon-any', iconType.font === font.ICOMOON)\n .classed('remixicon', iconType.font === font.REMIXICON)\n .text(iconType.icon);\n });\n}\n\nfunction hasRecoveryState(node) {\n return !isEmpty(node.recoveryStatus);\n}\n\nconst iconMap = {\n [RecoveryState.SEARCHING_FOR_NODE]: {icon: '\\uf045', font: font.REMIXICON}, //ri-question-line\n [RecoveryState.WAITING_FOR_SNAPSHOT]: {icon: '\\uf20f', font: font.REMIXICON}, //ri-time-line\n [RecoveryState.RECEIVING_SNAPSHOT]: {icon: '\\uec54', font: font.REMIXICON}, //ri-download-2-line\n [RecoveryState.APPLYING_SNAPSHOT]: {icon: '\\uec30', font: font.REMIXICON}, //ri-device-recover-line\n [RecoveryState.BUILDING_SNAPSHOT]: {icon: '\\uf3a7', font: font.REMIXICON}, //ri-archive-2-line\n [RecoveryState.SENDING_SNAPSHOT]: {icon: '\\uf24a', font: font.REMIXICON}, //ri-upload-2-line\n [RecoveryState.RECOVERY_OPERATION_FAILURE_WARNING]: {icon: '\\ue920', font: font.ICOMOON},\n};\n\nconst nodeStateIcons = {\n [NodeState.CANDIDATE]: {icon: '\\ue914', font: font.ICOMOON},\n [NodeState.NO_CONNECTION]: {icon: '\\ue931', font: font.ICOMOON},\n [NodeState.OUT_OF_SYNC]: {icon: '\\ue920', font: font.ICOMOON},\n [NodeState.READ_ONLY]: {icon: '\\ue95c', font: font.ICOMOON},\n [NodeState.RESTRICTED]: {icon: '\\ue933', font: font.ICOMOON}\n};\n\nfunction getNodeInfoIconType(node) {\n const status = node.recoveryStatus;\n\n if (!status || !status.state) {\n return {icon: '', font: ''};\n }\n\n return iconMap[status.state] || {icon: '', font: ''};\n}\n\nfunction getNodeIconType(node) {\n const iconType = nodeStateIcons[node.nodeState];\n return iconType ? iconType : {icon: '', font: ''};\n}\n\nfunction updateNodesInfoText(nodes) {\n let objectHeight;\n let objectWidth;\n // Set initial text element\n nodes.select('.node-info-text')\n .each(function (d) {\n d.infoNode = this;\n })\n .select(function () {\n return this.parentNode;\n })\n .append('foreignObject')\n .attr('width', function (d) {\n let shortMessage = '';\n if (!isEmpty(d.recoveryStatus)) {\n shortMessage = extractShortMessageFromNode(d);\n }\n const rect = calculateElementSizeByText(shortMessage);\n objectHeight = rect.height;\n objectWidth = rect.width;\n return objectWidth;\n })\n .attr('height', function (d) {\n return objectHeight;\n })\n .attr('x', function (d) {\n return -(objectWidth / 2);\n })\n .attr('y', function (d) {\n return 78;\n })\n .classed('hidden', function (d) {\n return isEmpty(d.recoveryStatus);\n })\n .style('font-size', '12px')\n .style('font-weight', '400')\n .style('text-align', 'center')\n .style('padding', '4px')\n .style('background', '#EEEEEE')\n .style('border-radius', '6px')\n .attr('class', 'node-info-fo')\n .append('xhtml:div')\n .html(function (d) {\n return extractShortMessageFromNode(d);\n });\n\n // Remove the original text elements, as they are now replaced by foreignObjects\n nodes.select('.node-info-text').remove();\n\n resizeLabelDynamic(nodes);\n}\n\nfunction extractShortMessageFromNode(node) {\n return node.recoveryStatus.message && node.recoveryStatus.message.length > shortMessageLimit ?\n node.recoveryStatus.message.substring(0, shortMessageLimit) + '...' : node.recoveryStatus.message || '';\n}\n\nfunction calculateElementSizeByText(text) {\n const tmp = document.createElement('div');\n tmp.innerHTML = text;\n tmp.style.padding = '4px';\n tmp.style.position = 'absolute';\n tmp.style.visibility = 'hidden';\n tmp.style.fontSize = '12px';\n tmp.style.fontWeight = '400';\n tmp.style.textAlign = 'center';\n tmp.style.height = 'auto';\n tmp.style.width = 'auto';\n tmp.style.whiteSpace = 'nowrap';\n\n document.body.appendChild(tmp);\n const rect = tmp.getBoundingClientRect();\n const height = rect.height;\n const width = rect.width;\n document.body.removeChild(tmp);\n\n return {height, width};\n}\n\nfunction addRecoveryLabelListeners(object, message, truncatedSize, displayMessage, fullSize) {\n object.on('mouseover.tooltip', () => {\n object\n .attr('width', fullSize.width)\n .attr('height', fullSize.height)\n .attr('x', -fullSize.width / 2)\n .html(`<div>${message}</div>`);\n });\n object.on('mouseout.tooltip', () => {\n object\n .attr('width', truncatedSize.width)\n .attr('height', truncatedSize.height)\n .attr('x', -truncatedSize.width / 2)\n .html(`<div>${displayMessage}</div>`);\n });\n}\n\nfunction resizeLabelDynamic(nodes) {\n nodes.select('.node-info-fo')\n .each(function (d) {\n const object = d3.select(this);\n if (isEmpty(d.recoveryStatus)) {\n object.attr('width', 0);\n return;\n }\n const shortMessage = extractShortMessageFromNode(d);\n const isShorten = d.recoveryStatus.message && d.recoveryStatus.message.length > shortMessageLimit && shortMessage !== d.recoveryStatus.message;\n const displayMessage = isShorten ? shortMessage : d.recoveryStatus.message;\n const truncatedSize = calculateElementSizeByText(shortMessage);\n const fullSize = calculateElementSizeByText(d.recoveryStatus.message);\n object.on('.tooltip', null);\n\n if (isShorten) {\n addRecoveryLabelListeners(object, d.recoveryStatus.message, truncatedSize, displayMessage, fullSize);\n }\n\n // Set initial size and text\n object\n .attr('width', truncatedSize.width)\n .attr('height', truncatedSize.height)\n .attr('x', -truncatedSize.width / 2)\n .html(`<div>${displayMessage}</div>`);\n });\n}\n\nfunction updateNodesHostnameText(nodes) {\n nodes\n .select('.id.id-host')\n .each(function (d) {\n d.labelNode = this;\n })\n .text(function (d) {\n return d.hostname;\n });\n\n // Add padding styling to text background. left/right/top/bottom +5\n nodes\n .select('.id-host-background')\n .attr('width', function (d) {\n return d3.select(d.labelNode).node().getBBox().width + 10;\n })\n .attr('height', function (d) {\n return d3.select(d.labelNode).node().getBBox().height + 10;\n })\n .attr('x', function (d) {\n return d3.select(d.labelNode).node().getBBox().x - 5;\n })\n .attr('y', function (d) {\n return d3.select(d.labelNode).node().getBBox().y - 5;\n });\n}\n\nexport function createLinks(linksDataBinding) {\n linksDataBinding.enter()\n .append('path')\n .classed('link', true);\n\n linksDataBinding.exit().remove();\n}\n\nexport function updateLinks(linksDataBinding, nodes) {\n linksDataBinding\n .attr('class', (link) => {\n // add the link id as a css class for testing purposes\n const idClass = link.id.replaceAll(':', '-');\n return `link ${idClass}`;\n })\n .attr('stroke', setLinkColor)\n .style('stroke-dasharray', setLinkStyle)\n .style(\"marker-mid\", (link) => setArrowLink(link, ARROW_CONFIG.BIG))\n .attr('d', (link) => getLinkCoordinates(link, nodes));\n}\n\nexport const ARROW_CONFIG = {\n SMALL: {name: 'small', size: 3},\n BIG: {name: 'big', size: 5}\n};\n\nexport function addArrowHead(svg, config) {\n svg.append(\"svg:defs\").append(\"svg:marker\")\n .attr(\"id\", `arrowhead_${config.name}`)\n .attr(\"viewBox\", `0 0 ${config.size * 2} ${config.size * 2}`)\n .attr(\"refX\", config.size)\n .attr(\"refY\", config.size)\n .attr(\"markerWidth\", config.size)\n .attr(\"markerHeight\", config.size)\n .attr(\"orient\", \"auto-start-reverse\")\n .append(\"path\")\n .attr(\"d\", `M 0 0 L ${config.size * 2} ${config.size} L 0 ${config.size * 2} z`)\n .style(\"fill\", \"var(--gw-secondary-base)\");\n}\n\nexport function setArrowLink(link, config) {\n if (link.status === LinkState.RECEIVING_SNAPSHOT) {\n return `url(#arrowhead_${config.name})`;\n }\n}\n\nexport function setLinkColor(link) {\n const linkColor = linkStateColors[link.status];\n return linkColor || 'none';\n}\n\nexport function setLinkStyle(link) {\n const linkStyle = linkStateStyle[link.status];\n return linkStyle || 'none';\n}\n\nfunction getLinkCoordinates(link, nodes) {\n const source = nodes.find((node) => node.address === link.source);\n const target = nodes.find((node) => node.address === link.target);\n const deltaX = target.x - source.x;\n const deltaY = target.y - source.y;\n const dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const normX = deltaX / dist;\n const normY = deltaY / dist;\n // Padding from node center point\n const sourcePadding = 55;\n const targetPadding = 55;\n const sourceX = source.x + (sourcePadding * normX);\n const sourceY = source.y + (sourcePadding * normY);\n const targetX = target.x - (targetPadding * normX);\n const targetY = target.y - (targetPadding * normY);\n // Calculate midpoint\n const midpointX = (sourceX + targetX) / 2;\n const midpointY = (sourceY + targetY) / 2;\n // In order to draw an arrowhead in the middle of a line, the line needs to be composed by\n // two segments, otherwise the arrowhead won't show up.\n return 'M' + sourceX + ',' + sourceY + 'L' + midpointX + ',' + midpointY +\n 'L' + targetX + ',' + targetY;\n}\n\nexport function positionNodesOnClusterZone(nodeElements, clusterZoneX, clusterZoneY, clusterZoneRadius) {\n nodeElements\n .attr('transform', (node, index) => {\n // Calculate initial positions for the new nodes based on\n // spreading them evenly on a circle around the center of the page.\n const theta = 2 * Math.PI * index / nodeElements.size();\n const x = clusterZoneX + Math.cos(theta) * clusterZoneRadius;\n const y = clusterZoneY + Math.sin(theta) * clusterZoneRadius;\n node.x = x;\n node.y = y;\n return `translate(${x}, ${y})`;\n });\n}\n\nexport function createHexagon(nodeGroup, radius) {\n const _s32 = (Math.sqrt(3) / 2);\n const xDiff = 0;\n const yDiff = 0;\n const points = [[radius + xDiff, yDiff], [radius / 2 + xDiff, radius * _s32 + yDiff], [-radius / 2 + xDiff, radius * _s32 + yDiff],\n [-radius + xDiff, yDiff],\n [-radius / 2 + xDiff, -radius * _s32 + yDiff], [radius / 2 + xDiff, -radius * _s32 + yDiff], [radius + xDiff, yDiff],\n [radius / 2 + xDiff, radius * _s32 + yDiff]];\n return nodeGroup\n .selectAll(\"path.area\")\n .data([points])\n .enter()\n .append(\"path\")\n .attr('class', 'node member')\n .attr(\"stroke-width\", \"10\")\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"d\", d3.line());\n}\n\nexport function removeEventListeners() {\n d3.select(document).selectAll('.node-info-fo').on('.tooltip', null);\n}\n","export const NodeState = {\n LEADER: 'LEADER',\n FOLLOWER: 'FOLLOWER',\n CANDIDATE: 'CANDIDATE',\n OUT_OF_SYNC: 'OUT_OF_SYNC',\n NO_CONNECTION: 'NO_CONNECTION',\n READ_ONLY: 'READ_ONLY',\n RESTRICTED: 'RESTRICTED',\n NO_CLUSTER: 'NO_CLUSTER'\n};\n\nexport const RecoveryState = {\n SEARCHING_FOR_NODE: 'SEARCHING_FOR_NODE',\n WAITING_FOR_SNAPSHOT: 'WAITING_FOR_SNAPSHOT',\n RECEIVING_SNAPSHOT: 'RECEIVING_SNAPSHOT',\n APPLYING_SNAPSHOT: 'APPLYING_SNAPSHOT',\n BUILDING_SNAPSHOT: 'BUILDING_SNAPSHOT',\n SENDING_SNAPSHOT: 'SENDING_SNAPSHOT',\n RECOVERY_OPERATION_FAILURE_WARNING: 'RECOVERY_OPERATION_FAILURE_WARNING'\n};\n\nexport const LinkState = {\n IN_SYNC: 'IN_SYNC',\n OUT_OF_SYNC: 'OUT_OF_SYNC',\n SYNCING: 'SYNCING',\n NO_CONNECTION: 'NO_CONNECTION',\n // complimentary state, built based on the recovery state of two nodes when one is receiving snapshot to the other\n RECEIVING_SNAPSHOT: 'RECEIVING_SNAPSHOT'\n};\n\nexport const TopologyState = {\n PRIMARY_NODE: 'PRIMARY_NODE',\n SECONDARY_NODE: 'SECONDARY_NODE'\n};\n","import {CLUSTER_MANAGEMENT_CONSTANTS} from \"../../models/clustermanagement/cluster-management-constants\";\nimport * as CDS from \"../services/cluster-drawing.service\";\nimport {LinkState} from \"../../models/clustermanagement/states\";\nimport {ARROW_CONFIG} from \"../services/cluster-drawing.service\";\nimport {select} from 'd3';\n\nconst d3 = {select};\nconst modules = [];\nangular.module('graphdb.framework.clustermanagement.directives.cluster-legend', modules)\n .directive('clusterLegend', clusterLegend);\n\nclusterLegend.$inject = ['$rootScope', 'ClusterViewContextService', '$translate', '$document'];\n\nfunction clusterLegend($rootScope, ClusterViewContextService, $translate, $document) {\n return {\n restrict: 'E',\n templateUrl: 'js/angular/clustermanagement/templates/cluster-legend.html',\n scope: {},\n link: ($scope) => {\n\n // =========================\n // Public variables\n // =========================\n\n $scope.hideLegend = true;\n\n // =========================\n // Private variables\n // =========================\n\n const subscriptions = [];\n let legendGroup;\n let legendHeight;\n let legendWidth;\n\n // =========================\n // Public functions\n // =========================\n\n $scope.toggleLegend = () => {\n $scope.hideLegend = !$scope.hideLegend;\n legendGroup.classed('hidden-legend', $scope.hideLegend);\n };\n\n // =========================\n // Private functions\n // =========================\n\n const init = () => {\n const clusterViewD3Container = ClusterViewContextService.getClusterViewD3Container();\n createLegendGroup(clusterViewD3Container);\n createLegendBackground();\n addNodeStates(legendGroup);\n addSyncStatus();\n addLinks();\n updateLegendDimensions();\n updateLegendBackground();\n };\n\n const addNodeStates = (legendGroup) => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_node_state');\n const legendNodeData = legendGroup\n .selectAll('.node-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getLegendNodes());\n const legendNodesElements = CDS.createNodes(legendNodeData, CLUSTER_MANAGEMENT_CONSTANTS.SVG_NODE_WIDTH, true);\n CDS.updateNodes(legendNodesElements);\n const LABEL_Y_POSITION = 3;\n legendNodesElements\n .attr('transform', function (d, i) {\n updateLegendDimensions();\n return `translate(${CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT}, ${legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP})`;\n })\n .append('text')\n .classed('links-statuses', true)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT + CLUSTER_MANAGEMENT_CONSTANTS.SVG_NODE_WIDTH)\n .attr('y', LABEL_Y_POSITION)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.customText);\n });\n };\n\n const addSyncStatus = () => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_sync_status');\n const syncStatusesGroups = legendGroup.selectAll('.sync-statuses-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getSyncStatuses())\n .enter()\n .append('g')\n .attr('class', 'sync-statuses-group');\n\n const rowY = new Map();\n\n syncStatusesGroups\n .append('text')\n .attr('class', (d) => `sync-status ${d.classes}`)\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT - 10)\n .attr('y', function (d, index) {\n const rowTop = index * (20 + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP) + legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEMS_PADDING_TOP;\n rowY.set(index, rowTop);\n return rowTop;\n })\n .text(function (d) {\n return d.icon;\n });\n\n const labelOffsetY = (CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_ICON_FONT_SIZE - CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE) / 2;\n syncStatusesGroups\n .append('text')\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.labelKey);\n })\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE)\n .attr('y', function (d, index) {\n return rowY.get(index) - labelOffsetY;\n })\n .classed('links-statuses', true);\n };\n\n const addLinks = () => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_link_states');\n const linkStatesGroup = legendGroup.selectAll('.link-states-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getLegendLinks())\n .enter()\n .append('g')\n .attr('class', 'link-state');\n\n // map vertical positions of each link in order to be able to draw labels next to the links\n const rowY = new Map();\n\n linkStatesGroup\n .append('path')\n .classed('link', true)\n .attr('stroke-dasharray', CDS.setLinkStyle)\n .attr('stroke', CDS.setLinkColor)\n .attr('d', (link, index) => {\n const y = index * (CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP) + legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEMS_PADDING_TOP;\n const lineWidth = legendWidth / 2;\n rowY.set(index, y);\n let line;\n if (link.status === LinkState.RECEIVING_SNAPSHOT) {\n const lineMidPoint = lineWidth / 2;\n // In order to draw an arrowhead in the middle of a line, the line needs to be composed by\n // two segments, otherwise the arrowhead won't show up.\n line = `M${CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT} ${y} L${lineMidPoint} ${y} L${lineWidth} ${y}`;\n } else {\n line = `M${CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT} ${y} ${lineWidth} ${y}`;\n }\n return line;\n })\n .style(\"marker-mid\", (link) => CDS.setArrowLink(link, ARROW_CONFIG.SMALL));\n\n linkStatesGroup\n .append('text')\n .style('font-size', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE)\n .style('line-height', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_LINE_HEIGHT)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.linkTypeKey);\n })\n .attr('x', legendWidth/2 + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT)\n .attr('y', function (d, index) {\n return rowY.get(index) + 4;\n })\n .classed('links-statuses', true);\n };\n\n /**\n * Creates main legend container with rectangle that defines width, height and corner radius of legend.\n * @param {*} clusterViewD3Container - main container where legend have to live.\n */\n const createLegendGroup = (clusterViewD3Container) => {\n legendGroup = clusterViewD3Container.append('g')\n .classed('hidden-legend', $scope.hideLegend)\n .classed('cluster-legend-group', true);\n };\n\n const createLegendBackground = () => {\n legendGroup.append('rect')\n .attr('class', 'legend-background');\n };\n\n const updateLegendDimensions = () => {\n legendGroup\n .call((d) => {\n legendHeight = d.node().getBBox().height;\n });\n legendWidth = getMaxWidthOfChildren(legendGroup) + 30;\n };\n\n const updateLegendBackground = () => {\n const maxWidth = getMaxWidthOfChildren(legendGroup);\n legendGroup.select('.legend-background')\n .attr('height', legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.PADDING_TOP * 3)\n .attr('width', maxWidth + CLUSTER_MANAGEMENT_CONSTANTS.BACKGROUND_PADDING)\n .attr('rx', '6');\n };\n\n const getMaxWidthOfChildren = (parent) => {\n let maxWidth = 0;\n\n parent.selectAll(':not(.legend-background)').each(function () {\n const bbox = this.getBBox();\n maxWidth = Math.max(maxWidth, bbox.width);\n });\n\n return maxWidth;\n };\n\n /**\n * Adds title to <code>legendGroup</code>.\n * @param {*} legendGroup - the root group tag (<g>) of legend.\n * @param {string} labelKey\n *\n * @return {*}\n */\n const addTitle = (legendGroup, labelKey) => {\n return legendGroup\n .append('text')\n .attr('class', 'legend-title')\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT)\n .style('font-size', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_FONT_SIZE)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_FONT_WEIGHT)\n .style('line-height', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_LINE_HEIGHT)\n .text(function () {\n return translateAndSubscribe(this, labelKey);\n })\n .attr('y', () => {\n updateLegendDimensions();\n return legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.TITLE_PADDING_TOP;\n });\n };\n\n const translateAndSubscribe = (domElement, labelKey) => {\n subscriptions.push($rootScope.$on('$translateChangeSuccess', () => {\n d3.select(domElement).text($translate.instant(labelKey));\n updateLegendBackground();\n }));\n\n return $translate.instant(labelKey);\n };\n\n const removeAllListeners = () => {\n $document.off('keydown', closeDialog);\n subscriptions.forEach((subscription) => subscription());\n };\n\n const closeDialog = () => {\n $scope.hideLegend = true;\n legendGroup.classed('hidden-legend', $scope.hideLegend);\n };\n\n const onKeyDown = (event) => {\n if (event.key === 'Escape') {\n closeDialog();\n }\n };\n\n // =========================\n // Subscriptions functions\n // =========================\n $document.on('keydown', onKeyDown);\n subscriptions.push(ClusterViewContextService.onClusterViewD3ContainerUpdated(init));\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllListeners);\n\n init();\n }\n };\n}\n"],"names":["NodeState","LEADER","FOLLOWER","CANDIDATE","OUT_OF_SYNC_BLANK","CLUSTER_MANAGEMENT_CONSTANTS","getLegendNodes","legendNodes","push","nodeState","customText","forEach","node","index","id","getSyncStatuses","labelKey","classes","icon","getLegendLinks","links","status","LinkState","IN_SYNC","linkTypeKey","SYNCING","OUT_OF_SYNC","RECEIVING_SNAPSHOT","link","SVG_NODE_WIDTH","PADDING_LEFT","PADDING_TOP","TITLE_PADDING_TOP","TITLE_FONT_SIZE","TITLE_FONT_WEIGHT","TITLE_LINE_HEIGHT","LEGEND_ITEM_FONT_SIZE","LEGEND_ITEM_ICON_FONT_SIZE","LEGEND_ITEM_FONT_WEIGHT","LEGEND_ITEM_LINE_HEIGHT","LEGEND_ITEM_PADDING_LEFT","LEGEND_ITEMS_PADDING_TOP","LEGEND_ITEM_PADDING_TOP","BACKGROUND_PADDING","d3","line","select","clusterColors","ontoOrange","ontoBlue","ontoGreen","ontoGrey","linkStateColors","linkStateStyle","font","REMIXICON","ICOMOON","shortMessageLimit","createClusterSvgElement","element","append","classed","createClusterZone","parent","clusterZone","style","setCreateClusterZone","hasCluster","translationsMap","hasAccess","selectAll","remove","textGroup","attr","text","no_cluster_configured","create_cluster_btn","updateClusterZoneLabels","moveElement","x","y","createNodes","nodesDataBinding","nodeRadius","isLegend","nodeGroup","enter","nodeUpdateElements","merge","radius","_s32","Math","sqrt","points","data","createHexagon","exit","nodeElements","nodeTextHost","addHostnameToNodes","updateNodes","nodes","each","d","iconType","isEmpty","recoveryStatus","nodeStateIcons","getNodeIconType","state","iconMap","getNodeInfoIconType","this","updateNodesIcon","updateNodesClasses","labelNode","hostname","getBBox","width","height","updateNodesHostnameText","objectHeight","objectWidth","infoNode","parentNode","shortMessage","extractShortMessageFromNode","rect","calculateElementSizeByText","html","object","isShorten","message","length","displayMessage","truncatedSize","fullSize","on","addRecoveryLabelListeners","resizeLabelDynamic","updateNodesInfoText","RecoveryState","SEARCHING_FOR_NODE","WAITING_FOR_SNAPSHOT","APPLYING_SNAPSHOT","BUILDING_SNAPSHOT","SENDING_SNAPSHOT","RECOVERY_OPERATION_FAILURE_WARNING","NO_CONNECTION","READ_ONLY","RESTRICTED","substring","tmp","document","createElement","innerHTML","padding","position","visibility","fontSize","fontWeight","textAlign","whiteSpace","body","appendChild","getBoundingClientRect","removeChild","createLinks","linksDataBinding","updateLinks","replaceAll","setLinkColor","setLinkStyle","setArrowLink","ARROW_CONFIG","BIG","source","find","address","target","deltaX","deltaY","dist","normX","normY","sourceX","sourceY","targetX","targetY","getLinkCoordinates","SMALL","name","size","addArrowHead","svg","config","positionNodesOnClusterZone","clusterZoneX","clusterZoneY","clusterZoneRadius","theta","PI","cos","sin","removeEventListeners","NO_CLUSTER","TopologyState","PRIMARY_NODE","SECONDARY_NODE","clusterLegend","$rootScope","ClusterViewContextService","$translate","$document","restrict","templateUrl","scope","$scope","hideLegend","subscriptions","legendGroup","legendHeight","legendWidth","toggleLegend","init","clusterViewD3Container","getClusterViewD3Container","createLegendGroup","createLegendBackground","addNodeStates","addSyncStatus","addLinks","updateLegendDimensions","updateLegendBackground","addTitle","legendNodeData","legendNodesElements","CDS","i","translateAndSubscribe","syncStatusesGroups","rowY","Map","rowTop","set","labelOffsetY","get","linkStatesGroup","lineWidth","lineMidPoint","call","getMaxWidthOfChildren","maxWidth","bbox","max","domElement","$on","instant","closeDialog","event","key","onClusterViewD3ContainerUpdated","removeAllListeners","off","subscription","angular","module","directive","$inject"],"sourceRoot":""}
|