graphdb-workbench 3.3.3-TR1 → 3.3.3
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/{10759.b2e1d643d681ebd9c124.bundle.js → 10759.57059f90014058a86952.bundle.js} +2 -2
- package/dist/10759.57059f90014058a86952.bundle.js.map +1 -0
- package/dist/{18961.01ff5fcc0f4b9f99236e.bundle.js → 18961.732c0c355509452ac6da.bundle.js} +2 -2
- package/dist/18961.732c0c355509452ac6da.bundle.js.map +1 -0
- package/dist/{20694.4becb7771236462dcc5a.bundle.js → 20694.03b5abf23347ae0bad65.bundle.js} +2 -2
- package/dist/{20694.4becb7771236462dcc5a.bundle.js.map → 20694.03b5abf23347ae0bad65.bundle.js.map} +1 -1
- package/dist/38644.7c01b17edbb63f7bf2cc.bundle.js +2 -0
- package/dist/38644.7c01b17edbb63f7bf2cc.bundle.js.map +1 -0
- package/dist/39518.a40451f994622fd35756.bundle.js +2 -0
- package/dist/{39518.1c641a7dc1c50a526845.bundle.js.map → 39518.a40451f994622fd35756.bundle.js.map} +1 -1
- package/dist/{39874.710e94f211579215f997.bundle.js → 39874.17dde6245fc4cc91bb58.bundle.js} +2 -2
- package/dist/39874.17dde6245fc4cc91bb58.bundle.js.map +1 -0
- package/dist/{45758.1212136a37dd4f7528f8.bundle.js → 45758.b9ce5fe0ed6c8c4fc141.bundle.js} +2 -2
- package/dist/45758.b9ce5fe0ed6c8c4fc141.bundle.js.map +1 -0
- package/dist/{60560.6ba1b091a34af6c00770.bundle.js → 60560.62ed0cb0b3d07fecbf28.bundle.js} +2 -2
- package/dist/60560.62ed0cb0b3d07fecbf28.bundle.js.map +1 -0
- package/dist/{60730.35493812d428872eddb6.bundle.js → 60730.a9fc5342637039776562.bundle.js} +2 -2
- package/dist/60730.a9fc5342637039776562.bundle.js.map +1 -0
- package/dist/67888.6279be833ab8b2f2f9e6.bundle.js +2 -0
- package/dist/67888.6279be833ab8b2f2f9e6.bundle.js.map +1 -0
- package/dist/{7815.2aec5ebbcd434f5582ff.bundle.js → 7815.89cc59b6625e84913351.bundle.js} +2 -2
- package/dist/7815.89cc59b6625e84913351.bundle.js.map +1 -0
- package/dist/{78681.9e1d4e064e9e1fb5fb21.bundle.js → 78681.6c8614aad7e5465be505.bundle.js} +2 -2
- package/dist/78681.6c8614aad7e5465be505.bundle.js.map +1 -0
- package/dist/{82206.229877d7931849236456.bundle.js → 82206.473f6d4f79e12f6a9da6.bundle.js} +2 -2
- package/dist/82206.473f6d4f79e12f6a9da6.bundle.js.map +1 -0
- package/dist/{82926.bbdac6a7e9eb883ae97b.bundle.js → 82926.164acb5a9d5ffd8e8ce3.bundle.js} +2 -2
- package/dist/{82926.bbdac6a7e9eb883ae97b.bundle.js.map → 82926.164acb5a9d5ffd8e8ce3.bundle.js.map} +1 -1
- package/dist/99448.b8ccb0c0fd74bb99d5a5.bundle.js +2 -0
- package/dist/99448.b8ccb0c0fd74bb99d5a5.bundle.js.map +1 -0
- package/dist/css/splash-screen.css +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 +2 -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.ce850285bee5789a585d.js +3 -0
- package/dist/{legacyWorkbench.4d8a4e8dde83fc9ac427.js.map → legacyWorkbench.ce850285bee5789a585d.js.map} +1 -1
- package/dist/main.83f9d186d9b0827c6774.js +3 -0
- package/dist/main.83f9d186d9b0827c6774.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/index-CTK5NoJt.js +2 -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-dropdown.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-footer_5.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-layout.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-permission-banner.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-test-context.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-toastr.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/shared-components.cjs.js +1 -1
- package/dist/shared-components/cjs/translate-label.cjs.entry.js +1 -1
- package/dist/shared-components/collection/collection-manifest.json +2 -2
- package/dist/shared-components/collection/components/dialogs/onto-dialog.js +1 -1
- package/dist/shared-components/collection/components/onto-dropdown/onto-dropdown.js +1 -1
- package/dist/shared-components/collection/components/onto-language-selector/onto-language-selector.js +1 -1
- package/dist/shared-components/collection/components/onto-license-alert/onto-license-alert.js +1 -1
- package/dist/shared-components/collection/components/onto-loader/onto-loader.js +1 -1
- package/dist/shared-components/collection/components/onto-navbar/onto-navbar.js +1 -1
- package/dist/shared-components/collection/components/onto-operations-notification/onto-operations-notification.js +1 -1
- package/dist/shared-components/collection/components/onto-repository-selector/onto-repository-selector.js +1 -1
- package/dist/shared-components/collection/components/onto-search-resource-input/onto-search-resource-input.js +1 -1
- package/dist/shared-components/collection/components/onto-test-context/onto-test-context.js +1 -1
- package/dist/shared-components/collection/components/onto-toggle-switch/onto-toggle-switch.js +1 -1
- package/dist/shared-components/collection/components/onto-user-menu/onto-user-menu.js +1 -1
- package/dist/shared-components/collection/components/translate-label/translate-label.js +1 -1
- package/dist/shared-components/esm/index-EiAqSNMq.js +2 -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-dropdown.entry.js +1 -1
- package/dist/shared-components/esm/onto-footer_5.entry.js +1 -1
- package/dist/shared-components/esm/onto-language-selector_9.entry.js +1 -1
- package/dist/shared-components/esm/onto-layout.entry.js +1 -1
- package/dist/shared-components/esm/onto-permission-banner.entry.js +1 -1
- package/dist/shared-components/esm/onto-test-context.entry.js +1 -1
- package/dist/shared-components/esm/onto-toastr.entry.js +1 -1
- package/dist/shared-components/esm/shared-components.js +1 -1
- package/dist/shared-components/esm/translate-label.entry.js +1 -1
- package/dist/shared-components/shared-components/{p-6d34b2cb.entry.js → p-1103d100.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-9b2c6e80.entry.js → p-2e2bb175.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-b754971e.entry.js → p-50735428.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-7e47d850.entry.js → p-59707503.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-598d33d7.entry.js → p-6a37f808.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-9214bb16.entry.js → p-6fb5eec5.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-c27fe716.entry.js → p-97930684.entry.js} +1 -1
- package/dist/shared-components/shared-components/p-EiAqSNMq.js +2 -0
- package/dist/shared-components/shared-components/{p-b5d4081d.entry.js → p-a5a49d87.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-74888633.entry.js → p-d134e207.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-5886e663.entry.js → p-ec2f4ea5.entry.js} +1 -1
- package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
- package/dist/shared-components/types/stencil-public-runtime.d.ts +10 -147
- package/package.json +1 -1
- package/dist/10759.b2e1d643d681ebd9c124.bundle.js.map +0 -1
- package/dist/18961.01ff5fcc0f4b9f99236e.bundle.js.map +0 -1
- package/dist/38644.cc471c67239fa24901cc.bundle.js +0 -2
- package/dist/38644.cc471c67239fa24901cc.bundle.js.map +0 -1
- package/dist/39518.1c641a7dc1c50a526845.bundle.js +0 -2
- package/dist/39874.710e94f211579215f997.bundle.js.map +0 -1
- package/dist/45758.1212136a37dd4f7528f8.bundle.js.map +0 -1
- package/dist/60560.6ba1b091a34af6c00770.bundle.js.map +0 -1
- package/dist/60730.35493812d428872eddb6.bundle.js.map +0 -1
- package/dist/67888.7224e1b2689d73c4d468.bundle.js +0 -2
- package/dist/67888.7224e1b2689d73c4d468.bundle.js.map +0 -1
- package/dist/7815.2aec5ebbcd434f5582ff.bundle.js.map +0 -1
- package/dist/78681.9e1d4e064e9e1fb5fb21.bundle.js.map +0 -1
- package/dist/82206.229877d7931849236456.bundle.js.map +0 -1
- package/dist/99448.b9922814bd15808a9d1c.bundle.js +0 -2
- package/dist/99448.b9922814bd15808a9d1c.bundle.js.map +0 -1
- package/dist/legacyWorkbench.4d8a4e8dde83fc9ac427.js +0 -3
- package/dist/main.14f083264cd64618d96a.js +0 -3
- package/dist/main.14f083264cd64618d96a.js.map +0 -1
- package/dist/shared-components/cjs/app-globals-V2Kpy_OQ.js +0 -1
- package/dist/shared-components/cjs/index-L_ZmIeD5.js +0 -2
- package/dist/shared-components/esm/app-globals-DQuL1Twl.js +0 -1
- package/dist/shared-components/esm/index-CGqARDX4.js +0 -2
- package/dist/shared-components/shared-components/p-CGqARDX4.js +0 -2
- package/dist/shared-components/shared-components/p-DQuL1Twl.js +0 -1
- /package/dist/{legacyWorkbench.4d8a4e8dde83fc9ac427.js.LICENSE.txt → legacyWorkbench.ce850285bee5789a585d.js.LICENSE.txt} +0 -0
- /package/dist/{main.14f083264cd64618d96a.js.LICENSE.txt → main.83f9d186d9b0827c6774.js.LICENSE.txt} +0 -0
- /package/dist/shared-components/cjs/{index-L_ZmIeD5.js.LICENSE.txt → index-CTK5NoJt.js.LICENSE.txt} +0 -0
- /package/dist/shared-components/esm/{index-CGqARDX4.js.LICENSE.txt → index-EiAqSNMq.js.LICENSE.txt} +0 -0
- /package/dist/shared-components/shared-components/{p-CGqARDX4.js.LICENSE.txt → p-EiAqSNMq.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"82206.229877d7931849236456.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/shared-components/dist/esm/dropdown-item-alignment-DghTf3pJ.js","webpack://root-config/./packages/shared-components/dist/esm/onto-tooltip-placement-D_J2-9CG.js","webpack://root-config/./packages/shared-components/dist/esm/translation.service-nljGIprK.js","webpack://root-config/./packages/shared-components/dist/esm/html-util-C8DO915D.js","webpack://root-config/./packages/shared-components/dist/esm/onto-language-selector_9.entry.js","webpack://root-config/./packages/shared-components/dist/esm/resource-search-constants-CapzAxJp.js"],"sourcesContent":["var DropdownItemAlignment;\n(function (DropdownItemAlignment) {\n DropdownItemAlignment[\"RIGHT\"] = \"right\";\n DropdownItemAlignment[\"LEFT\"] = \"left\";\n})(DropdownItemAlignment || (DropdownItemAlignment = {}));\n\nexport { DropdownItemAlignment as D };\n","var OntoTooltipPlacement;\n(function (OntoTooltipPlacement) {\n OntoTooltipPlacement[\"LEFT\"] = \"left\";\n OntoTooltipPlacement[\"RIGHT\"] = \"right\";\n OntoTooltipPlacement[\"TOP\"] = \"top\";\n OntoTooltipPlacement[\"BOTTOM\"] = \"bottom\";\n OntoTooltipPlacement[\"AUTO\"] = \"auto\";\n})(OntoTooltipPlacement || (OntoTooltipPlacement = {}));\n\nexport { OntoTooltipPlacement as O };\n","import { Loggers, ServiceProvider, LanguageContextService } from '@ontotext/workbench-api';\n\nfunction sanitizeHTML(html) {\n const element = document.createElement('textarea');\n element.innerHTML = html;\n return element.value;\n}\n\nconst MODULE_NAME = 'SharedComponents';\n/**\n * Logger for the Shared Components module.\n */\nclass LoggerProvider {\n /**\n * Gets the logger instance for the Shared Components module.\n *\n * @returns LoggerService instance for the Shared Components module\n */\n static get logger() {\n return Loggers.getLoggerInstance(MODULE_NAME);\n }\n}\n\n/**\n * Service responsible for translation operations in the component.\n */\nclass TranslationServiceClassDefinition {\n constructor() {\n this.languageContextService = ServiceProvider.get(LanguageContextService);\n this.translationChangedObservers = {};\n this.logger = LoggerProvider.logger;\n // log with background color\n this.defaultBundle = this.languageContextService.getDefaultBundle();\n this.subscribeToBundleChange();\n }\n /**\n * Translates the <code>messageLabelKey</code> with <code>translationParameter</code> and call <code>translationCallback</code> with translation of current language.\n * The <code>translationCallback</code> is called upon subscription and whenever the selected language is changed.\n *\n * @param messageLabelKey - The label key for the translation.\n * @param translationParameter - Parameters, if needed, for translation.\n * @param translationCallback - A function to be called when translating the `messageLabelKey`.\n * @returns A function that, when called, unsubscribes the provided callback from further translation updates.\n */\n onTranslate(messageLabelKey, translationParameter = [], translationCallback = () => { }) {\n this.translationChangedObservers[messageLabelKey] = this.translationChangedObservers[messageLabelKey] || [];\n const observer = { parameters: translationParameter, callback: translationCallback };\n this.translationChangedObservers[messageLabelKey].push(observer);\n translationCallback(this.translate(messageLabelKey, translationParameter));\n return () => {\n const index = this.translationChangedObservers[messageLabelKey].indexOf(observer);\n if (index !== -1) {\n this.translationChangedObservers[messageLabelKey].splice(index, 1);\n }\n };\n }\n /**\n * Translates the provided key using the currently selected language by applying the parameters if\n * provided.\n * @param key The key for the label which needs to be translated.\n * @param parameters Optional parameters which to be applied during the translation.\n */\n translate(key, parameters) {\n return this.translateInLocale(key, parameters);\n }\n /**\n * Translates a given key into the specified locale. If parameters are provided,\n * they will be applied to the translation.\n *\n * @param key - The translation key, which can be dot-separated for nested translations.\n * @param parameters - Optional parameters to be substituted into the translation string.\n * @returns The translated string with parameters applied if available, or the key itself if not found.\n */\n translateInLocale(key, parameters) {\n // Attempt to retrieve the translation from the specified locale's bundle.\n let translation = this.translateFromBundle(this.currentBundle, key);\n // If not found, fall back to the default language bundle.\n if (!translation) {\n translation = this.translateFromBundle(this.defaultBundle, key);\n }\n // If translation was found, apply any parameters provided and return the result.\n if (translation) {\n translation = this.applyParameters(translation, parameters);\n return sanitizeHTML(translation);\n }\n this.logger.warn(`Missing translation for key: [${key}]`);\n return key;\n }\n /**\n * Retrieves a translation from a specified translation bundle using the given key.\n * If the key represents a nested JSON path, it attempts to resolve the key as such.\n *\n * @param bundle - The translation bundle for the specified locale.\n * @param key - The key to translate, which may be a simple key or dot-separated for nested keys.\n * @returns The translation string if found, or `undefined` if not available.\n */\n translateFromBundle(bundle, key) {\n if (!bundle) {\n return undefined;\n }\n // Try to retrieve the translation directly if it is defined as a whole string,\n // for instance as \"some_function.btn.label\".\n let translation = bundle[key];\n // If not found, attempt to retrieve the translation if it is defined as a JSON object.\n if (typeof translation !== 'string') {\n translation = this.translateAsJsonObject(bundle, key);\n }\n return translation;\n }\n /**\n * Resolves a nested translation key by treating it as a path in a JSON object.\n * For example, if the key is \"some.key.path\", this method will navigate through\n * the JSON object structure to retrieve the value at that path.\n *\n * @param bundle - The translation bundle containing nested keys.\n * @param key - The dot-separated key representing the path to the translation.\n * @returns The translation string if found, or `undefined` if the path does not exist.\n */\n translateAsJsonObject(bundle, key) {\n let path = key.split('.');\n return this.getTranslation(bundle, path);\n }\n /**\n * Recursively navigates through a JSON object based on a path array to retrieve\n * a translation string. Each element in the path array represents a nested key.\n *\n * @param jsonObject - The current JSON object or nested object being searched.\n * @param path - An array representing the path to the translation, where each element is a key.\n * @returns The translation string if found, or `undefined` if the path does not exist.\n */\n getTranslation(jsonObject, path) {\n // Stop the recursion if path or reach the inner element\n if (!path || !jsonObject) {\n return undefined;\n }\n const jsonOrTranslation = jsonObject[path.splice(0, 1)[0]];\n if (path.length === 0) {\n return jsonOrTranslation;\n }\n if (typeof jsonOrTranslation !== 'string') {\n // continue if the inner element is not reached.\n if (path.length > 0) {\n return this.getTranslation(jsonOrTranslation, path);\n }\n return jsonOrTranslation;\n }\n return undefined;\n }\n applyParameters(translation, parameters) {\n if (parameters) {\n return parameters.reduce(\n // replace all occurrence of parameter key with parameter value.\n (translation, parameter) => TranslationServiceClassDefinition.replaceAll(translation, parameter), translation);\n }\n return translation;\n }\n static replaceAll(translation, parameter) {\n return parameter ? translation.split(`{{${parameter.key}}}`).join(parameter.value) : translation;\n }\n notifyTranslationsChanged() {\n Object.keys(this.translationChangedObservers).forEach((eventName) => {\n const observers = this.translationChangedObservers[eventName] || [];\n observers.forEach((observer) => observer.callback(this.translate(eventName, observer.parameters)));\n });\n }\n subscribeToBundleChange() {\n this.languageChangeSubscription = this.languageContextService.onLanguageBundleChanged((bundle) => {\n if (bundle) {\n this.currentBundle = bundle;\n this.notifyTranslationsChanged();\n }\n });\n }\n destroy() {\n if (this.languageChangeSubscription) {\n this.languageChangeSubscription();\n }\n }\n}\nconst TranslationService = new TranslationServiceClassDefinition();\n\nexport { LoggerProvider as L, TranslationService as T, sanitizeHTML as s };\n","const INTERACTIVE_ELEMENTS_SELECTOR = 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\nclass HtmlUtil {\n /**\n * Setter for the document body overflow property.\n *\n * @param newOverflow - the new overflow value.\n *\n * @return the old overflow value.\n */\n static setDocumentBodyOverflow(newOverflow) {\n const oldOverflow = document.body.style.overflow;\n document.body.style.overflow = newOverflow;\n return oldOverflow;\n }\n /**\n * Hides the document body overflow.\n *\n * @return the value of overflow before set it to hidden.\n */\n static hideDocumentBodyOverflow() {\n return HtmlUtil.setDocumentBodyOverflow('hidden');\n }\n /**\n * Focuses the next element within a specified parent element based on the <code>activeElementSelector</code>, that selects all elements to be focused.\n *\n * @param parentElement - The parent element containing the focusable elements.\n * @param activeElementSelector - The CSS selector for identifying focusable elements.\n */\n static focusNextElement(parentElement, activeElementSelector = INTERACTIVE_ELEMENTS_SELECTOR) {\n const focusableElements = Array.from(parentElement.querySelectorAll(activeElementSelector));\n if (focusableElements.length > 0) {\n const currentIndex = focusableElements.indexOf(document.activeElement);\n const nextIndex = (currentIndex + 1) % focusableElements.length;\n const nextActiveElement = focusableElements[nextIndex];\n if (nextActiveElement) {\n nextActiveElement.focus();\n }\n }\n }\n /**\n * Focuses the previous element within a specified parent element based on the <code>activeElementSelector</code>, that selects all elements to be focused.\n *\n * @param parentElement - The parent element containing the focusable elements.\n * @param activeElementSelector - The CSS selector for identifying focusable elements.\n */\n static focusPreviousElement(parentElement, activeElementSelector = INTERACTIVE_ELEMENTS_SELECTOR) {\n const focusableElements = Array.from(parentElement.querySelectorAll(activeElementSelector));\n if (focusableElements.length > 0) {\n const currentIndex = focusableElements.indexOf(document.activeElement);\n const previousIndex = (currentIndex - 1 + focusableElements.length) % focusableElements.length;\n const previousActiveElement = focusableElements[previousIndex];\n if (previousActiveElement) {\n previousActiveElement.focus();\n }\n }\n }\n static preventLeavingDialog(hostElement, ev) {\n if (ev.key === 'Tab') {\n ev.preventDefault();\n if (ev.shiftKey) {\n HtmlUtil.focusPreviousElement(hostElement);\n }\n else {\n HtmlUtil.focusNextElement(hostElement);\n }\n }\n }\n /**\n * Focuses an element in the document based on the provided CSS selector.\n *\n * @param selector - A CSS selector string used to identify the element to focus.\n * This should be a valid CSS selector that uniquely identifies the target element.\n */\n static focusElement(selector) {\n const element = document.querySelector(selector);\n element === null || element === void 0 ? void 0 : element.focus();\n }\n /**\n * Scrolls an element into the visible area of its scrollable container.\n *\n * @param elementSelector - A CSS selector string used to identify the element to scroll into view.\n * This should be a valid CSS selector that uniquely identifies the target element.\n * @param options the scroll into view options.\n */\n static scrollElementIntoView(elementSelector, options = { block: 'nearest' }) {\n const element = document.querySelector(elementSelector);\n if (!element) {\n return;\n }\n element.scrollIntoView(options);\n }\n /**\n * Waits for an element to appear in the DOM by observing DOM mutations.\n * This function creates a MutationObserver that watches for changes in the document body\n * and resolves with the element once it becomes available.\n *\n * @param selector - A CSS selector string used to identify the element to wait for.\n * This should be a valid CSS selector that uniquely identifies the target element.\n *\n * @returns A Promise that resolves with the found HTMLElement when it appears in the DOM,\n * or rejects if an error occurs during the observation process.\n */\n static waitForElement(selector) {\n return new Promise((resolve, reject) => {\n const observer = new MutationObserver(() => {\n try {\n const element = document.querySelector(selector);\n if (element) {\n observer.disconnect();\n resolve(element);\n }\n }\n catch (error) {\n observer.disconnect();\n reject(error);\n }\n });\n observer.observe(document.body, { subtree: true, childList: true, attributes: true });\n });\n }\n}\n\nexport { HtmlUtil as H };\n","import { r as registerInstance, h, a as Host, g as getElement } from './index-CGqARDX4.js';\nimport { D as DropdownItem, R as ResourceSearchConstants } from './resource-search-constants-CapzAxJp.js';\nimport { ServiceProvider, LanguageService, LanguageContextService, navigateTo, OperationStatus, OperationGroup, SubscriptionList, EventService, ResourceSearchStorageService, UriUtil, SearchButtonConfig, SearchButton, openInNewTab, service, RepositoryContextService, AutocompleteService, AutocompleteContextService, AutocompleteStorageService, OntoToastrService, NamespacesContextService, SuggestionType, SuggestionSelectedPayload, Suggestion, getCurrentRoute, navigate, AuthenticationService } from '@ontotext/workbench-api';\nimport { D as DropdownItemAlignment } from './dropdown-item-alignment-DghTf3pJ.js';\nimport { O as OntoTooltipPlacement } from './onto-tooltip-placement-D_J2-9CG.js';\nimport { T as TranslationService } from './translation.service-nljGIprK.js';\nimport { H as HtmlUtil } from './html-util-C8DO915D.js';\n\nconst ontoLanguageSelectorCss = () => `:host{display:block}onto-language-selector{display:block}onto-language-selector .onto-dropdown{height:100%}onto-language-selector .onto-dropdown .onto-dropdown-button{background-color:transparent;color:var(--gw-button-tertiary-color);border:1px solid var(--gw-button-tertiary-border-color)}onto-language-selector .onto-dropdown .onto-dropdown-button .button-icon{color:var(--gw-button-tertiary-icon-color)}onto-language-selector .onto-dropdown .onto-dropdown-button:hover{background-color:var(--gw-button-tertiary-hover-background);color:var(--gw-button-tertiary-hover-color);border:1px solid var(--gw-button-tertiary-hover-border-color)}onto-language-selector .onto-dropdown.open{color:var(--gw-button-tertiary-color);background-color:var(--gw-button-tertiary-background);border-color:var(--gw-button-tertiary-border-color)}onto-language-selector .onto-dropdown.open .onto-dropdown-button{height:fit-content}`;\n\nconst OntoLanguageSelector = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.languageService = ServiceProvider.get(LanguageService);\n this.languageContextService = ServiceProvider.get(LanguageContextService);\n this.items = [];\n /**\n * Specifies the dropdown items' alignment. If not provided, the items and the dropdown button will be aligned to the left.\n *\n */\n this.dropdownAlignment = DropdownItemAlignment.LEFT;\n }\n connectedCallback() {\n this.onLanguageChangeSubscription = this.languageContextService.onSelectedLanguageChanged((newLanguage) => this.changeLanguage(newLanguage));\n this.items = this.getLanguageDropdownOptions();\n }\n disconnectedCallback() {\n if (this.onLanguageChangeSubscription) {\n this.onLanguageChangeSubscription();\n }\n }\n render() {\n var _a, _b;\n return (h(Host, { key: '7d42fb1b7033270442f3565520c95f1f071024d6' }, h(\"onto-dropdown\", { key: '28f71d775d7194f79191e2d12ae3e84ffbdf610c', class: 'onto-language-selector', onValueChanged: this.valueChangeHandler(), dropdownButtonNameLabelKey: !this.currentLanguage ? 'language_selector.toggle_menu.label' : undefined, dropdownButtonName: (_a = this.currentLanguage) !== null && _a !== void 0 ? _a : undefined, dropdownButtonTooltipLabelKey: this.currentLanguage ? 'language_selector.toggle_menu.tooltip' : 'language_selector.toggle_menu.label', dropdownAlignment: (_b = this.dropdownAlignment) !== null && _b !== void 0 ? _b : DropdownItemAlignment.RIGHT, iconClass: 'ri-translate-2', items: this.items, \"auto-close\": true })));\n }\n valueChangeHandler() {\n return (newLanguage) => this.onSelectedLanguageChanged(newLanguage);\n }\n changeLanguage(newLanguage) {\n let selectedLanguage = newLanguage;\n if (!selectedLanguage) {\n selectedLanguage = this.languageService.getDefaultLanguage();\n }\n this.currentLanguage = selectedLanguage;\n this.items = this.getLanguageDropdownOptions();\n }\n onSelectedLanguageChanged(newLanguageEvent) {\n this.languageContextService.updateSelectedLanguage(newLanguageEvent.detail);\n }\n getLanguageDropdownOptions() {\n return this.languageService.getSupportedLanguages().map((locale) => {\n const iconClass = this.currentLanguage === locale ? 'ri-check-line' : '';\n return new DropdownItem()\n .setNameLabelKey(`language_selector.language.${locale}.label`)\n .setTooltipLabelKey(`language_selector.language.${locale}.tooltip.` + (this.currentLanguage === locale ? 'selected' : 'not_selected'))\n .setIconClass(iconClass)\n .setCssClass(locale)\n .setValue(locale);\n });\n }\n};\nOntoLanguageSelector.style = ontoLanguageSelectorCss();\n\nconst ontoLicenseAlertCss = () => `:host{display:block}.onto-license-alert{animation:fade-button 2s infinite;--fade-color:var(--gw-error-light);border:1px solid transparent !important}.onto-license-alert:hover{text-decoration:none;background-color:var(--gw-error-light) !important;border-color:var(--gw-error-light) !important}.onto-license-alert:hover span{transform:scale(1.2)}.onto-license-alert span{transition:transform 0.15s ease-out}.onto-license-alert .ri-alert-line{margin-right:0.2em;line-height:0.75;font-size:1.4em;display:inline-block;vertical-align:middle}`;\n\nconst OntoLicenseAlert = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n render() {\n var _a;\n return (h(Host, { key: '8a1a9ad6ea4b4e336499d38588fdc373c2cd71a4', \"tooltip-content\": (_a = this.license) === null || _a === void 0 ? void 0 : _a.message, \"tooltip-placement\": OntoTooltipPlacement.BOTTOM, \"data-test\": 'onto-license-alert' }, h(\"button\", { key: '4584d26858a08aae7238260d1e8d994f3cf84199', class: \"onto-license-alert onto-btn\", onClick: navigateTo('license') }, h(\"span\", { key: '6bc7adea570d54f5af32885a8705bf4efa2cc430', class: \"ri-alert-line\" }), h(\"translate-label\", { key: '86f42bc0a3bd42f5bb5678dd02fa5a66eb7fa1de', labelKey: 'license_alert.label' }))));\n }\n};\nOntoLicenseAlert.style = ontoLicenseAlertCss();\n\nconst ontoOperationsNotificationCss = () => `.operations-statuses{position:relative;background-color:transparent}.operations-statuses .operations-statuses-content i{padding-left:3px;padding-right:3px;font-size:1.1em;line-height:1.6rem !important;align-content:center;transition:transform 0.15s ease-out}.operations-statuses .operations-statuses-dropdown-toggle{display:flex;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;background-color:transparent;border:1px solid var(--gw-button-tertiary-border-color);padding:0.4rem 1rem;gap:0.75em;transition:all 0.15s ease-out}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-icon,.operations-statuses .operations-statuses-dropdown-toggle .ri-arrow-down-s-line{color:var(--gw-button-tertiary-icon-color)}.operations-statuses .operations-statuses-dropdown-toggle:hover i:not(.ri-arrow-down-s-line){transform:scale(1.2)}.operations-statuses .operations-statuses-dropdown-toggle:focus{outline:none}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-header{display:flex}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-header .running-operation-count{line-height:1.7;display:inline;min-width:1rem;height:1rem;padding:0 6px;background-color:var(--gw-badge-primary-background);color:var(--gw-badge-primary-color);font-size:0.625rem;font-weight:600}.operations-statuses .operations-dropdown{position:absolute;right:0;z-index:1000;background-color:var(--gw-contextmenu-background);border:1px solid var(--gw-contextmenu-border-color);color:var(--gw-contextmenu-color);list-style:none;padding:0;-moz-transition:all 150ms ease-out;-o-transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out;transition:all 150ms ease-out}.operations-statuses .operations-dropdown .operations-statuses-content{display:flex;flex-direction:column;margin:0}.operations-statuses .operations-dropdown .operations-statuses-content li:first-child{margin-top:5px}.operations-statuses .operations-dropdown .operations-statuses-content li:last-child{margin-bottom:5px}.operations-statuses .operations-dropdown .operation-status-content{display:flex;flex-direction:row;margin:5px 10px;align-items:center;justify-content:start;cursor:pointer;text-decoration:none;width:auto;gap:0.5em}.operations-statuses .operations-dropdown .operation-status-content.status-warning{background-color:var(--gw-button-warn-background);border:1px solid var(--gw-button-warn-border-color);color:var(--gw-button-warn-color)}.operations-statuses .operations-dropdown .operation-status-content.status-warning:hover{background-color:var(--gw-button-warn-hover-background);border:1px solid var(--gw-button-warn-hover-border-color);color:var(--gw-button-warn-hover-color)}.operations-statuses .operations-dropdown .operation-status-content.status-critical{background-color:var(--gw-button-danger-background);border:1px solid var(--gw-button-danger-border-color);color:var(--gw-button-danger-color)}.operations-statuses .operations-dropdown .operation-status-content.status-critical:hover{background-color:var(--gw-button-danger-hover-background);border:1px solid var(--gw-button-danger-hover-border-color);color:var(--gw-button-danger-hover-color)}.operations-statuses .operations-dropdown .operation-status-content .operation-number{min-width:50px;display:block}.operations-statuses .operations-dropdown .operation-status-content .operation-number .operation-status-running-operation-count{display:inline;min-width:1rem;height:1rem;padding:2px 6px;background-color:var(--gw-badge-primary-background);color:var(--gw-badge-primary-color);font-size:0.625rem;font-weight:600}.operations-statuses .operations-dropdown .operation-status-content .operation-status-content>*{padding:0}.operations-statuses .operations-dropdown .operation-status-content .operation-status-label{width:66.66%;padding-left:5px;line-height:0;text-align:start}.operations-statuses .operations-dropdown .operation-status-content:hover{text-decoration:none;color:var(--gw-button-tertiary-hover-color);background-color:var(--gw-button-tertiary-hover-background)}.operations-statuses .operations-dropdown .operation-status-content:hover i{transform:scale(1.2)}.operations-statuses .operations-dropdown .operation-status-content.status-information{background-color:var(--gw-button-tertiary-background);border:1px solid var(--gw-button-tertiary-border-color);color:var(--gw-button-tertiary-color)}.operations-statuses .operations-dropdown .operation-status-content.status-information:hover{background-color:var(--gw-button-tertiary-hover-background);border:1px solid var(--gw-button-tertiary-hover-border-color);color:var(--gw-button-tertiary-hover-color)}`;\n\nconst operationGroupToIcon = {\n [OperationGroup.BACKUP]: 'ri-archive-line',\n [OperationGroup.QUERY]: 'ri-arrow-left-right-line',\n [OperationGroup.CLUSTER]: 'ri-organization-chart',\n [OperationGroup.IMPORT]: 'icon-import'\n};\nconst operationStatusToWarningClass = {\n [OperationStatus.WARNING]: 'status-warning',\n [OperationStatus.INFORMATION]: 'status-information',\n [OperationStatus.CRITICAL]: 'status-critical'\n};\nconst operationStatusToFadeClass = {\n [OperationStatus.WARNING]: 'onto-btn-fade-warning',\n [OperationStatus.CRITICAL]: 'onto-btn-fade-danger'\n};\nconst OntoOperationsNotification = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /** Whether the dropdown menu is open or closed */\n this.isOpen = false;\n this.toggleDropdown = (event) => {\n event.stopPropagation();\n this.isOpen = !this.isOpen;\n };\n }\n handleOutsideClick() {\n if (this.isOpen) {\n this.isOpen = false;\n }\n }\n render() {\n var _a;\n this.operationGroups = this.activeOperations.toOperationGroupSummaryList();\n return (h(\"section\", { key: 'f1d9e777583a1774818846fdeb5244d85518e0ca', class: \"operations-statuses\" }, h(\"button\", { key: '82ede64d5fcb045f1612f79c5a1bd402e9081491', class: `operations-statuses-dropdown-toggle ${this.isOpen ? 'open' : 'closed'} ${(_a = operationStatusToFadeClass[this.activeOperations.status]) !== null && _a !== void 0 ? _a : ''}`, onClick: this.toggleDropdown }, this.operationGroups.getItems().map((groupSummary) => (h(\"section\", { key: groupSummary.id, class: \"operation-status-header\" }, h(\"i\", { class: `operation-status-icon icon-1-33x ${operationGroupToIcon[groupSummary.group]} ${operationStatusToWarningClass[groupSummary.status]}` }), groupSummary.totalOperations\n ? h(\"sup\", { class: \"running-operation-count\" }, groupSummary.totalOperations)\n : ''))), h(\"i\", { key: '0f1c0118cafffcf59c7988efc6617a07e9e11088', class: `ri-arrow-down-s-line ${this.isOpen ? 'rotate-180' : ''}` })), this.isOpen &&\n h(\"ul\", { key: '9a86f8e65e9fbfc9338c131e6a290b9ef95168bc', class: \"operations-dropdown\" }, h(\"section\", { key: 'c03491fc69387608ead8aaf5faefeb4a159f79d5', class: \"operations-statuses-content\" }, this.activeOperations.allRunningOperations.getItems().map((operation) => (h(\"li\", { key: operation.id }, h(\"a\", { class: `operation-status-content onto-btn no-underline ${operationStatusToWarningClass[operation.status]}`, target: \"_blank\", onClick: navigateTo(operation.href) }, h(\"i\", { class: operationGroupToIcon[operation.group] }), h(\"span\", { class: \"operation-status-label\" }, h(\"translate-label\", { labelKey: `operations_notification.links.${operation.labelKey}` })), h(\"span\", { class: \"operation-number\" }, operation.count\n ? h(\"span\", { class: \"operation-status-running-operation-count\" }, operation.count)\n : '')))))))));\n }\n get el() { return getElement(this); }\n};\nOntoOperationsNotification.style = ontoOperationsNotificationCss();\n\nconst ontoRdfSearchCss = () => `.onto-rdf-search{display:flex;align-items:center;height:auto}.onto-rdf-search .search-area{white-space:nowrap;text-align:start;font-weight:300;max-width:100vw;position:fixed;right:3em;z-index:1;display:block;width:60vw;-webkit-transition:top 0.3s ease-in, opacity 0.5s ease;transition:top 0.3s ease-in, opacity 0.5s ease;border-radius:0;margin-bottom:1em;padding:1.6rem;color:var(--gw-dialog-color);background-color:var(--gw-dialog-background);border:1px solid var(--gw-dialog-border-color);box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color)}.onto-rdf-search .search-area.visible{top:40px;opacity:1}.onto-rdf-search .search-area.invisible{top:-550px;opacity:0}.onto-rdf-search .search-area .close-btn{display:block;position:absolute;top:0;right:0;font-size:1.5rem}.onto-rdf-search i{cursor:pointer;color:var(--gw-button-tertiary-icon-color);transition:all 0.15s ease-out}.onto-rdf-search i.ri-search-line,.onto-rdf-search i.close-btn{padding:0.5rem 0.8rem}.onto-rdf-search i:hover{transform:scale(1.2)}`;\n\nconst OntoRdfSearch = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.subscriptions = new SubscriptionList();\n this.eventService = ServiceProvider.get(EventService);\n this.resourceSearchStorageService = ServiceProvider.get(ResourceSearchStorageService);\n this.RDF_CONTEXT = 'rdfSearchContext';\n this.isOpen = false;\n this.redirectUrl = UriUtil.RESOURCE_URL;\n }\n /**\n * Handles click events on the window.\n * Closes the search area if it's open and the click is outside the search area.\n * @param event - The MouseEvent object.\n */\n handleClick(event) {\n var _a;\n if (!this.isOpen) {\n return;\n }\n if (!((_a = this.rdfSearchRef) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {\n this.isOpen = false;\n }\n }\n connectedCallback() {\n this.onSuggestionSelected();\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n componentDidRender() {\n this.focusSearchInput();\n }\n componentDidLoad() {\n this.buttonConfig = this.createButtonConfig();\n }\n render() {\n return (h(\"section\", { key: 'ab853ae8835280311974ada17bd83593d084f2c4', ref: (ref) => this.rdfSearchRef = ref, class: \"onto-rdf-search\", onKeyDown: this.onKeyDown(), \"data-test\": 'onto-rdf-search-component' }, h(\"section\", { key: 'fde7d09d0d3a796c7b5313d706f5e3892975c8fd', class: `search-area ${this.isOpen ? 'visible' : 'invisible'}` }, h(\"i\", { key: '0bd9a120019ff2efb4d906d6ba3c228b446a3831', onClick: this.setIsOpen(false), \"tooltip-content\": TranslationService.translate('rdf_search.tooltips.close_search_area'), \"tooltip-placement\": OntoTooltipPlacement.BOTTOM, \"data-test\": 'onto-rdf-resource-search-close-btn', class: \"ri-close-line close-btn\" }), h(\"onto-search-resource-input\", { key: '281a7105140989c1fc624827f1acb5e3e1f7e305', buttonConfig: this.buttonConfig, preserveSearch: true, isHidden: !this.isOpen, \"data-test\": 'onto-rdf-resource-search-input', context: this.RDF_CONTEXT })), !this.isOpen ? h(\"onto-search-icon\", { onClick: this.setIsOpen(true) }) : ''));\n }\n /**\n * Creates a function to set the open state of the search area.\n * @param isOpen - Boolean indicating whether the search area should be open.\n */\n setIsOpen(isOpen) {\n return () => {\n this.isOpen = isOpen;\n if (this.isOpen) {\n this.loadSelectedViewFromStorage();\n }\n };\n }\n /**\n * Creates the configuration for search buttons.\n * @returns A SearchButtonConfig object with radio buttons for table and visual search.\n */\n createButtonConfig() {\n return new SearchButtonConfig({\n isRadio: true,\n buttons: [\n this.createSearchButton(ResourceSearchConstants.TABLE_VIEW, 'rdf_search.buttons.table', () => {\n this.redirectUrl = UriUtil.RESOURCE_URL;\n this.resourceSearchStorageService.setSelectedView(ResourceSearchConstants.TABLE_VIEW);\n }, true),\n this.createSearchButton(ResourceSearchConstants.VISUAL_VIEW, 'rdf_search.buttons.visual', () => {\n this.redirectUrl = UriUtil.GRAPHS_VISUALIZATIONS_URL;\n this.resourceSearchStorageService.setSelectedView(ResourceSearchConstants.VISUAL_VIEW);\n }, false)\n ]\n });\n }\n /**\n * Creates a search button with the given parameters.\n * @param id - The id for the button.\n * @param labelKey - The key for the button's label translation.\n * @param callback - The function to be called when the button is clicked.\n * @param selected - Boolean indicating whether the button should be initially selected.\n * @returns A SearchButton object.\n */\n createSearchButton(id, labelKey, callback, selected) {\n return new SearchButton({\n label: TranslationService.translate(labelKey),\n id,\n callback,\n selected\n });\n }\n onSuggestionSelected() {\n this.subscriptions.add(this.eventService.subscribe(ResourceSearchConstants.SUGGESTION_SELECTED_EVENT, (payload) => {\n if (payload.getContext() === this.RDF_CONTEXT) {\n const redirectUrl = payload.getSuggestion().getOverrideToVisual()\n ? UriUtil.GRAPHS_VISUALIZATIONS_URL\n : this.redirectUrl;\n openInNewTab(UriUtil.createAutocompleteRedirect(redirectUrl, payload.getSuggestion().getValue()));\n }\n }));\n }\n onKeyDown() {\n return (event) => {\n if (event.key === 'Escape') {\n this.isOpen = false;\n }\n };\n }\n focusSearchInput() {\n if (this.isOpen) {\n HtmlUtil.focusElement(`#${this.RDF_CONTEXT}`);\n }\n }\n loadSelectedViewFromStorage() {\n const selectedView = this.resourceSearchStorageService.getSelectedView();\n if (selectedView) {\n const selectedButton = this.buttonConfig.getButtons().find((button) => button.id === selectedView);\n if (selectedButton) {\n this.buttonConfig = this.buttonConfig.selectButton(selectedButton);\n }\n }\n }\n};\nOntoRdfSearch.style = ontoRdfSearchCss();\n\n/**\n *\n * A StencilJS component that renders a repository selection. The element displays the repository's icon and ID\n * if a repository is selected; otherwise, it shows a translated toggle button name. The component dynamically\n * updates the name when the translation changes.\n *\n * @example\n * <RepositorySelection repository={repository}></>\n *\n */\nconst RepositorySelection = ({ repository, defaultToggleButtonName, location }) => {\n var _a;\n const className = repository ? 'repository-selection active-repository' : 'repository-selection no-selected-repository';\n return (h(\"div\", { class: className, \"data-test\": 'repository-selection' }, repository && h(\"i\", { class: 'button-icon icon-1-5x icon-repo-' + repository.type }), \"\\u00A0\", (_a = repository === null || repository === void 0 ? void 0 : repository.id) !== null && _a !== void 0 ? _a : defaultToggleButtonName, location));\n};\n\nconst ontoRepositorySelectorCss = () => `:host{display:block}.onto-repository-selector .onto-dropdown.closed .onto-dropdown-button:not(:hover){background-color:transparent}.onto-repository-selector .repository-selector-dropdown-item{display:flex;align-items:center;gap:0.4em}.onto-repository-selector .repository-selector-dropdown-item .item-icon{font-size:1.4em}.onto-repository-selector .repository-selector-dropdown-item .item-label{line-height:0.75em;display:inline-block;vertical-align:middle;text-align:left}.onto-repository-selector .repository-selector-dropdown-item .item-label .repository-id{line-height:0.75em}.onto-repository-selector .repository-selector-dropdown-item .item-label .repository-location{font-weight:300;font-size:0.75em;margin-top:0.4em;display:inline-block;max-width:120px;text-overflow:ellipsis;overflow:hidden}.tooltip-box[data-theme=light-border]{color:var(--gw-dialog-color) !important;background-color:var(--gw-dialog-background) !important;border:1px solid var(--gw-dialog-border-color) !important;box-shadow:var(--gw-dialog-shadow-1-offset-x) var(--gw-dialog-shadow-1-offset-y) var(--gw-dialog-shadow-1-blur) var(--gw-dialog-shadow-1-spread) var(--gw-dialog-shadow-1-color);max-width:350px;opacity:1 !important}.tooltip-box[data-theme=light-border] .tooltip-arrow::before{border:1px solid var(--gw-dialog-border-color);background-color:var(--gw-dialog-background)}.tooltip-box[data-theme=light-border] .tooltip-content{padding:0}.tooltip-box[data-theme=light-border] .tooltip-content .repository-tooltip-title{font-size:1rem;font-weight:400;padding:8px 14px;background-color:var(--gw-dialog-background);border-bottom:var(--gw-dialog-border-color) 1px solid}.tooltip-box[data-theme=light-border] .tooltip-content .repository-tooltip-title .value{overflow-wrap:break-word}.tooltip-box[data-theme=light-border] .tooltip-content .repository-tooltip-content{background-color:var(--gw-dialog-background);padding:1.5rem 0.5rem;display:flex;flex-direction:column;gap:0.8em;font-weight:400;font-size:0.875rem}.tooltip-box[data-theme=light-border] .tooltip-content .repository-tooltip-row{display:flex;flex-direction:row;justify-content:space-between}.tooltip-box[data-theme=light-border] .tooltip-content .repository-tooltip-row.total{margin-top:1.2em}.tooltip-box[data-theme=light-border] .tooltip-content .repository-tooltip-row .value{margin-left:0.6em}`;\n\nconst OntoRepositorySelector = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.repositoryContextService = service(RepositoryContextService);\n this.subscriptions = [];\n }\n /**\n * Re-applies tooltip functions to all dropdown items when the items prop changes.\n */\n onItemsChanged(newItems) {\n if (!(newItems === null || newItems === void 0 ? void 0 : newItems.length)) {\n this.dropdownItems = [];\n return;\n }\n this.dropdownItems = this.attachTooltipsToItems(this.items);\n }\n connectedCallback() {\n var _a;\n this.subscriptions.push(...this.subscribeToTranslationChanged());\n // Manually apply tooltip functions to each item on first mount.\n if ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length) {\n this.dropdownItems = this.attachTooltipsToItems(this.items);\n }\n else {\n this.dropdownItems = [];\n }\n }\n /**\n * Cleans up the subscriptions when the component is removed from the DOM to avoid memory leaks.\n * This method unsubscribes from both the repository change and selected repository change events.\n */\n disconnectedCallback() {\n this.subscriptions.forEach((subscription) => subscription());\n }\n render() {\n const repositorySelection = h(RepositorySelection, { key: 'eeaf798b50c245f6e3946e27d66522a478af8df5', repository: this.currentRepository, defaultToggleButtonName: this.getButtonLabel(), location: this.getLocation() });\n return (h(Host, { key: '285be46de66e76663616f0a686e04a93cff42e2e' }, h(\"onto-dropdown\", Object.assign({ key: 'cf65ea18aa3a96791bd2f810d20ef7c966bacf2f', class: \"onto-repository-selector\", \"data-test\": 'onto-repository-selector', onValueChanged: this.onValueChanged(), dropdownButtonName: repositorySelection, dropdownButtonTooltip: this.createTooltipFunctionForRepository(this.currentRepository) }, (this.currentRepository ? { 'dropdownButtonGuideSelector': `repository-id-${this.currentRepository.id}` } : {}), { dropdownAlignment: DropdownItemAlignment.RIGHT, tooltipPlacement: this.tooltipAlignment, tooltipTheme: \"light-border\", items: this.dropdownItems, \"auto-close\": true }))));\n }\n attachTooltipsToItems(items) {\n if (!items) {\n return [];\n }\n return items.map((item) => item.setTooltip(this.createTooltipFunctionForRepository(item.value)));\n }\n tooltipAlignment(isOpen) {\n if (isOpen) {\n return OntoTooltipPlacement.LEFT;\n }\n return OntoTooltipPlacement.BOTTOM;\n }\n onValueChanged() {\n return (valueChangeEvent) => this.onRepositoryChanged(valueChangeEvent.detail);\n }\n /**\n * Returns an async function that generates HTML tooltip content for the given repository.\n */\n createTooltipFunctionForRepository(repository) {\n return async () => {\n if (!repository) {\n return '';\n }\n const repositorySizeInfo = await this.repositorySizeInfoFetcher(repository);\n return this.buildRepositoryTooltipHtml(repository, repositorySizeInfo);\n };\n }\n /**\n * Builds the complete HTML string used as tooltip content for a repository.\n */\n buildRepositoryTooltipHtml(repository, repositorySizeInfo) {\n let html = `\n <div class=\"repository-tooltip-title\">\n <span class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository')}</span>\n <span class=\"value\">${repository.id}</span>\n </div>\n <div class=\"repository-tooltip-content\">\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.location')}:</div>\n <div class=\"value\">${repository.location ? repository.location : TranslationService.translate('repository-selector.tooltip.local')}</div>\n </div>\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.type')}:</div>\n <div class=\"value\">${TranslationService.translate('repository-selector.tooltip.types.' + (repository.type || 'unknown'))}</div>\n </div>\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.access')}:</div>\n <div class=\"value\">${TranslationService.translate(this.canWriteRepo(repository) ? 'repository-selector.tooltip.accesses.read_write' : 'repository-selector.tooltip.accesses.read')}</div>\n </div>`;\n html += this.buildRepositorySizeInfoHtml(repositorySizeInfo);\n html += '</div>';\n return html;\n }\n /**\n * Builds the repository size section of the tooltip.\n */\n buildRepositorySizeInfoHtml(repositorySizeInfo) {\n if (!repositorySizeInfo || repositorySizeInfo.total < 0) {\n return '';\n }\n let html = `\n <div class=\"repository-tooltip-row total\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository-size.total')}:</div>\n <div class=\"value\">${this.totalTripletsFormatter.format(repositorySizeInfo.total)}</div>\n </div>`;\n if (repositorySizeInfo.explicit >= 0) {\n html += `\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository-size.explicit')}:</div>\n <div class=\"value\">${this.totalTripletsFormatter.format(repositorySizeInfo.explicit)}</div>\n </div>`;\n }\n if (repositorySizeInfo.inferred >= 0) {\n html += `\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository-size.inferred')}:</div>\n <div class=\"value\">${this.totalTripletsFormatter.format(repositorySizeInfo.inferred)}</div>\n </div>`;\n }\n if (repositorySizeInfo.total >= 0) {\n let value = '-';\n if (repositorySizeInfo.explicit > 0) {\n value = this.expansionRatioFormatter.format(repositorySizeInfo.total / repositorySizeInfo.explicit);\n }\n html += `\n <div class=\"repository-tooltip-row\">\n <div class=\"label\">${TranslationService.translate('repository-selector.tooltip.repository-size.expansion_ratio')}:</div>\n <div class=\"value\">${value}</div>\n </div>`;\n }\n return html;\n }\n subscribeToTranslationChanged() {\n return [\n TranslationService.onTranslate('repository-selector.btn.toggle', [], (toggleButtonName) => {\n this.defaultToggleButtonName = toggleButtonName;\n }),\n TranslationService.onTranslate('repository-selector.btn.no_repositories', [], (noRepositoriesButtonMessage) => {\n this.noRepositoriesButtonMessage = noRepositoriesButtonMessage;\n })\n ];\n }\n onRepositoryChanged(selectedRepository) {\n this.repositoryContextService.updateSelectedRepository(selectedRepository);\n }\n getLocation() {\n var _a;\n if (!((_a = this.currentRepository) === null || _a === void 0 ? void 0 : _a.location)) {\n return '';\n }\n return `@${UriUtil.shortenIri(this.currentRepository.location)}`;\n }\n getButtonLabel() {\n var _a;\n return ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length)\n ? this.defaultToggleButtonName\n : this.noRepositoriesButtonMessage;\n }\n static get watchers() { return {\n \"items\": [{\n \"onItemsChanged\": 0\n }]\n }; }\n};\nOntoRepositorySelector.style = ontoRepositorySelectorCss();\n\nconst ontoSearchIconCss = () => `.onto-search-icon{cursor:pointer;color:var(--gw-button-tertiary-icon-color);transition:all 0.15s ease-out}.onto-search-icon.ri-search-line{padding:0.5rem 0.8rem}.onto-search-icon:hover{transform:scale(1.2)}`;\n\nconst OntoSearchIcon = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.tooltipKey = 'rdf_search.labels.search';\n this.subscriptions = new SubscriptionList();\n }\n // ========================\n // Lifecycle methods\n // ========================\n connectedCallback() {\n this.onTooltipChange();\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n render() {\n return (h(\"i\", { key: '36c552ab017abc9d3b76ca47ff3a8202f243f10d', \"tooltip-content\": this.tooltipLabel, \"tooltip-placement\": OntoTooltipPlacement.BOTTOM, class: \"onto-search-icon ri-search-line ri-lg\" }));\n }\n onTooltipChange() {\n this.subscriptions.add(TranslationService.onTranslate(this.tooltipKey, [], (translation) => this.tooltipLabel = translation));\n }\n};\nOntoSearchIcon.style = ontoSearchIconCss();\n\nconst ontoSearchResourceInputCss = () => `.search-resources-input{padding-right:20px}.search-resources-input .input-row{gap:3px;display:flex;flex-wrap:wrap}.search-resources-input .input-row .input-wrapper{position:relative;display:flex;flex:1;min-width:20vw}.search-resources-input .input-row .input-wrapper input{min-width:inherit;flex:1;padding:0.5rem 0.75rem;font-size:1rem;line-height:1.25;color:var(--gw-form-field-color);background-color:var(--gw-form-field-background);background-image:none;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid var(--gw-form-field-border-color)}.search-resources-input .input-row .input-wrapper input:focus{outline:0;color:var(--gw-form-field-color);border-color:var(--gw-form-field-focus-border-color)}.search-resources-input .input-row i.ri-close-line{position:absolute;right:10px;top:7px;z-index:10;font-size:1.6rem}.search-resources-input .input-row button{display:inline-block;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;transition:all 0.15s ease-out;user-select:none;border:1px solid transparent;padding:0.5rem 1rem;font-size:1rem;color:var(--gw-button-secondary-color);background-color:var(--gw-button-secondary-background)}.search-resources-input .input-row button.selected{background-color:var(--gw-button-primary-background);color:var(--gw-button-primary-color)}.search-resources-input .input-row button:focus{outline:none}.search-resources-input .input-row button:hover:not(.selected){background-color:var(--gw-button-secondary-hover-background);border-color:var(--gw-button-secondary-hover-color)}.search-resources-input .hint{font-size:0.8rem;color:#818a91}.search-resources-input .autocomplete-results-wrapper{margin-top:6px;max-height:204px;overflow:auto}.search-resources-input .autocomplete-results-wrapper p{font-size:1.1rem;line-height:1.5;color:var(--gw-autocomplete-color);background-color:var(--gw-autocomplete-background);margin-bottom:0;padding:5px 25px;cursor:pointer}.search-resources-input .autocomplete-results-wrapper p b{color:var(--gw-autocomplete-dropdown-match-color)}.search-resources-input .autocomplete-results-wrapper p.selected{color:var(--gw-autocomplete-option-selected-color);background-color:var(--gw-autocomplete-option-selected-background)}.search-resources-input .autocomplete-results-wrapper p.hovered:not(.selected),.search-resources-input .autocomplete-results-wrapper p:hover:not(.selected){color:var(--gw-autocomplete-option-focus-color);background-color:var(--gw-autocomplete-option-focus-background)}`;\n\nconst OntoSearchResourceInput = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.autocompleteService = ServiceProvider.get(AutocompleteService);\n this.autocompleteContextService = ServiceProvider.get(AutocompleteContextService);\n this.autocompleteStorageService = ServiceProvider.get(AutocompleteStorageService);\n this.resourceSearchStorageService = ServiceProvider.get(ResourceSearchStorageService);\n this.toastrService = ServiceProvider.get(OntoToastrService);\n this.eventService = ServiceProvider.get(EventService);\n this.namespaceContextService = ServiceProvider.get(NamespacesContextService);\n this.subscriptions = new SubscriptionList();\n this.autocompleteWarningShown = false;\n /** Whether the rdf resource pre-search validation should be skipped. */\n this.skipValidation = false;\n /**\n * Whether the search component is currently hidden. Can be shown/hidden in the RDF search\n */\n this.isHidden = false;\n /**\n * Whether the autocomplete setting is enabled.\n */\n this.isAutocompleteEnabled = false;\n /**\n * Updates the local inputValue with the html input element's value.'\n */\n this.handleInput = (event) => {\n const target = event.target;\n if (!target.value) {\n this.clearInput();\n return;\n }\n this.setInputValue(target.value);\n this.checkForAutocomplete();\n };\n /**\n * Clears the search input field.\n */\n this.clearInput = () => {\n this.setInputValue('');\n if (this.preserveSearch) {\n this.resourceSearchStorageService.clearStoredSearch();\n }\n };\n this.onKeyDown = (event) => {\n switch (event.key) {\n case 'Enter':\n this.onEnter(event);\n break;\n case 'Escape':\n this.onEscape();\n break;\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n }\n };\n }\n onVisibilityChange(isHidden) {\n var _a;\n if (isHidden) {\n (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.clearSuggestions();\n }\n else {\n this.setInputValue(this.resourceSearchStorageService.getInputValue());\n }\n }\n connectedCallback() {\n this.onAutocompleteEnabledChange();\n this.onNamespaceChange();\n this.loadInputFromStorage();\n }\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n render() {\n var _a, _b, _c;\n return (h(\"section\", { key: '07393acc0648ecd5859d053d6769ece464b9c664', class: \"search-resources-input\" }, h(\"div\", { key: '9c95b8ca64d8334472d14518845a8c16a9568335', class: \"input-row\" }, h(\"span\", { key: '0efbbe550fadf44dfab837e05ce8857c724d5da7', class: \"input-wrapper\" }, h(\"input\", { key: 'c55ffa901d87dd7569c1e55b5fb7e6689855f6d1', value: this.inputValue, id: this.context, type: \"text\", autocomplete: \"off\", placeholder: `${TranslationService.translate('rdf_search.labels.search')}...`, ref: (ref) => this.inputRef = ref, onKeyDown: this.onKeyDown, \"data-test\": this.context, onInput: this.handleInput }), ((_a = this.inputValue) === null || _a === void 0 ? void 0 : _a.length) ?\n h(\"i\", { onClick: this.clearInput, \"tooltip-content\": TranslationService.translate('rdf_search.tooltips.clear'), \"tooltip-placement\": OntoTooltipPlacement.BOTTOM, class: \"ri-close-line clear-input\" }) : ''), (_b = this.buttonConfig) === null || _b === void 0 ? void 0 :\n _b.getButtons().getItems().map((button) => (h(\"button\", { key: button.label, onClick: this.handleButtonClick(button), class: `${button.selected ? 'selected' : ''}` }, button.label)))), h(\"span\", { key: '94fa466d5f73e84247ac8efc45c12980f052a2b1', class: \"hint\" }, TranslationService.translate('rdf_search.labels.hint')), h(\"section\", { key: 'b4d9379572bdfa66bc16b8218e86128a6807f399', class: \"autocomplete-results-wrapper\", \"data-test\": 'onto-autocomplete-results' }, (_c = this.searchResult) === null || _c === void 0 ? void 0 : _c.suggestions.getItems().map((suggestion) => (h(\"p\", { key: suggestion.getId(), onClick: this.onSuggestionClick(suggestion), \"data-test\": 'onto-autocomplete-suggestion', onMouseMove: this.hoverSuggestion(suggestion), class: `${suggestion.isHovered() ? 'hovered' : ''} ${suggestion.isSelected() ? 'selected' : ''}`, innerHTML: suggestion.getDescription() }))))));\n }\n /**\n * Handles the click event for a search button.\n * If the button configuration is set to radio mode and the clicked button is not selected,\n * it deselects all other buttons and selects the clicked one.\n * @param {SearchButton} button - The button that was clicked.\n */\n handleButtonClick(button) {\n return () => this.buttonConfig = this.buttonConfig.selectButton(button);\n }\n loadAutocompleteResults() {\n var _a;\n if (!this.inputValue) {\n (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.clearSuggestions();\n return;\n }\n if (this.isAutocompleteEnabled) {\n this.autocompleteService.search(this.inputValue)\n .then((searchResult) => {\n this.onResultsReceived(searchResult);\n });\n }\n }\n hoverSuggestion(suggestion) {\n return () => this.searchResult = this.searchResult.hoverSuggestion(suggestion);\n }\n onAutocompleteEnabledChange() {\n this.isAutocompleteEnabled = this.autocompleteStorageService.isEnabled();\n this.subscriptions.add(this.autocompleteContextService.onAutocompleteEnabledChanged((enabled) => {\n this.isAutocompleteEnabled = enabled !== null && enabled !== void 0 ? enabled : this.isAutocompleteEnabled;\n }));\n }\n checkForAutocomplete() {\n if (this.inputValue.length > 0 && !this.isAutocompleteEnabled && !this.autocompleteWarningShown) {\n this.autocompleteWarningShown = true;\n const message = TranslationService.translate('rdf_search.toasts.autocomplete_is_off');\n this.toastrService.warning(`<a class=\"no-underline\" style=\"font-weight: 500\">${message}</a>`, {\n onClick: navigateTo('autocomplete'),\n removeOnClick: true\n });\n }\n }\n onSuggestionClick(suggestion) {\n return (event) => {\n suggestion.setOverrideToVisual(event.ctrlKey || event.metaKey);\n this.searchRdfResource(suggestion);\n };\n }\n searchRdfResource(suggestion) {\n if (suggestion.getType() === SuggestionType.PREFIX) {\n this.expandPrefix(suggestion);\n }\n else {\n this.notifyRdfResourceSelected(suggestion);\n if (this.preserveSearch) {\n this.resourceSearchStorageService.setLastSelected(suggestion);\n }\n }\n }\n notifyRdfResourceSelected(suggestion) {\n var _a;\n this.searchResult = (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.selectSuggestion(suggestion);\n this.eventService.emit({\n NAME: ResourceSearchConstants.SUGGESTION_SELECTED_EVENT,\n payload: new SuggestionSelectedPayload(suggestion, this.context)\n });\n }\n expandPrefix(suggestion) {\n this.setInputValue(this.namespaces.getByPrefix(suggestion.getValue()));\n this.inputRef.focus();\n }\n setInputValue(value) {\n this.inputValue = value;\n if (this.preserveSearch) {\n this.resourceSearchStorageService.setInputValue(this.inputValue);\n }\n this.loadAutocompleteResults();\n }\n onNamespaceChange() {\n this.subscriptions.add(this.namespaceContextService.onNamespacesChanged((namespaces) => {\n this.namespaces = namespaces;\n }));\n }\n onEnter(event) {\n var _a;\n let selectedSuggestion = (_a = this.searchResult) === null || _a === void 0 ? void 0 : _a.getHoveredSuggestion();\n if (!selectedSuggestion) {\n selectedSuggestion = new Suggestion({\n value: UriUtil.removeAngleBrackets(this.inputValue),\n type: SuggestionType.URI\n });\n }\n selectedSuggestion.setOverrideToVisual(event.ctrlKey || event.metaKey);\n this.validateAndSearch(selectedSuggestion);\n }\n onArrowUp(event) {\n if (!this.searchResult) {\n return;\n }\n this.searchResult = this.searchResult.hoverPreviousSuggestion();\n this.displaySuggestion(event);\n }\n onArrowDown(event) {\n if (!this.searchResult) {\n return;\n }\n this.searchResult = this.searchResult.hoverNextSuggestion();\n this.displaySuggestion(event);\n }\n displaySuggestion(event) {\n event.preventDefault();\n // Update the input directly, because the value should only be displayed,\n // without triggering a new search and altering the autocomplete results\n this.inputRef.value = this.searchResult.getHoveredSuggestion().getValue();\n this.scrollToSuggestionBySelector('p.hovered');\n }\n getSuggestionValue(suggestion) {\n return suggestion.getType() === SuggestionType.PREFIX\n ? this.namespaces.getByPrefix(suggestion.getValue())\n : suggestion.getValue();\n }\n scrollToSuggestionBySelector(selector, options) {\n HtmlUtil.waitForElement(selector)\n .then(() => {\n HtmlUtil.scrollElementIntoView(selector, options);\n });\n }\n validateAndSearch(suggestion) {\n if (!this.skipValidation) {\n if (!suggestion.getValue()) {\n this.toastrService.error(TranslationService.translate('rdf_search.toasts.empty_input'));\n return;\n }\n if (!UriUtil.isValidUri(this.getSuggestionValue(suggestion))) {\n this.toastrService.error(TranslationService.translate('rdf_search.toasts.invalid_uri'));\n return;\n }\n }\n this.searchRdfResource(suggestion);\n }\n onEscape() {\n if (this.preserveSearch) {\n return;\n }\n this.clearInput();\n }\n loadInputFromStorage() {\n if (!this.preserveSearch) {\n return;\n }\n this.inputValue = this.resourceSearchStorageService.getInputValue() || '';\n }\n onResultsReceived(searchResult) {\n const lastSelected = searchResult === null || searchResult === void 0 ? void 0 : searchResult.getByValue(this.resourceSearchStorageService.getLastSelectedValue());\n if (lastSelected && this.preserveSearch) {\n // No need to reassign twice in the same thread tick. One will trigger the re-render\n searchResult.hoverSuggestion(lastSelected);\n this.searchResult = searchResult.selectSuggestion(lastSelected);\n this.scrollToSuggestionBySelector('p.hovered.selected', { block: 'start' });\n }\n else {\n this.searchResult = searchResult.hoverFirstSuggestion();\n this.scrollToSuggestionBySelector('p.hovered', { block: 'start' });\n }\n }\n static get watchers() { return {\n \"isHidden\": [{\n \"onVisibilityChange\": 0\n }]\n }; }\n};\nOntoSearchResourceInput.style = ontoSearchResourceInputCss();\n\nconst ontoUserLoginCss = () => `.onto-user-login{position:relative;width:fit-content}.onto-user-login button{display:flex;color:var(--gw-button-tertiary-color);background-color:var(--gw-button-tertiary-background);flex-direction:row;line-height:1.5;font-weight:400;font-size:1rem;text-align:center;user-select:none;border:1px solid transparent;padding:0.4em 1rem;cursor:pointer;white-space:nowrap;place-items:center;transition:all 0.15s ease-out}.onto-user-login button .user-login-label{padding:0 0.4rem}.onto-user-login button:hover{color:var(--gw-button-tertiary-hover-color);background-color:var(--gw-button-tertiary-hover-background)}.onto-user-login button:hover .ri-user-fill{transform:scale(1.2)}.onto-user-login button:focus{outline:none}.onto-user-login button i{color:var(--user-menu-primary-color);line-height:0.75;font-size:1.2em;transition:0.15s ease-out}.onto-user-login button i.ri-arrow-down-s-line{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}`;\n\nconst OntoUserLogin = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n navigateToLogin() {\n return (event) => {\n event.preventDefault();\n const returnUrl = encodeURIComponent(getCurrentRoute());\n navigate(`login?r=${encodeURIComponent(returnUrl)}`);\n };\n }\n render() {\n return (h(\"section\", { key: '56843d38290568346cfd746fd71958113436cd94', class: \"onto-user-login\" }, h(\"button\", { key: '3166bbb91655243194c992101ede66d6bd3ab4c7', onClick: this.navigateToLogin() }, h(\"i\", { key: 'e562126298532327c4b5c0a59cf4223c2e466fe6', class: \"ri-arrow-right-circle-line\" }), h(\"translate-label\", { key: 'ecd6d795c44eac7c22291350cf7f297f00870ad6', class: \"user-login-label\", labelKey: \"user_menu.login\" }))));\n }\n};\nOntoUserLogin.style = ontoUserLoginCss();\n\nconst ontoUserMenuCss = () => `.onto-user-menu{position:relative;width:fit-content}.onto-user-menu button{display:flex;flex-direction:row;line-height:1.5;font-weight:400;font-size:1rem;text-align:center;user-select:none;padding:0.4em 1rem;cursor:pointer;white-space:nowrap;place-items:center;transition:all 0.15s ease-out;background-color:transparent;color:var(--gw-button-tertiary-color);border:1px solid var(--gw-button-tertiary-border-color)}.onto-user-menu button .ri-user-line,.onto-user-menu button .ri-arrow-down-s-line{color:var(--gw-button-tertiary-icon-color)}.onto-user-menu button:hover{background-color:var(--gw-button-tertiary-hover-background);color:var(--gw-button-tertiary-hover-color);border:1px solid var(--gw-button-tertiary-hover-border-color)}.onto-user-menu button:hover .ri-user-line{transform:scale(1.2)}.onto-user-menu button:focus{outline:none}.onto-user-menu button.open{color:var(--gw-button-primary-color);background-color:var(--gw-button-primary-background)}.onto-user-menu button.open .ri-user-line,.onto-user-menu button.open .ri-arrow-down-s-line{color:var(--gw-button-primary-color)}.onto-user-menu button.open:hover{color:var(--gw-button-primary-hover-color);background-color:var(--gw-button-primary-hover-background);border-color:var(--gw-button-primary-hover-border-color)}.onto-user-menu button.open:hover .ri-user-line{transform:scale(1.2)}.onto-user-menu button .username{padding:0 5px}.onto-user-menu button i{transition:0.15s ease-out}.onto-user-menu button i.ri-arrow-down-s-line{font-size:1.1em;transition:all 0.2s ease-in}.onto-user-menu .onto-user-menu-dropdown{position:absolute;z-index:1000;display:flex;flex-direction:column;cursor:pointer;text-decoration:none;right:0;min-width:7rem;font-size:1rem;width:100%;color:var(--gw-button-primary-color);background-color:var(--gw-button-primary-background)}.onto-user-menu .onto-user-menu-dropdown translate-label{padding:0.4rem 1rem;user-select:none;white-space:nowrap;font-weight:400}.onto-user-menu .onto-user-menu-dropdown translate-label:hover{color:var(--gw-button-primary-hover-color);background-color:var(--gw-button-primary-hover-background);border-color:var(--gw-button-primary-hover-border-color)}`;\n\nconst OntoUserMenu = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.authenticationService = service(AuthenticationService);\n /**\n * Log out the current user.\n */\n this.logout = () => {\n this.authenticationService.logout();\n };\n /**\n * Toggles the dropdown menu's open state.\n *\n * @returns A function that toggles the `isOpen` state between true and false.\n */\n this.toggleDropdown = () => {\n this.isOpen = !this.isOpen;\n };\n /**\n * Closes the dropdown if the user clicks outside the component.\n */\n this.handleOutsideClick = (event) => {\n if (this.isOpen && !this.hostElement.contains(event.target)) {\n this.isOpen = false;\n }\n };\n }\n connectedCallback() {\n document.addEventListener('click', this.handleOutsideClick);\n }\n disconnectedCallback() {\n document.removeEventListener('click', this.handleOutsideClick);\n }\n render() {\n return (h(\"section\", { key: '12259fc1a98c0194a5bdd9846ff2e78715d4704c', class: 'onto-user-menu' }, h(\"div\", { key: 'b63d9259ebfe7856a1ece71e03cab280225e8757', class: 'dropdown-toggle-wrapper', onClick: this.toggleDropdown }, h(\"button\", { key: '514abf4b023aecfec9ddf3b02e77368640b7d554', class: `${this.isOpen ? 'open' : ''}` }, h(\"i\", { key: 'aefc12e677d20783f339d4c88afed959dc8435a4', class: 'ri-user-line ri-lg' }), h(\"span\", { key: '2cf215fc53e15b526a43c78026e4b9cfa499730e', class: 'username' }, this.user.username), h(\"i\", { key: '4e514af450f4eb9817e024f993033c3094e17cfd', class: `ri-arrow-down-s-line ${this.isOpen ? 'rotate-180' : ''}` })), this.isOpen ?\n h(\"section\", { class: 'onto-user-menu-dropdown' }, h(\"translate-label\", { onClick: navigateTo('settings'), labelKey: 'user_menu.my_settings' }), !this.authenticationService.isExternalUser() ?\n h(\"translate-label\", { onClick: this.logout, labelKey: 'user_menu.logout' }) : '') : '')));\n }\n get hostElement() { return getElement(this); }\n};\nOntoUserMenu.style = ontoUserMenuCss();\n\nexport { OntoLanguageSelector as onto_language_selector, OntoLicenseAlert as onto_license_alert, OntoOperationsNotification as onto_operations_notification, OntoRdfSearch as onto_rdf_search, OntoRepositorySelector as onto_repository_selector, OntoSearchIcon as onto_search_icon, OntoSearchResourceInput as onto_search_resource_input, OntoUserLogin as onto_user_login, OntoUserMenu as onto_user_menu };\n","/**\n * Model that holds a dropdown item configuration.\n */\nclass DropdownItem {\n constructor() {\n /**\n * Specifies the events that trigger the dropdown item tooltip to appear. Multiple event names should be separated by spaces.\n */\n this._dropdownTooltipTrigger = 'manual';\n }\n get name() {\n return this._name;\n }\n setName(value) {\n this._name = value;\n return this;\n }\n get nameLabelKey() {\n return this._nameLabelKey;\n }\n setNameLabelKey(value) {\n this._nameLabelKey = value;\n return this;\n }\n get tooltip() {\n return this._tooltip;\n }\n setTooltip(value) {\n this._tooltip = value;\n return this;\n }\n get tooltipLabelKey() {\n return this._tooltipLabelKey;\n }\n setTooltipLabelKey(value) {\n this._tooltipLabelKey = value;\n return this;\n }\n get iconClass() {\n return this._iconClass;\n }\n setIconClass(value) {\n this._iconClass = value;\n return this;\n }\n get value() {\n return this._value;\n }\n setValue(value) {\n this._value = value;\n return this;\n }\n get dropdownTooltipTrigger() {\n return this._dropdownTooltipTrigger;\n }\n setDropdownTooltipTrigger(value) {\n this._dropdownTooltipTrigger = value;\n return this;\n }\n get cssClass() {\n return this._cssClass;\n }\n setCssClass(value) {\n this._cssClass = value;\n return this;\n }\n get guideSelector() {\n return this._guideSelector;\n }\n setGuideSelector(value) {\n this._guideSelector = value;\n return this;\n }\n}\n\nvar ResourceSearchConstants;\n(function (ResourceSearchConstants) {\n ResourceSearchConstants[\"SUGGESTION_SELECTED_EVENT\"] = \"suggestion-selected-event\";\n ResourceSearchConstants[\"TABLE_VIEW\"] = \"table\";\n ResourceSearchConstants[\"VISUAL_VIEW\"] = \"visual\";\n ResourceSearchConstants[\"RDF_SEARCH_ICON_CLICKED\"] = \"rdfSearchIconClicked\";\n})(ResourceSearchConstants || (ResourceSearchConstants = {}));\n\nexport { DropdownItem as D, ResourceSearchConstants as R };\n"],"names":["DropdownItemAlignment","OntoTooltipPlacement","sanitizeHTML","html","element","document","createElement","innerHTML","value","LoggerProvider","logger","Loggers","getLoggerInstance","TranslationServiceClassDefinition","constructor","this","languageContextService","ServiceProvider","get","LanguageContextService","translationChangedObservers","defaultBundle","getDefaultBundle","subscribeToBundleChange","onTranslate","messageLabelKey","translationParameter","translationCallback","observer","parameters","callback","push","translate","index","indexOf","splice","key","translateInLocale","translation","translateFromBundle","currentBundle","applyParameters","warn","bundle","translateAsJsonObject","path","split","getTranslation","jsonObject","jsonOrTranslation","length","reduce","parameter","replaceAll","join","notifyTranslationsChanged","Object","keys","forEach","eventName","languageChangeSubscription","onLanguageBundleChanged","destroy","TranslationService","INTERACTIVE_ELEMENTS_SELECTOR","HtmlUtil","setDocumentBodyOverflow","newOverflow","oldOverflow","body","style","overflow","hideDocumentBodyOverflow","focusNextElement","parentElement","activeElementSelector","focusableElements","Array","from","querySelectorAll","currentIndex","activeElement","nextActiveElement","focus","focusPreviousElement","previousActiveElement","preventLeavingDialog","hostElement","ev","preventDefault","shiftKey","focusElement","selector","querySelector","scrollElementIntoView","elementSelector","options","block","scrollIntoView","waitForElement","Promise","resolve","reject","MutationObserver","disconnect","error","observe","subtree","childList","attributes","OntoLanguageSelector","hostRef","registerInstance","languageService","LanguageService","items","dropdownAlignment","LEFT","connectedCallback","onLanguageChangeSubscription","onSelectedLanguageChanged","newLanguage","changeLanguage","getLanguageDropdownOptions","disconnectedCallback","render","_a","_b","h","Host","class","onValueChanged","valueChangeHandler","dropdownButtonNameLabelKey","currentLanguage","undefined","dropdownButtonName","dropdownButtonTooltipLabelKey","RIGHT","iconClass","selectedLanguage","getDefaultLanguage","newLanguageEvent","updateSelectedLanguage","detail","getSupportedLanguages","map","locale","DropdownItem","setNameLabelKey","setTooltipLabelKey","setIconClass","setCssClass","setValue","OntoLicenseAlert","license","message","BOTTOM","onClick","navigateTo","labelKey","operationGroupToIcon","OperationGroup","BACKUP","QUERY","CLUSTER","IMPORT","operationStatusToWarningClass","OperationStatus","WARNING","INFORMATION","CRITICAL","operationStatusToFadeClass","OntoOperationsNotification","isOpen","toggleDropdown","event","stopPropagation","handleOutsideClick","operationGroups","activeOperations","toOperationGroupSummaryList","status","getItems","groupSummary","id","group","totalOperations","allRunningOperations","operation","target","href","count","el","getElement","OntoRdfSearch","subscriptions","SubscriptionList","eventService","EventService","resourceSearchStorageService","ResourceSearchStorageService","RDF_CONTEXT","redirectUrl","UriUtil","RESOURCE_URL","handleClick","rdfSearchRef","contains","onSuggestionSelected","unsubscribeAll","componentDidRender","focusSearchInput","componentDidLoad","buttonConfig","createButtonConfig","ref","onKeyDown","setIsOpen","preserveSearch","isHidden","context","loadSelectedViewFromStorage","SearchButtonConfig","isRadio","buttons","createSearchButton","ResourceSearchConstants","TABLE_VIEW","setSelectedView","VISUAL_VIEW","GRAPHS_VISUALIZATIONS_URL","selected","SearchButton","label","add","subscribe","SUGGESTION_SELECTED_EVENT","payload","getContext","getSuggestion","getOverrideToVisual","openInNewTab","createAutocompleteRedirect","getValue","selectedView","getSelectedView","selectedButton","getButtons","find","button","selectButton","RepositorySelection","repository","defaultToggleButtonName","location","className","type","OntoRepositorySelector","repositoryContextService","service","RepositoryContextService","onItemsChanged","newItems","dropdownItems","attachTooltipsToItems","subscribeToTranslationChanged","subscription","repositorySelection","currentRepository","getButtonLabel","getLocation","assign","dropdownButtonTooltip","createTooltipFunctionForRepository","tooltipPlacement","tooltipAlignment","tooltipTheme","item","setTooltip","valueChangeEvent","onRepositoryChanged","async","repositorySizeInfo","repositorySizeInfoFetcher","buildRepositoryTooltipHtml","canWriteRepo","buildRepositorySizeInfoHtml","total","totalTripletsFormatter","format","explicit","inferred","expansionRatioFormatter","toggleButtonName","noRepositoriesButtonMessage","selectedRepository","updateSelectedRepository","shortenIri","watchers","OntoSearchIcon","tooltipKey","onTooltipChange","tooltipLabel","OntoSearchResourceInput","autocompleteService","AutocompleteService","autocompleteContextService","AutocompleteContextService","autocompleteStorageService","AutocompleteStorageService","toastrService","OntoToastrService","namespaceContextService","NamespacesContextService","autocompleteWarningShown","skipValidation","isAutocompleteEnabled","handleInput","setInputValue","checkForAutocomplete","clearInput","clearStoredSearch","onEnter","onEscape","onArrowUp","onArrowDown","onVisibilityChange","searchResult","clearSuggestions","getInputValue","onAutocompleteEnabledChange","onNamespaceChange","loadInputFromStorage","_c","inputValue","autocomplete","placeholder","inputRef","onInput","handleButtonClick","suggestions","suggestion","getId","onSuggestionClick","onMouseMove","hoverSuggestion","isHovered","isSelected","getDescription","loadAutocompleteResults","search","then","onResultsReceived","isEnabled","onAutocompleteEnabledChanged","enabled","warning","removeOnClick","setOverrideToVisual","ctrlKey","metaKey","searchRdfResource","getType","SuggestionType","PREFIX","expandPrefix","notifyRdfResourceSelected","setLastSelected","selectSuggestion","emit","NAME","SuggestionSelectedPayload","namespaces","getByPrefix","onNamespacesChanged","selectedSuggestion","getHoveredSuggestion","Suggestion","removeAngleBrackets","URI","validateAndSearch","hoverPreviousSuggestion","displaySuggestion","hoverNextSuggestion","scrollToSuggestionBySelector","getSuggestionValue","isValidUri","lastSelected","getByValue","getLastSelectedValue","hoverFirstSuggestion","OntoUserLogin","navigateToLogin","returnUrl","encodeURIComponent","getCurrentRoute","navigate","OntoUserMenu","authenticationService","AuthenticationService","logout","addEventListener","removeEventListener","user","username","isExternalUser","_dropdownTooltipTrigger","name","_name","setName","nameLabelKey","_nameLabelKey","tooltip","_tooltip","tooltipLabelKey","_tooltipLabelKey","_iconClass","_value","dropdownTooltipTrigger","setDropdownTooltipTrigger","cssClass","_cssClass","guideSelector","_guideSelector","setGuideSelector"],"ignoreList":[],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_esm_id__=99448;export const __webpack_esm_ids__=[99448];export const __webpack_esm_modules__={64088(e,t,n){n.d(t,{A:()=>r});var a=a||{};a.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var a=0;a<t.children.length;a++)e(t.children[a]);if(1===t.children.length){var r=1.2*t.size;n&&(r=.1*t.children[0].size),t.children.push({name:"placeholder",size:r})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var a=t[n];"placeholder"===a.data.name?t.splice(n,1):a.children&&e(a.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var a=n.x-n.children[0].x;n.children[0].x+=a,r(n.children[0],a)}}function r(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,r(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,a=0;a<e.length;a++){var r=e[a];r.x-=t,r.y-=n}}};const r=a},88141(e,t,n){n.d(t,{A:()=>i}),n(62979);const a={selectAll:n(93462).selectAll};var r=r||{};r.Export={getCSSRules:function(e){const t=$('link[href="'+e+'"]')[0].sheet.rules;let n="";return _.each(t,function(e){n+=e.cssText}),n},generateBase64ImageSource:function(e){e||(e="svg");const t=a.selectAll(e).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(t)))}};const i=r},99448(e,t,n){var a=n(75468),r=n(64088),i=n(19935),s=n(93462),c=n(88141),o=(n(32150),n(57154));function l(e,t,n,l,d,h,u,f,p,g,x,m){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(y,A,v){!function(y){let A=!1;let v,S;const C=s.pack().size([780,780]),R=s.scaleLinear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(s.interpolateHcl),E=s.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function P(){return E.append("svg:g").attrs({id:"main-group",transform:"translate(400,400)"})}function w(){return"true"===g.get(x.CLASS_HIERARCHY_HIDE_PREFIXES)}function H(){const e=c.A.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=3.3.3-TR1");s.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),s.selectAll("g").style("opacity",1);const t=c.A.Export.generateBase64ImageSource("#classChart svg");s.select(this).attrs({href:t,download:"class-hierarchy-"+h.getActiveRepository()+".svg"})}y.hidePrefixes=w();let I=P();const T=!!y.classHierarchyData?.classCount,L=h.getActiveRepository()&&!h.isSystemRepository();let D,k,N,b,F;(0,o.service)(o.LicenseContextService).onLicenseChanged(t=>{t?.valid&&!T&&L&&function(){e.loader=!0,e.hierarchyError=!1;const t=g.get(`classHierarchy-selectedGraph-${h.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success(function(t,n){e.loader=!1,207===n&&u.warning(m.instant("graphexplore.update.diagram"),m.instant("graphexplore.repository.data.changed")),y.classHierarchyData=t,s.select("#download-svg").on("mouseover",H)}).error(function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(m.instant("graphexplore.error.request.failed",{name:p,error:getError(t)}))})}()});const z={};function O(n,c,o,h){b&&b(),F&&F(),s.selectAll("#main-group").remove(),I=P(),r.A.SingleChild.addPlaceholders(n,!0),S=s.hierarchy(n),S.sum(function(e){return e.size}),N=o||S,C(S);const u=S.descendants();let g;N.isInFocusTransitive=!0,r.A.SingleChild.removePlaceholders(u),r.A.SingleChild.centerNodes(u),r.A.SingleChild.makePositionsRelativeToZero(u),v||(v=(0,a.A)().attr("class","d3-tip").customPosition(function(e,t){return{top:"inherit",bottom:l.innerHeight-t.clientY+"px",right:l.innerWidth-t.clientX+"px"}}).html(function(e){return e.data.name}),E.call(v));const x=I.selectAll("circle").data(u).enter().append("g");c.doFade&&x.each(function(e){i.A.Transition.fadeIn(s.select(this),550)});let m=[];const w=x.append("circle").attr("class",function(e){return e.data.role}).attr("data-test",function(e){return"class-"+e.data.name}).attr("guide-selector",function(e){return"class-"+e.data.name}).style("fill",function(e){return e.children?R(e.depth):"#E0D0D0"}).each(function(e){if(e.circle=s.select(this),e.data.name!==p){const t=e.data.name;m.push({name:t}),z[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",function(t){c.noPrefixes||e.textHidden?v.show(e,t):v.hide(e)}),e.circle.on("mouseout",v.hide)}}).on("gdb-focus",(e,t)=>k(t)).on("gdb-zoom",(e,t)=>Z(t));let H;function T(e){s.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),H=e}function L(){y.showClassInfoPanel=!1}m&&(m=_.uniqBy(m,"name"),y.flattenedClassNames=m);const $=i.A.Click.delayDblClick();s.selectAll(".parent, .topLevelParent, .child, .root").call($),k=function(e){Z(e),e.data.name===p?(L(),s.selectAll(".selected").classed("selected",!1)):(T(e),A||(y.selectedClass=H,y.showClassInfoPanel=!0),y.$on("sidePanelClosed",function(t){s.selectAll(".selected").classed("selected",e.selected=!1)}))},$.on("click",function(e,t){t.data.id&&l.history.pushState({id:t.data.id},"classHierarchyPage"+t.data.id,"hierarchy#"+t.data.id),v.hide(),k(t)}),$.on("dblclick",function(t,a){a!==n&&(v.hide(),T(a),e.$broadcast("goToDomainRangeGraphView",H,N),t.stopPropagation())});let O=0;E.on("wheel",function(e){v.hide(),e.preventDefault(),e.stopPropagation();const t=Date.now();if(!(t-O>100))return;O=t;let n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");let a=e.target.__data__;if(a||(a=N),"in"===n){if(a!==N){for(;a.parent&&!a.parent.isInFocusTransitive;)a=a.parent;a.depth<N.depth&&(a=N)}if(a===N&&a.children){let e=a.children[0];for(let t=1;t<a.children.length;t++)a.children[t].sortingRank>e.sortingRank&&(e=a.children[t]);e.children&&(a=e)}else a.children||(a=a.parent);Z(a,!0)}else"out"===n&&(a=N.parent,a&&Z(a,!0));N.data.name===p&&l.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),U()});const Y=I.selectAll("text").data(u).enter().append("text").attr("class",function(e){return e.children&&e.children.length?"label":"label child-label"}).each(function(e){e.textSel=s.select(this)});c.noPrefixes?(Y.each(function(e){const t=e.data.name.indexOf(":");e.data.name.indexOf("http://")>-1?e.noPrefixName=e.data.name:t>-1&&(e.noPrefixName=e.data.name.substring(t+1))}),Y.style("font-size",function(e){return i.A.Text.calcFontSize(e.noPrefixName,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)})):Y.style("font-size",function(e){return i.A.Text.calcFontSize(e.data.name,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r/3)}),Y.style("display",function(e){return e.parent&&e.parent.data===N.data?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")}),c.doFade&&!c.keepPrevState&&Y.each(function(e){i.A.Transition.fadeIn(s.select(this),550)}),D=function(){function e(e){e&&w.each(function(t){+e===t.data.id&&k(t)})}const n=t.hash();l.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};const B=I.selectAll("circle, text");function V(e,t){const n=800/e[2];g=e,B.attr("transform",function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"}),w.attr("r",function(e){return e.r*n}),t&&Y.each(function(e){e.data.fullName!==N.data.topLevelParentUri&&N.data.topLevelParentUri!==p||(e.textSel.style("display","none"),N.children&&N.children.length?_.each(N.children,function(e){e.textSel.style("display","inline")}):N.textSel.style("display","inline"),N.parent&&_.each(N.parent.children,function(e){e.data.name!==N.data.name&&e.textSel.style("display","inline")}))}),Y.style("font-size",function(e){return c.noPrefixes?i.A.Text.calcFontSize(e.noPrefixName,e.r*n):i.A.Text.calcFontSize(e.data.name,e.r*n)}).text(function(e){return c.noPrefixes?i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r*n/3)})}function M(e){let t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display=""):(e.textHidden=!0,this.style.display="none")}function Z(e,t){if(d(function(){y.showExternalElements=e.data.name===p}),N===e)return;if(e.data.id&&l.history.replaceState({id:e.data.id},"classHierarchyPage"+e.data.id,"hierarchy#"+e.data.id),!e.children&&(e=e.parent,N===e))return;if(t&&(L(),s.selectAll(".selected").classed("selected",!1)),N.parent){let e=N;for(;e;)e.isInFocusTransitive=!1,e=e.parent}let n=e;for(;n;)n.isInFocusTransitive=!!n.children,n=n.parent;N=e,2*N.r/(2*N.r+20)<.3||y.currentSliderValue>y.currentBrowserLimit?(V([N.x,N.y,M(N.r)]),Y.each(function(e){W.call(this,e)})):s.transition().duration(f).tween("zoom",function(e){const t=s.interpolateZoom(g,[N.x,N.y,M(N.r)]);return function(e){V(t(e))}}).selectAll("text").each(W)}V([N.x,N.y,M(N.r)],h),b=y.$on("rootFocus",function(){l.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),k(S)}),F=y.$on("classSearch",function(e){k(e)})}function U(){const t=y.classHierarchyData.classCount;let n=g.get(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,g.set(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}let Y,B,V,M;window.addEventListener("resize",U),window.addEventListener("beforeunload",function e(){window.removeEventListener("resize",U),window.removeEventListener("beforeunload",e)}),y.$watch("classHierarchyData",function(){Y&&Y(),B&&B(),V&&V(),M&&M();let e=w();if(y.classHierarchyData.classCount){U();const t=structuredClone(y.classHierarchyData);const n=s.hierarchy(t).descendants().sort(function(e,t){return e.data.sortingRank>t.data.sortingRank?-1:e.data.sortingRank<t.data.sortingRank||e.data.depth>t.data.depth?1:e.data.depth<t.data.depth?-1:0});let a,r;function i(e,t){const n={keepPrevState:!0,noPrefixes:w()};r=n.noPrefixes,O(a||e,n,N,!0),d(()=>{g.set(x.CLASS_HIERARCHY_SWITCH_PREFIXES,t),D(),A=!1},70)}function c(e,n,s){if(!e)return;g.set(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),a={name:p,children:[]};const c=new Set;for(let t=1;t<=e;t++)c.add(n[t].data.id),n[t].parent===n[0]&&a.children.push(n[t].data);(function e(t){if(!t.children)return;const n=[];for(const e of t.children)c.has(e.id)&&n.push($.extend({},e));t.children=n;for(const n of t.children)e(n)})(a),s?(r=angular.isUndefined(r)?w():r,O(a,{noPrefixes:r})):i(t)}const o=g.get(x.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(o)c(o,n);else{const h={doFade:!0,keepPrevState:!0,noPrefixes:w()};O(t,h),D()}let l;Y=y.$watch("hidePrefixes",function(n){angular.isUndefined(n)||e?e=void 0:d(function(){A=!0,function(e){angular.isUndefined(e)||g.set(x.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),i(t,!0)},50)},!0),B=y.$watch("currentSliderValue",function(e){c(e,n,!0)},!0),M=y.$on("onEnterKeypressSearchAction",function(e){l&&k(l)}),V=y.$on("searchedClass",function(e,t){l=z[t.name],l&&k(l)})}},!0)}(y)}}}angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]}};
|
|
2
|
-
//# sourceMappingURL=99448.b9922814bd15808a9d1c.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"99448.b9922814bd15808a9d1c.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/lib/common/circle-packing.js","webpack://root-config/./packages/legacy-workbench/src/js/lib/common/svg-export.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/graphexplore/directives/rdf-class-hierarchy.directive.js"],"sourcesContent":["var CirclePacking = CirclePacking || {};\n\nCirclePacking.SingleChild = function () {\n /*\n Functions that enable single child circles to display properly, see\n http://stackoverflow.com/questions/22307486/d3-js-packed-circle-layout-how-to-adjust-child-radius\n */\n function addPlaceholders(node, first) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n var child = node.children[i];\n addPlaceholders(child);\n }\n\n if (node.children.length === 1) {\n var placeholderSize = node.size * 1.2;\n if (first) {\n placeholderSize = node.children[0].size * 0.1;\n }\n node.children.push({\n name: 'placeholder', size: placeholderSize,\n // children: []\n });\n }\n }\n }\n\n function removePlaceholders(nodes) {\n for (var i = nodes.length - 1; i >= 0; i--) {\n var node = nodes[i];\n\n if (node.data.name === 'placeholder') {\n nodes.splice(i, 1);\n } else {\n if (node.children) {\n removePlaceholders(node.children);\n }\n }\n }\n }\n\n function centerNodes(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n\n if (node.children) {\n if (node.children.length === 1) {\n var offset = node.x - node.children[0].x;\n node.children[0].x += offset;\n reposition(node.children[0], offset);\n }\n }\n }\n\n function reposition(node, offset) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].x += offset;\n reposition(node.children[i], offset);\n }\n }\n }\n }\n\n function makePositionsRelativeToZero(nodes) {\n //use this to have vis centered at 0,0,0 (easier for positioning)\n var offsetX = nodes[0].x;\n var offsetY = nodes[0].y;\n\n for (var i = 0; i < nodes.length; i++) {\n\n var node = nodes[i];\n\n node.x -= offsetX;\n node.y -= offsetY;\n }\n }\n\n return {\n addPlaceholders: addPlaceholders,\n removePlaceholders: removePlaceholders,\n centerNodes: centerNodes,\n makePositionsRelativeToZero: makePositionsRelativeToZero\n }\n}();\n\nexport default CirclePacking;\n","import 'lib/d3.patch.js'\nimport {selectAll} from 'd3';\n\nconst d3 = {selectAll};\nvar SVG = SVG || {};\n\nSVG.Export = function () {\n function getCSSRules(cssSourceFilePath) {\n const cssRules = $('link[href=\"' + cssSourceFilePath + '\"]')[0].sheet.rules;\n let cssStr = \"\";\n _.each(cssRules, function (value) {\n cssStr += value.cssText;\n });\n return cssStr;\n }\n\n function generateBase64ImageSource(svgSelectorClass) {\n if (!svgSelectorClass) {\n svgSelectorClass = \"svg\";\n }\n // add needed xml namespace\n const exportSvg = d3.selectAll(svgSelectorClass)\n .attr(\"version\", \"1.1\")\n .attr(\"xmlns\", \"http://www.w3.org/2000/svg\")\n .node().parentNode.innerHTML;\n\n // convert selected html to base64\n return \"data:image/svg+xml;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(exportSvg)));\n }\n\n return {\n getCSSRules: getCSSRules,\n generateBase64ImageSource: generateBase64ImageSource\n };\n}();\n\nexport default SVG;\n","/* eslint-disable no-invalid-this */\nimport d3tip from 'lib/d3-tip/d3-tip-patch';\nimport CirclePacking from 'lib/common/circle-packing';\nimport D3 from 'lib/common/d3-utils';\nimport * as d3 from 'd3';\nimport SVG from 'lib/common/svg-export';\nimport 'angular/utils/local-storage-adapter';\nimport {service, LicenseContextService} from '@ontotext/workbench-api';\n\nangular\n .module('graphdb.framework.graphexplore.directives.class', [\n 'graphdb.framework.graphexplore.controllers.class',\n 'graphdb.framework.utils.localstorageadapter',\n ])\n .constant(\"ZOOM_DURATION\", 500)\n .constant(\"ROOT_OBJ_NAME\", \"RDF Class Hierarchy\")\n .directive('rdfClassHierarchy', classHierarchyDirective);\n\nclassHierarchyDirective.$inject = ['$rootScope', '$location', 'GraphDataRestService', '$window', '$timeout', '$repositories', 'toastr', 'ZOOM_DURATION', 'ROOT_OBJ_NAME', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction classHierarchyDirective($rootScope, $location, GraphDataRestService, $window, $timeout, $repositories, toastr, ZOOM_DURATION, ROOT_OBJ_NAME, LocalStorageAdapter, LSKeys, $translate) {\n return {\n restrict: 'AE',\n template: '<div id=\"classChart\"></div>',\n scope: {\n classHierarchyData: '=',\n flattenedClassNames: '=',\n selectedClass: '=',\n currentSliderValue: '=',\n showClassInfoPanel: '=',\n showExternalElements: '=',\n hidePrefixes: '=',\n currentBrowserLimit: '=',\n },\n link: linkFunc,\n };\n\n function linkFunc(scope, element, attrs) {\n renderCirclePacking(scope, element);\n }\n\n function renderCirclePacking(scope, element) {\n /**\n * A boolean flag that determines whether the opening of the side info panel\n * should be suppressed when focusing on the chart while a class is selected.\n */\n let suppressPanelOpen = false;\n\n const width = 800;\n const height = 800;\n const diameter = height;\n const margin = 20;\n let tip;\n let rootHierarchy;\n\n const packLayout = d3.pack()\n .size([diameter - margin, diameter - margin]);\n\n const color = d3.scaleLinear()\n .domain([0, 4])\n .range([\"hsl(19, 70%, 90%)\", \"hsl(19, 70%, 50%)\"])\n .interpolate(d3.interpolateHcl);\n\n const svg = d3.select(\"#classChart\")\n .insert(\"svg:svg\", \"h2\")\n .attr(\"viewBox\", \"0 0 \" + width + \" \" + height)\n .attr(\"preserveAspectRatio\", \"xMidYMid meet\")\n .on(\"dblclick.zoom\", null);\n\n function appendMainGroup() {\n return svg.append(\"svg:g\")\n .attrs({\n id: \"main-group\",\n transform: \"translate(\" + width / 2 + \",\" + height / 2 + \")\",\n });\n }\n\n function savePrefixesState(hidePrefixes) {\n if (!angular.isUndefined(hidePrefixes)) {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES, hidePrefixes);\n }\n }\n\n function getPrefixesState() {\n return LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES) === \"true\";\n }\n\n /*\n * Prepares SVG document image export by adding xml namespaces and\n * additional style information\n */\n function prepareForSVGImageExport() {\n // get css rules for the diagram\n const cssRules = SVG.Export.getCSSRules(\"css/rdf-class-hierarchy-labels.css?v=3.3.3-TR1\");\n // inline css rules in a defs tag\n d3.selectAll(\"#main-group\")\n .append(\"defs\");\n $(\"defs\").append('<style type=\"text/css\"><![CDATA[' + cssRules + ']]></style>');\n\n // switch opacity to visible\n d3.selectAll(\"g\")\n .style(\"opacity\", 1);\n\n // convert selected html to base64\n const imgSrc = SVG.Export.generateBase64ImageSource(\"#classChart svg\");\n\n // set the binary image and a name for the downloadable file on the export button\n d3.select(this).attrs({\n href: imgSrc,\n download: \"class-hierarchy-\" + $repositories.getActiveRepository() + \".svg\",\n });\n }\n\n scope.hidePrefixes = getPrefixesState();\n\n let g = appendMainGroup();\n\n function fetchClassHierarchy() {\n $rootScope.loader = true;\n $rootScope.hierarchyError = false;\n const selGraphFromCache = LocalStorageAdapter.get(`classHierarchy-selectedGraph-${$repositories.getActiveRepository()}`);\n GraphDataRestService.getClassHierarchyData(selGraphFromCache !== null ? selGraphFromCache.contextID.uri : \"\")\n .success(function(response, status) {\n $rootScope.loader = false;\n if (status === 207) {\n toastr.warning(\n $translate.instant('graphexplore.update.diagram'),\n $translate.instant('graphexplore.repository.data.changed'),\n );\n }\n scope.classHierarchyData = response;\n d3.select(\"#download-svg\").on(\"mouseover\", prepareForSVGImageExport);\n })\n .error(function(response) {\n $rootScope.loader = false;\n $rootScope.hierarchyError = getError(response);\n toastr.error(\n $translate.instant('graphexplore.error.request.failed', {\n name: ROOT_OBJ_NAME,\n error: getError(response),\n }),\n );\n });\n }\n\n const hasData = !!scope.classHierarchyData?.classCount;\n const canUseRepo = $repositories.getActiveRepository() && !$repositories.isSystemRepository();\n\n service(LicenseContextService).onLicenseChanged((license) => {\n if (license?.valid && !hasData && canUseRepo) {\n fetchClassHierarchy();\n }\n });\n\n let autoZoomToPreviousState;\n let doFocus;\n\n let focus;\n let rootFocusEvent;\n let classSearchEvent;\n const flattenedClassData = {};\n\n function drawDiagram(root, config, newFocus, switchPrefixes) {\n if (rootFocusEvent) rootFocusEvent();\n if (classSearchEvent) classSearchEvent();\n // remove old group tag containing the diagram\n d3.selectAll(\"#main-group\").remove();\n\n // append new empty group tag in order to rerender new diagram\n g = appendMainGroup();\n\n // fix for single child classes\n CirclePacking.SingleChild.addPlaceholders(root, true);\n\n rootHierarchy = d3.hierarchy(root);\n rootHierarchy.sum(function(d) {\n return d.size;\n });\n focus = newFocus ? newFocus : rootHierarchy;\n\n packLayout(rootHierarchy);\n\n const nodes = rootHierarchy.descendants();\n let view;\n\n focus.isInFocusTransitive = true;\n\n // fixes for single child classes\n CirclePacking.SingleChild.removePlaceholders(nodes);\n CirclePacking.SingleChild.centerNodes(nodes);\n CirclePacking.SingleChild.makePositionsRelativeToZero(nodes);\n\n if (!tip) {\n tip = d3tip()\n .attr('class', 'd3-tip')\n .customPosition(function(d, event) {\n return {\n top: 'inherit',\n bottom: ($window.innerHeight - event.clientY) + 'px',\n right: ($window.innerWidth - event.clientX) + 'px',\n };\n })\n .html(function(d) {\n return d.data.name;\n });\n svg.call(tip);\n }\n\n const circleGroup = g.selectAll(\"circle\")\n .data(nodes)\n .enter().append(\"g\");\n\n if (config.doFade) {\n circleGroup.each(function(d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n let flattenedClassNames = [];\n\n const circle = circleGroup\n .append(\"circle\")\n .attr(\"class\", function(d) {\n return d.data.role;\n })\n .attr(\"data-test\", function(d) {\n return \"class-\" + d.data.name;\n })\n .attr(\"guide-selector\", function(d) {\n return \"class-\" + d.data.name;\n })\n .style(\"fill\", function(d) {\n //return colors[d.depth % 6];\n return d.children ? color(d.depth) : \"#E0D0D0\";\n })\n .each(function(d) {\n d.circle = d3.select(this);\n if (d.data.name !== ROOT_OBJ_NAME) {\n const key = d.data.name;\n flattenedClassNames.push({name: key});\n flattenedClassData[[key]] = d;\n\n d.circle.classed(\"rdf-class\", true);\n d.circle.on('mouseover', function(event) {\n if (config.noPrefixes) {\n tip.show(d, event);\n } else if (!d.textHidden) {\n tip.hide(d);\n } else {\n tip.show(d, event);\n }\n });\n d.circle.on('mouseout', tip.hide);\n }\n })\n // custom event used when user is following a guide\n .on(\"gdb-focus\", (event, d) => doFocus(d))\n .on(\"gdb-zoom\", (event, d) => zoom(d));\n\n\n if (flattenedClassNames) {\n flattenedClassNames = _.uniqBy(flattenedClassNames, 'name');\n scope.flattenedClassNames = flattenedClassNames;\n }\n\n let selectedClass;\n\n function getCurrentClassDataAndMarkSelected(obj) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n obj.circle.classed(\"selected\", obj.selected = true);\n selectedClass = obj;\n }\n\n function showClassInfoPanel() {\n scope.selectedClass = selectedClass;\n scope.showClassInfoPanel = true;\n }\n\n function closeClassInfoPanel() {\n scope.showClassInfoPanel = false;\n }\n\n function goToDomainRangeGraphView() {\n $rootScope.$broadcast('goToDomainRangeGraphView', selectedClass, focus);\n }\n\n const clickCancel = D3.Click.delayDblClick();\n d3.selectAll(\".parent, .topLevelParent, .child, .root\")\n .call(clickCancel);\n\n doFocus = function(obj) {\n zoom(obj);\n\n if (obj.data.name === ROOT_OBJ_NAME) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n } else {\n getCurrentClassDataAndMarkSelected(obj);\n if (!suppressPanelOpen) {\n showClassInfoPanel();\n }\n\n // FIXME: is it ok to bind this event handler every time and not just once?\n scope.$on('sidePanelClosed', function(event) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n });\n }\n\n\n //do not stop event propagation here\n };\n\n clickCancel.on(\"click\", function(event, obj) {\n // add clicked class to browser history\n if (obj.data.id) {\n $window.history.pushState({id: obj.data.id}, \"classHierarchyPage\" + obj.data.id, \"hierarchy#\" + obj.data.id);\n }\n\n //hide current d3-tip tooltip\n tip.hide();\n\n doFocus(obj);\n });\n\n clickCancel.on(\"dblclick\", function(event, obj) {\n if (obj === root) {\n return;\n }\n // hide current d3-tip tooltip in order not to appear in the next view\n tip.hide();\n getCurrentClassDataAndMarkSelected(obj);\n goToDomainRangeGraphView();\n\n event.stopPropagation();\n });\n\n let lastTimeWheel = 0;\n svg.on('wheel', function(event) {\n // hide current d3-tip tooltip\n tip.hide();\n\n event.preventDefault();\n event.stopPropagation();\n\n // at least 100ms must have passed since last time we updated\n const now = Date.now();\n if (now - lastTimeWheel > 100) {\n lastTimeWheel = now;\n } else {\n return;\n }\n\n let direction = '';\n if (event.deltaY <= -1) {\n direction = 'in';\n } else if (event.deltaY >= 1) {\n direction = 'out';\n }\n\n let obj = event.target.__data__;\n\n if (!obj) {\n // scroll outside the big circle\n obj = focus;\n }\n\n if (direction === 'in') {\n // determine object to zoom to\n\n if (obj !== focus) {\n // consider the object on which the scroll event occurred\n // and find the furthest parent that has no focused children\n while (obj.parent && !obj.parent.isInFocusTransitive) {\n obj = obj.parent;\n }\n if (obj.depth < focus.depth) {\n // however if that parent is of lower depth than the focus we ignore it\n obj = focus;\n }\n }\n\n if (obj === focus && obj.children) {\n // if object is in focus and it has children we zoom to its biggest child\n // TODO: sort children on backend\n let newobj = obj.children[0];\n for (let i = 1; i < obj.children.length; i++) {\n if (obj.children[i].sortingRank > newobj.sortingRank) {\n newobj = obj.children[i];\n }\n }\n if (newobj.children) {\n // Use the child only if it has children\n obj = newobj;\n }\n } else if (!obj.children) {\n // If node has no children use its parent instead\n obj = obj.parent;\n }\n\n zoom(obj, true);\n } else if (direction === 'out') {\n // zooming out simply goes one parent up\n obj = focus.parent;\n if (obj) {\n zoom(obj, true);\n }\n }\n\n if (focus.data.name === ROOT_OBJ_NAME) {\n $window.history.replaceState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n }\n\n // redraw slider on zoom out\n sendSliderData();\n });\n\n const text = g.selectAll(\"text\")\n .data(nodes)\n .enter().append(\"text\")\n .attr(\"class\", function(d) {\n return d.children && d.children.length ? \"label\" : \"label child-label\";\n })\n .each(function(d) {\n d.textSel = d3.select(this);\n });\n\n function trimPrefixes(d) {\n const idx = d.data.name.indexOf(\":\");\n const absUriIdx = d.data.name.indexOf(\"http://\");\n if (absUriIdx > -1) {\n // if we have no prefix available ignore\n d.noPrefixName = d.data.name;\n } else if (idx > -1) {\n d.noPrefixName = d.data.name.substring(idx + 1);\n }\n }\n\n if (config.noPrefixes) {\n text.each(trimPrefixes);\n text\n .style(\"font-size\", function(d) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r);\n })\n .text(function(d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r / 3);\n });\n } else {\n text\n .style(\"font-size\", function(d) {\n return D3.Text.calcFontSize(d.data.name, d.r);\n })\n .text(function(d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r / 3);\n });\n }\n\n // TODO: make this use the full version (same as zoom)\n text.style(\"display\", function(d) {\n if (d.parent && d.parent.data === focus.data) {\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n return null;\n } else {\n d.textHidden = true;\n return \"none\";\n }\n });\n\n if (config.doFade && !config.keepPrevState) {\n text.each(function(d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n autoZoomToPreviousState = function() {\n function focusOnCurrentClass(focusHistoryId) {\n if (focusHistoryId) {\n circle.each(function(d) {\n if (+focusHistoryId === d.data.id) {\n doFocus(d);\n }\n });\n }\n }\n\n const focusHistoryId = $location.hash();\n\n $window.onpopstate = function(event) {\n if (event.state) {\n const focusHistoryId = event.state.id;\n focusOnCurrentClass(focusHistoryId);\n }\n };\n\n focusOnCurrentClass(focusHistoryId);\n };\n\n const node = g.selectAll(\"circle, text\");\n\n function zoomTo(v, switchPrefixes) {\n const k = diameter / v[2];\n view = v;\n\n node.attr(\"transform\", function(d) {\n return \"translate(\" + (d.x - v[0]) * k + \",\" + (d.y - v[1]) * k + \")\";\n });\n\n circle.attr(\"r\", function(d) {\n return d.r * k;\n });\n\n function switchPrefixesInPlace(d) {\n // if uris match with the topLevelParentUri of the focused element\n // or your focus is a top level parent hide its label and if it is not\n // a child element show all of its child labels. If it is a child element\n // only show its label.\n if (d.data.fullName === focus.data.topLevelParentUri || focus.data.topLevelParentUri === ROOT_OBJ_NAME) {\n d.textSel.style(\"display\", \"none\");\n if (focus.children && focus.children.length) {\n _.each(focus.children, function(c) {\n c.textSel.style(\"display\", \"inline\");\n });\n } else {\n focus.textSel.style(\"display\", \"inline\");\n }\n\n // in order to show prefixes of siblings check if the focused\n // element has a parent and show all of its children except\n // for the name of the focused element because you need to see\n // its children\n if (focus.parent) {\n _.each(focus.parent.children, function(c) {\n if (c.data.name !== focus.data.name) {\n c.textSel.style(\"display\", \"inline\");\n }\n });\n }\n }\n }\n\n if (switchPrefixes) {\n text.each(switchPrefixesInPlace);\n }\n\n text\n .style(\"font-size\", function(d) {\n if (config.noPrefixes) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r * k);\n }\n return D3.Text.calcFontSize(d.data.name, d.r * k);\n })\n .text(function(d) {\n if (config.noPrefixes) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r * k / 3);\n }\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r * k / 3);\n });\n }\n\n\n function adjustRadius(r) {\n let newr = r * 2 + margin;\n if (r * 2 / newr < 0.3) {\n // for very small circles we need to adjust\n newr = r * 2 + 2;\n }\n return newr;\n }\n\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)], switchPrefixes);\n\n function textUpdate(d) {\n if (d.isInFocusTransitive || !(d.parent && d.parent.isInFocusTransitive)) {\n // hide labels of classes that are in focus (including children) OR whose parents aren't in focus\n d.textHidden = true;\n this.style.display = \"none\";\n } else {\n // show all other labels\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n this.style.display = \"\";\n }\n }\n\n function zoom(d, shouldClosePanel) {\n // use empty timeout to force the following code to be executed on the next $digest cycle\n // in order to avoid '$digest in progress' error\n $timeout(function() {\n scope.showExternalElements = (d.data.name === ROOT_OBJ_NAME);\n });\n\n if (focus === d) {\n // Node is already zoomed to\n // Important to return before we modify the history, otherwise we choke the browser\n return;\n }\n\n if (d.data.id) {\n $window.history.replaceState({id: d.data.id}, \"classHierarchyPage\" + d.data.id, \"hierarchy#\" + d.data.id);\n }\n\n if (!d.children) {\n // No children - zoom to parent instead\n d = d.parent;\n if (focus === d) {\n // Parent is already zoomed to\n return;\n }\n }\n\n if (shouldClosePanel) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n }\n\n if (focus.parent) {\n let p = focus;\n while (p) {\n p.isInFocusTransitive = false;\n p = p.parent;\n }\n }\n\n let p = d;\n while (p) {\n p.isInFocusTransitive = !!p.children;\n p = p.parent;\n }\n\n focus = d;\n\n const isVerySmallCircle = focus.r * 2 / (focus.r * 2 + margin) < 0.3;\n\n if (isVerySmallCircle || scope.currentSliderValue > scope.currentBrowserLimit) {\n // no fancy animation for slower browsers if above the limit or if zooming to a very small circle\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)]);\n\n text.each(function(d) {\n textUpdate.call(this, d);\n });\n } else {\n // the fancy version for faster browsers\n const transition = d3.transition()\n .duration(ZOOM_DURATION)\n .tween(\"zoom\", function(d) {\n const i = d3.interpolateZoom(view, [focus.x, focus.y, adjustRadius(focus.r)]);\n return function(t) {\n zoomTo(i(t));\n };\n });\n\n transition.selectAll(\"text\")\n // Experimental: hide texts to be hidden on \"start\", show texts to be shown on \"end\"\n .each(textUpdate);\n }\n }\n\n rootFocusEvent = scope.$on('rootFocus', function() {\n $window.history.pushState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n doFocus(rootHierarchy);\n });\n\n classSearchEvent = scope.$on('classSearch', function(selectedClass) {\n doFocus(selectedClass);\n });\n }\n\n function sendSliderData() {\n const currentClassCount = scope.classHierarchyData.classCount;\n let currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n\n if (!currentSliderValue || currentSliderValue > currentClassCount) {\n currentSliderValue = currentClassCount;\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n }\n\n $rootScope.$broadcast(\"classCount\", currentClassCount, currentSliderValue);\n }\n\n window.addEventListener('resize', sendSliderData);\n\n window.addEventListener('beforeunload', removeResizeListener);\n\n function removeResizeListener() {\n window.removeEventListener('resize', sendSliderData);\n window.removeEventListener('beforeunload', removeResizeListener);\n }\n\n let prefixesWatch;\n let currentClassCountWatch;\n let searchedClassBroadcast;\n let onEnterClassSearchBroadcast;\n\n scope.$watch('classHierarchyData', function() {\n // when data changes unregister watchers by calling them\n if (prefixesWatch) prefixesWatch();\n if (currentClassCountWatch) currentClassCountWatch();\n if (searchedClassBroadcast) searchedClassBroadcast();\n if (onEnterClassSearchBroadcast) onEnterClassSearchBroadcast();\n\n // get initial state of prefixes (hidden or not) when changing repositories\n // in order to avoid triggering an unwanted prefixes watch\n let initialPrefixesState = getPrefixesState();\n\n if (scope.classHierarchyData.classCount) {\n sendSliderData();\n\n const rootData = structuredClone(scope.classHierarchyData);\n\n const root = d3.hierarchy(rootData);\n\n function sortRoot(root) {\n // add all classes to a flat array, add parent information\n // and sort according to instancesCount DESC, depth ASC\n\n return root.descendants()\n .sort(function(a, b) {\n if (a.data.sortingRank > b.data.sortingRank) {\n return -1;\n } else if (a.data.sortingRank < b.data.sortingRank) {\n return 1;\n } else if (a.data.depth > b.data.depth) {\n return 1;\n } else if (a.data.depth < b.data.depth) {\n return -1;\n } else {\n return 0;\n }\n });\n }\n\n const sortedChildren = sortRoot(root);\n\n // we start with an empty new rootData\n let filteredRootData;\n let noPrefixesGlobal;\n\n\n function restoreDiagramState(currentRootData, switchPrefixes) {\n const prefixesConfig = {\n keepPrevState: true,\n noPrefixes: getPrefixesState(),\n };\n\n // get noPrefixes flag from drawDiagram configuration params\n noPrefixesGlobal = prefixesConfig.noPrefixes;\n\n if (filteredRootData) {\n drawDiagram(filteredRootData, prefixesConfig, focus, true);\n } else {\n drawDiagram(currentRootData, prefixesConfig, focus, true);\n }\n\n $timeout(() => {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_SWITCH_PREFIXES, switchPrefixes);\n autoZoomToPreviousState();\n // Need to set this to false to enable the info panel to work when selecting a class.\n // The panel opening will be suppressed only when the prefixes are toggled.\n suppressPanelOpen = false;\n }, 70);\n }\n\n function redrawFilteredDiagram(currentSliderValue, sortedChildrenArray, useSlider) {\n if (!currentSliderValue) {\n return;\n }\n\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n\n filteredRootData = {\n name: ROOT_OBJ_NAME,\n children: [],\n };\n\n // walk through the given count of (sortedChildrenArray) classes\n // - record the id of each class we've seen\n // - add the rootData level classes to the new rootData\n const addedIds = new Set();\n for (let k = 1; k <= currentSliderValue; k++) {\n addedIds.add(sortedChildrenArray[k].data.id);\n if (sortedChildrenArray[k].parent === sortedChildrenArray[0]) { // i.e. the parent is the \"class hierarchy\"\n filteredRootData.children.push(sortedChildrenArray[k].data);\n }\n }\n\n // walk through all the classes in the new rootData and only keep those that have an \"added id\"\n // we create separate copies of the arrays in order not to contaminate the original data\n // we also copy each class's object ($.extend ...) for the same reason\n function fixChildren(node) {\n if (!node.children) {\n return;\n }\n const newChildren = [];\n for (const child of node.children) {\n if (addedIds.has(child.id)) {\n newChildren.push($.extend({}, child));\n }\n }\n node.children = newChildren;\n for (const child of node.children) {\n fixChildren(child);\n }\n }\n\n fixChildren(filteredRootData);\n\n if (useSlider) {\n // redraw diagram when slider value changes and persist current state\n // in local storage\n noPrefixesGlobal = angular.isUndefined(noPrefixesGlobal) ? getPrefixesState() : noPrefixesGlobal;\n const redrawConfig = {\n noPrefixes: noPrefixesGlobal,\n };\n drawDiagram(filteredRootData, redrawConfig);\n } else {\n // if the user returns to the diagram with back browser button\n // read the saved state (show/hide prefixes, current slider value)\n // from local storage and render the diagram according to the saved metrics\n restoreDiagramState(rootData);\n }\n }\n\n const currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n if (currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren);\n } else {\n const basicConfig = {\n doFade: true,\n keepPrevState: true,\n noPrefixes: getPrefixesState(),\n };\n drawDiagram(rootData, basicConfig);\n autoZoomToPreviousState();\n }\n\n prefixesWatch = scope.$watch('hidePrefixes', function(hidePrefixes) {\n if (angular.isUndefined(hidePrefixes) || initialPrefixesState) {\n initialPrefixesState = undefined;\n return;\n }\n // if digest overflows a possible fix might be wrapping this in $timeout\n $timeout(function() {\n suppressPanelOpen = true;\n savePrefixesState(hidePrefixes);\n restoreDiagramState(rootData, true);\n }, 50);\n }, true);\n\n currentClassCountWatch = scope.$watch('currentSliderValue', function(currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren, true);\n }, true);\n\n // we handle this event for the cases where we already have searched for a given class and\n // hit enter again on the already selected class in order again react and zoom to it again\n // if we are not at the moment\n let currentSearchedClass;\n onEnterClassSearchBroadcast = scope.$on('onEnterKeypressSearchAction', function(event) {\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n\n searchedClassBroadcast = scope.$on('searchedClass', function(event, searchedClass) {\n currentSearchedClass = flattenedClassData[searchedClass.name];\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n }\n }, true);\n }\n}\n"],"names":["CirclePacking","SingleChild","addPlaceholders","node","first","children","i","length","placeholderSize","size","push","name","removePlaceholders","nodes","data","splice","centerNodes","offset","x","reposition","makePositionsRelativeToZero","offsetX","offsetY","y","d3","selectAll","SVG","Export","getCSSRules","cssSourceFilePath","cssRules","$","sheet","rules","cssStr","_","each","value","cssText","generateBase64ImageSource","svgSelectorClass","exportSvg","attr","parentNode","innerHTML","btoa","unescape","encodeURIComponent","classHierarchyDirective","$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate","restrict","template","scope","classHierarchyData","flattenedClassNames","selectedClass","currentSliderValue","showClassInfoPanel","showExternalElements","hidePrefixes","currentBrowserLimit","link","element","attrs","suppressPanelOpen","tip","rootHierarchy","packLayout","diameter","color","domain","range","interpolate","svg","insert","on","appendMainGroup","append","id","transform","getPrefixesState","get","CLASS_HIERARCHY_HIDE_PREFIXES","prepareForSVGImageExport","style","imgSrc","this","href","download","getActiveRepository","g","hasData","classCount","canUseRepo","isSystemRepository","autoZoomToPreviousState","doFocus","focus","rootFocusEvent","classSearchEvent","service","LicenseContextService","onLicenseChanged","license","valid","loader","hierarchyError","selGraphFromCache","getClassHierarchyData","contextID","uri","success","response","status","warning","instant","error","getError","fetchClassHierarchy","flattenedClassData","drawDiagram","root","config","newFocus","switchPrefixes","remove","sum","d","descendants","view","isInFocusTransitive","d3tip","customPosition","event","top","bottom","innerHeight","clientY","right","innerWidth","clientX","html","call","circleGroup","enter","doFade","D3","Transition","fadeIn","circle","role","depth","key","classed","noPrefixes","textHidden","show","hide","zoom","getCurrentClassDataAndMarkSelected","obj","selected","closeClassInfoPanel","uniqBy","clickCancel","Click","delayDblClick","$on","history","pushState","$broadcast","stopPropagation","lastTimeWheel","preventDefault","now","Date","direction","deltaY","target","__data__","parent","newobj","sortingRank","replaceState","sendSliderData","text","textSel","idx","indexOf","noPrefixName","substring","Text","calcFontSize","r","getTextWithElipsisIfNeeded","textContent","keepPrevState","focusOnCurrentClass","focusHistoryId","hash","onpopstate","state","zoomTo","v","k","fullName","topLevelParentUri","c","adjustRadius","newr","textUpdate","display","shouldClosePanel","p","duration","tween","t","currentClassCount","CLASS_HIERARCHY_CURRENT_SLIDER_VALUE","set","prefixesWatch","currentClassCountWatch","searchedClassBroadcast","onEnterClassSearchBroadcast","window","addEventListener","removeResizeListener","removeEventListener","$watch","initialPrefixesState","rootData","structuredClone","sortedChildren","sort","a","b","filteredRootData","noPrefixesGlobal","restoreDiagramState","currentRootData","prefixesConfig","CLASS_HIERARCHY_SWITCH_PREFIXES","redrawFilteredDiagram","sortedChildrenArray","useSlider","addedIds","Set","add","fixChildren","newChildren","child","has","extend","angular","isUndefined","basicConfig","currentSearchedClass","undefined","savePrefixesState","searchedClass","renderCirclePacking","module","constant","directive","$inject"],"ignoreList":[],"sourceRoot":""}
|