graphdb-workbench 3.3.2-TR1 → 3.3.2
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/13231.d7107e7549453805e13a.bundle.js +2 -0
- package/dist/13231.d7107e7549453805e13a.bundle.js.map +1 -0
- package/dist/{20694.a738f5634ec09369dc85.bundle.js → 20694.4becb7771236462dcc5a.bundle.js} +2 -2
- package/dist/20694.4becb7771236462dcc5a.bundle.js.map +1 -0
- package/dist/21015.ea34b563b4149ad0975e.bundle.js +2 -0
- package/dist/21015.ea34b563b4149ad0975e.bundle.js.map +1 -0
- package/dist/38644.0e8652c647a0f341abd7.bundle.js +2 -0
- package/dist/38644.0e8652c647a0f341abd7.bundle.js.map +1 -0
- package/dist/39518.4d72b74fffba395c6b2a.bundle.js +2 -0
- package/dist/{39518.2871b32c37b20075dba3.bundle.js.map → 39518.4d72b74fffba395c6b2a.bundle.js.map} +1 -1
- package/dist/39874.710e94f211579215f997.bundle.js +2 -0
- package/dist/39874.710e94f211579215f997.bundle.js.map +1 -0
- package/dist/60560.6ba1b091a34af6c00770.bundle.js +2 -0
- package/dist/60560.6ba1b091a34af6c00770.bundle.js.map +1 -0
- package/dist/67888.41803878170b6c7a5ca5.bundle.js +2 -0
- package/dist/67888.41803878170b6c7a5ca5.bundle.js.map +1 -0
- package/dist/7815.2aec5ebbcd434f5582ff.bundle.js +2 -0
- package/dist/7815.2aec5ebbcd434f5582ff.bundle.js.map +1 -0
- package/dist/78681.9e1d4e064e9e1fb5fb21.bundle.js +2 -0
- package/dist/78681.9e1d4e064e9e1fb5fb21.bundle.js.map +1 -0
- package/dist/{82926.99231caacc379c66487a.bundle.js → 82926.ce1d6bf65b09288a2b10.bundle.js} +2 -2
- package/dist/{82926.99231caacc379c66487a.bundle.js.map → 82926.ce1d6bf65b09288a2b10.bundle.js.map} +1 -1
- package/dist/94229.47dbdba202106c61dff1.bundle.js.map +1 -1
- package/dist/99448.2a87f387a8062617d893.bundle.js +2 -0
- package/dist/99448.2a87f387a8062617d893.bundle.js.map +1 -0
- package/dist/api/models/cookie/cookie-options.d.ts +17 -0
- package/dist/api/models/cookie/index.d.ts +1 -1
- package/dist/api/models/security/authenticated-user.d.ts +2 -0
- package/dist/api/models/tracking/cookie-consent.d.ts +39 -0
- package/dist/api/models/tracking/index.d.ts +1 -0
- package/dist/api/models/users/app-settings.d.ts +2 -2
- package/dist/api/ontotext-workbench-api.d.ts +3 -1
- package/dist/api/ontotext-workbench-api.js +1 -1
- package/dist/api/ontotext-workbench-api.js.map +1 -1
- package/dist/api/services/cookie/browser-cookie-store.d.ts +19 -0
- package/dist/api/services/cookie/cookie-builder.d.ts +77 -0
- package/dist/api/services/cookie/cookie-store.d.ts +16 -0
- package/dist/api/services/cookie/cookie.service.d.ts +34 -7
- package/dist/api/services/cookie/error/invalid-cookie-expiration.d.ts +8 -0
- package/dist/api/services/cookie/index.d.ts +3 -0
- package/dist/api/services/cookie/test/cookie-builder.spec.d.ts +1 -0
- package/dist/api/services/cookie/test/in-memory-cookie-store.d.ts +11 -0
- package/dist/api/services/security/auth-strategies/tests/provider-response-mocks.d.ts +2 -2
- package/dist/api/services/security/security-context.service.d.ts +6 -0
- package/dist/api/services/tracking/google-analytics-cookie.service.d.ts +50 -0
- package/dist/api/services/tracking/index.d.ts +4 -0
- package/dist/api/services/tracking/installation-cookie.service.d.ts +37 -0
- package/dist/api/services/tracking/test/tracking-storage.service.spec.d.ts +1 -0
- package/dist/api/services/tracking/test/tracking.service.spec.d.ts +1 -0
- package/dist/api/services/tracking/tracking-storage.service.d.ts +27 -0
- package/dist/api/services/tracking/tracking.service.d.ts +56 -0
- package/dist/api/services/users/response/user-response.d.ts +1 -1
- package/dist/api/services/utils/date-util.d.ts +11 -0
- package/dist/api/services/utils/index.d.ts +1 -0
- package/dist/api/services/window/window.service.d.ts +6 -0
- package/dist/assets/i18n/fr.json +1 -1
- 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 +2 -2
- 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 +2 -2
- 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 -2
- 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.40eba9e09196e1483221.js +3 -0
- package/dist/{legacyWorkbench.88e1d4d209e51c6f9b65.js.map → legacyWorkbench.40eba9e09196e1483221.js.map} +1 -1
- package/dist/license-checker-static.json +0 -7
- package/dist/{main.1be0fc11ab24b99f8800.js → main.14f083264cd64618d96a.js} +3 -3
- package/dist/main.14f083264cd64618d96a.js.map +1 -0
- package/dist/pages/aclmanagement.html +1 -1
- 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/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/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 +2 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger5/index.html +11 -11
- package/dist/shared-components/cjs/function-utils-WB47AWpR.js +1 -0
- package/dist/shared-components/cjs/loader.cjs.js +1 -1
- package/dist/shared-components/cjs/onto-cookie-consent_2.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-dialog_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-layout.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-test-context.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/shared-components.cjs.js +1 -1
- package/dist/shared-components/collection/components/dialogs/onto-cookie-policy-dialog/onto-cookie-policy-dialog.js +1 -1
- package/dist/shared-components/collection/components/dialogs/onto-dialog.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-cookie-consent/onto-cookie-consent.js +1 -1
- package/dist/shared-components/collection/components/onto-footer/onto-footer.js +1 -1
- package/dist/shared-components/esm/function-utils-D1ZpXQQS.js +1 -0
- package/dist/shared-components/esm/loader.js +1 -1
- package/dist/shared-components/esm/onto-cookie-consent_2.entry.js +1 -1
- package/dist/shared-components/esm/onto-dialog_2.entry.js +1 -1
- package/dist/shared-components/esm/onto-footer_5.entry.js +1 -1
- package/dist/shared-components/esm/onto-layout.entry.js +1 -1
- package/dist/shared-components/esm/onto-test-context.entry.js +1 -1
- package/dist/shared-components/esm/shared-components.js +1 -1
- package/dist/shared-components/shared-components/{p-279a026b.entry.js → p-5886e663.entry.js} +1 -1
- package/dist/shared-components/shared-components/p-598d33d7.entry.js +1 -0
- package/dist/shared-components/shared-components/p-6d34b2cb.entry.js +1 -0
- package/dist/shared-components/shared-components/p-74888633.entry.js +1 -0
- package/dist/shared-components/shared-components/p-D1ZpXQQS.js +1 -0
- package/dist/shared-components/shared-components/p-b5d4081d.entry.js +1 -0
- package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
- package/dist/shared-components/types/components/dialogs/onto-cookie-policy-dialog/onto-cookie-policy-dialog.d.ts +31 -7
- package/dist/shared-components/types/components/onto-cookie-consent/onto-cookie-consent.d.ts +2 -2
- package/dist/shared-components/types/components/onto-footer/onto-footer.d.ts +9 -2
- package/dist/shared-components/types/components.d.ts +17 -8
- package/dist/shared-components/types/models/dialog/dialog-handler.d.ts +4 -0
- package/package.json +1 -1
- package/dist/13231.9b625e487e6385faa36f.bundle.js +0 -2
- package/dist/13231.9b625e487e6385faa36f.bundle.js.map +0 -1
- package/dist/20694.a738f5634ec09369dc85.bundle.js.map +0 -1
- package/dist/21015.68c7c667ef64ad8e8e0d.bundle.js +0 -2
- package/dist/21015.68c7c667ef64ad8e8e0d.bundle.js.map +0 -1
- package/dist/38644.37a8cd71112da94401d9.bundle.js +0 -2
- package/dist/38644.37a8cd71112da94401d9.bundle.js.map +0 -1
- package/dist/39518.2871b32c37b20075dba3.bundle.js +0 -2
- package/dist/39874.47a6948df3520a7bf37a.bundle.js +0 -2
- package/dist/39874.47a6948df3520a7bf37a.bundle.js.map +0 -1
- package/dist/60560.275a89ab1375e91de0aa.bundle.js +0 -2
- package/dist/60560.275a89ab1375e91de0aa.bundle.js.map +0 -1
- package/dist/67888.b75d9678cf65cd82f065.bundle.js +0 -2
- package/dist/67888.b75d9678cf65cd82f065.bundle.js.map +0 -1
- package/dist/7815.f09f8d6953d2c964e04d.bundle.js +0 -2
- package/dist/7815.f09f8d6953d2c964e04d.bundle.js.map +0 -1
- package/dist/78681.0cfa1e86d4dac1b7e7e8.bundle.js +0 -2
- package/dist/78681.0cfa1e86d4dac1b7e7e8.bundle.js.map +0 -1
- package/dist/99448.272a4ba1ce8032167bea.bundle.js +0 -2
- package/dist/99448.272a4ba1ce8032167bea.bundle.js.map +0 -1
- package/dist/api/models/cookie/cookie-consent.d.ts +0 -14
- package/dist/legacyWorkbench.88e1d4d209e51c6f9b65.js +0 -3
- package/dist/main.1be0fc11ab24b99f8800.js.map +0 -1
- package/dist/shared-components/collection/models/dialog/onto-dialog.js +0 -1
- package/dist/shared-components/shared-components/p-2075209c.entry.js +0 -1
- package/dist/shared-components/shared-components/p-30e4880f.entry.js +0 -1
- package/dist/shared-components/shared-components/p-413b3789.entry.js +0 -1
- package/dist/shared-components/shared-components/p-67199a46.entry.js +0 -1
- package/dist/shared-components/types/models/dialog/onto-dialog.d.ts +0 -4
- /package/dist/{legacyWorkbench.88e1d4d209e51c6f9b65.js.LICENSE.txt → legacyWorkbench.40eba9e09196e1483221.js.LICENSE.txt} +0 -0
- /package/dist/{main.1be0fc11ab24b99f8800.js.LICENSE.txt → main.14f083264cd64618d96a.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"7815.2aec5ebbcd434f5582ff.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/shared-components/dist/esm/onto-footer_5.entry.js","webpack://root-config/./packages/shared-components/dist/esm/html-util-C8DO915D.js","webpack://root-config/./packages/shared-components/dist/esm/resource-search-constants-CapzAxJp.js"],"sourcesContent":["import { r as registerInstance, h, a as Host, c as createEvent, F as Fragment, g as getElement } from './index-CGqARDX4.js';\nimport { SubscriptionList, service, ProductInfoContextService, SecurityContextService, LicenseContextService, TrackingService, FibonacciGenerator, ServiceProvider, MonitoringService, RepositoryContextService, RepositoryLocationContextService, RepositoryService, OntoToastrService, NamespacesService, NamespacesContextService, LanguageService, AuthenticationService, AuthorizationService, EventService, ConfigurationContextService, RuntimeConfigurationContextService, isHomePage, getCurrentRoute, navigateTo, EventName, LanguageContextService, RepositoryList, WindowService, ObjectUtil, getPathName, UriUtil, REPOSITORY_ID_PARAM, openInNewTab, navigate } from '@ontotext/workbench-api';\nimport { L as LoggerProvider, T as TranslationService } from './translation.service-nljGIprK.js';\nimport { H as HtmlUtil } from './html-util-C8DO915D.js';\nimport { R as ResourceSearchConstants, D as DropdownItem } from './resource-search-constants-CapzAxJp.js';\nimport { T as TooltipUtil } from './tooltip-util-CzsgdbCC.js';\nimport './onto-tooltip-placement-D_J2-9CG.js';\n\nconst ontoFooterCss = () => `:host{display:block}.footer-component{padding-left:var(--main-content-rl-padding);height:1.875rem}`;\n\nconst OntoFooter = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /** List of subscriptions to manage component lifecycle */\n this.subscriptions = new SubscriptionList();\n /** Current year for copyright display */\n this.currentYear = new Date().getFullYear();\n this.productInfoContextService = service(ProductInfoContextService);\n this.securityContextService = service(SecurityContextService);\n this.licenseContextService = service(LicenseContextService);\n this.trackingService = service(TrackingService);\n }\n handleConsentGiven() {\n this.trackingService.acceptCookiePolicy()\n .then(() => this.shouldShowCookieConsent = false);\n }\n render() {\n var _a, _b, _c, _d;\n return (h(Host, { key: '3f96199693937a11390b2c72f33548c5398217d0' }, h(\"div\", { key: '9a08d6c8fdc0030e8e4acb1e6a7f1869ceae9c76', class: \"footer-component\" }, h(\"a\", { key: '34a0bf88e8a9ecb75c381816cfd97f0f39103a4f', href: \"http://graphdb.ontotext.com\", target: \"_blank\", rel: \"noopener noreferrer\" }, \"GraphDB\"), \"\\u00A0\", (_a = this.productInfo) === null || _a === void 0 ? void 0 :\n _a.productVersion, \" \\u2022\\u00A0\", h(\"a\", { key: 'cedb54fd1e5c8f44d3c2241606fba3786c2c6f08', href: \"http://rdf4j.org\", target: \"_blank\", rel: \"noopener noreferrer\" }, \"RDF4J\"), \"\\u00A0\", (_b = this.productInfo) === null || _b === void 0 ? void 0 :\n _b.sesame, \" \\u2022 Connectors \", (_c = this.productInfo) === null || _c === void 0 ? void 0 :\n _c.connectors, \" \\u2022 Workbench \", (_d = this.productInfo) === null || _d === void 0 ? void 0 :\n _d.workbench, \" \\u2022 \\u00A9 2002\\u2013\", this.currentYear, \"\\u00A0\", h(\"a\", { key: 'd5b24d86dcf3feb2178795d2018e8b093f862ade', href: \"http://ontotext.com\", target: \"_blank\", rel: \"noopener noreferrer\" }, \"Ontotext AD\"), \".\\u00A0\", h(\"translate-label\", { key: '4ac76d6de5e9999490eda3235ec204a82d1e456c', labelKey: 'footer.label.all_rights_reserved' })), this.shouldShowCookieConsent && h(\"onto-cookie-consent\", { key: 'a7c7a7d8432a4848ddde8f9651380d4520059fd3' })));\n }\n // ========================\n // Lifecycle methods\n // ========================\n connectedCallback() {\n this.subscribeToProductInfoChange();\n this.subscribeToUserChange();\n this.subscribeToLicenseChange();\n this.subscribeToUserLoginStatusChange();\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n subscribeToProductInfoChange() {\n this.subscriptions.add(this.productInfoContextService.onProductInfoChanged((productInfo) => {\n this.productInfo = productInfo;\n }));\n }\n subscribeToUserChange() {\n // TODO: move to cookieService, when the authenticatedUser is available synchronously\n this.subscriptions.add(this.securityContextService.onAuthenticatedUserChanged(() => {\n this.setCookieConsentVisibility();\n }));\n }\n subscribeToUserLoginStatusChange() {\n this.subscriptions.add(this.securityContextService.onUserLoginStatusChanged(() => {\n this.setCookieConsentVisibility();\n }));\n }\n /**\n * Determines whether the cookie consent banner should be shown based on the user's authentication status, license\n * type, and cookie consent status.\n * The banner is shown if the user has not accepted the cookie policy and either has free access or is logged in,\n * provided that tracking is allowed by the license. Otherwise, the banner is hidden.\n */\n setCookieConsentVisibility() {\n var _a, _b;\n if (!this.trackingService.isTrackingAllowed()) {\n this.shouldShowCookieConsent = false;\n return;\n }\n const isLoggedIn = this.securityContextService.getIsLoggedIn();\n const isFreeAccessEnabled = (_b = (_a = this.securityContextService.getSecurityConfig()) === null || _a === void 0 ? void 0 : _a.isFreeAccessEnabled()) !== null && _b !== void 0 ? _b : false;\n const cookieConsent = this.trackingService.getCookieConsent();\n if (cookieConsent) {\n this.shouldShowCookieConsent = !cookieConsent.policyAccepted && (isFreeAccessEnabled || isLoggedIn);\n }\n }\n subscribeToLicenseChange() {\n this.subscriptions.add(this.licenseContextService.onLicenseChanged(() => {\n this.setCookieConsentVisibility();\n }));\n }\n};\nOntoFooter.style = ontoFooterCss();\n\n/**\n *\n * A StencilJS functional component that renders a repository item in the repository selector dropdown. It displays the repository's\n * icon, ID, and location. If no location is specified, it shows \"Local\" as the default. This component also allows for\n * dynamic rendering of repository details as part of a list of selectable items.\n *\n * @example\n * <SelectorItemButton repository={repository}></>\n *\n */\nconst SelectorItemButton = ({ repository }) => {\n return (h(\"div\", { class: \"repository-selector-dropdown-item\" }, h(\"i\", { class: 'item-icon icon-repo-' + repository.type }), h(\"div\", { class: \"item-label\" }, h(\"div\", { class: \"repository-id\" }, repository.id), h(\"div\", { class: \"repository-location\" }, repository.location ? repository.location : 'Local'))));\n};\n\nconst ontoHeaderCss = () => `:host{display:block}.header-component{display:flex;gap:0.25em;padding:0.3em 1em;font-size:1.1em;background-color:var(--gw-topnav-background)}.header-component .left-section{display:flex;align-items:center;justify-content:center;margin-right:auto}.header-component .right-section{display:flex;align-items:center;justify-content:center;gap:0.3em}.header-component .big-logo{width:180px;height:50px;cursor:pointer}`;\n\nconst labelKeys$1 = {\n LOGO_LINK: 'menu.logo.link.title'\n};\nconst OntoHeader = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n // ========================\n // Services\n // ========================\n this.UPDATE_ACTIVE_OPERATION_TIME_INTERVAL = 2000;\n this.fibonacciGenerator = new FibonacciGenerator();\n this.monitoringService = ServiceProvider.get(MonitoringService);\n this.repositoryContextService = ServiceProvider.get(RepositoryContextService);\n this.repositoryLocationContextService = ServiceProvider.get(RepositoryLocationContextService);\n this.repositoryService = ServiceProvider.get(RepositoryService);\n this.securityContextService = ServiceProvider.get(SecurityContextService);\n this.toastrService = ServiceProvider.get(OntoToastrService);\n this.namespacesService = ServiceProvider.get(NamespacesService);\n this.namespaceContextService = ServiceProvider.get(NamespacesContextService);\n this.languageService = ServiceProvider.get(LanguageService);\n this.authService = ServiceProvider.get(AuthenticationService);\n this.authorizationService = ServiceProvider.get(AuthorizationService);\n this.eventService = ServiceProvider.get(EventService);\n this.configurationContextService = ServiceProvider.get(ConfigurationContextService);\n this.runtimeConfigurationContextService = ServiceProvider.get(RuntimeConfigurationContextService);\n this.logger = LoggerProvider.logger;\n /** Whether the search component should appear */\n this.shouldShowSearch = true;\n this.isHomePage = isHomePage();\n this.showUserMenu = false;\n this.showLoginButton = false;\n // ========================\n // Private\n // ========================\n this.isActiveLocationLoading = false;\n this.repositoryItems = [];\n /** Array of subscription cleanup functions */\n this.subscriptions = new SubscriptionList();\n this.skipUpdateActiveOperationsTimes = 0;\n this.labels = {\n [labelKeys$1.LOGO_LINK]: TranslationService.translate(labelKeys$1.LOGO_LINK)\n };\n this.canWriteRepo = (repo) => {\n return this.canWriteRepoInLocation(repo);\n };\n this.repositorySizeInfoFetcher = (repo) => {\n return this.repositoryService.getRepositorySizeInfo(repo);\n };\n this.showViewResourceMessage = (event) => {\n event.stopPropagation();\n this.toastrService.info(TranslationService.translate('rdf_search.toasts.use_view_resource'));\n this.shouldShowSearch = false;\n HtmlUtil.focusElement('#search-resource-input-home input');\n this.eventService.emit({ NAME: ResourceSearchConstants.RDF_SEARCH_ICON_CLICKED });\n };\n }\n // ========================\n // Lifecycle methods\n // ========================\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n this.stopOperationPolling();\n }\n connectedCallback() {\n this.currentRepository = this.repositoryContextService.getSelectedRepository();\n this.setupTotalRepositoryFormater();\n this.setupExpansionRatioFormater();\n this.subscribeToEvents();\n this.currentRoute = getCurrentRoute();\n this.startOperationPolling();\n this.onTranslate(labelKeys$1.LOGO_LINK);\n }\n render() {\n var _a, _b;\n return (h(Host, { key: '1a0ea30540103e48f24febbb1b019da6ec16fb54' }, h(\"div\", { key: '70c90aa8e0c4eca71330a5623d3faebe3d08bb89', class: \"header-component\" }, h(\"div\", { key: '30782ae29482fd29245adb62141dd77dec07e20e', class: \"left-section brand\" }, h(\"a\", { key: 'e7f7bff0928fd057806c9017dbe5ba61ec5767ee', class: \"home-page\", onClick: navigateTo('./') }, h(\"img\", { key: '1f1327dd2cd85fe3c6f7871f168205f4feefec2e', src: this.applicationLogoPath, class: \"big-logo\", alt: this.labels[labelKeys$1.LOGO_LINK] }))), h(\"div\", { key: 'e1cf9275d74d4216f795255e47b4f5243d794cf7', class: \"right-section\" }, h(\"onto-search-icon\", { key: '3fa41c9db75a0e1ccb386d2f9a824fe27e8fa19c', class: \"rdf-search-button\", onClick: this.showViewResourceMessage, \"data-test\": \"onto-show-view-resource-message\", style: { display: this.shouldShowSearch && this.isHomePage ? 'block' : 'none' } }), h(\"onto-rdf-search\", { key: '70c901d032cd529ee87ce797b55d29ad65565ec3', \"data-test\": \"onto-open-rdf-search-button\", style: { display: this.shouldShowSearch && !this.isHomePage ? 'block' : 'none' } }), ((_a = this.activeOperations) === null || _a === void 0 ? void 0 : _a.allRunningOperations.getItems().length)\n ? h(\"onto-operations-notification\", { activeOperations: this.activeOperations })\n : '', this.license && !((_b = this.license) === null || _b === void 0 ? void 0 : _b.valid) ?\n h(\"onto-license-alert\", { license: this.license }) : '', h(\"onto-repository-selector\", { key: 'ca880c7c438c32db63317d3447ddf89740ed273c', currentRepository: this.currentRepository, items: this.repositoryItems, repositorySizeInfoFetcher: this.repositorySizeInfoFetcher, totalTripletsFormatter: this.totalTripletsFormatter, expansionRatioFormatter: this.expansionRatioFormatter, canWriteRepo: this.canWriteRepo }), h(\"onto-language-selector\", { key: 'abc09868343581be4724d897fc5caa51cd7e3265', \"dropdown-alignment\": \"right\" }), this.showUserMenu && this.user ?\n h(\"onto-user-menu\", { user: this.user, securityConfig: this.securityConfig }) : '', this.showLoginButton ? h(\"onto-user-login\", null) : ''))));\n }\n // ========================\n // Subscriptions\n // ========================\n subscribeToEvents() {\n this.subscribeToSecurityContextChange();\n this.subscribeToRepositoryListChanged();\n this.subscribeToLicenseChange();\n this.subscribeToRepositoryChange();\n this.subscribeToActiveRepositoryLocationChange();\n this.subscribeToActiveRepoLoadingChange();\n this.subscribeToNavigationEnd();\n this.subscribeToLanguageChanged();\n this.subscribeToAuthenticatedUserChange();\n this.subscribeToThemeModeChange();\n }\n subscribeToThemeModeChange() {\n this.subscriptions.add(this.runtimeConfigurationContextService.onThemeModeChanged((themeMode) => {\n this.applicationLogoPath = this.configurationContextService.getApplicationLogoPath(themeMode);\n }));\n }\n subscribeToRepositoryListChanged() {\n return this.repositoryContextService.onRepositoryListChanged((repositories) => {\n if (!(repositories === null || repositories === void 0 ? void 0 : repositories.getItems().length)) {\n this.resetOnMissingRepositories();\n }\n else {\n this.initOnRepositoryListChanged(repositories);\n }\n });\n }\n subscribeToLicenseChange() {\n this.subscriptions.add(ServiceProvider.get(LicenseContextService)\n .onLicenseChanged((license) => {\n this.license = license;\n }));\n }\n subscribeToRepositoryChange() {\n this.subscriptions.add(this.repositoryContextService.onSelectedRepositoryChanged((repositoryReference) => {\n // The observer can receive a reference (having id and location), so we need to find the full repository object.\n this.currentRepository = this.repositoryContextService.findRepository(repositoryReference);\n this.shouldShowSearch = this.shouldShowRdfSearch();\n this.loadNamespaces();\n this.updateRepositoryItems();\n }));\n }\n subscribeToSecurityContextChange() {\n this.subscriptions.add(this.securityContextService.onSecurityConfigChanged((config) => {\n this.securityConfig = config;\n setTimeout(() => {\n this.updateVisibility();\n });\n }));\n }\n subscribeToAuthenticatedUserChange() {\n this.subscriptions.add(this.securityContextService.onAuthenticatedUserChanged((user) => {\n this.user = user;\n this.updateRepositoryItems();\n this.updateVisibility();\n }));\n }\n subscribeToActiveRepositoryLocationChange() {\n this.subscriptions.add(this.repositoryLocationContextService.onActiveLocationChanged(() => {\n this.shouldShowSearch = this.shouldShowRdfSearch();\n }));\n }\n subscribeToActiveRepoLoadingChange() {\n this.subscriptions.add(this.repositoryLocationContextService.onIsLoadingChanged((isLoading) => {\n this.isActiveLocationLoading = isLoading;\n this.shouldShowSearch = this.shouldShowRdfSearch();\n }));\n }\n subscribeToNavigationEnd() {\n this.subscriptions.add(this.eventService.subscribe(EventName.NAVIGATION_END, () => {\n this.shouldShowSearch = this.shouldShowRdfSearch();\n this.isHomePage = isHomePage();\n this.currentRoute = getCurrentRoute();\n this.updateVisibility();\n }));\n }\n subscribeToLanguageChanged() {\n this.subscriptions.add(ServiceProvider.get(LanguageContextService)\n .onSelectedLanguageChanged((language) => {\n this.setupTotalRepositoryFormater(language);\n this.setupExpansionRatioFormater(language);\n }));\n }\n onTranslate(key) {\n this.subscriptions.add(TranslationService.onTranslate(key, [], (translation) => {\n this.labels[key] = translation;\n }));\n }\n // ========================\n // Repository Logic\n // ========================\n resetOnMissingRepositories() {\n this.repositoryItems = [];\n this.repositoryList = new RepositoryList();\n this.currentRepository = undefined;\n }\n initOnRepositoryListChanged(repositories) {\n this.repositoryList = repositories;\n this.updateRepositoryItems();\n }\n updateRepositoryItems() {\n this.repositoryItems = this.getRepositoriesDropdownItems();\n }\n getRepositoriesDropdownItems() {\n var _a;\n if (!((_a = this.repositoryList) === null || _a === void 0 ? void 0 : _a.getItems().length)) {\n return [];\n }\n this.repositoryList.sortByLocationAndId();\n let repositories;\n if (this.currentRepository) {\n repositories = this.repositoryList.filterByRepository([this.currentRepository]);\n }\n else {\n repositories = this.repositoryList.getItems();\n }\n return repositories\n .filter((repository) => this.authorizationService.canReadRepo(repository) || this.authorizationService.canReadGqlRepo(repository))\n .map((repository) => {\n return new DropdownItem()\n .setName(h(SelectorItemButton, { repository: repository }))\n .setValue(repository)\n .setGuideSelector(`repository-id-${repository.id}`);\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n canWriteRepoInLocation(_repository) {\n // TODO: implement the condition when GDB-10442 is ready\n return true;\n }\n loadNamespaces() {\n if (!this.currentRepository || !this.authorizationService.canReadRepo(this.currentRepository)) {\n return;\n }\n // TODO: check why loaction not used maybe it is added in autorization interceptor\n this.namespacesService.getNamespaces(this.currentRepository.id)\n .then((namespaces) => this.namespaceContextService.updateNamespaces(namespaces));\n }\n updateVisibility() {\n var _a, _b, _c;\n const isSecurityEnabled = (_a = this.securityConfig) === null || _a === void 0 ? void 0 : _a.enabled;\n const isLoggedIn = this.authService.isLoggedIn();\n let isAuthenticated = false;\n try {\n isAuthenticated = this.authService.isAuthenticated();\n }\n catch (_d) {\n isAuthenticated = false;\n }\n const isFreeAccessEnabled = (_c = (_b = this.securityConfig) === null || _b === void 0 ? void 0 : _b.freeAccess) === null || _c === void 0 ? void 0 : _c.enabled;\n this.showLoginButton = isSecurityEnabled && isFreeAccessEnabled && !isLoggedIn && this.currentRoute !== 'login';\n this.showUserMenu = isSecurityEnabled && isAuthenticated && isLoggedIn;\n this.shouldShowSearch = this.shouldShowRdfSearch();\n }\n // ========================\n // Monitoring and pooling\n // ========================\n startOperationPolling() {\n clearInterval(this.pollingInterval);\n this.pollingInterval = WindowService.getWindow().setInterval(() => {\n if (!this.authService.isAuthenticated()) {\n this.activeOperations = undefined;\n return;\n }\n if (this.skipUpdateActiveOperationsTimes > 0) {\n // Requested to skip this run, the number of skips is a Fibonacci sequence when errors are consecutive.\n this.skipUpdateActiveOperationsTimes--;\n return;\n }\n if (!this.currentRepository) {\n return;\n }\n this.monitoringService\n .getOperations(this.currentRepository.id)\n .then((operations) => {\n if (!ObjectUtil.deepEqual(this.activeOperations, operations)) {\n this.activeOperations = operations;\n }\n this.fibonacciGenerator.reset();\n this.skipUpdateActiveOperationsTimes = 0;\n })\n .catch((error) => {\n this.logger.error('Error fetching active operations', error);\n this.activeOperations = undefined;\n this.skipUpdateActiveOperationsTimes = this.fibonacciGenerator.next();\n });\n }, this.UPDATE_ACTIVE_OPERATION_TIME_INTERVAL);\n }\n stopOperationPolling() {\n clearInterval(this.pollingInterval);\n this.activeOperations = undefined;\n }\n // ========================\n // Render logic\n // ========================\n shouldShowRdfSearch() {\n return !!this.currentRepository &&\n (!this.isActiveLocationLoading || getPathName() === '/repository') &&\n this.authorizationService.canReadRepo(this.currentRepository);\n }\n // ========================\n // Language, formatting\n // ========================\n setupTotalRepositoryFormater(language) {\n if (!language) {\n language = this.languageService.getDefaultLanguage();\n }\n this.totalTripletsFormatter = new Intl.NumberFormat(language, {\n style: 'decimal',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n }\n setupExpansionRatioFormater(language) {\n if (!language) {\n language = this.languageService.getDefaultLanguage();\n }\n this.expansionRatioFormatter = new Intl.NumberFormat(language, {\n style: 'decimal',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n });\n }\n};\nOntoHeader.style = ontoHeaderCss();\n\nconst ontoLoaderSvg = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZGR0Ij4KPHN2ZwogICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICAgICAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgICAgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgICAgICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4iCiAgICAgICAgdmlld0JveD0iMCAwIDUwIDUwIgogICAgICAgIGlkPSJzdmcyIgogICAgICAgIHZlcnNpb249IjEuMSIKICAgICAgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjAgcjk2NTQiCiAgICAgICAgc29kaXBvZGk6ZG9jbmFtZT0ibmFtZXN2Zy5zdmciPgogICAgPGNpcmNsZSBjeD0iMjEuNSIgY3k9IjcuNSIgcj0iMS41IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjBzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMS41OyAzOyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMzEiIGN5PSIxMCIgcj0iNCIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjE1cyIgdmFsdWVzPSI0OyA4OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0OyA0IgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIzNyIgY3k9IjE1IiByPSIyIiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjAuM3MiIHZhbHVlcz0iMjsgNDsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMjsgMiIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNDAuNSIgY3k9IjIzLjUiIHI9IjQuNSIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjQ1cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjQuNTsgOTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjU7IDQuNTsgNC41OyA0LjUiIGF0dHJpYnV0ZVR5cGU9IlhNTCIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjM5IiBjeT0iMzMiIHI9IjMiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMC42cyIgdmFsdWVzPSIzOyA2OyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIzNC41IiBjeT0iMzguNSIgcj0iMS41IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjAuNzVzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMS41OyAzOyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNTsgMS41OyAxLjU7IDEuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMjkiIGN5PSI0MiIgcj0iMiIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIwLjlzIiB2YWx1ZXM9IjI7IDQ7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDIiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjIxLjUiIGN5PSI0Mi41IiByPSIyLjUiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMS4wNXMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIyLjU7IDU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41IiBhdHRyaWJ1dGVUeXBlPSJYTUwiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjM5IiByPSI0IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuMnMiIHZhbHVlcz0iNDsgODsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNDsgNCIKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNyIgY3k9IjMyIiByPSIyIiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuMzVzIiB2YWx1ZXM9IjI7IDQ7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDI7IDIiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjUuNSIgY3k9IjI1LjUiIHI9IjIuNSIgZmlsbD0iI2ZmMzkwMCI+CiAgICAgICAgPGFuaW1hdGUgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMnMiIGJlZ2luPSIxLjVzIgogICAgICAgICAgICAgICAgIHZhbHVlcz0iMi41OyA1OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNTsgMi41OyAyLjU7IDIuNSIgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InIiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iOCIgY3k9IjE2IiByPSI0IiBmaWxsPSIjZmYzOTAwIj4KICAgICAgICA8YW5pbWF0ZSByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIycyIgYmVnaW49IjEuNjVzIiB2YWx1ZXM9IjQ7IDg7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQ7IDQiCiAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJyIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjE0IiBjeT0iMTAiIHI9IjMiIGZpbGw9IiNmZjM5MDAiPgogICAgICAgIDxhbmltYXRlIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjJzIiBiZWdpbj0iMS44cyIgdmFsdWVzPSIzOyA2OyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzOyAzIgogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0iciIvPgogICAgPC9jaXJjbGU+Cjwvc3ZnPgo=';\n\nconst ontoLoaderCss = () => `:host{display:block}:host .onto-loader{white-space:nowrap;width:fit-content}:host .onto-loader .loader-spinner{margin-left:auto;margin-right:auto}:host .onto-loader .loader-spinner circle{fill:var(--gw-loader-color)}:host .onto-loader .loader-message{text-align:center}`;\n\nconst OntoLoader = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * Size of the loader in pixels (width and height).\n */\n this.size = 100;\n /**\n * Optional message text to display below the loader.\n */\n this.messageText = '';\n this.rawSvg = atob(ontoLoaderSvg.split(',')[1]);\n }\n render() {\n return (h(Host, { key: 'f0eb18975fbbde62c4b50add16b772672a1fbb5b' }, h(\"div\", { key: 'c36d32d9d10e7fba7d9599a00046dbd78b846b78', class: \"onto-loader\", \"guide-selector\": \"onto-loader\" }, h(\"div\", { key: '950cb6d4fe083c94a4a03c4564d19becc43597ee', class: \"loader-spinner\", style: { 'width': this.size + 'px', 'height': this.size + 'px' }, innerHTML: this.rawSvg }), this.messageText && h(\"div\", { key: '2626f0e91e01349384cb0d963a39c6075972c4fd', class: \"loader-message\", style: { 'font-size': (this.size / 4) + 'px' } }, this.messageText))));\n }\n};\nOntoLoader.style = ontoLoaderCss();\n\n/**\n * Event fired when the navbar is toggled by the user.\n */\nclass NavbarToggledEvent {\n /**\n * Constructs the event.\n * @param isOpened - Whether the navbar is opened.\n */\n constructor(isOpened) {\n this.type = 'navbarToggled';\n this.payload = isOpened;\n }\n}\n\n/**\n * The UI model for the navbar component.\n */\nclass NavbarModel {\n /**\n * Creates a new instance of the navbar model.\n * @param items The model items. If no items are provided, the model will be empty by default.\n */\n constructor(items = []) {\n this._items = items;\n }\n hasParent(parentLabel) {\n return this._items.some((parentItem) => parentLabel === parentItem.label);\n }\n /**\n * Clones the model. This method is useful when the model needs to be modified without affecting the original model.\n * @return The cloned model.\n */\n getModel() {\n const cloneItem = (item) => {\n const clonedChildren = item.children.map(cloneItem);\n return new NavbarItemModel(Object.assign(Object.assign({}, item), { children: clonedChildren }));\n };\n return this._items.map(cloneItem);\n }\n /**\n * Adds a new top level item to the model. The sub menu items should be added separately as children before calling\n * this method.\n * @param item The item to be added.\n */\n addItem(item) {\n this._items.push(item);\n }\n /**\n * Returns the selected root item.\n * @return The selected root item or null if no item is selected.\n */\n getSelectedRootItem() {\n return this._items.find((item) => item.selected);\n }\n /**\n * Checks if the parent of the provided item is opened.\n * @param item The menu item for which the parent needs to be checked.\n * @return True if the parent is opened, false otherwise. If the item has no parent, the method returns false.\n */\n isParentOpened(item) {\n var _a;\n return !!((_a = this.getParentItem(item)) === null || _a === void 0 ? void 0 : _a.open);\n }\n /**\n * Returns the top level menu item with the given label.\n * @param parent The label of the top level menu item. Each menu item has a label which identifies it in the model.\n * The label comes from the main menu plugin definition and should be unique for each menu item.\n * @return The top level menu item or undefined if no item is found.\n */\n getTopLevelItem(parent) {\n return this._items.find((item) => item.label === parent);\n }\n /**\n * Returns the top level menu item with the same label as the parent property of the provided item.\n * @param item The menu item for which the parent is needed.\n * @return The parent menu item or undefined if no parent is found.\n */\n getParentItem(item) {\n return this._items.find((i) => i.label === item.parent);\n }\n /**\n * Deselects all menu items.\n */\n deselectAll() {\n this.walk((item) => {\n item.selected = false;\n });\n }\n /**\n * Closes all opened top level menu items.\n */\n closeAll() {\n this.walk((item) => {\n this.setOpen(item, false);\n });\n }\n /**\n * Deselects a top level menu item. When a menu item is selected it is highlighted in the UI.\n * @param item The top level menu item to be deselected.\n */\n deselectItem(item) {\n item.selected = false;\n }\n /**\n * Selects a top level menu item. When a menu item is selected it is highlighted in the UI.\n * @param item The top level menu item to be selected.\n */\n selectItem(item) {\n if (item.label) {\n item.selected = true;\n }\n else {\n this.selectItem(item.parentModel);\n }\n }\n /**\n * Checks if a top level menu item has a selected submenu.\n * @param item The top level menu item to be checked.\n * @return True if the top level menu item has a selected submenu, false otherwise.\n */\n hasSelectedSubmenu(item) {\n if (!item.children) {\n return false;\n }\n return item.children.some(child => this.hasSelection(child));\n }\n /**\n * Recursively checks if any submenu (child or nested) is selected.\n * @param {NavbarItemModel} item - The submenu item to check.\n * @return {boolean} True if selected, or if any descendant is selected.\n */\n hasSelection(item) {\n if (item.selected) {\n return true;\n }\n if (item.children) {\n return item.children.some(child => this.hasSelection(child));\n }\n return false;\n }\n /**\n * Marks an opened top level menu item as closed. If the item has a selected submenu, then the top level menu item\n * is marked as selected to indicate that the submenu is active.\n */\n closeOpened() {\n const opened = this._items.find((item) => item.open);\n if (opened) {\n if (this.hasSelectedSubmenu(opened)) {\n this.selectItem(opened);\n }\n this.setOpen(opened, false);\n }\n }\n /**\n * Opens a top level menu item and closes all other top level menu items.\n * @param item The top level menu item to be opened.\n */\n open(item) {\n this.walk((item) => {\n this.setOpen(item, false);\n });\n this.openItemAndParent(item);\n }\n openItemAndParent(item) {\n if (item.parentModel) {\n this.openItemAndParent(item.parentModel);\n }\n this.setOpen(item, true);\n }\n /**\n * Closes all top level menu items except the one that is the parent of the current item.\n * @param currentItem The current menu item.\n */\n closeOtherParents(currentItem) {\n const parent = currentItem.parent;\n this.walk((item) => {\n if (item.label !== parent) {\n this.setOpen(item, false);\n }\n });\n }\n /**\n * Sets the open state of a menu item.\n * @param item The menu item to be updated.\n * @param open The open state to be set.\n */\n setOpen(item, open) {\n item.open = open;\n }\n /**\n * Highlights the selected menu item by selecting its parent if it has one.\n * This is useful when the navbar is collapsed. This operation is the opposite of the unhighlightSelected method.\n */\n highlightSelected() {\n const selectedItem = this.getSelectedItem();\n if (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.hasParent) {\n this.selectItem(this.getParentItem(selectedItem));\n }\n }\n /**\n * Unhighlights the selected opened menu item if it has a submenu. This is useful when the navbar is going to be expanded.\n * This operation is the opposite of the highlightSelected method.\n */\n unhighlightSelected() {\n const selectedRootItem = this.getSelectedRootItem();\n if (selectedRootItem && selectedRootItem.children.length && selectedRootItem.open) {\n this.deselectItem(selectedRootItem);\n }\n }\n /**\n * Finds out the selected menu item. It can be a top level menu item or a submenu item.\n * @return The selected menu item or null if no item is selected.\n */\n getSelectedItem() {\n let selectedItem = null;\n const findSelected = (item) => {\n if (item.selected) {\n selectedItem = item;\n return true;\n }\n if (item.children) {\n for (const child of item.children) {\n if (findSelected(child)) {\n return true;\n }\n }\n }\n return false;\n };\n this._items.some(findSelected);\n return selectedItem;\n }\n expandSelected() {\n const selectedItem = this.getSelectedItem();\n if (selectedItem) {\n if (selectedItem.hasParent) {\n this.open(this.getParentItem(selectedItem));\n }\n else {\n this.open(selectedItem);\n }\n }\n }\n /**\n * Finds out the menu item by its href property and marks it as selected if it is a top level menu. If the menu item\n * is a sub menu, it marks its parent as opened and the sub menu item as selected.\n * @param selectedMenu The href of the menu item to be selected.\n */\n initSelected(selectedMenu) {\n this.walk((item) => {\n var _a;\n let path = selectedMenu;\n if ((_a = item.href) === null || _a === void 0 ? void 0 : _a.includes('*')) {\n path = this.getWildcardPath(selectedMenu, item.href);\n }\n // Remove query parameters from href before comparison because we have added them dynamically earlier.\n const separatorIndex = item.href.search(/[?]/);\n // If no separator is found, use the full length of the href.\n const cleanHref = separatorIndex === -1 ? item.href : item.href.substring(0, separatorIndex);\n if (path === cleanHref) {\n if (item.hasParent) {\n this.open(item);\n }\n this.selectItem(item);\n }\n });\n }\n /**\n * Compares a given path against a href pattern that may contain wildcards.\n * This function is used to match menu item hrefs that include wildcard segments.\n *\n * @param path - The actual path to compare against the href pattern.\n * @param href - The href pattern that may contain wildcards ('*').\n * @returns A string representing the matched path. If the path matches the href pattern,\n * it returns a version of the href where wildcards are preserved. If there's no match,\n * it returns the original path unchanged.\n */\n getWildcardPath(path, href) {\n const pathParts = path.split('/');\n const hrefParts = href.split('/');\n if (pathParts.length !== hrefParts.length) {\n return path; // Path and href have different number of segments, no match\n }\n const resultParts = [];\n for (let i = 0; i < hrefParts.length; i++) {\n if (hrefParts[i] === '*') {\n resultParts.push('*');\n }\n else if (hrefParts[i] !== pathParts[i]) {\n return path; // Mismatch in non-wildcard segment\n }\n else {\n resultParts.push(hrefParts[i]);\n }\n }\n return resultParts.join('/');\n }\n /**\n * Sorts the menu items by their order property.\n * @return {this} The sorted model.\n */\n sorted() {\n this._items\n .filter((item) => item.children)\n .forEach((item) => {\n item.children.sort(NavbarModel.compare);\n });\n this._items.sort(NavbarModel.compare);\n return this;\n }\n static compare(a, b) {\n return a.order - b.order;\n }\n /**\n * Walks recursively through the model and executes the provided callback for each item.\n * @param callback The callback to be executed for each item.\n */\n walk(callback) {\n this.walkRecursively(this.items, callback);\n }\n /**\n * Recursively walks through a list of navbar items and applies the callback.\n * @param items The items to walk through.\n * @param callback The callback to execute on each item.\n */\n walkRecursively(items, callback) {\n items.forEach((item) => {\n var _a;\n callback(item);\n if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {\n this.walkRecursively(item.children, callback);\n }\n });\n }\n get items() {\n return this._items;\n }\n}\n/**\n * The model for a single menu item.\n */\nclass NavbarItemModel {\n constructor(data) {\n var _a;\n this._selected = false;\n this._open = false;\n this._order = data.order;\n this._label = data.label;\n this._labelKey = data.labelKey;\n this._href = data.href;\n this._children = [...(_a = data.children) !== null && _a !== void 0 ? _a : []];\n this._hasParent = data.hasParent;\n this._parent = data.parent;\n this._selected = data.selected;\n this._open = data.open;\n this._documentationHref = data.documentationHref;\n this._hrefFun = data.hrefFun;\n this._editions = data.editions;\n this._icon = data.icon;\n this._role = data.role;\n this._guideSelector = data.guideSelector;\n this._testSelector = data.testSelector;\n this._shouldShow = data.shouldShow;\n this._parentModel = data.parentModel;\n }\n addChild(child) {\n this.children.push(child);\n child.setParent(this);\n }\n addChildren(...children) {\n children.forEach((child) => {\n this.addChild(child);\n });\n }\n /**\n * Determines whether the current menu item has submenus.\n * In this context, items with a href value of '#' are treated as parent items\n * and are expected to have submenus. This behavior is due to the fact that\n * all top-level items are registered with href set to '#' when added to the PluginRegistry.\n *\n * @returns {boolean} True if the item is a parent (has submenus), otherwise false.\n */\n hasSubmenus() {\n return this._href === '#';\n }\n get parent() {\n return this._parent;\n }\n set parent(value) {\n this._parent = value;\n }\n get order() {\n return this._order;\n }\n set order(value) {\n this._order = value;\n }\n get label() {\n return this._label;\n }\n set label(value) {\n this._label = value;\n }\n get labelKey() {\n return this._labelKey;\n }\n set labelKey(value) {\n this._labelKey = value;\n }\n get documentationHref() {\n return this._documentationHref;\n }\n set documentationHref(value) {\n this._documentationHref = value;\n }\n get href() {\n return this._href;\n }\n set href(value) {\n this._href = value;\n }\n get children() {\n return this._children;\n }\n set children(value) {\n this._children = value;\n }\n get hasParent() {\n return this._hasParent;\n }\n set hasParent(value) {\n this._hasParent = value;\n }\n get selected() {\n return this._selected;\n }\n set selected(value) {\n this._selected = value;\n }\n get open() {\n return this._open;\n }\n set open(value) {\n this._open = value;\n }\n get hrefFun() {\n return this._hrefFun;\n }\n set hrefFun(value) {\n this._hrefFun = value;\n }\n get editions() {\n return this._editions;\n }\n set editions(value) {\n this._editions = value;\n }\n get icon() {\n return this._icon;\n }\n set icon(value) {\n this._icon = value;\n }\n get role() {\n return this._role;\n }\n set role(value) {\n this._role = value;\n }\n get guideSelector() {\n return this._guideSelector;\n }\n set guideSelector(value) {\n this._guideSelector = value;\n }\n get testSelector() {\n return this._testSelector;\n }\n set testSelector(value) {\n this._testSelector = value;\n }\n get parentModel() {\n return this._parentModel;\n }\n set parentModel(value) {\n this._parentModel = value;\n }\n get shouldShow() {\n return this._shouldShow;\n }\n set shouldShow(value) {\n this._shouldShow = value;\n }\n setParent(parent) {\n this.parentModel = parent;\n this.hasParent = !!parent;\n }\n}\n\nconst logger = LoggerProvider.logger;\nclass NavbarService {\n /**\n * Maps external menu plugins to navbar model.\n * @param navbarPlugins Plugin definitions for the main menu.\n * @param productInfo The product info.\n * @param currentRepositoryId The current repository id.\n * @param repositoryIdParamName The name of the repository id query parameter.\n * @returns The navbar model.\n */\n static map(navbarPlugins, productInfo, currentRepositoryId, repositoryIdParamName) {\n const navbarModel = new NavbarModel();\n NavbarService.setTopLevelMenuItems(navbarPlugins, navbarModel, productInfo);\n NavbarService.setSubmenuItems(navbarPlugins, navbarModel, productInfo);\n if (currentRepositoryId) {\n NavbarService.addRepositoryIdToHrefAttributes(navbarModel, currentRepositoryId, repositoryIdParamName);\n }\n return navbarModel.sorted();\n }\n /**\n * Adds the current repositoryId as a query parameter to href attribute of each menu item which does not have children\n * or documentationHref (external link).\n * @param navbarModel The navbar model.\n * @param currentRepositoryId The current repository id.\n * @param repositoryIdParamName The name of the repository id query parameter.\n */\n static addRepositoryIdToHrefAttributes(navbarModel, currentRepositoryId, repositoryIdParamName) {\n navbarModel.items.forEach((item) => {\n const hasChildren = item.children && item.children.length > 0;\n if (!hasChildren) {\n item.href = `${item.href}?${repositoryIdParamName}=${currentRepositoryId}`;\n }\n else {\n item.children\n // External links don't need repositoryId param\n .filter((childItem) => !childItem.documentationHref)\n .forEach((childItem) => {\n childItem.href = `${childItem.href}?${repositoryIdParamName}=${currentRepositoryId}`;\n });\n }\n });\n }\n static setTopLevelMenuItems(navbarPlugins, navbarModel, productInfo) {\n navbarPlugins.forEach((menuPlugin) => {\n menuPlugin.items\n .filter((item) => !item.parent && item.shouldShow)\n .forEach((item) => {\n if (navbarModel.hasParent(item.label)) {\n logger.warn('Doubled parent definition: ', item);\n }\n else {\n navbarModel.addItem(this.toMenuItemModel(item, undefined, productInfo, item.children));\n }\n });\n });\n }\n static setSubmenuItems(navbarPlugins, navbarModel, productInfo) {\n navbarPlugins.forEach((menuPlugin) => {\n menuPlugin.items\n .filter((item) => item.parent && item.shouldShow)\n .forEach((item) => {\n const topLevelItem = navbarModel.getTopLevelItem(item.parent);\n // Some submenu items in the external menu model have children which is unusual.\n // I'm not sure if and where these children are used. For now, I'm ignoring them.\n topLevelItem === null || topLevelItem === void 0 ? void 0 : topLevelItem.addChildren(this.toMenuItemModel(item, topLevelItem, productInfo, item.children));\n });\n });\n }\n static toMenuItemModel(item, parent, productInfo, children = []) {\n let externalLink;\n if (item.documentationHref) {\n externalLink = UriUtil.resolveDocumentationUrl(productInfo === null || productInfo === void 0 ? void 0 : productInfo.shortVersion, item.documentationHref);\n }\n const itemModel = new NavbarItemModel({\n label: item.label,\n labelKey: item.labelKey,\n href: externalLink || item.href,\n documentationHref: item.documentationHref,\n hrefFun: item.hrefFun,\n order: item.order,\n role: item.role,\n editions: item.editions,\n icon: item.icon,\n guideSelector: item.guideSelector,\n hasParent: !!parent,\n parentModel: parent,\n parent: item.parent,\n selected: false,\n shouldShow: item.shouldShow,\n testSelector: item.testSelector,\n });\n const childrenModels = children.map((childrenItem) => this.toMenuItemModel(childrenItem, itemModel, productInfo, childrenItem.children));\n itemModel.addChildren(...childrenModels);\n return itemModel;\n }\n ;\n}\n\nconst ontoNavbarCss = () => `:host{display:block}.navbar-component{width:15rem;position:fixed;font-weight:400;z-index:1010;margin:0;padding:0;-moz-transition:width 0.2s ease-in;-o-transition:width 0.2s ease-in;-webkit-transition:width 0.2s ease-in;transition:width 0.2s ease-in;height:calc(100% - 60px);overflow-y:auto;overflow-x:hidden}@media screen and (max-height: 475px){.navbar-component.collapsed{position:absolute}}.navbar-component li{list-style:none;cursor:pointer}.navbar-component li a{text-decoration:none}.navbar-component li a.sub-menu-link:not([href=\"\"]):not([tabindex]):hover{text-decoration:none !important}.navbar-component .sub-menu-item a.sub-menu-link:not([href]) translate-label.menu-item{padding-right:3.5px}.navbar-component a.sub-menu-link:not([href]):hover .menu-item,.navbar-component a.sub-menu-link[href=\"\"]:hover .menu-item{text-decoration-line:underline !important}.navbar-component li .menu-element-root:hover,.navbar-component .sub-menu li:hover{text-decoration-line:none !important}.navbar-component li .menu-element-root:hover .menu-item-icon,.navbar-component .menu-element.open .menu-item-icon{transform:scale(1.1)}.navbar-component .menu-element.open .sub-menu .menu-item-icon{transform:scale(0.5)}.navbar-component .menu-element{position:relative}.navbar-component .menu-element-root{padding:0.8em 2.5em 0.8em 0.8em;display:block;line-height:2.5rem;position:relative;z-index:100;-moz-transition:all 0.18s ease-out;-o-transition:all 0.18s ease-out;-webkit-transition:all 0.18s ease-out;transition:all 0.18s ease-out;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.navbar-component .menu-item-icon{font-size:1.6rem;width:2.5rem;vertical-align:middle;text-align:center;transform:scale(0.9);display:inline-block;-moz-transition:all 0.18s ease-out;-o-transition:all 0.18s ease-out;-webkit-transition:all 0.18s ease-out;transition:all 0.18s ease-out;pointer-events:none}.navbar-component .menu-element-root .menu-item{pointer-events:none}.navbar-component :not(.brand) .menu-element-root{font-size:1.1rem}.navbar-component .brand a{display:block;position:relative;z-index:5}.navbar-component .sub-menu{position:relative;padding:0;z-index:110}.navbar-component .sub-menu li{display:none}.navbar-component .sub-menu li a{padding:0.5em 0.8em 0.5em 1.3em;display:block}.navbar-component .sub-menu li.active a{font-weight:500}.navbar-component .menu-element.open ul li{display:block}.navbar-component .menu-element ul:before{font-family:\"icomoon\", sans-serif !important;content:\"\\\\e91b\";display:block;font-size:1.5em;position:absolute;top:-3.3rem;right:1rem;-moz-transition:all 0.2s ease-in;-o-transition:all 0.2s ease-in;-webkit-transition:all 0.2s ease-in;transition:all 0.2s ease-in;pointer-events:none}.navbar-component .menu-element.open ul:before,.rdf-list ul.open.datasource:before{transform:rotate(90deg)}.navbar-component.collapsed{width:4.375rem;overflow:visible;height:auto}.navbar-component.collapsed .menu-element.open .sub-menu{position:absolute;top:0;left:4.375rem;width:15rem}.navbar-component.collapsed .menu-element .menu-item,.navbar-component.collapsed .menu-element .sub-menu li{display:none}.navbar-component.collapsed .menu-element.open .menu-item,.navbar-component.collapsed .menu-element.open .sub-menu li{display:block}.navbar-component.collapsed .menu-element.open .menu-element-root .menu-item{display:none}.navbar-component.collapsed .menu-element.open .sub-menu-item .sub-menu-link{background-color:var(--gw-sidenav-submenuitem-open-background)}.navbar-component.collapsed .menu-element-root{overflow:visible}.navbar-component .menu-element.open ul li.submenu-title,.navbar-component .submenu-title{display:none}.navbar-component.collapsed .menu-element.open ul li.submenu-title{display:block;font-size:1.2em;font-weight:500;text-overflow:ellipsis;overflow:hidden;padding:0.5em 0.8rem 0.7em 0.8rem;background-color:var(--gw-sidenav-submenuitem-open-background)}.navbar-component.collapsed .menu-element.open .sub-menu.align-bottom{bottom:0;top:auto}.navbar-component.collapsed .menu-element ul:before{display:none}.navbar-toggle{padding:0.3em 0}.toggle-menu{display:flex;flex-direction:column;align-items:flex-end;font-size:0.8em;line-height:1.5;padding:0 0.3em;z-index:101;cursor:pointer;background-color:var(--gw-sidenav-togglebutton-background);color:var(--gw-sidenav-togglebutton-color)}.toggle-menu:hover{color:var(--gw-sidenav-togglebutton-hover-color);background-color:var(--gw-sidenav-togglebutton-hover-background)}.toggle-menu [class^=icon-]{transition:all 0.2s ease-in;display:inline-block}.toggle-menu:hover [class^=icon-]{transform:scale(1.1)}.navbar-component{background-color:var(--gw-sidenav-background)}.navbar-component .menu-element .menu-element-root:not(.active){background-color:var(--gw-sidenav-menuitem-background);color:var(--gw-sidenav-menuitem-color)}.navbar-component .menu-element .menu-element-root .menu-item-icon,.navbar-component .menu-element .menu-element-root .menu-item{color:var(--gw-sidenav-menuitem-icon-color)}.navbar-component .menu-element .menu-element-root:hover,.navbar-component .menu-element .menu-element-root:hover .menu-item{background-color:var(--gw-sidenav-menuitem-hover-background);color:var(--gw-sidenav-menuitem-hover-color)}.navbar-component .menu-element .menu-element-root:hover .menu-item-icon{color:var(--gw-sidenav-menuitem-hover-icon-color)}.navbar-component .menu-element:not(.open):has(.menu-element-root.active){background-color:var(--gw-sidenav-menuitem-selected-background);color:var(--gw-sidenav-menuitem-selected-color);border-right:0.25em solid var(--gw-border-color-primary)}.navbar-component .menu-element .menu-element-root.active .menu-item,.navbar-component .menu-element .menu-element-root.active .menu-item-icon{color:var(--gw-sidenav-menuitem-selected-color)}.navbar-component .menu-element .menu-element-root.active .menu-item{color:var(--gw-sidenav-menuitem-selected-icon-color)}.navbar-component .menu-element.open,.navbar-component .menu-element.open .menu-element-root{background-color:var(--gw-sidenav-menuitem-open-background);color:var(--gw-sidenav-menuitem-open-color)}.navbar-component .menu-element:has(.menu-element-root.active) .menu-item-icon,.navbar-component .menu-element:has(.menu-element-root.active) .menu-item{color:var(--gw-sidenav-menuitem-selected-icon-color)}.navbar-component .menu-element .sub-menu-item .menu-item{color:var(--gw-sidenav-submenuitem-color);font-weight:400}.navbar-component .menu-element .sub-menu-item:hover .menu-item{color:var(--gw-sidenav-submenuitem-hover-color)}.navbar-component .menu-element .sub-menu-item.active{color:var(--gw-sidenav-submenuitem-selected-color);background-color:var(--gw-sidenav-submenuitem-selected-background);border-right:0.25em solid var(--gw-border-color-primary)}.navbar-component .menu-element .sub-menu-item.active .menu-item{color:var(--gw-sidenav-submenuitem-selected-color)}`;\n\nconst labelKeys = {\n EXPAND: 'menu.buttons.expand',\n COLLAPSE: 'menu.buttons.collapse',\n};\nconst OntoNavbar = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.navbarToggled = createEvent(this, \"navbarToggled\");\n this.productInfoContextService = service(ProductInfoContextService);\n this.repositoryContextService = service(RepositoryContextService);\n this.subscriptions = new SubscriptionList();\n this.resizeHandler = () => this.adjustAllSubmenus(this.hostElement);\n this.SUBMENU_VERTICAL_MARGIN = 8;\n this.MIN_SUBMENU_HEIGHT = 100;\n this.labels = {\n [labelKeys.EXPAND]: TranslationService.translate(labelKeys.EXPAND),\n [labelKeys.COLLAPSE]: TranslationService.translate(labelKeys.COLLAPSE),\n };\n /**\n * Flag indicating whether the navbar is collapsed in result of toggle action initiated by the user. This is needed\n * in cases where the browser window is resized which is an operation that should not override the user's choice\n * regarding the navbar collapsed state, e.g. if the user has manually collapsed the navbar and then resizes the\n * window, the navbar should remain collapsed.\n */\n this.isCollapsedByUser = false;\n this.isFirstRepositoryChange = true;\n /**\n * Controls the expanded/collapsed state of the navbar.\n */\n this.isCollapsed = false;\n }\n navbarCollapsedChange(collapsed) {\n this.isCollapsed = !collapsed;\n if (this.isCollapsed && !this.isCollapsedByUser) {\n this.expandNavbar();\n }\n else {\n this.collapseNavbar();\n }\n this.navbarToggled.emit(new NavbarToggledEvent(this.isCollapsed));\n }\n menuItemsChanged(menuItems) {\n this.init(menuItems);\n }\n init(menuItems) {\n const selectedRepository = this.repositoryContextService.getSelectedRepository();\n const internalModel = NavbarService.map(menuItems || [], this.productInfo, selectedRepository === null || selectedRepository === void 0 ? void 0 : selectedRepository.id, REPOSITORY_ID_PARAM);\n internalModel.initSelected(getCurrentRoute());\n this.menuModel = internalModel;\n }\n select(event, menuItem) {\n event.preventDefault();\n this.clearAllOpenedSubmenuStyles();\n // Skip navigation when the selected item is a parent menu because it has no associated navigation.\n if (!menuItem.hasSubmenus()) {\n if (event.ctrlKey) {\n openInNewTab(menuItem.href);\n }\n else {\n navigate(menuItem.href);\n }\n }\n if (menuItem.children.length) {\n if (!menuItem.open) {\n this.menuModel.closeOpened();\n this.menuModel.open(menuItem);\n if (this.menuModel.hasSelectedSubmenu(menuItem)) {\n this.menuModel.deselectItem(menuItem);\n }\n }\n else {\n this.menuModel.closeAll();\n if (this.menuModel.hasSelectedSubmenu(menuItem)) {\n this.menuModel.selectItem(menuItem);\n }\n }\n }\n else {\n this.menuModel.closeOtherParents(menuItem);\n }\n // When the navbar is collapsed then find if the selected item has active children and mark the item as selected\n // to allow it to be highlighted in the collapsed state.\n if (this.isCollapsed && this.menuModel.isParentOpened(menuItem)) {\n this.menuModel.closeOpened();\n }\n this.refreshNavbar();\n this.adjustAllSubmenus(this.hostElement);\n }\n subscribeToNavigationEnd() {\n this.subscriptions.add(ServiceProvider.get(EventService).subscribe(EventName.NAVIGATION_END, () => {\n this.selectItemByUrl();\n }));\n }\n selectItemByUrl() {\n if (!this.menuModel) {\n return;\n }\n this.menuModel.deselectAll();\n this.menuModel.closeAll();\n if (!isHomePage()) {\n this.menuModel.initSelected(getCurrentRoute());\n }\n this.refreshNavbar();\n this.adjustAllSubmenus(this.hostElement);\n }\n toggleNavbar() {\n if (!this.isCollapsed) {\n this.isCollapsedByUser = true;\n this.menuModel.highlightSelected();\n this.menuModel.closeOpened();\n this.collapseNavbar();\n this.clearAllOpenedSubmenuStyles();\n }\n else {\n this.isCollapsedByUser = false;\n this.menuModel.expandSelected();\n this.menuModel.unhighlightSelected();\n this.expandNavbar();\n this.clearAllOpenedSubmenuStyles();\n }\n this.refreshNavbar();\n this.adjustAllSubmenus(this.hostElement);\n this.navbarToggled.emit(new NavbarToggledEvent(this.isCollapsed));\n }\n collapseNavbar() {\n this.hostElement.querySelector('.navbar-component').classList.add('collapsed');\n this.isCollapsed = true;\n }\n expandNavbar() {\n if (!this.isCollapsedByUser) {\n this.hostElement.querySelector('.navbar-component').classList.remove('collapsed');\n this.isCollapsed = false;\n }\n }\n refreshNavbar() {\n var _a;\n if (!((_a = this.menuModel) === null || _a === void 0 ? void 0 : _a.items)) {\n return;\n }\n this.menuModel = new NavbarModel(this.menuModel.items);\n }\n onLanguageChanged() {\n this.refreshNavbar();\n }\n onTranslate(key) {\n this.subscriptions.add(TranslationService.onTranslate(key, [], (translation) => {\n this.labels[key] = translation;\n this.onLanguageChanged();\n }));\n }\n toggleNavbarHandler() {\n return () => this.toggleNavbar();\n }\n /**\n * Adjust the max height of a submenu to ensure it fits within the viewport.\n * The submenu will be positioned either below or above its parent menu item based on available space.\n * @param sub The submenu element to adjust.\n * @param margin Margin in pixels to apply when calculating available space. This ensures some space between the\n * submenu and the viewport edge.\n */\n adjustSubmenuMaxHeight(sub, margin = this.SUBMENU_VERTICAL_MARGIN) {\n if (!sub || typeof sub.getBoundingClientRect !== 'function') {\n return;\n }\n const parentElement = sub.closest('.menu-element');\n if (!parentElement) {\n return;\n }\n const subRect = sub.getBoundingClientRect();\n const parentRect = parentElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n // Calculate available space above and below the parent menu item\n const spaceAbove = parentRect.top - margin + parentRect.height;\n const spaceBelow = viewportHeight - parentRect.bottom + parentRect.height - margin;\n // Determine optimal positioning and max height\n let maxHeight;\n let shouldAlignBottom = false;\n if (spaceBelow >= subRect.height) {\n // Enough space below - align to top of parent\n maxHeight = spaceBelow;\n }\n else if (spaceAbove >= subRect.height) {\n // Not enough space below but enough above - align to bottom of parent\n maxHeight = spaceAbove;\n shouldAlignBottom = true;\n }\n else {\n // Not enough space in either direction - use larger space and make scrollable\n if (spaceBelow > spaceAbove) {\n maxHeight = spaceBelow;\n shouldAlignBottom = false;\n }\n else {\n maxHeight = spaceAbove;\n shouldAlignBottom = true;\n }\n }\n // Apply positioning\n if (shouldAlignBottom) {\n sub.style.bottom = '0';\n sub.style.top = 'auto';\n }\n else {\n sub.style.top = '0';\n sub.style.bottom = 'auto';\n }\n sub.style.maxHeight = `${Math.max(this.MIN_SUBMENU_HEIGHT, maxHeight)}px`;\n sub.style.overflowY = 'auto';\n }\n /**\n * Adjust all submenus that are currently open.\n * @param host The host element containing the navbar.\n * @param margin Margin in pixels to apply when calculating available space. This ensures some space between the\n * submenu and the viewport edge.\n */\n adjustAllSubmenus(host, margin = this.SUBMENU_VERTICAL_MARGIN) {\n // run after paint so DOM is in final state\n requestAnimationFrame(() => {\n if (!host || typeof host.querySelectorAll !== 'function') {\n return;\n }\n this.getAllOpenedSubmenus(host).forEach((s) => this.adjustSubmenuMaxHeight(s, margin));\n });\n }\n getAllOpenedSubmenus(host) {\n return Array.from(host.querySelectorAll('.navbar-component.collapsed .menu-element.open .sub-menu'));\n }\n getAllSubmenus(host) {\n return Array.from(host.querySelectorAll('.navbar-component .menu-element .sub-menu'));\n }\n clearAllOpenedSubmenuStyles() {\n this.getAllSubmenus(this.hostElement).forEach((s) => {\n s.style.maxHeight = '';\n s.style.overflowY = '';\n s.style.top = '';\n s.style.bottom = '';\n });\n }\n // ========================\n // Lifecycle methods\n // ========================\n componentWillLoad() {\n this.init(this.menuItems);\n }\n connectedCallback() {\n this.subscribeToNavigationEnd();\n this.subscribeToProductInfoChanges();\n this.subscribeToRepositoryChange();\n // subscribe to language change events for each label\n this.onTranslate(labelKeys.EXPAND);\n this.onTranslate(labelKeys.COLLAPSE);\n window.addEventListener('resize', this.resizeHandler);\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n window.removeEventListener('resize', this.resizeHandler);\n }\n handleSelectMenuItem(item) {\n return (event) => {\n this.select(event, item);\n };\n }\n render() {\n if (!this.menuModel) {\n return;\n }\n return (h(Host, null, h(\"ul\", { class: \"navbar-component\" }, h(\"li\", { class: \"navbar-toggle\" }, h(\"a\", { class: \"toggle-menu no-underline\", title: this.isCollapsed ? this.labels[labelKeys.EXPAND] : this.labels[labelKeys.COLLAPSE], onClick: this.toggleNavbarHandler() }, h(\"em\", { class: this.isCollapsed ? 'ri-arrow-right-s-line' : 'ri-arrow-left-s-line' }))), this.menuModel.items.map((item) => (h(\"li\", { key: item.labelKey, class: { 'menu-element': true, 'open': item.open }, \"data-test\": item.testSelector, \"guide-selector\": item.guideSelector }, item.children.length > 0 &&\n h(Fragment, null, h(\"div\", { class: { 'menu-element-root': true, 'active': item.selected }, onClick: this.handleSelectMenuItem(item) }, h(\"span\", { class: `menu-item-icon ${item.icon}` }), \"\\u00A0\", h(\"translate-label\", { class: \"menu-item\", labelKey: item.labelKey })), h(\"ul\", { class: \"sub-menu\" }, h(\"li\", { key: item.labelKey, class: \"submenu-title\" }, h(\"translate-label\", { labelKey: item.labelKey })), item.children.map((submenu) => (h(\"li\", { key: submenu.labelKey, class: { 'sub-menu-item': true, 'active': submenu.selected }, \"data-test\": submenu.testSelector, \"guide-selector\": submenu.guideSelector }, submenu.documentationHref ?\n h(\"a\", { class: \"sub-menu-link external-link\", href: submenu.href, target: \"_blank\", rel: \"noopener noreferrer\" }, h(\"translate-label\", { class: \"menu-item\", labelKey: submenu.labelKey }), submenu.icon &&\n h(\"span\", { class: `text-muted ${submenu.icon}` }))\n :\n h(\"a\", { class: \"sub-menu-link\", href: submenu.href, onClick: this.handleSelectMenuItem(submenu) }, h(\"translate-label\", { class: \"menu-item\", labelKey: submenu.labelKey }), submenu.icon &&\n h(\"span\", { class: `text-muted ${submenu.icon}` }))))))), item.children.length === 0 &&\n h(\"a\", { class: { 'menu-element-root': true, 'active': item.selected }, href: item.href, onClick: this.handleSelectMenuItem(item) }, h(\"span\", { class: `menu-item-icon ${item.icon}` }), \"\\u00A0\", h(\"translate-label\", { class: \"menu-item\", labelKey: item.labelKey }))))))));\n }\n subscribeToProductInfoChanges() {\n this.subscriptions.add(this.productInfoContextService.onProductInfoChanged((productInfo) => this.productInfo = productInfo));\n }\n subscribeToRepositoryChange() {\n this.subscriptions.add(this.repositoryContextService.onSelectedRepositoryChanged(() => {\n if (this.isFirstRepositoryChange) {\n this.isFirstRepositoryChange = false;\n return;\n }\n this.init(this.menuItems);\n }));\n }\n get hostElement() { return getElement(this); }\n static get watchers() { return {\n \"navbarCollapsed\": [{\n \"navbarCollapsedChange\": 0\n }],\n \"menuItems\": [{\n \"menuItemsChanged\": 0\n }]\n }; }\n};\nOntoNavbar.style = ontoNavbarCss();\n\nconst ontoTooltipCss = () => `:host{display:block}.tooltip-box{width:max-content;font-size:0.875rem;font-weight:400;line-height:1.5;max-width:var(--gw-tooltip-max-width);pointer-events:auto;opacity:1 !important;color:var(--gw-tooltip-color) !important;background-color:var(--gw-tooltip-background) !important;border-radius:var(--gw-tooltip-border-radius) !important}.tooltip-box .tooltip-arrow{width:10px;height:10px}.tooltip-box .tooltip-arrow::before{content:\"\";position:absolute;width:10px;height:10px;background-color:var(--gw-tooltip-background);transform:rotate(45deg)}.tooltip-box .tooltip-arrow[data-placement=top]::before{border-bottom-color:transparent;border-right-color:transparent}.tooltip-box .tooltip-arrow[data-placement=bottom]::before{border-top-color:transparent;border-left-color:transparent}.tooltip-box .tooltip-arrow[data-placement=right]::before{border-bottom-color:transparent;border-left-color:transparent}.tooltip-box .tooltip-arrow[data-placement=left]::before{border-top-color:transparent;border-right-color:transparent}.tooltip-box .tooltip-content{position:relative;z-index:1;padding:var(--gw-tooltip-padding)}`;\n\nconst OntoTooltip = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * Clears tooltips associated with elements that have been removed from the DOM.\n *\n * @param records - An array of MutationRecord objects, each representing a change to the DOM tree.\n * The function iterates over these records to find and clear tooltips for removed nodes.\n */\n this.clearTooltipsForRemovedElements = (records) => {\n for (const record of records) {\n for (const node of Array.from(record.removedNodes)) {\n if (this.removeTooltipFromNode(node)) {\n // stop iterating if a tooltip is found and destroyed,\n // since we can't have more than one tooltip\n return;\n }\n }\n }\n };\n /**\n * Recursively removes tooltips from a given node and its children.\n *\n * This function checks if the given node is an HTMLElement and has an associated tooltip.\n * If a tooltip is found, it is destroyed. If not, the function then recursively checks all child nodes.\n *\n * @param node - The DOM node to check for tooltips.\n * @returns A boolean indicating whether a tooltip was found and destroyed (true) or not (false).\n */\n this.removeTooltipFromNode = (node) => {\n if (node instanceof HTMLElement) {\n const tooltipInstance = TooltipUtil.getTooltipInstance(node);\n if (tooltipInstance) {\n TooltipUtil.destroyTooltip(node);\n return true;\n }\n node.childNodes.forEach(this.removeTooltipFromNode);\n }\n return false;\n };\n }\n /**\n * Checks if the target of the 'mouseover' event has tooltip configuration.\n * If it does, creates a tooltip instance and displays it.\n *\n * @param event - The 'mouseover' event triggered on a document element.\n */\n onMouseover(event) {\n const target = TooltipUtil.getTooltipTarget(event.target);\n if (target) {\n this.handleTooltipTargetShow(target);\n }\n const tooltip = TooltipUtil.getTooltip(event.target);\n if (tooltip) {\n this.handleTooltipShow(tooltip);\n }\n }\n handleTooltipShow(tooltip) {\n const tooltipTarget = tooltip.tooltipTarget;\n if (!tooltipTarget) {\n return;\n }\n this.handleTooltipTargetShow(tooltipTarget);\n }\n handleTooltipTargetShow(tooltipTarget) {\n const tooltipInstance = TooltipUtil.getOrCreateTooltipInstance(tooltipTarget);\n tooltipInstance.show();\n }\n /**\n * Destroys the tooltip if it is present.\n *\n * @param event - The 'mouseout' event triggered on a document element.\n */\n onMouseout(event) {\n const target = TooltipUtil.getTooltipTarget(event.target);\n if (target) {\n this.handleTooltipTargetHide(target, event.relatedTarget);\n }\n const tooltip = TooltipUtil.getTooltip(event.target);\n if (tooltip) {\n this.handleTooltipHide(tooltip, event.relatedTarget);\n }\n }\n handleTooltipHide(tooltip, relatedTarget) {\n const tooltipTarget = tooltip.tooltipTarget;\n if (!tooltipTarget) {\n return;\n }\n if (!relatedTarget || !tooltip.contains(relatedTarget)) {\n this.handleTooltipTargetHide(tooltipTarget, relatedTarget);\n }\n }\n handleTooltipTargetHide(tooltipTarget, relatedTarget) {\n // Ensure the mouse is completely outside the target and its children\n if (!relatedTarget || !(tooltipTarget === null || tooltipTarget === void 0 ? void 0 : tooltipTarget.contains(relatedTarget))) {\n const tooltipInstance = TooltipUtil.getTooltipInstance(tooltipTarget);\n if (tooltipInstance) {\n TooltipUtil.destroyTooltip(tooltipTarget);\n }\n }\n }\n connectedCallback() {\n this.handleRemovedNodes();\n }\n disconnectedCallback() {\n var _a;\n (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n render() {\n return h(Host, { key: '341f9ff6313750adc5b8583a8fa3e3ed8c2f98d9' });\n }\n /**\n * Initializes a MutationObserver to monitor the document body for removed nodes.\n * When nodes are removed, it triggers the clearing of tooltips associated with those nodes.\n */\n handleRemovedNodes() {\n this.observer = new MutationObserver(this.clearTooltipsForRemovedElements);\n this.observer.observe(document.body, { childList: true, subtree: true });\n }\n};\nOntoTooltip.style = ontoTooltipCss();\n\nexport { OntoFooter as onto_footer, OntoHeader as onto_header, OntoLoader as onto_loader, OntoNavbar as onto_navbar, OntoTooltip as onto_tooltip };\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","/**\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":["OntoFooter","constructor","hostRef","registerInstance","this","subscriptions","SubscriptionList","currentYear","Date","getFullYear","productInfoContextService","service","ProductInfoContextService","securityContextService","SecurityContextService","licenseContextService","LicenseContextService","trackingService","TrackingService","handleConsentGiven","acceptCookiePolicy","then","shouldShowCookieConsent","render","_a","_b","_c","_d","h","Host","key","class","href","target","rel","productInfo","productVersion","sesame","connectors","workbench","labelKey","connectedCallback","subscribeToProductInfoChange","subscribeToUserChange","subscribeToLicenseChange","subscribeToUserLoginStatusChange","disconnectedCallback","unsubscribeAll","add","onProductInfoChanged","onAuthenticatedUserChanged","setCookieConsentVisibility","onUserLoginStatusChanged","isTrackingAllowed","isLoggedIn","getIsLoggedIn","isFreeAccessEnabled","getSecurityConfig","cookieConsent","getCookieConsent","policyAccepted","onLicenseChanged","style","SelectorItemButton","repository","type","id","location","labelKeys$1","OntoHeader","UPDATE_ACTIVE_OPERATION_TIME_INTERVAL","fibonacciGenerator","FibonacciGenerator","monitoringService","ServiceProvider","get","MonitoringService","repositoryContextService","RepositoryContextService","repositoryLocationContextService","RepositoryLocationContextService","repositoryService","RepositoryService","toastrService","OntoToastrService","namespacesService","NamespacesService","namespaceContextService","NamespacesContextService","languageService","LanguageService","authService","AuthenticationService","authorizationService","AuthorizationService","eventService","EventService","configurationContextService","ConfigurationContextService","runtimeConfigurationContextService","RuntimeConfigurationContextService","logger","LoggerProvider","shouldShowSearch","isHomePage","showUserMenu","showLoginButton","isActiveLocationLoading","repositoryItems","skipUpdateActiveOperationsTimes","labels","TranslationService","translate","canWriteRepo","repo","canWriteRepoInLocation","repositorySizeInfoFetcher","getRepositorySizeInfo","showViewResourceMessage","event","stopPropagation","info","HtmlUtil","focusElement","emit","NAME","ResourceSearchConstants","RDF_SEARCH_ICON_CLICKED","stopOperationPolling","currentRepository","getSelectedRepository","setupTotalRepositoryFormater","setupExpansionRatioFormater","subscribeToEvents","currentRoute","getCurrentRoute","startOperationPolling","onTranslate","onClick","navigateTo","src","applicationLogoPath","alt","display","activeOperations","allRunningOperations","getItems","length","license","valid","items","totalTripletsFormatter","expansionRatioFormatter","user","securityConfig","subscribeToSecurityContextChange","subscribeToRepositoryListChanged","subscribeToRepositoryChange","subscribeToActiveRepositoryLocationChange","subscribeToActiveRepoLoadingChange","subscribeToNavigationEnd","subscribeToLanguageChanged","subscribeToAuthenticatedUserChange","subscribeToThemeModeChange","onThemeModeChanged","themeMode","getApplicationLogoPath","onRepositoryListChanged","repositories","initOnRepositoryListChanged","resetOnMissingRepositories","onSelectedRepositoryChanged","repositoryReference","findRepository","shouldShowRdfSearch","loadNamespaces","updateRepositoryItems","onSecurityConfigChanged","config","setTimeout","updateVisibility","onActiveLocationChanged","onIsLoadingChanged","isLoading","subscribe","EventName","NAVIGATION_END","LanguageContextService","onSelectedLanguageChanged","language","translation","repositoryList","RepositoryList","undefined","getRepositoriesDropdownItems","sortByLocationAndId","filterByRepository","filter","canReadRepo","canReadGqlRepo","map","DropdownItem","setName","setValue","setGuideSelector","_repository","getNamespaces","namespaces","updateNamespaces","isSecurityEnabled","enabled","isAuthenticated","freeAccess","clearInterval","pollingInterval","WindowService","getWindow","setInterval","getOperations","operations","ObjectUtil","deepEqual","reset","catch","error","next","getPathName","getDefaultLanguage","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","OntoLoader","size","messageText","rawSvg","atob","split","innerHTML","NavbarToggledEvent","isOpened","payload","NavbarModel","_items","hasParent","parentLabel","some","parentItem","label","getModel","cloneItem","item","clonedChildren","children","NavbarItemModel","Object","assign","addItem","push","getSelectedRootItem","find","selected","isParentOpened","getParentItem","open","getTopLevelItem","parent","i","deselectAll","walk","closeAll","setOpen","deselectItem","selectItem","parentModel","hasSelectedSubmenu","child","hasSelection","closeOpened","opened","openItemAndParent","closeOtherParents","currentItem","highlightSelected","selectedItem","getSelectedItem","unhighlightSelected","selectedRootItem","findSelected","expandSelected","initSelected","selectedMenu","path","includes","getWildcardPath","separatorIndex","search","substring","pathParts","hrefParts","resultParts","join","sorted","forEach","sort","compare","a","b","order","callback","walkRecursively","data","_selected","_open","_order","_label","_labelKey","_href","_children","_hasParent","_parent","_documentationHref","documentationHref","_hrefFun","hrefFun","_editions","editions","_icon","icon","_role","role","_guideSelector","guideSelector","_testSelector","testSelector","_shouldShow","shouldShow","_parentModel","addChild","setParent","addChildren","hasSubmenus","value","NavbarService","navbarPlugins","currentRepositoryId","repositoryIdParamName","navbarModel","setTopLevelMenuItems","setSubmenuItems","addRepositoryIdToHrefAttributes","childItem","menuPlugin","warn","toMenuItemModel","topLevelItem","externalLink","UriUtil","resolveDocumentationUrl","shortVersion","itemModel","childrenModels","childrenItem","labelKeys","OntoNavbar","navbarToggled","createEvent","resizeHandler","adjustAllSubmenus","hostElement","SUBMENU_VERTICAL_MARGIN","MIN_SUBMENU_HEIGHT","isCollapsedByUser","isFirstRepositoryChange","isCollapsed","navbarCollapsedChange","collapsed","expandNavbar","collapseNavbar","menuItemsChanged","menuItems","init","selectedRepository","internalModel","REPOSITORY_ID_PARAM","menuModel","select","menuItem","preventDefault","clearAllOpenedSubmenuStyles","ctrlKey","openInNewTab","navigate","refreshNavbar","selectItemByUrl","toggleNavbar","querySelector","classList","remove","onLanguageChanged","toggleNavbarHandler","adjustSubmenuMaxHeight","sub","margin","getBoundingClientRect","parentElement","closest","subRect","parentRect","viewportHeight","window","innerHeight","spaceAbove","top","height","spaceBelow","bottom","maxHeight","shouldAlignBottom","Math","max","overflowY","host","requestAnimationFrame","querySelectorAll","getAllOpenedSubmenus","s","Array","from","getAllSubmenus","componentWillLoad","subscribeToProductInfoChanges","addEventListener","removeEventListener","handleSelectMenuItem","title","Fragment","submenu","getElement","watchers","OntoTooltip","clearTooltipsForRemovedElements","records","record","node","removedNodes","removeTooltipFromNode","HTMLElement","TooltipUtil","getTooltipInstance","destroyTooltip","childNodes","onMouseover","getTooltipTarget","handleTooltipTargetShow","tooltip","getTooltip","handleTooltipShow","tooltipTarget","getOrCreateTooltipInstance","show","onMouseout","handleTooltipTargetHide","relatedTarget","handleTooltipHide","contains","handleRemovedNodes","observer","disconnect","MutationObserver","observe","document","body","childList","subtree","INTERACTIVE_ELEMENTS_SELECTOR","setDocumentBodyOverflow","newOverflow","oldOverflow","overflow","hideDocumentBodyOverflow","focusNextElement","activeElementSelector","focusableElements","currentIndex","indexOf","activeElement","nextActiveElement","focus","focusPreviousElement","previousActiveElement","preventLeavingDialog","ev","shiftKey","selector","element","scrollElementIntoView","elementSelector","options","block","scrollIntoView","waitForElement","Promise","resolve","reject","attributes","_dropdownTooltipTrigger","name","_name","nameLabelKey","_nameLabelKey","setNameLabelKey","_tooltip","setTooltip","tooltipLabelKey","_tooltipLabelKey","setTooltipLabelKey","iconClass","_iconClass","setIconClass","_value","dropdownTooltipTrigger","setDropdownTooltipTrigger","cssClass","_cssClass","setCssClass"],"ignoreList":[],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_esm_id__=78681;export const __webpack_esm_ids__=[78681];export const __webpack_esm_modules__={44123(e,t,n){var o;n.d(t,{O:()=>o}),function(e){e.LEFT="left",e.RIGHT="right",e.TOP="top",e.BOTTOM="bottom",e.AUTO="auto"}(o||(o={}))},78681(e,t,n){n.r(t),n.d(t,{onto_dialog:()=>r,onto_toggle_switch:()=>g});var o=n(55508),s=n(81491),a=n(79939),i=n(44123);n(57154);const r=class{constructor(e){(0,o.r)(this,e),this.handleClose=e=>{this.config.onClose(e)}}componentDidLoad(){this.documentOverflow=s.H.hideDocumentBodyOverflow(),this.hostElement.addEventListener("keydown",this.preventLeavingDialog.bind(this)),this.closeButton.focus()}disconnectedCallback(){this.hostElement.removeEventListener("keydown",this.preventLeavingDialog.bind(this)),s.H.setDocumentBodyOverflow(this.documentOverflow)}render(){return(0,o.h)(o.a,{key:"eeffeaac1aa5b80b89d0d176d89dc44291fd0cbb",tabindex:"-1"},(0,o.h)("div",{key:"2ba8415fa038ad2666cc0b340a3ceba6f0919bc6",class:`dialog-overlay ${this.config.modalClass?this.config.modalClass:""}`},(0,o.h)("dialog",{key:"39b9fc94944e12e8dcae98a65e74593dc173b336",class:"dialog"},(0,o.h)("header",{key:"183327aad084ff6fd619d204a537871cace84684",class:"dialog-header"},(0,o.h)("h3",{key:"ae4c514e0f75e46d5787d284154392de808100ca",class:"dialog-title"},this.config.dialogTitle)),(0,o.h)("main",{key:"dc991f0ef3baa22f42f683528a4ca67ab8d5e7f4",class:"dialog-body"},(0,o.h)("slot",{key:"ddc1c5176d976f5a518fed1d2faa138d0bc5082a",name:"body"})),(0,o.h)("footer",{key:"b3cb9449b54583a7b5489b7d56fa084e456b4d75",class:"dialog-footer"},(0,o.h)("slot",{key:"b3bc85bdfe12da62019be2e542737e5b6f7db4f6",name:"footer"}),(0,o.h)("button",{key:"8b4ae467782cf8ba05f06a11850c5681a056b50a",class:"onto-btn onto-btn-primary close-btn",onClick:this.handleClose,ref:e=>this.closeButton=e},(0,o.h)("translate-label",{key:"7cba2bef0bdd569c25ec0df321345ec1cc2d9f74",labelKey:"common.button.close"}))))))}preventLeavingDialog(e){s.H.preventLeavingDialog(this.hostElement,e)}get hostElement(){return(0,o.g)(this)}};r.style=".dialog-overlay{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:9998;margin-left:-10px;background-color:rgba(0, 0, 0, 0.5);font-family:var(--main-font), sans-serif;font-weight:var(--main-font-weight);color:var(--gw-secondary-base, var(--base-text-color))}.dialog{z-index:1001;max-width:60vw;max-height:90vh;font-family:inherit;font-weight:inherit;display:flex;flex-direction:column;position:relative;justify-content:space-between;border:none;color:var(--gw-dialog-color);background-color:var(--gw-dialog-background);box-shadow:0 5px 15px rgba(0, 0, 0, 0.5)}.dialog .dialog-header{display:flex;justify-content:space-between;padding:15px;font-size:20px}.dialog .dialog-header .dialog-title{margin:0.5rem 0;font-weight:400}.dialog .dialog-body{padding:0 15px 15px;overflow:auto}.dialog .dialog-footer{display:flex;justify-content:flex-end;padding:15px}";class l{static deepEqual(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if("object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!l.deepEqual(e[n],t[n]))return!1;return!0}if(!Array.isArray(e)&&!Array.isArray(t)){const n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(const o of n)if(!(o in t)||!l.deepEqual(e[o],t[o]))return!1;return!0}return!1}return!1}static deepCopy(e){if("object"!=typeof e||null==e||"function"==typeof e)return e;if(l.hasCopyMethod(e))return e.copy();const t=l.copyBuiltInType(e);return null!==t?t:l.copyPlainObject(e)}static copyBuiltInType(e){return Array.isArray(e)?e.map(e=>l.deepCopy(e)):e instanceof Date?new Date(e.getTime()):e instanceof RegExp?new RegExp(e.source,e.flags):e instanceof Map?new Map(Array.from(e.entries()).map(([e,t])=>[l.deepCopy(e),l.deepCopy(t)])):e instanceof Set?new Set(Array.from(e.values()).map(e=>l.deepCopy(e))):null}static copyPlainObject(e){const t=Object.create(Object.getPrototypeOf(e));for(const n of Object.keys(e))t[n]=l.deepCopy(e[n]);return t}static hasCopyMethod(e){return"object"==typeof e&&null!==e&&Object.prototype.hasOwnProperty.call(e,"copy")&&"function"==typeof e.copy}}l.isNullOrUndefined=e=>null==e;class c{copy(){return l.deepCopy(this)}}class d extends c{constructor(e=[]){super(),this.items=e}size(){return this.items.length}getItems(){return this.items}getFirstItem(){return this.items[0]}sort(e){this.items.sort(e)}filter(e){return this.items.filter(e)}find(e){return this.items.find(e)}isEmpty(){return 0===this.items.length}addToStart(e){this.items.unshift(e)}addItems(e){this.items.push(...e)}remove(e){const t=this.items.indexOf(e);-1!==t&&this.items.splice(t,1)}}class h extends d{constructor(e){super(e)}add(e){this.items.push(e)}addAll(e){this.items.push(...e)}unsubscribeAll(){this.items.forEach(e=>e()),this.items=[]}}const g=class{constructor(e){(0,o.r)(this,e),this.toggleChanged=(0,o.c)(this,"toggleChanged"),this.subscriptions=new h,this.checked=!1,this.toggle=()=>{this.checked=!this.checked,this.toggleChanged.emit({checked:this.checked,context:this.context})}}subscribeToLanguageChange(){this.tooltipTranslationKey&&this.subscriptions.add(a.T.onTranslate(this.tooltipTranslationKey,[],e=>{this.tooltipLabel=e}))}disconnectedCallback(){this.subscriptions.unsubscribeAll()}connectedCallback(){this.subscribeToLanguageChange()}render(){return(0,o.h)("section",{key:"3afb9d800ec06e6cac57d65eab4059bc7db42535"},this.labelKey&&(0,o.h)("label",{key:"90ae5f881975462da986f65fdce7b0548d9afa2d"},(0,o.h)("strong",{key:"ce8ca2e649681a874585835b35554dd9920f0aef"},(0,o.h)("translate-label",{key:"601a0371d31081ce5a84b824ddb43536c3e87405",labelKey:this.labelKey})," ")),(0,o.h)("button",{key:"90ea147e6e350461cdd74ccacf2dfe86cf875925",class:"toggle-switch",onClick:this.toggle,"tooltip-append-to":"parent","tooltip-content":this.tooltipLabel,"tooltip-placement":i.O.TOP},(0,o.h)("input",{key:"e7ae6a6c71a0fe9decebb559ed601998b6ee8bac",type:"checkbox",checked:this.checked}),(0,o.h)("label",{key:"02d328613d9e7c675e6531a1777ae7cf9a2d16b1"})))}};g.style='.toggle-switch{all:unset;clear:both;margin:0 5px;width:36px}.toggle-switch:focus{outline:none;box-shadow:none}.toggle-switch:focus-visible{outline:none;box-shadow:none}.toggle-switch input:empty{display:none}.toggle-switch input:empty~label{position:relative;cursor:pointer;user-select:none;margin:0.05em 0.6em -0.05em 0;vertical-align:text-bottom}.toggle-switch input:empty~label:before{display:block;content:" ";width:2.2em;height:1.25em;background-color:var(--gw-toggleswitch-background);border-radius:10em;transition:all 100ms ease-in}.toggle-switch input:empty~label:after{position:absolute;display:block;top:0.08em;left:0.1em;content:" ";width:0.9em;height:0.9em;background-color:var(--gw-toggleswitch-handle-background);border:1px solid var(--gw-toggleswitch-background);border-radius:50%;transition:all 100ms ease-in}.toggle-switch input:checked~label:before{background-color:var(--gw-toggleswitch-checked-background)}.toggle-switch input:checked~label:after{left:1em;background-color:var(--gw-toggleswitch-handle-checked-background);border:1px solid var(--gw-toggleswitch-checked-background)}'},79939(e,t,n){n.d(t,{L:()=>a,T:()=>r,s:()=>s});var o=n(57154);function s(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}class a{static get logger(){return o.Loggers.getLoggerInstance("SharedComponents")}}class i{constructor(){this.languageContextService=o.ServiceProvider.get(o.LanguageContextService),this.translationChangedObservers={},this.logger=a.logger,this.defaultBundle=this.languageContextService.getDefaultBundle(),this.subscribeToBundleChange()}onTranslate(e,t=[],n=()=>{}){this.translationChangedObservers[e]=this.translationChangedObservers[e]||[];const o={parameters:t,callback:n};return this.translationChangedObservers[e].push(o),n(this.translate(e,t)),()=>{const t=this.translationChangedObservers[e].indexOf(o);-1!==t&&this.translationChangedObservers[e].splice(t,1)}}translate(e,t){return this.translateInLocale(e,t)}translateInLocale(e,t){let n=this.translateFromBundle(this.currentBundle,e);return n||(n=this.translateFromBundle(this.defaultBundle,e)),n?(n=this.applyParameters(n,t),s(n)):(this.logger.warn(`Missing translation for key: [${e}]`),e)}translateFromBundle(e,t){if(!e)return;let n=e[t];return"string"!=typeof n&&(n=this.translateAsJsonObject(e,t)),n}translateAsJsonObject(e,t){let n=t.split(".");return this.getTranslation(e,n)}getTranslation(e,t){if(!t||!e)return;const n=e[t.splice(0,1)[0]];return 0===t.length?n:"string"!=typeof n?t.length>0?this.getTranslation(n,t):n:void 0}applyParameters(e,t){return t?t.reduce((e,t)=>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 r=new i},81491(e,t,n){n.d(t,{H:()=>s});const o='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=o){const n=Array.from(e.querySelectorAll(t));if(n.length>0){const e=n.indexOf(document.activeElement),t=n[(e+1)%n.length];t&&t.focus()}}static focusPreviousElement(e,t=o){const n=Array.from(e.querySelectorAll(t));if(n.length>0){const e=n.indexOf(document.activeElement),t=n[(e-1+n.length)%n.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 n=document.querySelector(e);n&&n.scrollIntoView(t)}static waitForElement(e){return new Promise((t,n)=>{const o=new MutationObserver(()=>{try{const n=document.querySelector(e);n&&(o.disconnect(),t(n))}catch(e){o.disconnect(),n(e)}});o.observe(document.body,{subtree:!0,childList:!0,attributes:!0})})}}}};
|
|
2
|
+
//# sourceMappingURL=78681.9e1d4e064e9e1fb5fb21.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"78681.9e1d4e064e9e1fb5fb21.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/shared-components/dist/esm/onto-tooltip-placement-D_J2-9CG.js","webpack://root-config/./packages/shared-components/dist/esm/onto-dialog_2.entry.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"],"sourcesContent":["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 { r as registerInstance, h, a as Host, g as getElement, c as createEvent } from './index-CGqARDX4.js';\nimport { H as HtmlUtil } from './html-util-C8DO915D.js';\nimport { T as TranslationService } from './translation.service-nljGIprK.js';\nimport { O as OntoTooltipPlacement } from './onto-tooltip-placement-D_J2-9CG.js';\nimport '@ontotext/workbench-api';\n\nconst ontoDialogCss = () => `.dialog-overlay{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:9998;margin-left:-10px;background-color:rgba(0, 0, 0, 0.5);font-family:var(--main-font), sans-serif;font-weight:var(--main-font-weight);color:var(--gw-secondary-base, var(--base-text-color))}.dialog{z-index:1001;max-width:60vw;max-height:90vh;font-family:inherit;font-weight:inherit;display:flex;flex-direction:column;position:relative;justify-content:space-between;border:none;color:var(--gw-dialog-color);background-color:var(--gw-dialog-background);box-shadow:0 5px 15px rgba(0, 0, 0, 0.5)}.dialog .dialog-header{display:flex;justify-content:space-between;padding:15px;font-size:20px}.dialog .dialog-header .dialog-title{margin:0.5rem 0;font-weight:400}.dialog .dialog-body{padding:0 15px 15px;overflow:auto}.dialog .dialog-footer{display:flex;justify-content:flex-end;padding:15px}`;\n\nconst OntoDialog = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.handleClose = (evt) => {\n this.config.onClose(evt);\n };\n }\n componentDidLoad() {\n this.documentOverflow = HtmlUtil.hideDocumentBodyOverflow();\n this.hostElement.addEventListener('keydown', this.preventLeavingDialog.bind(this));\n this.closeButton.focus();\n }\n disconnectedCallback() {\n this.hostElement.removeEventListener('keydown', this.preventLeavingDialog.bind(this));\n HtmlUtil.setDocumentBodyOverflow(this.documentOverflow);\n }\n render() {\n return (h(Host, { key: 'eeffeaac1aa5b80b89d0d176d89dc44291fd0cbb', tabindex: \"-1\" }, h(\"div\", { key: '2ba8415fa038ad2666cc0b340a3ceba6f0919bc6', class: `dialog-overlay ${this.config.modalClass ? this.config.modalClass : ''}` }, h(\"dialog\", { key: '39b9fc94944e12e8dcae98a65e74593dc173b336', class: \"dialog\" }, h(\"header\", { key: '183327aad084ff6fd619d204a537871cace84684', class: \"dialog-header\" }, h(\"h3\", { key: 'ae4c514e0f75e46d5787d284154392de808100ca', class: \"dialog-title\" }, this.config.dialogTitle)), h(\"main\", { key: 'dc991f0ef3baa22f42f683528a4ca67ab8d5e7f4', class: \"dialog-body\" }, h(\"slot\", { key: 'ddc1c5176d976f5a518fed1d2faa138d0bc5082a', name: \"body\" })), h(\"footer\", { key: 'b3cb9449b54583a7b5489b7d56fa084e456b4d75', class: \"dialog-footer\" }, h(\"slot\", { key: 'b3bc85bdfe12da62019be2e542737e5b6f7db4f6', name: \"footer\" }), h(\"button\", { key: '8b4ae467782cf8ba05f06a11850c5681a056b50a', class: \"onto-btn onto-btn-primary close-btn\", onClick: this.handleClose, ref: (el) => (this.closeButton = el) }, h(\"translate-label\", { key: '7cba2bef0bdd569c25ec0df321345ec1cc2d9f74', labelKey: 'common.button.close' })))))));\n }\n preventLeavingDialog(ev) {\n HtmlUtil.preventLeavingDialog(this.hostElement, ev);\n }\n get hostElement() { return getElement(this); }\n};\nOntoDialog.style = ontoDialogCss();\n\nclass ObjectUtil {\n /**\n * Performs a deep equality check between two values.\n *\n * This function compares two values to determine if they are deeply equal.\n * It supports comparison of primitives, arrays, and objects, including nested structures.\n *\n * @param obj1 - The first value to compare.\n * @param obj2 - The second value to compare.\n * @returns `true` if both values are deeply equal, otherwise `false`.\n *\n * @example\n * // Comparing two deeply nested objects\n * const obj1 = { a: 1, b: { c: [1, 2, 3], d: { e: 'hello' } } };\n * const obj2 = { a: 1, b: { c: [1, 2, 3], d: { e: 'hello' } } };\n * console.log(deepEqual(obj1, obj2)); // true\n *\n * @example\n * // Comparing two arrays with different values\n * const arr1 = [1, 2, 3];\n * const arr2 = [1, 2, 4];\n * console.log(deepEqual(arr1, arr2)); // false\n */\n static deepEqual(obj1, obj2) {\n // Check if both values are strictly equal (handles primitives and references)\n if (obj1 === obj2) {\n return true;\n }\n // Check if either value is null or undefined\n if (obj1 === null || obj1 === undefined || obj2 === null || obj2 === undefined) {\n return false;\n }\n // Check if both values are objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n // Ensure both have the same constructor (handles different types of objects, like Date, RegExp)\n if (obj1.constructor !== obj2.constructor) {\n return false;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n // Check if both arrays have the same length\n if (obj1.length !== obj2.length) {\n return false;\n }\n // Compare each element recursively\n for (let i = 0; i < obj1.length; i++) {\n if (!ObjectUtil.deepEqual(obj1[i], obj2[i])) {\n return false;\n }\n }\n return true;\n }\n // Handle plain objects\n if (!Array.isArray(obj1) && !Array.isArray(obj2)) {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n // Check if both objects have the same number of keys\n if (keys1.length !== keys2.length) {\n return false;\n }\n // Check if all keys and values are deeply equal\n for (const key of keys1) {\n if (!(key in obj2) || // Ensure the key exists in obj2\n !ObjectUtil.deepEqual(obj1[key], obj2[key])) {\n return false;\n }\n }\n return true;\n }\n // If one is an array and the other is not, they are not equal\n return false;\n }\n // Default case: Not equal\n return false;\n }\n /**\n * Creates a deep copy of the given object.\n *\n * This method recursively copies all properties and values of the object,\n * handling different types such as primitives, arrays, plain objects, and built-in types.\n * It ensures that the copied object does not share references with the original object,\n * meaning that all nested structures are also copied independently.\n *\n * Special handling:\n * - Objects with a `copy()` method will use that method for cloning\n * - Date objects are cloned preserving their time value\n * - RegExp objects are cloned with their pattern and flags\n * - Map and Set objects are deeply cloned with their contents\n * - Arrays are deeply cloned with all elements\n * - Plain objects are recursively cloned\n *\n * @param obj - The object to be deeply copied. Can be any type, including primitives,\n * arrays, objects, or built-in types.\n * @returns A deep copy of the object. If the input is a primitive, null, undefined,\n * or a function, the original value is returned as-is.\n */\n static deepCopy(obj) {\n // Handle primitives, null, undefined, and functions\n if (typeof obj !== 'object' || obj === null || obj === undefined || typeof obj === 'function') {\n return obj;\n }\n // Check if object has a custom copy method\n if (ObjectUtil.hasCopyMethod(obj)) {\n return obj.copy();\n }\n // Try to handle built-in types (including arrays)\n const builtInCopy = ObjectUtil.copyBuiltInType(obj);\n if (builtInCopy !== null) {\n return builtInCopy;\n }\n // Handle plain objects or objects with a prototype\n return ObjectUtil.copyPlainObject(obj);\n }\n /**\n * Attempts to copy built-in types like Array, Date, RegExp, Map, and Set.\n * @param obj - The object to copy.\n * @returns A copy of the object if it's a built-in type, or null if it's not a recognized built-in type.\n */\n static copyBuiltInType(obj) {\n // Handle arrays\n if (Array.isArray(obj)) {\n return obj.map(item => ObjectUtil.deepCopy(item));\n }\n // Handle Date objects\n if (obj instanceof Date) {\n return new Date(obj.getTime());\n }\n // Handle RegExp objects\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags);\n }\n // Handle Map objects\n if (obj instanceof Map) {\n return new Map(Array.from(obj.entries()).map(([key, value]) => [\n ObjectUtil.deepCopy(key),\n ObjectUtil.deepCopy(value)\n ]));\n }\n // Handle Set objects\n if (obj instanceof Set) {\n return new Set(Array.from(obj.values()).map(value => ObjectUtil.deepCopy(value)));\n }\n return null;\n }\n /**\n * Creates a deep copy of a plain object.\n * @param obj - The object to copy.\n * @returns A deep copy of the object.\n */\n static copyPlainObject(obj) {\n const result = Object.create(Object.getPrototypeOf(obj));\n // Recursively copy each key-value pair\n for (const key of Object.keys(obj)) {\n result[key] = ObjectUtil.deepCopy(obj[key]);\n }\n return result;\n }\n /**\n * Type guard to check if the value has a 'copy' method.\n * @param value - The value to check.\n * @returns True if the value has a 'copy' method, false otherwise.\n */\n static hasCopyMethod(value) {\n return typeof value === 'object' && value !== null && Object.prototype.hasOwnProperty.call(value, 'copy') && typeof value.copy === 'function';\n }\n}\n/**\n * Checks if the given object is null or undefined.\n * @param obj - The object to check.\n * @returns True if the object is null or undefined, false otherwise.\n */\nObjectUtil.isNullOrUndefined = (obj) => {\n return obj === null || obj === undefined;\n};\n\n/**\n * Base class for all models, providing deep copy functionality.\n *\n * This abstract class ensures that any model extending it implements immutability\n * by providing a `copy` method, which creates a deep copy of the current instance.\n *\n * All models in the application are expected to extend this class to inherit the\n * `copy` behavior, ensuring consistency in how objects are cloned and manipulated.\n *\n * @template <T> The type of the model extending this class.\n */\nclass Model {\n /**\n * Creates a deep copy of the current instance.\n *\n * This method utilizes `ObjectUtil.deepCopy` to create a new instance of the model\n * with all properties and nested objects deeply cloned, ensuring that any changes\n * to the copy do not affect the original instance.\n *\n * @returns A new instance of the type `T` that is a deep copy of the original.\n */\n copy() {\n return ObjectUtil.deepCopy(this);\n }\n}\n\n/**\n * Abstract base class for managing a list of items that extends the {@link Model} class.\n *\n * This class provides common utility methods for manipulating and querying the list of items,\n * such as sorting, filtering, and finding elements. Subclasses can extend this class to work\n * with specific types of models.\n *\n * @template T - The type of items in the list.\n */\nclass ModelList extends Model {\n /**\n * Creates an instance of the {@link ModelList}.\n *\n * @param items - An optional array of items to initialize the list. If no items are provided,\n * an empty array is used by default.\n */\n constructor(items = []) {\n super();\n this.items = items;\n }\n /**\n * Returns the number of items in the list.\n *\n * @returns The count of items in the list.\n */\n size() {\n return this.items.length;\n }\n /**\n * Retrieves all items in the list.\n *\n * @returns An array containing all items in the list.\n */\n getItems() {\n return this.items;\n }\n /**\n * Retrieves the first item in the list.\n *\n * @returns The first item in the list, or `undefined` if the list is empty.\n */\n getFirstItem() {\n return this.items[0];\n }\n /**\n * Sorts the items in place using the specified comparator function.\n *\n * @param comparator - A comparison function that defines the sort order.\n * Should return a negative number if `a` < `b`,\n * zero if `a` === `b`, or a positive number if `a` > `b`.\n *\n * @example\n * const modelList = new MyModelList([{ id: 2 }, { id: 1 }]);\n * modelList.sort((a, b) => a.id - b.id);\n * console.log(modelList.items); // Outputs: [{ id: 1 }, { id: 2 }]\n */\n sort(comparator) {\n this.items.sort(comparator);\n }\n /**\n * Filters the items using the specified filter function.\n *\n * @param filterFunction - A function that returns `true` for items to include\n * and `false` for items to exclude.\n * @returns A new array of items that match the filter criteria.\n */\n filter(filterFunction) {\n return this.items.filter(filterFunction);\n }\n /**\n * Finds an item in the list that matches the specified filter function.\n *\n * @param filterFunction - A function that returns `true` for the desired item.\n * @returns The first item that matches the filter criteria, or `undefined` if none match.\n */\n find(filterFunction) {\n return this.items.find(filterFunction);\n }\n /**\n * Checks if the collection of items is empty.\n *\n * @returns {boolean} - Returns `true` if there are no items in the collection, otherwise `false`.\n */\n isEmpty() {\n return this.items.length === 0;\n }\n /**\n * Adds a new item to the list in the first position.\n *\n * @param item - The item to add.\n */\n addToStart(item) {\n this.items.unshift(item);\n }\n /**\n * Adds an array of items to the end of the list.\n *\n * @param items the items to add\n */\n addItems(items) {\n this.items.push(...items);\n }\n /**\n * Removes a specific item from the list.\n *\n * This method finds the first occurrence of the specified item in the list and removes it.\n * If the item is not found in the list, no changes are made.\n *\n * @param item - The item to be removed from the list.\n */\n remove(item) {\n const index = this.items.indexOf(item);\n if (index !== -1) {\n this.items.splice(index, 1);\n }\n }\n}\n\n/**\n * Represents a list of subscriptions that can be managed collectively.\n * Extends the {@link ModelList} class, specialized for {@link Subscription} type.\n */\nclass SubscriptionList extends ModelList {\n /**\n * Creates a new instance of SubscriptionList.\n * @param subscriptions - An optional array of Subscription functions to initialize the list.\n */\n constructor(subscriptions) {\n super(subscriptions);\n }\n /**\n * Adds a new subscription to the list.\n * @param subscription - The Subscription function to be added to the list.\n */\n add(subscription) {\n this.items.push(subscription);\n }\n /**\n * Adds multiple subscriptions to the list.\n * @param subscriptions - An array of Subscription functions to be added.\n */\n addAll(subscriptions) {\n this.items.push(...subscriptions);\n }\n /**\n * Calls all subscription functions in the list and then clears the list. Calling a subscription\n * function unsubscribes the subscription. This effectively unsubscribes all subscriptions\n * and removes them from the list.\n */\n unsubscribeAll() {\n this.items.forEach(subscription => subscription());\n this.items = [];\n }\n}\n\nconst ontoToggleSwitchCss = () => `.toggle-switch{all:unset;clear:both;margin:0 5px;width:36px}.toggle-switch:focus{outline:none;box-shadow:none}.toggle-switch:focus-visible{outline:none;box-shadow:none}.toggle-switch input:empty{display:none}.toggle-switch input:empty~label{position:relative;cursor:pointer;user-select:none;margin:0.05em 0.6em -0.05em 0;vertical-align:text-bottom}.toggle-switch input:empty~label:before{display:block;content:\" \";width:2.2em;height:1.25em;background-color:var(--gw-toggleswitch-background);border-radius:10em;transition:all 100ms ease-in}.toggle-switch input:empty~label:after{position:absolute;display:block;top:0.08em;left:0.1em;content:\" \";width:0.9em;height:0.9em;background-color:var(--gw-toggleswitch-handle-background);border:1px solid var(--gw-toggleswitch-background);border-radius:50%;transition:all 100ms ease-in}.toggle-switch input:checked~label:before{background-color:var(--gw-toggleswitch-checked-background)}.toggle-switch input:checked~label:after{left:1em;background-color:var(--gw-toggleswitch-handle-checked-background);border:1px solid var(--gw-toggleswitch-checked-background)}`;\n\nconst OntoToggleSwitch = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.toggleChanged = createEvent(this, \"toggleChanged\");\n this.subscriptions = new SubscriptionList();\n /**\n * Determines whether the toggle switch is checked or not.\n */\n this.checked = false;\n this.toggle = () => {\n this.checked = !this.checked;\n this.toggleChanged.emit({ checked: this.checked, context: this.context });\n };\n }\n subscribeToLanguageChange() {\n if (this.tooltipTranslationKey) {\n this.subscriptions.add(TranslationService.onTranslate(this.tooltipTranslationKey, [], (translation) => {\n this.tooltipLabel = translation;\n }));\n }\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n connectedCallback() {\n this.subscribeToLanguageChange();\n }\n render() {\n return (h(\"section\", { key: '3afb9d800ec06e6cac57d65eab4059bc7db42535' }, this.labelKey &&\n h(\"label\", { key: '90ae5f881975462da986f65fdce7b0548d9afa2d' }, h(\"strong\", { key: 'ce8ca2e649681a874585835b35554dd9920f0aef' }, h(\"translate-label\", { key: '601a0371d31081ce5a84b824ddb43536c3e87405', labelKey: this.labelKey }), \"\\u00A0\")), h(\"button\", { key: '90ea147e6e350461cdd74ccacf2dfe86cf875925', class: \"toggle-switch\", onClick: this.toggle, \"tooltip-append-to\": \"parent\", \"tooltip-content\": this.tooltipLabel, \"tooltip-placement\": OntoTooltipPlacement.TOP }, h(\"input\", { key: 'e7ae6a6c71a0fe9decebb559ed601998b6ee8bac', type: \"checkbox\", checked: this.checked }), h(\"label\", { key: '02d328613d9e7c675e6531a1777ae7cf9a2d16b1' }))));\n }\n};\nOntoToggleSwitch.style = ontoToggleSwitchCss();\n\nexport { OntoDialog as onto_dialog, OntoToggleSwitch as onto_toggle_switch };\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"],"names":["OntoTooltipPlacement","OntoDialog","constructor","hostRef","registerInstance","this","handleClose","evt","config","onClose","componentDidLoad","documentOverflow","HtmlUtil","hideDocumentBodyOverflow","hostElement","addEventListener","preventLeavingDialog","bind","closeButton","focus","disconnectedCallback","removeEventListener","setDocumentBodyOverflow","render","h","Host","key","tabindex","class","modalClass","dialogTitle","name","onClick","ref","el","labelKey","ev","getElement","style","ObjectUtil","deepEqual","obj1","obj2","Array","isArray","length","i","keys1","Object","keys","keys2","deepCopy","obj","hasCopyMethod","copy","builtInCopy","copyBuiltInType","copyPlainObject","map","item","Date","getTime","RegExp","source","flags","Map","from","entries","value","Set","values","result","create","getPrototypeOf","prototype","hasOwnProperty","call","isNullOrUndefined","Model","ModelList","items","super","size","getItems","getFirstItem","sort","comparator","filter","filterFunction","find","isEmpty","addToStart","unshift","addItems","push","remove","index","indexOf","splice","SubscriptionList","subscriptions","add","subscription","addAll","unsubscribeAll","forEach","OntoToggleSwitch","toggleChanged","createEvent","checked","toggle","emit","context","subscribeToLanguageChange","tooltipTranslationKey","TranslationService","onTranslate","translation","tooltipLabel","connectedCallback","TOP","type","sanitizeHTML","html","element","document","createElement","innerHTML","LoggerProvider","logger","Loggers","getLoggerInstance","TranslationServiceClassDefinition","languageContextService","ServiceProvider","get","LanguageContextService","translationChangedObservers","defaultBundle","getDefaultBundle","subscribeToBundleChange","messageLabelKey","translationParameter","translationCallback","observer","parameters","callback","translate","translateInLocale","translateFromBundle","currentBundle","applyParameters","warn","bundle","translateAsJsonObject","path","split","getTranslation","jsonObject","jsonOrTranslation","reduce","parameter","replaceAll","join","notifyTranslationsChanged","eventName","languageChangeSubscription","onLanguageBundleChanged","destroy","INTERACTIVE_ELEMENTS_SELECTOR","newOverflow","oldOverflow","body","overflow","focusNextElement","parentElement","activeElementSelector","focusableElements","querySelectorAll","currentIndex","activeElement","nextActiveElement","focusPreviousElement","previousActiveElement","preventDefault","shiftKey","focusElement","selector","querySelector","scrollElementIntoView","elementSelector","options","block","scrollIntoView","waitForElement","Promise","resolve","reject","MutationObserver","disconnect","error","observe","subtree","childList","attributes"],"ignoreList":[],"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.3.2
|
|
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.3.2">{{\'common.loading\' | translate}}</object>')})}}}angular.module("graphdb.framework.import.directives.import-progress-indicator",[]).directive("ImportProgressIndicator",t),t.$inject=[]}};
|
|
2
|
+
//# sourceMappingURL=82926.ce1d6bf65b09288a2b10.bundle.js.map
|
package/dist/{82926.99231caacc379c66487a.bundle.js.map → 82926.ce1d6bf65b09288a2b10.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"82926.
|
|
1
|
+
{"version":3,"file":"82926.ce1d6bf65b09288a2b10.bundle.js","mappings":"6HASA,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,yGAGzF,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.3.2\">{{\\'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"],"ignoreList":[],"sourceRoot":""}
|