graphdb-workbench 3.1.0-TR7 → 3.1.0-TR9
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/10142.50847c485a7f78a9840b.bundle.js +2 -0
- package/dist/10142.50847c485a7f78a9840b.bundle.js.map +1 -0
- package/dist/{12396.75b93ca806a447ab1996.bundle.js → 12396.cbd351b8adc2b5af44ae.bundle.js} +2 -2
- package/dist/{12396.75b93ca806a447ab1996.bundle.js.map → 12396.cbd351b8adc2b5af44ae.bundle.js.map} +1 -1
- package/dist/{15535.19ce46b0a4b36dd0f96b.bundle.js → 15535.4f979f5a7dbe8a2658e4.bundle.js} +2 -2
- package/dist/{15535.19ce46b0a4b36dd0f96b.bundle.js.map → 15535.4f979f5a7dbe8a2658e4.bundle.js.map} +1 -1
- package/dist/{16162.a3441017ce868475ef7c.bundle.js → 16162.e14694e038f17d230885.bundle.js} +2 -2
- package/dist/{16162.a3441017ce868475ef7c.bundle.js.map → 16162.e14694e038f17d230885.bundle.js.map} +1 -1
- package/dist/{20287.ea17646466c254199b21.bundle.js → 20287.1e9afb2423c3fe873e36.bundle.js} +2 -2
- package/dist/{20287.ea17646466c254199b21.bundle.js.map → 20287.1e9afb2423c3fe873e36.bundle.js.map} +1 -1
- package/dist/{21136.8ef598aef32fdc172c2c.bundle.js → 21136.5a1250377772cb3195a3.bundle.js} +2 -2
- package/dist/{21136.8ef598aef32fdc172c2c.bundle.js.map → 21136.5a1250377772cb3195a3.bundle.js.map} +1 -1
- package/dist/{21142.f1544ad2137f8de986d3.bundle.js → 21142.9dcd7e03e12facac1086.bundle.js} +2 -2
- package/dist/{21142.f1544ad2137f8de986d3.bundle.js.map → 21142.9dcd7e03e12facac1086.bundle.js.map} +1 -1
- package/dist/{21170.c0de17dbd2943fd44ce4.bundle.js → 21170.d94a531bf4739c9b8605.bundle.js} +2 -2
- package/dist/{21170.c0de17dbd2943fd44ce4.bundle.js.map → 21170.d94a531bf4739c9b8605.bundle.js.map} +1 -1
- package/dist/{21195.7800fd930cfbe20d39d9.bundle.js → 21195.49a6f9b0fdea13e4fa1a.bundle.js} +2 -2
- package/dist/{21195.7800fd930cfbe20d39d9.bundle.js.map → 21195.49a6f9b0fdea13e4fa1a.bundle.js.map} +1 -1
- package/dist/{25747.c589e0dddaf47030673f.bundle.js → 25747.56693e59322edce9791b.bundle.js} +2 -2
- package/dist/{25747.c589e0dddaf47030673f.bundle.js.map → 25747.56693e59322edce9791b.bundle.js.map} +1 -1
- package/dist/{27580.7dc5844c4afaabfeaae7.bundle.js → 27580.46e0085c4f0549e4bb9f.bundle.js} +2 -2
- package/dist/{27580.7dc5844c4afaabfeaae7.bundle.js.map → 27580.46e0085c4f0549e4bb9f.bundle.js.map} +1 -1
- package/dist/{31636.f50ca2ade67b87d63f12.bundle.js → 31636.825216a6a817aea7c2e5.bundle.js} +2 -2
- package/dist/{31636.f50ca2ade67b87d63f12.bundle.js.map → 31636.825216a6a817aea7c2e5.bundle.js.map} +1 -1
- package/dist/{32489.9307b8976b5b3187223e.bundle.js → 32489.ff95b720e4c6b3fb21d6.bundle.js} +2 -2
- package/dist/{32489.9307b8976b5b3187223e.bundle.js.map → 32489.ff95b720e4c6b3fb21d6.bundle.js.map} +1 -1
- package/dist/{33524.10558ac848ce64b2b722.bundle.js → 33524.35fe079bcb99a78babaf.bundle.js} +2 -2
- package/dist/33524.35fe079bcb99a78babaf.bundle.js.map +1 -0
- package/dist/36644.b8ead0ab81253aa03ade.bundle.js +2 -0
- package/dist/36644.b8ead0ab81253aa03ade.bundle.js.map +1 -0
- package/dist/{38360.53936cc1df95e7a1b39d.bundle.js → 38360.d06f8ac25d4347b8c94a.bundle.js} +2 -2
- package/dist/{38360.53936cc1df95e7a1b39d.bundle.js.map → 38360.d06f8ac25d4347b8c94a.bundle.js.map} +1 -1
- package/dist/{38644.e8d7a8ff0b538f59f6c3.bundle.js → 38644.1370edd16031835a57fc.bundle.js} +2 -2
- package/dist/{38644.e8d7a8ff0b538f59f6c3.bundle.js.map → 38644.1370edd16031835a57fc.bundle.js.map} +1 -1
- package/dist/{38843.9124577a5f2e542b8135.bundle.js → 38843.1b8dad7984c1368e0f26.bundle.js} +2 -2
- package/dist/{38843.9124577a5f2e542b8135.bundle.js.map → 38843.1b8dad7984c1368e0f26.bundle.js.map} +1 -1
- package/dist/{39518.506568d61f094739e414.bundle.js → 39518.460c8138d3b1479470eb.bundle.js} +2 -2
- package/dist/{39518.506568d61f094739e414.bundle.js.map → 39518.460c8138d3b1479470eb.bundle.js.map} +1 -1
- package/dist/{39539.bf87d8eda9342eba37cf.bundle.js → 39539.e69068aea8046d154307.bundle.js} +2 -2
- package/dist/{39539.bf87d8eda9342eba37cf.bundle.js.map → 39539.e69068aea8046d154307.bundle.js.map} +1 -1
- package/dist/39874.6ca23ead080b52dc1bc6.bundle.js +2 -0
- package/dist/39874.6ca23ead080b52dc1bc6.bundle.js.map +1 -0
- package/dist/{41453.cbb85e8825e15d9875dc.bundle.js → 41453.f2e20c7c42ea9e9ca281.bundle.js} +2 -2
- package/dist/{41453.cbb85e8825e15d9875dc.bundle.js.map → 41453.f2e20c7c42ea9e9ca281.bundle.js.map} +1 -1
- package/dist/{42129.5369407e5c39404263ed.bundle.js → 42129.8894dd599262ed62f5f9.bundle.js} +2 -2
- package/dist/{42129.5369407e5c39404263ed.bundle.js.map → 42129.8894dd599262ed62f5f9.bundle.js.map} +1 -1
- package/dist/{44444.8b07608bcd9f51e6ce1c.bundle.js → 44444.751ec83bdd2a4fd15395.bundle.js} +2 -2
- package/dist/{44444.8b07608bcd9f51e6ce1c.bundle.js.map → 44444.751ec83bdd2a4fd15395.bundle.js.map} +1 -1
- package/dist/{5470.27701a523ebe9e973fc2.bundle.js → 5470.7c17c7d3b58c8c0d0786.bundle.js} +2 -2
- package/dist/5470.7c17c7d3b58c8c0d0786.bundle.js.map +1 -0
- package/dist/{55862.f9264ede1f9e8641e979.bundle.js → 55862.4ff9c451d6d5b20139aa.bundle.js} +2 -2
- package/dist/{55862.f9264ede1f9e8641e979.bundle.js.map → 55862.4ff9c451d6d5b20139aa.bundle.js.map} +1 -1
- package/dist/{58306.afb4bed817c836e63e58.bundle.js → 58306.448be402acad05bbb584.bundle.js} +2 -2
- package/dist/{58306.afb4bed817c836e63e58.bundle.js.map → 58306.448be402acad05bbb584.bundle.js.map} +1 -1
- package/dist/{66014.5e25419235a79d858595.bundle.js → 66014.336bc4291da2fbc96cd1.bundle.js} +2 -2
- package/dist/66014.336bc4291da2fbc96cd1.bundle.js.map +1 -0
- package/dist/{67888.859075c676ffe04298bf.bundle.js → 67888.17384107edbc72dadc2d.bundle.js} +2 -2
- package/dist/{67888.859075c676ffe04298bf.bundle.js.map → 67888.17384107edbc72dadc2d.bundle.js.map} +1 -1
- package/dist/{72379.86c189a27a254f8ad22b.bundle.js → 72379.275ae82f8396d9088028.bundle.js} +2 -2
- package/dist/{72379.86c189a27a254f8ad22b.bundle.js.map → 72379.275ae82f8396d9088028.bundle.js.map} +1 -1
- package/dist/{73667.350239676e59334fff54.bundle.js → 73667.e746a61fe0db60bf2b6a.bundle.js} +2 -2
- package/dist/{73667.350239676e59334fff54.bundle.js.map → 73667.e746a61fe0db60bf2b6a.bundle.js.map} +1 -1
- package/dist/{73793.fcde01f064aa64e84b9c.bundle.js → 73793.05e78e0c3ccbe1ad5f09.bundle.js} +2 -2
- package/dist/{73793.fcde01f064aa64e84b9c.bundle.js.map → 73793.05e78e0c3ccbe1ad5f09.bundle.js.map} +1 -1
- package/dist/{75282.5094de293638333c7097.bundle.js → 75282.4033542c93f0fda84c66.bundle.js} +2 -2
- package/dist/{75282.5094de293638333c7097.bundle.js.map → 75282.4033542c93f0fda84c66.bundle.js.map} +1 -1
- package/dist/{75849.d329e1cb6909ad19ab6e.bundle.js → 75849.fca2b927fc8d73fd31ee.bundle.js} +2 -2
- package/dist/{75849.d329e1cb6909ad19ab6e.bundle.js.map → 75849.fca2b927fc8d73fd31ee.bundle.js.map} +1 -1
- package/dist/{78250.a137ba2afa4989250f69.bundle.js → 78250.9032061f1de28529cc5b.bundle.js} +2 -2
- package/dist/{78250.a137ba2afa4989250f69.bundle.js.map → 78250.9032061f1de28529cc5b.bundle.js.map} +1 -1
- package/dist/79329.5e745025419b44e7a2f6.bundle.js +2 -0
- package/dist/79329.5e745025419b44e7a2f6.bundle.js.map +1 -0
- package/dist/82206.b3b37c3e0cc1aa18148c.bundle.js +2 -0
- package/dist/82206.b3b37c3e0cc1aa18148c.bundle.js.map +1 -0
- package/dist/{82926.f01799164b6cc7a909a5.bundle.js → 82926.c948b5ffd52a13d07e9a.bundle.js} +2 -2
- package/dist/{82926.f01799164b6cc7a909a5.bundle.js.map → 82926.c948b5ffd52a13d07e9a.bundle.js.map} +1 -1
- package/dist/{86287.2a9cda65f67eb0a277d5.bundle.js → 86287.c47005c01ccbdfb1dc23.bundle.js} +2 -2
- package/dist/{86287.2a9cda65f67eb0a277d5.bundle.js.map → 86287.c47005c01ccbdfb1dc23.bundle.js.map} +1 -1
- package/dist/{9062.6f9de79a28c9bd48ec14.bundle.js → 9062.1ed9bc6c2668d65d1cfd.bundle.js} +2 -2
- package/dist/{9062.6f9de79a28c9bd48ec14.bundle.js.map → 9062.1ed9bc6c2668d65d1cfd.bundle.js.map} +1 -1
- package/dist/{95953.04709fa59d2ed50632d3.bundle.js → 95953.55471092942564b75541.bundle.js} +2 -2
- package/dist/95953.55471092942564b75541.bundle.js.map +1 -0
- package/dist/{99448.08fbd142db866ed20f97.bundle.js → 99448.c6f1cb6efb46d34452fa.bundle.js} +2 -2
- package/dist/{99448.08fbd142db866ed20f97.bundle.js.map → 99448.c6f1cb6efb46d34452fa.bundle.js.map} +1 -1
- package/dist/api/ontotext-workbench-api.d.ts +1 -0
- package/dist/api/ontotext-workbench-api.js +1 -1
- package/dist/api/ontotext-workbench-api.js.map +1 -1
- package/dist/api/services/security/authentication-storage.service.d.ts +3 -0
- package/dist/api/services/window/index.d.ts +1 -0
- package/dist/api/services/window/window.service.d.ts +4 -10
- package/dist/i18n/locale-en.json +5 -1
- package/dist/i18n/locale-fr.json +5 -1
- package/dist/index.html +8 -8
- package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
- package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
- package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
- package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
- package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
- package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
- package/dist/js/angular/core/templates/search-resource-input.html +1 -1
- package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
- package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
- package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
- package/dist/js/angular/security/templates/user.html +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/autocomplete-iri-discovery-search.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 +4 -4
- 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.5ed5aeadc238c6ce65fa.js +3 -0
- package/dist/{legacyWorkbench.cbccad23cea068ec41a9.js.map → legacyWorkbench.5ed5aeadc238c6ce65fa.js.map} +1 -1
- package/dist/{main.224d2a416195ee7c3d4a.js → main.95051b60e5b08481a1ff.js} +3 -3
- package/dist/main.95051b60e5b08481a1ff.js.map +1 -0
- package/dist/pages/aclmanagement.html +2 -2
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +1 -1
- package/dist/pages/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/import.html +2 -2
- package/dist/pages/jdbc-create.html +1 -1
- package/dist/pages/login.html +1 -1
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +1 -1
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +1 -1
- package/dist/pages/repository.html +1 -1
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-editor.html +1 -1
- package/dist/pages/sparql-template-create.html +1 -1
- package/dist/pages/ux-test1.html +2 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/plugins.js +1 -1
- package/dist/res/swagger5/index.html +11 -11
- package/dist/shared-components/cjs/onto-footer.onto-header.onto-navbar.onto-permission-banner.onto-toastr.onto-tooltip.entry.cjs.js.map +1 -1
- package/dist/shared-components/cjs/onto-footer_6.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-footer_6.cjs.entry.js.map +1 -1
- package/dist/shared-components/cjs/onto-language-selector.onto-license-alert.onto-operations-notification.onto-rdf-search.onto-repository-selector.onto-search-icon.onto-search-resource-input.onto-user-login.onto-user-menu.entry.cjs.js.map +1 -1
- package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js.map +1 -1
- package/dist/shared-components/cjs/onto-layout.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-layout.cjs.entry.js.map +1 -1
- package/dist/shared-components/cjs/onto-layout.entry.cjs.js.map +1 -1
- package/dist/shared-components/collection/components/onto-footer/onto-footer.js +1 -1
- package/dist/shared-components/collection/components/onto-footer/onto-footer.js.map +1 -1
- package/dist/shared-components/collection/components/onto-header/onto-header.js +1 -1
- package/dist/shared-components/collection/components/onto-header/onto-header.js.map +1 -1
- package/dist/shared-components/collection/components/onto-layout/onto-layout.js +1 -1
- package/dist/shared-components/collection/components/onto-layout/onto-layout.js.map +1 -1
- package/dist/shared-components/collection/components/onto-license-alert/onto-license-alert.js +1 -1
- package/dist/shared-components/collection/components/onto-license-alert/onto-license-alert.js.map +1 -1
- package/dist/shared-components/collection/components/onto-operations-notification/onto-operations-notification.js +1 -1
- package/dist/shared-components/collection/components/onto-operations-notification/onto-operations-notification.js.map +1 -1
- package/dist/shared-components/collection/components/onto-toastr/onto-toastr.js +1 -1
- package/dist/shared-components/collection/components/onto-toastr/onto-toastr.js.map +1 -1
- package/dist/shared-components/collection/components/onto-user-login/onto-user-login.js +1 -1
- package/dist/shared-components/collection/components/onto-user-login/onto-user-login.js.map +1 -1
- package/dist/shared-components/esm/onto-footer.onto-header.onto-navbar.onto-permission-banner.onto-toastr.onto-tooltip.entry.js.map +1 -1
- package/dist/shared-components/esm/onto-footer_6.entry.js +1 -1
- package/dist/shared-components/esm/onto-footer_6.entry.js.map +1 -1
- package/dist/shared-components/esm/onto-language-selector.onto-license-alert.onto-operations-notification.onto-rdf-search.onto-repository-selector.onto-search-icon.onto-search-resource-input.onto-user-login.onto-user-menu.entry.js.map +1 -1
- package/dist/shared-components/esm/onto-language-selector_9.entry.js +1 -1
- package/dist/shared-components/esm/onto-language-selector_9.entry.js.map +1 -1
- package/dist/shared-components/esm/onto-layout.entry.js +1 -1
- package/dist/shared-components/esm/onto-layout.entry.js.map +1 -1
- package/dist/shared-components/shared-components/onto-footer.onto-header.onto-navbar.onto-permission-banner.onto-toastr.onto-tooltip.entry.esm.js.map +1 -1
- package/dist/shared-components/shared-components/onto-language-selector.onto-license-alert.onto-operations-notification.onto-rdf-search.onto-repository-selector.onto-search-icon.onto-search-resource-input.onto-user-login.onto-user-menu.entry.esm.js.map +1 -1
- package/dist/shared-components/shared-components/onto-layout.entry.esm.js.map +1 -1
- package/dist/shared-components/shared-components/p-28a4ce8f.entry.js +1 -0
- package/dist/shared-components/shared-components/p-28a4ce8f.entry.js.map +1 -0
- package/dist/shared-components/shared-components/p-b2cc3f1e.entry.js +1 -0
- package/dist/shared-components/shared-components/p-b2cc3f1e.entry.js.map +1 -0
- package/dist/shared-components/shared-components/p-fa30a30a.entry.js +1 -0
- package/dist/shared-components/shared-components/p-fa30a30a.entry.js.map +1 -0
- package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
- package/dist/shared-components/types/components/onto-license-alert/onto-license-alert.d.ts +0 -1
- package/dist/shared-components/types/components/onto-operations-notification/onto-operations-notification.d.ts +0 -1
- package/dist/shared-components/types/home/ubuntu/workspace/PRO/GraphDB UI Jobs/graphdb-workbench-release/packages/shared-components/.stencil/api/src/services/window/index.d.ts +1 -0
- package/dist/shared-components/types/home/ubuntu/workspace/PRO/GraphDB UI Jobs/graphdb-workbench-release/packages/shared-components/.stencil/api/src/services/window/window.service.d.ts +11 -0
- package/package.json +1 -1
- package/dist/10142.aeee60d794f7a5458f7e.bundle.js +0 -2
- package/dist/10142.aeee60d794f7a5458f7e.bundle.js.map +0 -1
- package/dist/33524.10558ac848ce64b2b722.bundle.js.map +0 -1
- package/dist/36644.836e5d041e0d9261c165.bundle.js +0 -2
- package/dist/36644.836e5d041e0d9261c165.bundle.js.map +0 -1
- package/dist/39874.d024d8dcc51bd55a9c59.bundle.js +0 -2
- package/dist/39874.d024d8dcc51bd55a9c59.bundle.js.map +0 -1
- package/dist/5470.27701a523ebe9e973fc2.bundle.js.map +0 -1
- package/dist/66014.5e25419235a79d858595.bundle.js.map +0 -1
- package/dist/79329.dd73d019c61e2414ed51.bundle.js +0 -2
- package/dist/79329.dd73d019c61e2414ed51.bundle.js.map +0 -1
- package/dist/82206.c251c5be920eed354934.bundle.js +0 -2
- package/dist/82206.c251c5be920eed354934.bundle.js.map +0 -1
- package/dist/95953.04709fa59d2ed50632d3.bundle.js.map +0 -1
- package/dist/legacyWorkbench.cbccad23cea068ec41a9.js +0 -3
- package/dist/main.224d2a416195ee7c3d4a.js.map +0 -1
- package/dist/shared-components/shared-components/p-ca82e5cb.entry.js +0 -1
- package/dist/shared-components/shared-components/p-ca82e5cb.entry.js.map +0 -1
- package/dist/shared-components/shared-components/p-d37f4d40.entry.js +0 -1
- package/dist/shared-components/shared-components/p-d37f4d40.entry.js.map +0 -1
- package/dist/shared-components/shared-components/p-e101f18e.entry.js +0 -1
- package/dist/shared-components/shared-components/p-e101f18e.entry.js.map +0 -1
- /package/dist/{legacyWorkbench.cbccad23cea068ec41a9.js.LICENSE.txt → legacyWorkbench.5ed5aeadc238c6ce65fa.js.LICENSE.txt} +0 -0
- /package/dist/{main.224d2a416195ee7c3d4a.js.LICENSE.txt → main.95051b60e5b08481a1ff.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"5470.27701a523ebe9e973fc2.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/similarity/controllers/create-index.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index-status.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontotext-yasgui/rendering-mode.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-view-mode.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/mappers/similarity-index-mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index-error.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index-info.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index-type.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/utils/notifications.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontotext-yasgui/yasqe-mode.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-query-type.js"],"sourcesContent":["import 'angular/utils/notifications';\nimport 'angular/utils/local-storage-adapter';\nimport 'angular/core/services/event-emitter-service';\nimport {mapIndexesResponseToSimilarityIndex} from \"../../rest/mappers/similarity-index-mapper\";\nimport {\n DISABLE_YASQE_BUTTONS_CONFIGURATION, INFERRED_AND_SAME_AS_BUTTONS_CONFIGURATION, YasguiComponentDirectiveUtil, YasqeButtonName,\n} from \"../../core/directives/yasgui-component/yasgui-component-directive.util\";\nimport {RenderingMode} from \"../../models/ontotext-yasgui/rendering-mode\";\nimport {YasqeMode} from \"../../models/ontotext-yasgui/yasqe-mode\";\nimport {SimilarityViewMode} from \"../../models/similarity/similarity-view-mode\";\nimport {SimilarityQueryType} from \"../../models/similarity/similarity-query-type\";\nimport {SimilarityIndexType} from \"../../models/similarity/similarity-index-type\";\nimport {SimilarityIndexError} from \"../../models/similarity/similarity-index-error\";\nimport {QueryType} from \"../../models/ontotext-yasgui/query-type\";\nimport {SimilarityIndexInfo} from \"../../models/similarity/similarity-index-info\";\nimport {RepositoryContextService, ServiceProvider} from \"@ontotext/workbench-api\";\n\nangular\n .module('graphdb.framework.similarity.controllers.create', [\n 'graphdb.framework.utils.notifications',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .controller('CreateSimilarityIdxCtrl', CreateSimilarityIdxCtrl);\n\nCreateSimilarityIdxCtrl.$inject = [\n '$scope',\n 'toastr',\n '$uibModal',\n '$timeout',\n 'SimilarityRestService',\n 'SparqlRestService',\n '$location',\n 'productInfo',\n 'Notifications',\n 'RDF4JRepositoriesRestService',\n 'LocalStorageAdapter',\n 'LSKeys',\n '$translate',\n '$repositories',\n 'EventEmitterService',\n 'ModalService'\n];\n\nfunction CreateSimilarityIdxCtrl(\n $scope,\n toastr,\n $uibModal,\n $timeout,\n SimilarityRestService,\n SparqlRestService,\n $location,\n productInfo,\n Notifications,\n RDF4JRepositoriesRestService,\n LocalStorageAdapter,\n LSKeys,\n $translate,\n $repositories,\n EventEmitterService,\n ModalService\n) {\n\n /**\n * @type {ProductInfo}\n */\n $scope.productInfo = productInfo;\n\n $scope.SimilarityQueryType = SimilarityQueryType;\n $scope.SimilarityIndexType = SimilarityIndexType;\n\n /**\n * @type {SimilarityIndexInfo}\n */\n $scope.similarityIndexInfo = undefined;\n $scope.samples = undefined;\n $scope.yasguiConfig = undefined;\n $scope.saveOrUpdateExecuted = false;\n $scope.loadingControllerResources = false;\n $scope.helpHidden = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP) === 1;\n /**\n * Flag that indicates if the index save operation is in progress.\n * @type {boolean}\n */\n $scope.savingIndex = false;\n\n let isDirty = false;\n let searchQueries = undefined;\n let allSamples = undefined;\n let usedPrefixes = undefined;\n let viewMode = SimilarityViewMode.CREATE;\n const textDefaultOptions = '-termweight idf';\n const predDefaultOptions = '';\n\n // This flag is used to prevent triggering the repository change event listener on initial subscription.\n let initialRepoChangeTrigger = true;\n\n\n // =========================\n // Public functions\n // =========================\n /**\n * Changes the similarity index type. (\"Create text similarity index\" or \"Create predication index\").\n *\n * @param {string} similarityIndexType - the new value of similarity index type. The value have to be one of {@link SimilarityIndexType}.\n * @param {string} similarityQueryType - the type of similarity query that have to be shown. Default value is data query.\n * The value have to be one of {@link SimilarityQueryType}.\n */\n $scope.changeSimilarityIndexType = (similarityIndexType, similarityQueryType = SimilarityQueryType.DATA) => {\n $scope.similarityIndexInfo.setType(similarityIndexType);\n if ($scope.similarityIndexInfo.isPredicationType()) {\n $scope.samples = allSamples[SimilarityIndexType.PREDICATION];\n } else {\n $scope.samples = allSamples[SimilarityIndexType.TEXT];\n }\n $scope.changeQueryTab(similarityQueryType)\n .then((similarityIndexInfo) => {\n setDefaultQueries($scope.similarityIndexInfo);\n $scope.setEditorQuery($scope.similarityIndexInfo.getQuery());\n });\n }\n\n /**\n * Changes the query tab. (\"Data query\", \"Search query\" or \"Analogical query\").\n *\n * @param {string} similarityQueryType - the type of query that have to be shown. The value have to be one of {@link SimilarityQueryType}.\n */\n $scope.changeQueryTab = (similarityQueryType) => {\n const oldSimilarityQueryType = $scope.similarityIndexInfo.getSelectedQueryType();\n if (oldSimilarityQueryType === similarityQueryType) {\n return Promise.resolve();\n }\n $scope.similarityIndexInfo.setSelectedQueryType(similarityQueryType);\n return updateQueryFromEditor($scope.similarityIndexInfo, oldSimilarityQueryType)\n .then((similarityIndexInfo) => validateQuery(similarityIndexInfo, oldSimilarityQueryType))\n .then((similarityIndexInfo) => validateQueryType(similarityIndexInfo, oldSimilarityQueryType))\n .catch((error) => {\n if (!(error instanceof SimilarityIndexError)) {\n console.log(error);\n }\n })\n .finally(() => {\n const ontotextYasgui = getOntotextYasgui();\n $scope.similarityIndexInfo.setSelectedYasguiRenderMode(RenderingMode.YASQE);\n ontotextYasgui.changeRenderMode($scope.similarityIndexInfo.getSelectedYasguiRenderMode());\n if ($scope.similarityIndexInfo.isDataQueryTypeSelected()) {\n ontotextYasgui.showYasqeActionButton([YasqeButtonName.INFER_STATEMENTS, YasqeButtonName.EXPANDS_RESULTS]);\n } else {\n ontotextYasgui.hideYasqeActionButton([YasqeButtonName.INFER_STATEMENTS, YasqeButtonName.EXPANDS_RESULTS]);\n }\n ontotextYasgui.setQuery($scope.similarityIndexInfo.getQuery());\n });\n }\n\n /**\n * Validates all similarity index data, and if everything is ok calls backend server to create an index.\n */\n $scope.createSimilarityIndex = () => {\n $scope.saveOrUpdateExecuted = true;\n $scope.savingIndex = true;\n updateQueryFromEditor($scope.similarityIndexInfo)\n .then(validateQuery)\n .then(validateQueryType)\n .then(validateSimilarityIndex)\n .then(validateSimilarityIndexNameExistence)\n .then((similarityIndexInfo) => createIndex(similarityIndexInfo.getSimilarityIndex()))\n .then(() => goToSimilarityIndexesView())\n .catch((error) => {\n if (!(error instanceof SimilarityIndexError)) {\n toastr.error(getError(error), $translate.instant('similarity.could.not.get.indexes.error'));\n }\n })\n .finally(() => {\n $scope.savingIndex = false;\n });\n };\n\n /**\n * Opens a modal dialog and displays the sparql query of currently selected index type query.\n */\n $scope.viewQuery = () => {\n updateQueryFromEditor($scope.similarityIndexInfo)\n .then(validateSimilarityIndex)\n .then(fetchSparqlQuery)\n .then(showSparqlQuery)\n .catch((error) => toastr.error(getError(error)));\n };\n\n /**\n * Executes the query.\n */\n $scope.preview = () => {\n updateQueryFromEditor($scope.similarityIndexInfo)\n .then(validateQueryType)\n .then(validateQuery)\n .then(() => {\n const ontotextYasgui = getOntotextYasgui();\n $scope.similarityIndexInfo.setSelectedYasguiRenderMode(RenderingMode.YASR);\n ontotextYasgui.query($scope.similarityIndexInfo.getSelectedYasguiRenderMode());\n });\n }\n\n $scope.saveSearchQuery = function () {\n if (!isDirty) {\n $location.url('similarity');\n } else {\n $scope.saveOrUpdateExecuted = true;\n $scope.savingIndex = true;\n updateQueryFromEditor($scope.similarityIndexInfo)\n .then(validateSimilarityIndexName)\n .then(validateQuery)\n .then(validateQueryType)\n .then(validateSearchQuery)\n .then(validateAnalogicalQuery)\n .then(saveQuery)\n .then((isSearchQuery) => {\n // toastr should be triggered before the redirect because the redirect will remove the toast\n return Notifications.showToastMessageWithDelay(isSearchQuery ? 'similarity.changed.search.query.msg' : 'similarity.changed.analogical.query.msg');\n })\n .then(() => {\n $location.url('similarity');\n })\n .catch((error) => {\n if (!(error instanceof SimilarityIndexError)) {\n toastr.error(getError(error), $translate.instant('similarity.change.query.error'));\n }\n })\n .finally(() => {\n $scope.savingIndex = false;\n });\n }\n };\n\n /**\n * Sets the <code>query</code> to the sparql editor.\n *\n * @param {string} query - a sparql query.\n */\n $scope.setEditorQuery = (query) => {\n $scope.similarityIndexInfo.markInvalidQuery(undefined, false);\n $scope.similarityIndexInfo.markInvalidQueryType(undefined, false);\n if ($scope.yasguiConfig) {\n getOntotextYasgui().setQuery(query);\n } else {\n updateYasguiComponent({initialQuery: query || ' '});\n }\n }\n\n $scope.similarityIndexNameChanged = () => {\n $scope.setDirty();\n $scope.similarityIndexInfo.isNameExist = false;\n }\n\n $scope.queryChanged = () => {\n $scope.setDirty();\n $scope.similarityIndexInfo.markInvalidQuery(undefined, false);\n $scope.similarityIndexInfo.markInvalidQueryType(undefined, false);\n }\n\n $scope.isCloneViewMode = () => {\n return SimilarityViewMode.CLONE === viewMode;\n }\n\n $scope.isEditViewMode = () => {\n return SimilarityViewMode.EDIT === viewMode;\n }\n\n $scope.isCreateViewMode = () => {\n return SimilarityViewMode.CREATE === viewMode;\n }\n\n $scope.setDirty = () => {\n isDirty = true;\n };\n\n $scope.isYasqeShown = () => {\n return $scope.similarityIndexInfo && $scope.similarityIndexInfo.isYasqeRenderMode();\n }\n\n $scope.isYasrShown = () => {\n return $scope.similarityIndexInfo && $scope.similarityIndexInfo.isYasrRenderMode();\n }\n\n $scope.showEditor = () => {\n const ontotextYasgui = getOntotextYasgui();\n ontotextYasgui.abortQuery().then(() => {\n return ontotextYasgui.setQuery($scope.similarityIndexInfo.getQuery());\n }).then(() => {\n $scope.similarityIndexInfo.setSelectedYasguiRenderMode(RenderingMode.YASQE);\n return ontotextYasgui.changeRenderMode($scope.similarityIndexInfo.getSelectedYasguiRenderMode());\n });\n };\n\n $scope.toggleHelp = (value) => {\n if (value === undefined) {\n value = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP);\n }\n if (value !== 1) {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 1);\n $scope.helpHidden = true;\n } else {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 0);\n $scope.helpHidden = false;\n }\n };\n\n $scope.getCloseBtnMsg = function () {\n let operationType = $scope.editSearchQuery ? $translate.instant('similarity.query.edition.msg') : $translate.instant('similarity.index.creation.msg');\n return $translate.instant('similarity.close.btn.msg', {operation: operationType});\n }\n\n $scope.hasQueryError = () => {\n const similarityQueryType = $scope.similarityIndexInfo.getSelectedQueryType();\n\n if (SimilarityQueryType.DATA === similarityQueryType) {\n return $scope.hasSelectQueryError();\n }\n\n if (SimilarityQueryType.SEARCH === similarityQueryType) {\n return $scope.hasSearchQueryError();\n }\n\n if (SimilarityQueryType.ANALOGICAL === similarityQueryType) {\n return $scope.hasAnalogicalQueryError();\n }\n\n return false;\n }\n\n $scope.hasSelectQueryError = () => {\n return !$scope.similarityIndexInfo.hasSelectQuery() ||\n $scope.similarityIndexInfo.invalidSelectQuery ||\n $scope.similarityIndexInfo.invalidSelectQueryType;\n }\n\n $scope.hasSearchQueryError = () => {\n return !$scope.similarityIndexInfo.hasSearchQuery() ||\n $scope.similarityIndexInfo.invalidSearchQuery ||\n $scope.similarityIndexInfo.invalidSearchQueryType;\n }\n\n $scope.hasAnalogicalQueryError = () => {\n return !$scope.similarityIndexInfo.hasAnalogicalQuery() ||\n $scope.similarityIndexInfo.invalidAnalogicalQuery ||\n $scope.similarityIndexInfo.invalidAnalogicalQueryType;\n }\n\n $scope.getQueryErrorMessage = () => {\n const similarityQueryType = $scope.similarityIndexInfo.getSelectedQueryType();\n let isEmpty = false;\n let invalidQueryType = false;\n let invalidQuery = false;\n\n if (SimilarityQueryType.DATA === similarityQueryType) {\n isEmpty = !$scope.similarityIndexInfo.hasSelectQuery();\n invalidQueryType = $scope.similarityIndexInfo.invalidSelectQueryType;\n invalidQuery = $scope.similarityIndexInfo.invalidSelectQuery;\n } else if (SimilarityQueryType.SEARCH === similarityQueryType) {\n isEmpty = !$scope.similarityIndexInfo.hasSearchQuery();\n invalidQueryType = $scope.similarityIndexInfo.invalidSearchQueryType;\n invalidQuery = $scope.similarityIndexInfo.invalidSearchQuery;\n } else if (SimilarityQueryType.ANALOGICAL === similarityQueryType) {\n isEmpty = !$scope.similarityIndexInfo.hasAnalogicalQuery();\n invalidQueryType = $scope.similarityIndexInfo.invalidAnalogicalQueryType;\n invalidQuery = $scope.similarityIndexInfo.invalidAnalogicalQuery;\n }\n\n const labelParams = {queryType: $translate.instant(`similarity.query.type.${similarityQueryType}.name`)};\n if (isEmpty) {\n return $translate.instant('similarity.error.query.empty', labelParams);\n } else if (invalidQuery) {\n return $translate.instant('similarity.error.query.invalid', labelParams);\n } else if (invalidQueryType) {\n return $translate.instant('similarity.error.query.invalid_type', labelParams);\n }\n\n return '';\n }\n // =========================\n // Private functions\n // =========================\n /**\n * Initializes all view components.\n */\n const init = () => {\n getSimilarityIndex()\n .then((similarityIndexInfo) => {\n $scope.similarityIndexInfo = similarityIndexInfo;\n let initialQueryTab = SimilarityQueryType.DATA;\n if ($scope.isEditViewMode()) {\n initialQueryTab = SimilarityQueryType.SEARCH;\n }\n $scope.changeSimilarityIndexType(similarityIndexInfo.getType(), initialQueryTab)\n });\n }\n\n /**\n * Validates the editor query and updates error statuses of <code>SimilarityIndexInfo</code>. Updates <code>SimilarityIndexInfo</code> query with editor one.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @param {string} similarityQueryType - the type of similarity query that have to be shown. If parameter is undefined then currently selected query type will be used.\n * The value have to be one of {@link SimilarityQueryType}.\n * @return {Promise<SimilarityIndexInfo>}\n */\n const updateQueryFromEditor = (similarityIndexInfo, similarityQueryType = undefined) => {\n return getOntotextYasgui().getQuery()\n .then((query) => similarityIndexInfo.setQuery(query, similarityQueryType))\n .then(() => similarityIndexInfo);\n }\n\n /**\n * Fetches the sparql query of currently chosen query type from the backed server.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<string>} the sparql query of currently chosen query type.\n */\n const fetchSparqlQuery = (similarityIndexInfo) => {\n return SimilarityRestService.getQuery({\n indexName: similarityIndexInfo.getName(),\n indexOptions: similarityIndexInfo.getOptions(),\n query: similarityIndexInfo.getQuery(),\n indexStopList: similarityIndexInfo.getStopList(),\n queryInference: similarityIndexInfo.getInference(),\n querySameAs: similarityIndexInfo.getSameAs(),\n viewType: similarityIndexInfo.getSelectedQueryType(),\n indexAnalyzer: similarityIndexInfo.getAnalyzer()\n }).then((response) => response.data);\n }\n\n /**\n * Shows a modal dialog that displays the <code>query</code>.\n *\n * @param {string} query which will be displayed.\n */\n const showSparqlQuery = (query) => {\n if (query) {\n $uibModal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n }\n }\n\n const setDefaultQueries = (similarityIndexInfo) => {\n const similarityIndexType = similarityIndexInfo.getType();\n if (!$scope.isEditViewMode() && searchQueries) {\n similarityIndexInfo.setQuery(searchQueries[similarityIndexType], SimilarityQueryType.SEARCH);\n similarityIndexInfo.setQuery(searchQueries['analogical'], SimilarityQueryType.ANALOGICAL);\n }\n\n if (allSamples) {\n if (SimilarityIndexType.PREDICATION === similarityIndexType) {\n const allSampleElement = allSamples[SimilarityIndexType.PREDICATION]['predication'];\n similarityIndexInfo.setQuery(allSampleElement, SimilarityQueryType.DATA);\n } else {\n const allSampleElement1 = allSamples[SimilarityIndexType.TEXT]['literals'];\n similarityIndexInfo.setQuery(allSampleElement1, SimilarityQueryType.DATA);\n }\n }\n }\n\n /**\n * Initializes the similarity index info object with default values if view is opened for create or populates values from url if\n * view is opened for edit.\n *\n * @return {Promise<SimilarityIndexInfo>}\n */\n const getSimilarityIndex = () => {\n const similarityIndexInfo = new SimilarityIndexInfo();\n similarityIndexInfo.setName(getSimilarityIndexName());\n similarityIndexInfo.setType(getSimilarityType());\n similarityIndexInfo.setSelectedQueryType($scope.isEditViewMode() ? SimilarityQueryType.SEARCH : SimilarityQueryType.DATA);\n const options = $location.search().options;\n if (options) {\n similarityIndexInfo.setOptions(options);\n } else {\n similarityIndexInfo.setOptions(similarityIndexInfo.isTextType() ? textDefaultOptions : predDefaultOptions);\n }\n\n setDefaultQueries(similarityIndexInfo);\n const searchQuery = $location.search().searchQuery;\n if (searchQuery) {\n similarityIndexInfo.setQuery(searchQuery, SimilarityQueryType.SEARCH);\n }\n\n\n const selectQuery = $location.search().selectQuery;\n if (selectQuery) {\n similarityIndexInfo.setQuery(selectQuery, SimilarityQueryType.DATA);\n }\n\n const analogicalQuery = $location.search().analogicalQuery;\n if (analogicalQuery) {\n similarityIndexInfo.setQuery(analogicalQuery, SimilarityQueryType.ANALOGICAL);\n }\n\n if (similarityIndexInfo.isTextType()) {\n similarityIndexInfo.setStopList($location.search().stopList)\n similarityIndexInfo.setAnalyzer($location.search().analyzer);\n const isLiteralIndex = getAndRemoveOption(similarityIndexInfo.getSimilarityIndex(), '-literal_index');\n if (isLiteralIndex !== undefined) {\n similarityIndexInfo.setLiteralIndex(isLiteralIndex);\n }\n }\n\n if (similarityIndexInfo.isPredicationType()) {\n return SimilarityRestService.getIndexes()\n .then((response) => {\n const indexesNotInProgress = mapIndexesResponseToSimilarityIndex(response.data)\n .filter((similarityIndex) => similarityIndex.isTextLiteralType() && (similarityIndex.isBuiltStatus() || similarityIndex.isOutdatedStatus()))\n .map((similarityIndex) => similarityIndex.name);\n\n $scope.literalIndexes = ['no-index'].concat(indexesNotInProgress);\n\n if (similarityIndexInfo.getInputIndex() === undefined) {\n const desiredIdx = getAndRemoveOption(similarityIndexInfo.getSimilarityIndex(), '-input_index');\n if (desiredIdx !== undefined) {\n for (let j = 0; j < $scope.literalIndexes.length; j++) {\n if (desiredIdx === $scope.literalIndexes[j]) {\n similarityIndexInfo.setInputIndex($scope.literalIndexes[j]);\n }\n }\n }\n }\n if (similarityIndexInfo.getInputIndex() === undefined) {\n similarityIndexInfo.setInputIndex($scope.literalIndexes[0]);\n }\n return similarityIndexInfo;\n })\n .catch(function (error) {\n const msg = getError(error);\n toastr.error(msg, $translate.instant('similarity.could.not.get.indexes.error'));\n });\n }\n\n return Promise.resolve(similarityIndexInfo);\n }\n\n const updateYasguiComponent = (config) => {\n const defaultConfig = {\n endpoint: getQueryEndpoint,\n componentId: 'create-index',\n showEditorTabs: false,\n showToolbar: false,\n showResultTabs: false,\n showYasqeActionButtons: false,\n showQueryButton: false,\n downloadAsOn: false,\n showResultInfo: false,\n showYasqeResizer: false,\n pageSize: 100,\n prefixes: usedPrefixes,\n render: $scope.similarityIndexInfo.getSelectedYasguiRenderMode(),\n yasqeActionButtons: $scope.isEditViewMode() || !$scope.similarityIndexInfo.isDataQueryTypeSelected() ? DISABLE_YASQE_BUTTONS_CONFIGURATION : INFERRED_AND_SAME_AS_BUTTONS_CONFIGURATION,\n maxPersistentResponseSize: 0,\n yasqeMode: $scope.canWriteActiveRepo() ? YasqeMode.WRITE : YasqeMode.READ,\n }\n\n const yasguiConfig = {}\n angular.extend(yasguiConfig, defaultConfig, config);\n $scope.yasguiConfig = yasguiConfig;\n }\n\n const getQueryEndpoint = () => {\n return `repositories/${$repositories.getActiveRepository()}`;\n };\n\n /**\n * Call backend server to create a similarity index with data filled in <code>similarityIndexInfo</code>.\n *\n * @param {SimilarityIndex} similarityIndex - objects holds all needed data to create a similarity index.\n * @return {*}\n */\n const createIndex = (similarityIndex) => {\n if ($scope.literalIndexes !== undefined) {\n const inputIndex = similarityIndex.inputIndex;\n if (inputIndex !== $scope.literalIndexes[0]) {\n similarityIndex.options = similarityIndex.options + (similarityIndex.options === '' ? '' : ' ') + '-input_index' + ' ' + inputIndex;\n }\n }\n if (similarityIndex.isLiteralIndex === 'true') {\n similarityIndex.options = similarityIndex.options + (similarityIndex.options === '' ? '' : ' ') + '-literal_index' + ' true';\n similarityIndex.type = SimilarityIndexType.TEXT_LITERAL;\n }\n isDirty = false;\n return SimilarityRestService.createIndex('POST',\n similarityIndex.name,\n similarityIndex.options,\n similarityIndex.selectQuery,\n similarityIndex.searchQuery,\n similarityIndex.isPredicationType() ? similarityIndex.analogicalQuery : '',\n similarityIndex.stopList,\n similarityIndex.infer,\n similarityIndex.sameAs,\n similarityIndex.type,\n similarityIndex.analyzer)\n .then(() => {\n toastr.success($translate.instant('similarity.create.index.successfully'));\n return similarityIndex;\n })\n .catch(function (err) {\n const errorMessage = getError(err);\n toastr.error(errorMessage, $translate.instant('similarity.create.index.error'));\n console.log(errorMessage);\n return Promise.reject(new SimilarityIndexError('Could not create index.'));\n });\n }\n\n const notifySaveSuccess = async (isSearchQuery) => {\n await Notifications.showToastMessageWithDelay(isSearchQuery ? 'similarity.changed.search.query.msg' : 'similarity.changed.analogical.query.msg');\n $location.url('similarity');\n }\n\n const saveQuery = (similarityIndexInfo) => {\n const isSearchQuery = similarityIndexInfo.isSearchQueryTypeSelected();\n let data = {\n name: similarityIndexInfo.getSimilarityIndex().name,\n changedQuery: similarityIndexInfo.getQuery(),\n isSearchQuery\n };\n return SimilarityRestService.saveSearchQuery(JSON.stringify(data))\n .then(() => {\n isDirty = false;\n return isSearchQuery\n })\n }\n\n const goToSimilarityIndexesView = () => {\n $timeout(() =>\n $location.url('similarity')\n , 100);\n }\n\n const getOntotextYasgui = () => {\n return YasguiComponentDirectiveUtil.getOntotextYasguiElement('#query-editor');\n };\n\n /**\n * Fetches similarity index name from url parameters. Adds clone prefix if view mode is in clone mode.\n *\n * @return {string}\n */\n const getSimilarityIndexName = () => {\n const indexNameFromLocation = $location.search().name || '';\n return $scope.isCloneViewMode() ? `${$translate.instant('similarity.copy_of.prefix')}_${indexNameFromLocation}` : indexNameFromLocation;\n };\n\n /**\n * Fetches similarity index type from url parameters if any. Default value is {@see SimilarityIndexType.TEXT}.\n *\n * @return {*|string}\n */\n const getSimilarityType = () => {\n const indexType = $location.search().type;\n if (indexType === undefined || indexType.startsWith('text')) {\n return SimilarityIndexType.TEXT;\n } else {\n return indexType;\n }\n }\n\n // TODO simplify\n const getAndRemoveOption = (similarityIndex, key) => {\n const optArr = similarityIndex.options.split(' ');\n for (let i = 0; i < optArr.length; i++) {\n if (optArr[i] === key && i + 1 < optArr.length) {\n const value = optArr[i + 1];\n\n delete optArr[i];\n delete optArr[i + 1];\n similarityIndex.options = optArr.join(' ');\n\n return value;\n }\n }\n return undefined;\n }\n\n /**\n * Calculates the view mode. The view mode can be any value of {@see SimilarityViewMode}.\n * @return {string}\n */\n const getViewMode = () => {\n if ($location.search().name === undefined) {\n return SimilarityViewMode.CREATE;\n }\n\n const editSearchQuery = $location.search().editSearchQuery;\n if (editSearchQuery === undefined) {\n return SimilarityViewMode.CLONE;\n }\n\n // Cast is needed because when view is opened from another view the type value is boolean but if\n // page is refreshed the value is boolean (\"false\" for example).\n // TODO: Check why this happened.\n if (typeof editSearchQuery === 'string') {\n return editSearchQuery === 'false' ? SimilarityViewMode.CLONE : SimilarityViewMode.EDIT;\n }\n\n return editSearchQuery ? SimilarityViewMode.EDIT : SimilarityViewMode.CLONE;\n }\n\n\n // =========================\n // Validation functions\n // =========================\n /**\n * Validates all similarity index data and updates the error fields of the similarityIndexInfo object according to the validations.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<SimilarityIndexInfo>}\n */\n const validateSimilarityIndex = (similarityIndexInfo) => {\n return Promise.all([validateSimilarityIndexName(similarityIndexInfo)\n .then(validateSelectQuery)\n .then(validateSearchQuery)\n .then(validateAnalogicalQuery)\n .then(validateQueryType)\n .then(validateQuery)])\n .then(() => similarityIndexInfo);\n }\n\n /**\n * Checks if typed similarity index name already exist.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<SimilarityIndexInfo>}\n * @throws {SimilarityIndexError} if similarity already exist.\n */\n const validateSimilarityIndexNameExistence = (similarityIndexInfo) => {\n return SimilarityRestService.getIndexes()\n .then((response) => {\n if (response.data.some((index) => index.name === similarityIndexInfo.getName())) {\n similarityIndexInfo.isNameExist = true;\n return Promise.reject(new SimilarityIndexError('Similarity index name exists.'));\n }\n\n return similarityIndexInfo;\n });\n };\n\n /**\n * Check if similarity index name is filed and if is filled if it's value is correct.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<SimilarityIndexInfo>}\n * @throws {SimilarityIndexError} if similarity index name is empty, or it's name is not correct.\n */\n const validateSimilarityIndexName = (similarityIndexInfo) => {\n if (!similarityIndexInfo.getSimilarityIndex().name) {\n return Promise.reject(new SimilarityIndexError('Missing similarity name.'));\n }\n if (!similarityIndexInfo.isNameValid()) {\n return Promise.reject(new SimilarityIndexError('Invalid similarity name.'));\n }\n return Promise.resolve(similarityIndexInfo);\n }\n\n /**\n * Validates if similarity index select query exist.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<SimilarityIndexInfo>}\n * @throws {SimilarityIndexError} if select query is empty.\n */\n const validateSelectQuery = (similarityIndexInfo) => {\n if (!similarityIndexInfo.hasSelectQuery()) {\n return Promise.reject(new SimilarityIndexError('Missing select query.'));\n } else if (similarityIndexInfo.invalidSelectQuery) {\n return Promise.reject(new SimilarityIndexError('Invalid select query'));\n } else if (similarityIndexInfo.invalidSelectQueryType) {\n return Promise.reject(new SimilarityIndexError('Invalid select query type'));\n }\n return Promise.resolve(similarityIndexInfo);\n }\n\n /**\n * Validates if similarity index search query exist.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<SimilarityIndexInfo>}\n * @throws {SimilarityIndexError} if search query is empty.\n */\n const validateSearchQuery = (similarityIndexInfo) => {\n if (!similarityIndexInfo.hasSearchQuery()) {\n return Promise.reject(new SimilarityIndexError('Missing search query.'));\n } else if (similarityIndexInfo.invalidSearchQuery) {\n return Promise.reject(new SimilarityIndexError('Invalid search query'));\n } else if (similarityIndexInfo.invalidSearchQueryType) {\n return Promise.reject(new SimilarityIndexError('Invalid search query type'));\n }\n return Promise.resolve(similarityIndexInfo);\n }\n\n /**\n * Validates if analogical index search query exist.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<SimilarityIndexInfo>}\n * @throws {SimilarityIndexError} if analogical query is empty.\n */\n const validateAnalogicalQuery = (similarityIndexInfo) => {\n if (similarityIndexInfo.isPredicationType() && !similarityIndexInfo.hasAnalogicalQuery()) {\n return Promise.reject(new SimilarityIndexError('Missing analogical query.'));\n } else if (similarityIndexInfo.invalidAnalogicalQuery) {\n return Promise.reject(new SimilarityIndexError('Invalid analogical query'));\n } else if (similarityIndexInfo.invalidAnalogicalQueryType) {\n return Promise.reject(new SimilarityIndexError('Invalid analogical query type'));\n }\n return Promise.resolve(similarityIndexInfo);\n }\n\n /**\n * Checks if query mode is valid. The mode have to be \"SELECT\".\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<SimilarityIndexInfo>}\n * @throws {SimilarityIndexError} if query type is not ot type \"SELECT\".\n */\n const validateQueryType = (similarityIndexInfo, similarityQueryType = undefined) => {\n return getOntotextYasgui().getQueryType()\n .then((queryType) => {\n if (QueryType.SELECT !== queryType) {\n similarityIndexInfo.markInvalidQueryType(similarityQueryType);\n return Promise.reject(new SimilarityIndexError('Query type is not valid.'));\n } else {\n similarityIndexInfo.markInvalidQueryType(similarityQueryType, false);\n }\n return similarityIndexInfo;\n });\n };\n\n /**\n * Checks if query is valid.\n *\n * @param {SimilarityIndexInfo} similarityIndexInfo - holds similarity index data (queries, sameAs, infer ...) and information about errors if any.\n * @return {Promise<SimilarityIndexInfo>}\n * @throws {SimilarityIndexError} if query is not valid.\n */\n const validateQuery = (similarityIndexInfo, similarityQueryType = undefined) => {\n return getOntotextYasgui().isQueryValid()\n .then((valid) => {\n if (!valid) {\n similarityIndexInfo.markInvalidQuery(similarityQueryType);\n return Promise.reject(new SimilarityIndexError('Query is not valid.'));\n } else {\n similarityIndexInfo.markInvalidQuery(similarityQueryType, false);\n }\n return similarityIndexInfo;\n });\n };\n\n const openConfirmDialog = (title, message, onConfirm, onCancel) => {\n ModalService.openSimpleModal({\n title,\n message,\n warning: true\n }).result.then(function () {\n if (angular.isFunction(onConfirm)) {\n onConfirm();\n }\n }, function () {\n if (angular.isFunction(onCancel)) {\n onCancel();\n }\n });\n };\n\n // =========================\n // Subscriptions handlers\n // =========================\n const repositoryWillChangeHandler = () => {\n return new Promise(function (resolve) {\n\n if ($scope.isCreateViewMode() || $scope.isCloneViewMode()) {\n resolve(true);\n return;\n }\n\n const onConfirm = () => {\n isDirty = false;\n resolve(true);\n };\n\n if (isDirty) {\n const onCancel = () => {\n resolve(false);\n };\n const title = $translate.instant('common.confirm');\n const message = $translate.instant('similarity.warning.unsaved.changes');\n openConfirmDialog(title, message, onConfirm, onCancel);\n } else {\n onConfirm();\n }\n });\n };\n\n const repositoryChangedHandler = () => {\n if (initialRepoChangeTrigger) {\n initialRepoChangeTrigger = false;\n } else {\n goToSimilarityIndexesView();\n }\n };\n\n const activeRepositoryHandler = () => {\n // when repository is changed we have to switch yasgui back to editor mode\n if ($scope.isYasrShown() && $scope.similarityIndexInfo.isDataQueryTypeSelected()) {\n $scope.showEditor();\n }\n $scope.canEditActiveRepo = $scope.canWriteActiveRepo();\n const config = {...$scope.yasguiConfig, yasqeMode: $scope.canWriteActiveRepo()};\n updateYasguiComponent(config);\n };\n\n const locationChangedHandler = (event, newPath) => {\n if (isDirty) {\n event.preventDefault();\n const title = $translate.instant('common.confirm');\n const message = $translate.instant('similarity.warning.unsaved.changes');\n const onConfirm = () => {\n removeAllListeners();\n const baseLen = $location.absUrl().length - $location.url().length;\n const path = newPath.substring(baseLen);\n $location.path(path);\n };\n openConfirmDialog(title, message, onConfirm);\n } else {\n removeAllListeners();\n }\n };\n\n const beforeunloadHandler = (event) => {\n if (isDirty) {\n event.returnValue = true;\n }\n };\n\n const removeAllListeners = () => {\n window.removeEventListener('beforeunload', beforeunloadHandler);\n subscriptions.forEach((subscription) => subscription());\n };\n\n // =========================\n // Subscriptions\n // =========================\n const subscriptions = [];\n\n const repositoryContextService = ServiceProvider.get(RepositoryContextService);\n const repositoryChangeSubscription = repositoryContextService.onSelectedRepositoryChanged(repositoryChangedHandler, repositoryWillChangeHandler)\n\n subscriptions.push(repositoryChangeSubscription);\n subscriptions.push($scope.$on('$locationChangeStart', locationChangedHandler));\n subscriptions.push($scope.$on('$destroy', removeAllListeners));\n // Prevent go out of the current page? check\n window.addEventListener('beforeunload', beforeunloadHandler);\n\n viewMode = getViewMode();\n\n // Wait until the active repository object is set, otherwise \"canWriteActiveRepo()\" may return a wrong result and the \"ontotext-yasgui\"\n // readOnly configuration may be incorrect.\n const repoIsInitialized = $scope.$watch(function () {\n return $scope.getActiveRepositoryObject();\n }, function (activeRepo) {\n if (activeRepo) {\n $scope.loadingControllerResources = true;\n Promise.all([SimilarityRestService.getSearchQueries(), SimilarityRestService.getSamples(), $repositories.getPrefixes(activeRepo.id)])\n .then(([searchQueriesResponses, samplesResponse, usedPrefixesResponse]) => {\n $scope.canEditActiveRepo = $scope.canWriteActiveRepo();\n searchQueries = searchQueriesResponses ? searchQueriesResponses.data : [];\n allSamples = samplesResponse ? samplesResponse.data : [];\n usedPrefixes = usedPrefixesResponse;\n init();\n }).catch((error) => {\n console.log(error)\n $scope.repositoryError = getError(error);\n }).finally(() => {\n subscriptions.push($scope.$on('repositoryIsSet', activeRepositoryHandler));\n repoIsInitialized();\n $scope.loadingControllerResources = false;\n });\n }\n });\n}\n","export const SimilarityIndexStatus = {\n 'CREATING': 'CREATING',\n 'BUILDING': 'BUILDING',\n 'BUILT': 'BUILT',\n 'REBUILDING': 'REBUILDING',\n 'OUTDATED': 'OUTDATED',\n 'INTERRUPTED': 'INTERRUPTED',\n 'OBSOLETE': 'OBSOLETE',\n 'FAILED': 'FAILED',\n\n 'isCreatingStatus': (status) => {\n return SimilarityIndexStatus.CREATING === status;\n },\n\n 'isBuildingStatus': (status) => {\n return SimilarityIndexStatus.BUILDING === status;\n },\n\n 'isBuiltStatus': (status) => {\n return SimilarityIndexStatus.BUILT === status;\n },\n\n 'isRebuildingStatus': (status) => {\n return SimilarityIndexStatus.REBUILDING === status;\n },\n\n 'isOutdatedStatus': (status) => {\n return SimilarityIndexStatus.OUTDATED === status;\n },\n\n 'isInterruptedStatus': (status) => {\n return SimilarityIndexStatus.INTERRUPTED === status;\n },\n\n 'isObsoleteStatus': (status) => {\n return SimilarityIndexStatus.OBSOLETE === status;\n },\n\n 'isFailedStatus': (status) => {\n return SimilarityIndexStatus.FAILED === status;\n }\n};\n","import {SimilarityIndexType} from \"./similarity-index-type\";\nimport {SimilarityIndexStatus} from \"./similarity-index-status\";\n\nexport class SimilarityIndex {\n constructor() {\n this.analyzer = '';\n this.infer = true;\n this.options = '';\n this.sameAs = true;\n this.searchQuery = '';\n this.selectQuery = '';\n this.stopList = undefined;\n this.name = '';\n\n /**\n * The similarity index type.\n *\n * @type {string}\n */\n this.type = SimilarityIndexType.TEXT;\n\n /**\n * The similarity index type.\n *\n * @type {SimilarityIndexStatus}\n */\n this.status = undefined;\n\n this.analogicalQuery = undefined;\n this.inputIndex = undefined;\n this.isLiteralIndex = '';\n }\n\n isTextType() {\n return SimilarityIndexType.isTextType(this.type);\n }\n\n isTextLiteralType() {\n return SimilarityIndexType.isTextLiteralType(this.type);\n }\n\n isPredicationType() {\n return SimilarityIndexType.isPredicationType(this.type);\n }\n\n isCreatingStatus() {\n return SimilarityIndexStatus.isCreatingStatus(this.status);\n }\n\n isBuildingStatus() {\n return SimilarityIndexStatus.isBuildingStatus(this.status);\n }\n\n isBuiltStatus() {\n return SimilarityIndexStatus.isBuiltStatus(this.status);\n }\n\n isRebuildingStatus() {\n return SimilarityIndexStatus.isRebuildingStatus(this.status);\n }\n\n isOutdatedStatus() {\n return SimilarityIndexStatus.isOutdatedStatus(this.status);\n }\n\n isInterruptedStatus() {\n return SimilarityIndexStatus.isInterruptedStatus(this.status);\n }\n\n isObsoleteStatus() {\n return SimilarityIndexStatus.isObsoleteStatus(this.status);\n }\n\n isFailedStatus() {\n return SimilarityIndexStatus.isFailedStatus(this.status);\n }\n}\n","export const RenderingMode = {\n YASGUI: 'mode-yasgui',\n YASQE: 'mode-yasqe',\n YASR: 'mode-yasr'\n};\n","export const SimilarityViewMode = {\n 'CREATE': 'CREATE',\n 'EDIT': 'EDIT',\n 'CLONE': 'CLONE'\n};\n","import {SimilarityIndex} from \"../../models/similarity/similarity-index\";\n\n/**\n * Maps the response data to SimilarityIndex objects.\n * @param {*} responseData\n * @return {SimilarityIndex[]}\n */\nexport const mapIndexesResponseToSimilarityIndex = (responseData) => {\n return responseData.map((index) => {\n const similarityIndex = new SimilarityIndex();\n similarityIndex.type = index.type;\n similarityIndex.stopList = index.stopList;\n similarityIndex.status = index.status;\n similarityIndex.selectQuery = index.selectQuery;\n similarityIndex.searchQuery = index.searchQuery;\n similarityIndex.sameAs = index.sameAs;\n similarityIndex.options = index.options;\n similarityIndex.name = index.name;\n similarityIndex.infer = index.infer;\n similarityIndex.analyzer = index.analyzer;\n similarityIndex.analogicalQuery = index.analogicalQuery;\n return similarityIndex;\n });\n};\n","export class SimilarityIndexError extends Error {\n\n}\n","import {SimilarityIndex} from \"./similarity-index\";\nimport {SimilarityQueryType} from \"./similarity-query-type\";\nimport {RenderingMode} from \"../ontotext-yasgui/rendering-mode\";\n\nconst filenamePattern = new RegExp('^[a-zA-Z0-9-_]+$');\n\nexport class SimilarityIndexInfo {\n constructor() {\n this.similarityIndex = new SimilarityIndex();\n this.isNameExist = false;\n this.invalidSelectQueryType = false;\n this.invalidSelectQuery = false;\n this.invalidSearchQueryType = false;\n this.invalidSearchQuery = false;\n this.invalidAnalogicalQueryType = false;\n this.invalidAnalogicalQuery = false;\n /**\n * Holds the type of the selected query to be displayed, which determines the active tab.\n *\n * @type {string} - any of {@SimilarityQueryType} values.\n */\n this.selectedQueryType = SimilarityQueryType.DATA;\n this.selectedYasguiRenderMode = RenderingMode.YASQE;\n }\n\n /**\n * Sets the <code>query</code> as query of type <code>similarityQueryType</code>. If <code>similarityQueryType</code> not passed then the\n * currently selected type will be used. {@see SimilarityIndexInfo#selectedQueryType}.\n *\n * @param {string} query - the query to be set.\n * @param {string | undefined} similarityQueryType - the new value of similarity index type. The value have to be one of {@link SimilarityQueryType}.\n */\n setQuery(query, similarityQueryType = undefined) {\n const queryType = similarityQueryType || this.selectedQueryType;\n if (SimilarityQueryType.DATA === queryType) {\n this.similarityIndex.selectQuery = query;\n return;\n }\n\n if (SimilarityQueryType.SEARCH === queryType) {\n this.similarityIndex.searchQuery = query;\n return;\n }\n\n if (SimilarityQueryType.ANALOGICAL === queryType) {\n this.similarityIndex.analogicalQuery = query;\n }\n }\n\n /**\n * Fetches the query depends on <code>similarityQueryType</code>. If <code>similarityQueryType</code> not passed then the\n * currently selected type will be used. {@see SimilarityIndexInfo#selectedQueryType}.\n *\n * @param {string | undefined} similarityQueryType - the type of query that have to be returned. The value have to be one of {@link SimilarityQueryType}.\n * @return {string} the requested query.\n */\n getQuery(similarityQueryType = undefined) {\n const queryType = similarityQueryType || this.selectedQueryType;\n switch (queryType) {\n case SimilarityQueryType.DATA:\n return this.similarityIndex.selectQuery;\n case SimilarityQueryType.SEARCH:\n return this.similarityIndex.searchQuery;\n case SimilarityQueryType.ANALOGICAL:\n return this.similarityIndex.analogicalQuery;\n }\n }\n\n /**\n * Marks a SPARQL query as valid/invalid depends on the <code>isValid</code> value. If <code>similarityQueryType</code> is not passed,\n * then the currently selected type will be used.\n *\n * @param {string} similarityQueryType - the type of SPARQL query, that have to be marked as valid/invalid. The value must be one of {@see SimilarityQueryType} values.\n * @param {boolean} isInvalid - if true the SPARQL query of type <code>similarityQueryType</code> will be marked as invalid, If false will be marked as valid.\n */\n markInvalidQuery(similarityQueryType = undefined, isInvalid = true) {\n const queryType = similarityQueryType || this.selectedQueryType;\n if (SimilarityQueryType.DATA === queryType) {\n this.invalidSelectQuery = isInvalid;\n return;\n }\n\n if (SimilarityQueryType.SEARCH === queryType) {\n this.invalidSearchQuery = isInvalid;\n return;\n }\n if (SimilarityQueryType.ANALOGICAL === queryType) {\n this.invalidAnalogicalQuery = isInvalid;\n }\n }\n\n /**\n * Marks a SPARQL query type as valid/invalid depends on the <code>isValid</code> value. If <code>similarityQueryType</code> is not passed,\n * then the currently selected type will be used.\n *\n * @param {string} similarityQueryType - the type of similarity query, that have to be marked as valid/invalid query type. The value must be one of {@see SimilarityQueryType} values.\n * @param {boolean} isInvalid - if true the SPARQL query of type <code>similarityQueryType</code> will be marked as invalid SPARQL query type, If false will be marked as valid.\n */\n markInvalidQueryType(similarityQueryType = undefined, isInvalid = true) {\n const queryType = similarityQueryType || this.selectedQueryType;\n if (SimilarityQueryType.DATA === queryType) {\n this.invalidSelectQueryType = isInvalid;\n return;\n }\n\n if (SimilarityQueryType.SEARCH === queryType) {\n this.invalidSearchQueryType = isInvalid;\n return;\n }\n if (SimilarityQueryType.ANALOGICAL === queryType) {\n this.invalidAnalogicalQueryType = isInvalid;\n }\n }\n\n setSelectedQueryType(queryType) {\n this.selectedQueryType = queryType;\n }\n\n getSelectedQueryType() {\n return this.selectedQueryType;\n }\n\n setSelectedYasguiRenderMode(renderMode) {\n this.selectedYasguiRenderMode = renderMode;\n }\n\n getSelectedYasguiRenderMode() {\n return this.selectedYasguiRenderMode;\n }\n\n isDataQueryTypeSelected() {\n return SimilarityQueryType.DATA === this.selectedQueryType;\n }\n\n isSearchQueryTypeSelected() {\n return SimilarityQueryType.SEARCH === this.selectedQueryType;\n }\n\n isAnalogicalQueryTypeSelected() {\n return SimilarityQueryType.ANALOGICAL === this.selectedQueryType;\n }\n\n isTextType() {\n return this.similarityIndex.isTextType();\n }\n\n isPredicationType() {\n return this.similarityIndex.isPredicationType();\n }\n\n isTextLiteralType() {\n return this.similarityIndex.isTextLiteralType();\n }\n\n hasName() {\n return !!this.similarityIndex.name;\n }\n\n isNameValid() {\n return filenamePattern.test(this.similarityIndex.name);\n }\n\n hasSelectQuery() {\n return !!this.similarityIndex.selectQuery;\n }\n\n hasSearchQuery() {\n return !!this.similarityIndex.searchQuery;\n }\n\n hasAnalogicalQuery() {\n return !!this.similarityIndex.analogicalQuery;\n }\n\n isYasqeRenderMode() {\n return RenderingMode.YASQE === this.getSelectedYasguiRenderMode();\n }\n\n isYasrRenderMode() {\n return RenderingMode.YASR === this.getSelectedYasguiRenderMode();\n }\n\n ///////////////////////////////////////\n // Similarity index getters and setters\n ///////////////////////////////////////\n\n getName() {\n return this.similarityIndex.name;\n }\n\n setName(name) {\n this.similarityIndex.name = name;\n }\n\n setInputIndex(inputIndex) {\n this.similarityIndex.inputIndex = inputIndex;\n }\n\n getInputIndex() {\n return this.similarityIndex.inputIndex;\n }\n\n setLiteralIndex(literalIndex = false) {\n this.similarityIndex.isLiteralIndex = literalIndex;\n }\n\n getSimilarityIndex() {\n return this.similarityIndex;\n }\n\n setStopList(stopList) {\n this.similarityIndex.stopList = stopList;\n }\n\n getStopList() {\n return this.similarityIndex.stopList;\n }\n\n setAnalyzer(analyzer = 'org.apache.lucene.analysis.en.EnglishAnalyzer') {\n this.similarityIndex.analyzer = analyzer;\n }\n\n getAnalyzer() {\n return this.similarityIndex.analyzer;\n }\n\n setType(type) {\n this.similarityIndex.type = type;\n }\n\n getType() {\n return this.similarityIndex.type;\n }\n\n setOptions(options) {\n this.similarityIndex.options = options;\n }\n\n getOptions() {\n return this.similarityIndex.options;\n }\n\n getInference() {\n return this.similarityIndex.infer;\n }\n\n getSameAs() {\n return this.similarityIndex.sameAs;\n }\n}\n","export const SimilarityIndexType = {\n 'TEXT': 'text',\n 'TEXT_LITERAL': 'textLiteral',\n 'PREDICATION': 'predication',\n\n 'isTextType': (type) => {\n return SimilarityIndexType.TEXT === type;\n },\n\n 'isTextLiteralType': (type) => {\n return SimilarityIndexType.TEXT_LITERAL === type;\n },\n\n 'isPredicationType': (type) => {\n return SimilarityIndexType.PREDICATION === type;\n }\n};\n","angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr', '$translate'];\n\nfunction Notifications(toastr, $translate) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success($translate.instant(message));\n setTimeout(r, 300);\n });\n }\n}\n","export const YasqeMode = {\n /**\n * The query can be edited.\n */\n WRITE: 'WRITE',\n\n /**\n * The editor is read-only, but the query can be copied.\n */\n READ: 'READ',\n\n /**\n * The editor is read-only and the query can't be copied.\n */\n PROTECTED: 'PROTECTED'\n};\n","export const SimilarityQueryType = {\n 'DATA': 'DATA',\n 'SEARCH': 'SEARCH',\n 'ANALOGICAL': 'ANALOGICAL'\n};\n"],"names":["CreateSimilarityIdxCtrl","$scope","toastr","$uibModal","$timeout","SimilarityRestService","SparqlRestService","$location","productInfo","Notifications","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys","$translate","$repositories","EventEmitterService","ModalService","SimilarityQueryType","SimilarityIndexType","similarityIndexInfo","undefined","samples","yasguiConfig","saveOrUpdateExecuted","loadingControllerResources","helpHidden","get","HIDE_SIMILARITY_HELP","savingIndex","searchQueries","allSamples","usedPrefixes","isDirty","viewMode","SimilarityViewMode","CREATE","initialRepoChangeTrigger","changeSimilarityIndexType","similarityIndexType","similarityQueryType","DATA","setType","isPredicationType","PREDICATION","TEXT","changeQueryTab","then","setDefaultQueries","setEditorQuery","getQuery","oldSimilarityQueryType","getSelectedQueryType","Promise","resolve","setSelectedQueryType","updateQueryFromEditor","validateQuery","validateQueryType","catch","error","SimilarityIndexError","console","log","finally","ontotextYasgui","getOntotextYasgui","setSelectedYasguiRenderMode","RenderingMode","YASQE","changeRenderMode","getSelectedYasguiRenderMode","isDataQueryTypeSelected","showYasqeActionButton","YasqeButtonName","INFER_STATEMENTS","EXPANDS_RESULTS","hideYasqeActionButton","setQuery","createSimilarityIndex","validateSimilarityIndex","validateSimilarityIndexNameExistence","createIndex","getSimilarityIndex","goToSimilarityIndexesView","getError","instant","viewQuery","fetchSparqlQuery","showSparqlQuery","preview","YASR","query","saveSearchQuery","validateSimilarityIndexName","validateSearchQuery","validateAnalogicalQuery","saveQuery","isSearchQuery","showToastMessageWithDelay","url","markInvalidQuery","markInvalidQueryType","updateYasguiComponent","initialQuery","similarityIndexNameChanged","setDirty","isNameExist","queryChanged","isCloneViewMode","CLONE","isEditViewMode","EDIT","isCreateViewMode","isYasqeShown","isYasqeRenderMode","isYasrShown","isYasrRenderMode","showEditor","abortQuery","toggleHelp","value","set","getCloseBtnMsg","operationType","editSearchQuery","operation","hasQueryError","hasSelectQueryError","SEARCH","hasSearchQueryError","ANALOGICAL","hasAnalogicalQueryError","hasSelectQuery","invalidSelectQuery","invalidSelectQueryType","hasSearchQuery","invalidSearchQuery","invalidSearchQueryType","hasAnalogicalQuery","invalidAnalogicalQuery","invalidAnalogicalQueryType","getQueryErrorMessage","isEmpty","invalidQueryType","invalidQuery","labelParams","queryType","indexName","getName","indexOptions","getOptions","indexStopList","getStopList","queryInference","getInference","querySameAs","getSameAs","viewType","indexAnalyzer","getAnalyzer","response","data","open","templateUrl","controller","getType","allSampleElement","allSampleElement1","config","defaultConfig","endpoint","getQueryEndpoint","componentId","showEditorTabs","showToolbar","showResultTabs","showYasqeActionButtons","showQueryButton","downloadAsOn","showResultInfo","showYasqeResizer","pageSize","prefixes","render","yasqeActionButtons","DISABLE_YASQE_BUTTONS_CONFIGURATION","INFERRED_AND_SAME_AS_BUTTONS_CONFIGURATION","maxPersistentResponseSize","yasqeMode","canWriteActiveRepo","YasqeMode","WRITE","READ","angular","extend","getActiveRepository","similarityIndex","literalIndexes","inputIndex","options","isLiteralIndex","type","TEXT_LITERAL","name","selectQuery","searchQuery","analogicalQuery","stopList","infer","sameAs","analyzer","success","err","errorMessage","reject","isSearchQueryTypeSelected","changedQuery","JSON","stringify","YasguiComponentDirectiveUtil","getOntotextYasguiElement","getSimilarityIndexName","indexNameFromLocation","search","getSimilarityType","indexType","startsWith","getAndRemoveOption","key","optArr","split","i","length","join","all","validateSelectQuery","getIndexes","some","index","isNameValid","getQueryType","QueryType","SELECT","isQueryValid","valid","openConfirmDialog","title","message","onConfirm","onCancel","openSimpleModal","warning","result","isFunction","activeRepositoryHandler","canEditActiveRepo","beforeunloadHandler","event","returnValue","removeAllListeners","window","removeEventListener","subscriptions","forEach","subscription","repositoryChangeSubscription","ServiceProvider","RepositoryContextService","onSelectedRepositoryChanged","repositoryChangedHandler","repositoryWillChangeHandler","push","$on","locationChangedHandler","newPath","preventDefault","baseLen","absUrl","path","substring","addEventListener","getViewMode","repoIsInitialized","$watch","getActiveRepositoryObject","activeRepo","getSearchQueries","getSamples","getPrefixes","id","searchQueriesResponses","samplesResponse","usedPrefixesResponse","SimilarityIndexInfo","setName","setOptions","isTextType","setStopList","setAnalyzer","setLiteralIndex","indexesNotInProgress","mapIndexesResponseToSimilarityIndex","filter","isTextLiteralType","isBuiltStatus","isOutdatedStatus","map","concat","getInputIndex","desiredIdx","j","setInputIndex","msg","initialQueryTab","repositoryError","module","$inject","SimilarityIndexStatus","status","CREATING","BUILDING","BUILT","REBUILDING","OUTDATED","INTERRUPTED","OBSOLETE","FAILED","SimilarityIndex","constructor","this","isCreatingStatus","isBuildingStatus","isRebuildingStatus","isInterruptedStatus","isObsoleteStatus","isFailedStatus","YASGUI","responseData","Error","filenamePattern","RegExp","selectedQueryType","selectedYasguiRenderMode","isInvalid","renderMode","isAnalogicalQueryTypeSelected","hasName","test","literalIndex","r","setTimeout","factory","PROTECTED"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"66014.5e25419235a79d858595.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontotext-yasgui/rendering-mode.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/utils/notifications.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/jdbc/jdbc-configuration-info.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/jdbc/controllers.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontotext-yasgui/yasqe-mode.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/jdbc/jdbc-column.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/jdbc/jdbc-configuration-error.js"],"sourcesContent":["export const RenderingMode = {\n YASGUI: 'mode-yasgui',\n YASQE: 'mode-yasqe',\n YASR: 'mode-yasr'\n};\n","angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr', '$translate'];\n\nfunction Notifications(toastr, $translate) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success($translate.instant(message));\n setTimeout(r, 300);\n });\n }\n}\n","export const DEFAULT_SPARQL_QUERY = 'PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\\n' +\n '\\n' +\n '# Selects two variables to use as columns\\n' +\n 'SELECT ?id ?label {\\n' +\n ' ?id rdfs:label ?label\\n' +\n ' # The following placeholder must be present in the query\\n' +\n ' #!filter\\n' +\n '}';\n\nexport class JdbcConfigurationInfo {\n constructor(query = DEFAULT_SPARQL_QUERY, isNewJdbcConfiguration = true, jdbcConfigurationName = undefined) {\n this.query = query;\n this.jdbcConfigurationName = jdbcConfigurationName;\n this.isNewJdbcConfiguration = isNewJdbcConfiguration;\n this.isValidQuery = true;\n this.isValidQueryType = true;\n this.hasUndefinedColumns = false;\n this.isColumnsEmpty = false;\n this.columns = [];\n }\n}\n","import 'angular/core/services/repositories.service';\nimport 'angular/rest/monitoring.rest.service';\nimport 'angular/utils/notifications';\nimport 'angular/core/services';\nimport 'angular/core/services/event-emitter-service';\nimport {JdbcConfigurationInfo} from \"../models/jdbc/jdbc-configuration-info\";\nimport {YasqeMode} from \"../models/ontotext-yasgui/yasqe-mode\";\nimport {JdbcConfigurationError} from \"../models/jdbc/jdbc-configuration-error\";\nimport {RenderingMode} from \"../models/ontotext-yasgui/rendering-mode\";\nimport {toJDBCColumns, updateColumn} from \"../models/jdbc/jdbc-column\";\nimport {DISABLE_YASQE_BUTTONS_CONFIGURATION, YasguiComponentDirectiveUtil} from \"../core/directives/yasgui-component/yasgui-component-directive.util\";\nimport {decodeHTML} from \"../../../app\";\nimport {RepositoryContextService, ServiceProvider} from \"@ontotext/workbench-api\";\n\nconst modules = [\n 'ui.bootstrap',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.rest.monitoring.service',\n 'toastr',\n 'graphdb.framework.utils.event-emitter-service'\n];\n\nangular.module('graphdb.framework.jdbc.controllers', modules, [\n 'graphdb.framework.utils.notifications'\n])\n .controller('JdbcListCtrl', JdbcListCtrl)\n .controller('JdbcCreateCtrl', JdbcCreateCtrl);\n\nJdbcListCtrl.$inject = ['$scope', '$repositories', 'JdbcRestService', 'toastr', 'ModalService', '$translate'];\n\nfunction JdbcListCtrl($scope, $repositories, JdbcRestService, toastr, ModalService, $translate) {\n\n $scope.getSqlConfigurations = function () {\n // Only do this if there is an active repo that isn't an Ontop or FedX repo.\n // Ontop and FedX repos don't support JDBC.\n if ($repositories.getActiveRepository()\n && !$repositories.isActiveRepoOntopType()\n && !$repositories.isActiveRepoFedXType()) {\n JdbcRestService.getJdbcConfigurations().success(function (data) {\n $scope.jdbcConfigurations = data;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('jdbc.not.get.SQL.msg'));\n });\n } else {\n $scope.jdbcConfigurations = [];\n }\n };\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n $scope.getSqlConfigurations();\n });\n\n $scope.deleteConfiguration = function (name) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: $translate.instant('jdbc.delete.sql.table.warning.msg', {name: name}),\n warning: true\n }).result\n .then(function () {\n JdbcRestService.deleteJdbcConfiguration(name).success(function () {\n $scope.getSqlConfigurations();\n }).error(function (e) {\n toastr.error(getError(e), $translate.instant('jdbc.not.delete.sql.msg'));\n });\n });\n };\n}\n\nJdbcCreateCtrl.$inject = [\n '$q',\n '$scope',\n '$rootScope',\n '$location',\n 'toastr',\n '$repositories',\n '$window',\n '$timeout',\n '$interval',\n 'JdbcRestService',\n 'RDF4JRepositoriesRestService',\n 'SparqlRestService',\n 'ModalService',\n '$translate',\n '$languageService',\n 'EventEmitterService'];\n\nfunction JdbcCreateCtrl(\n $q,\n $scope,\n $rootScope,\n $location,\n toastr,\n $repositories,\n $window,\n $timeout,\n $interval,\n JdbcRestService,\n RDF4JRepositoriesRestService,\n SparqlRestService,\n ModalService,\n $translate,\n $languageService,\n EventEmitterService) {\n\n $scope.emptySparqlResponse = \"{\\\"head\\\": {\\\"vars\\\": []},\\\"results\\\": {\\\"bindings\\\": []}}\";\n $scope.getSuggestionSqlType = '';\n $scope.sqlTypes = [];\n $scope.activeTab = 1;\n $scope.jdbcConfigurationInfo = new JdbcConfigurationInfo();\n $scope.jdbcConfigurationInfo.jdbcConfigurationName = $location.search().name || '';\n $scope.saveOrUpdateExecuted = false;\n $scope.jdbcConfigurationInfo.isNewJdbcConfiguration = !$scope.jdbcConfigurationInfo.jdbcConfigurationName;\n $scope.language = $languageService.getLanguage();\n $scope.isDirty = false;\n $scope.prefixes = [];\n $scope.loadingControllerResources = false;\n $scope.isQueryRunning = false;\n $scope.canEditActiveRepo = false;\n\n // This flag is used to prevent loading of the yasgui on consecutive repository change events after\n // the first.\n let initialRepoInitialization = true;\n\n // This flag is used to prevent triggering the repository change event listener on initial subscription.\n let initialRepoChangeTrigger = true;\n\n // =========================\n // Public functions\n // =========================\n\n $scope.saveJdbcConfiguration = () => {\n $scope.saveOrUpdateExecuted = true;\n\n if (!$scope.jdbcConfigurationInfo.jdbcConfigurationName) {\n return;\n }\n\n if (!$scope.isDirty) {\n goToJdbcView();\n return;\n }\n\n const saveOrUpdate = $scope.jdbcConfigurationInfo.isNewJdbcConfiguration ? createConfiguration : updateConfiguration;\n\n validateQueryType($scope.jdbcConfigurationInfo)\n .then(validateQuery)\n .then(validateColumns)\n .then(updateJdbcConfigurationQuery)\n .then(saveOrUpdate)\n .catch((error) => {\n if (!(error instanceof JdbcConfigurationError)) {\n const msg = getError(error);\n toastr.error(msg, $translate.instant('jdbc.not.saved.configuration'));\n }\n });\n };\n\n $scope.getPreview = () => {\n $scope.activeTab = 1;\n\n $scope.isQueryRunning = true;\n validateQueryType($scope.jdbcConfigurationInfo)\n .then(validateQuery)\n .then(validateColumns)\n .then(updateJdbcConfigurationQuery)\n .then((jdbcConfigurationInfo) => {\n updateYasguiConfiguration({render: RenderingMode.YASQE, initialQuery: jdbcConfigurationInfo.query});\n return jdbcConfigurationInfo;\n })\n .then(getSqlTablePreview)\n .then(([tablePreviewResults, jdbcConfigurationInfo]) => {\n const hasResult = tablePreviewResults && tablePreviewResults.results.bindings && tablePreviewResults.results.bindings.length > 0;\n let render = RenderingMode.YASGUI;\n if (!hasResult) {\n render = RenderingMode.YASQE;\n toastr.info($translate.instant('jdbc.table.definition'), $translate.instant('jdbc.preview.sql'));\n }\n updateYasguiConfiguration({\n render,\n sparqlResponse: tablePreviewResults,\n initialQuery: jdbcConfigurationInfo.query\n });\n })\n .catch((error) => {\n if (!(error instanceof JdbcConfigurationError)) {\n toastr.error(getError(error, 0, 100), $translate.instant('jdbc.not.show.preview'));\n } else {\n if (error.jdbcConfigurationInfo && (error.jdbcConfigurationInfo.isColumnsEmpty || error.jdbcConfigurationInfo.hasUndefinedColumns)) {\n getSuggestions();\n $scope.activeTab = 2;\n }\n }\n })\n .finally(() => {\n $scope.isQueryRunning = false;\n });\n };\n\n $scope.setActiveTab = (tabIndex) => {\n $scope.activeTab = tabIndex;\n const columns = $scope.jdbcConfigurationInfo.columns;\n if ($scope.activeTab === 2 && (!columns || columns.length === 0)) {\n validateQueryType($scope.jdbcConfigurationInfo)\n .then(validateQuery)\n .then(() => {\n $scope.getColumnsSuggestions();\n });\n }\n };\n\n $scope.setDirty = () => {\n $scope.isDirty = true;\n };\n\n $scope.getTypeLabel = (type) => {\n switch (type) {\n case 'iri':\n return 'VARCHAR: IRI';\n case 'string':\n return 'VARCHAR: String';\n default:\n return type.indexOf(' ') > 0 ? type : type.toUpperCase();\n }\n };\n\n $scope.selectColumnType = (columnName, prevColumnType) => {\n $scope.setDirty();\n const column = $scope.jdbcConfigurationInfo.columns.find((column) => column.column_name === columnName);\n\n if (column.column_type === $scope.getSuggestionSqlType) {\n updateJdbcConfigurationQuery($scope.jdbcConfigurationInfo)\n .then((jdbcConfigurationInfo) => JdbcRestService.getColumnsTypeSuggestion(jdbcConfigurationInfo.query, [columnName]))\n .then((response) => response.data)\n .then((columnSuggestion) => {\n updateColumn(column, columnSuggestion);\n notifyColumnTypeChanged(column.column_type, prevColumnType);\n })\n .catch((error) => {\n toastr.error(getError(error), $translate.instant('jdbc.not.suggest.column.type'));\n });\n }\n };\n\n $scope.deleteColumn = function (columnName, index) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: $translate.instant('jdbc.warning.delete.column.msg', {columnName: columnName}),\n warning: true\n }).result\n .then(function () {\n $scope.jdbcConfigurationInfo.columns.splice(index, 1);\n $scope.setDirty();\n });\n };\n\n $scope.getColumnsSuggestions = () => {\n if ($scope.jdbcConfigurationInfo.columns && $scope.jdbcConfigurationInfo.columns.length > 0) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.warning'),\n message: $translate.instant('jdbc.warning.column.type.msg'),\n warning: true\n }).result\n .then(function () {\n getSuggestions();\n });\n } else {\n getSuggestions();\n }\n };\n\n $scope.hasPrecision = (columnType) => {\n return columnType === 'iri' || columnType === 'string' || columnType === 'decimal';\n };\n\n $scope.containsColumnsWithPrecision = (columns) => {\n return columns && columns.some((el) => $scope.hasPrecision(el.column_type));\n };\n\n $scope.containsColumnsWithScale = (columns) => {\n return columns && columns.some((el) => hasScale(el.column_type));\n };\n\n $scope.isLiteral = (columnType) => {\n return columnType !== 'iri' && columnType !== 'unknown';\n };\n\n $scope.containsNonLiteralColumnsOnly = (columns) => {\n return columns && columns.every((el) => !$scope.isLiteral(el.column_type));\n };\n\n // =========================\n // Private functions\n // =========================\n\n const getSqlTablePreview = (jdbcConfigurationInfo) => {\n if ($scope.canWriteActiveRepo) {\n const sqlView = JSON.stringify({\n name: $scope.jdbcConfigurationInfo.jdbcConfigurationName,\n query: $scope.jdbcConfigurationInfo.query,\n columns: $scope.jdbcConfigurationInfo.columns || []\n });\n return Promise.all([JdbcRestService.getNewSqlTablePreview(sqlView).then((response) => response.data), Promise.resolve(jdbcConfigurationInfo)]);\n } else {\n return Promise.all([JdbcRestService.getExistingSqlTablePreview($scope.jdbcConfigurationInfo.jdbcConfigurationName).then((response) => response.data), Promise.resolve(jdbcConfigurationInfo)]);\n }\n };\n\n const notifyColumnTypeChanged = (currentColumnType, prevColumnType) => {\n if (currentColumnType === prevColumnType) {\n toastr.info(decodeHTML($translate.instant('jdbc.same.suggested.sql.type', {type: currentColumnType})),\n $translate.instant('jdbc.suggest.sql.type'), {allowHtml: true});\n } else {\n toastr.success(decodeHTML($translate.instant('jdbc.suggested.sql.type', {type: currentColumnType})),\n $translate.instant('jdbc.suggest.sql.type'), {allowHtml: true});\n }\n };\n\n const init = (prefixes, jdbcConfiguration = new JdbcConfigurationInfo()) => {\n $scope.jdbcConfigurationInfo.columns = jdbcConfiguration.columns;\n $scope.jdbcConfigurationInfo.query = jdbcConfiguration.query;\n $scope.jdbcConfigurationInfo.jdbcConfigurationName = $location.search().name || '';\n $scope.jdbcConfigurationInfo.isNewJdbcConfiguration = !$scope.jdbcConfigurationInfo.jdbcConfigurationName;\n $scope.prefixes = prefixes;\n updateYasguiConfiguration();\n updateSqlTypes();\n };\n\n const createConfiguration = (jdbcConfigurationInfo) => {\n const configuration = {\n name: jdbcConfigurationInfo.jdbcConfigurationName,\n query: jdbcConfigurationInfo.query,\n columns: jdbcConfigurationInfo.columns\n };\n\n return JdbcRestService.createNewJdbcConfiguration(configuration)\n .then(() => {\n $scope.isDirty = false;\n $scope.jdbcConfigurationInfo.isNewConfiguration = false;\n toastr.success($translate.instant('jdbc.saved.configuration'));\n goBack();\n });\n };\n\n const updateConfiguration = (jdbcConfigurationInfo) => {\n const configuration = {\n name: jdbcConfigurationInfo.jdbcConfigurationName,\n query: jdbcConfigurationInfo.query,\n columns: jdbcConfigurationInfo.columns\n };\n return JdbcRestService.updateJdbcConfiguration(configuration)\n .then(() => {\n $scope.isDirty = false;\n $scope.jdbcConfigurationInfo.isNewConfiguration = false;\n toastr.success($translate.instant('jdbc.configuration.updated'));\n goBack();\n });\n };\n\n\n const updateYasguiConfiguration = (additionalConfiguration = {}) => {\n const config = {};\n angular.extend(config, $scope.yasguiConfig || getDefaultYasguiConfiguration(), additionalConfiguration);\n $scope.yasguiConfig = config;\n };\n\n const getDefaultYasguiConfiguration = () => {\n return {\n showEditorTabs: false,\n showToolbar: false,\n showResultTabs: false,\n showQueryButton: false,\n showResultInfo: false,\n downloadAsOn: false,\n showYasqeResizer: false,\n initialQuery: $scope.jdbcConfigurationInfo.query,\n componentId: 'jdbc-component',\n prefixes: $scope.prefixes,\n maxPersistentResponseSize: 0,\n render: RenderingMode.YASQE,\n getCellContent: getCellContent,\n sparqlResponse: $scope.emptySparqlResponse,\n yasqeActionButtons: DISABLE_YASQE_BUTTONS_CONFIGURATION,\n yasqeMode: $scope.canEditActiveRepo ? YasqeMode.WRITE : YasqeMode.READ\n };\n };\n\n /**\n * Checks if query mode is valid. The mode have to be \"select\".\n * @param {JdbcConfigurationInfo} jdbcConfiguration - holds information about jdbc configuration.\n * @return {Promise<JdbcConfigurationInfo>}\n */\n const validateQueryType = (jdbcConfiguration) => {\n return getOntotextYasgui().getQueryType()\n .then((queryType) => {\n jdbcConfiguration.isValidQueryType = 'SELECT' === queryType;\n if (!jdbcConfiguration.isValidQueryType) {\n return Promise.reject(new JdbcConfigurationError('Query type is not valid.'));\n }\n return jdbcConfiguration;\n });\n };\n\n /**\n * Checks if query is valid.\n * @param {JdbcConfigurationInfo} jdbcConfigurationInfo - holds information about jdbc configuration.\n * @return {Promise<JdbcConfigurationInfo>}\n */\n const validateQuery = (jdbcConfigurationInfo) => {\n return getOntotextYasgui().isQueryValid()\n .then((valid) => {\n jdbcConfigurationInfo.isValidQuery = valid;\n if (!jdbcConfigurationInfo.isValidQuery) {\n return Promise.reject(new JdbcConfigurationError('Invalid query.'));\n }\n return jdbcConfigurationInfo;\n });\n };\n\n /**\n * Checks if jdbc configuration has columns without defined type.\n * @param {JdbcConfigurationInfo} jdbcConfiguration - holds information about jdbc configuration.\n * @return {Promise<JdbcConfigurationInfo>}\n */\n const validateColumns = (jdbcConfiguration) => {\n if (!jdbcConfiguration.columns || jdbcConfiguration.columns.length === 0) {\n jdbcConfiguration.isColumnsEmpty = true;\n toastr.error($translate.instant('jdbc.warning.one.column.msg'));\n return Promise.reject(new JdbcConfigurationError('There are not defined columns.', jdbcConfiguration));\n }\n const unknownColumn = $scope.jdbcConfigurationInfo.columns && $scope.jdbcConfigurationInfo.columns\n .find((el) => el.column_type === 'unknown');\n if (unknownColumn) {\n jdbcConfiguration.hasUndefinedColumns = true;\n return Promise.reject(new JdbcConfigurationError('There are columns without defined type.', jdbcConfiguration));\n }\n return Promise.resolve(jdbcConfiguration);\n };\n\n const getSuggestions = () => {\n validateQueryType($scope.jdbcConfigurationInfo)\n .then(validateQuery)\n .then(updateJdbcConfigurationQuery)\n .then(getColumnNames)\n .then(getColumnsTypeSuggestion)\n .then((jdbcConfigurationInfo) => $scope.jdbcConfigurationInfo = jdbcConfigurationInfo)\n .catch((error) => {\n console.log(error);\n });\n };\n\n const getColumnNames = (jdbcConfigurationInfo) => {\n return JdbcRestService.getColumnNames(jdbcConfigurationInfo.query)\n .then((response) => [jdbcConfigurationInfo, response.data])\n .catch(function (e) {\n toastr.error(getError(e), $translate.instant('jdbc.not.suggest.column.names'));\n });\n };\n\n const getColumnsTypeSuggestion = ([jdbcConfigurationInfo, columns]) => {\n return JdbcRestService.getColumnsTypeSuggestion(jdbcConfigurationInfo.query, columns)\n .then(function (response) {\n jdbcConfigurationInfo.columns = toJDBCColumns(columns, response.data);\n jdbcConfigurationInfo.isColumnsEmpty = jdbcConfigurationInfo.columns.length;\n $scope.setDirty();\n return jdbcConfigurationInfo;\n }).catch(function (e) {\n toastr.error(getError(e), $translate.instant('jdbc.not.suggest.column.types'));\n });\n };\n\n const getOntotextYasgui = () => {\n return YasguiComponentDirectiveUtil.getOntotextYasguiElement('#query-editor');\n };\n\n const updateJdbcConfigurationQuery = (jdbcConfigurationInfo) => {\n return getOntotextYasgui().getQuery()\n .then((query) => {\n jdbcConfigurationInfo.query = query;\n return jdbcConfigurationInfo;\n });\n };\n\n const hasScale = (columnType) => {\n return columnType === 'decimal';\n };\n\n const getCellContent = (bindings, _prefixes) => {\n let value = bindings.value;\n value = value.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\");\n const entityHtml = \"<p class='nonUri' style='border: none; background-color: transparent; padding: 0; margin: 0'>\"\n + value + \"</p>\";\n return \"<div class = 'literal-cell'>\" + entityHtml + \"</div>\";\n };\n\n const openConfirmDialog = (title, message, onConfirm, onCancel) => {\n ModalService.openSimpleModal({\n title,\n message,\n warning: true\n }).result.then(function () {\n if (angular.isFunction(onConfirm)) {\n onConfirm();\n }\n }, function () {\n if (angular.isFunction(onCancel)) {\n onCancel();\n }\n });\n };\n\n /**\n * Starts loading of needed data and process the view.\n */\n const loadOntotextYasgui = () => {\n $scope.loadingControllerResources = true;\n const activeRepository = $repositories.getActiveRepository();\n if ($scope.jdbcConfigurationInfo.jdbcConfigurationName) {\n Promise.all([$repositories.getPrefixes(activeRepository), JdbcRestService.getJdbcConfiguration($scope.jdbcConfigurationInfo.jdbcConfigurationName)])\n .then(([prefixes, templateContent]) => {\n init(prefixes, templateContent.data);\n })\n .finally(() => $scope.loadingControllerResources = false);\n } else {\n $repositories.getPrefixes(activeRepository)\n .then((prefixes) => init(prefixes))\n .finally(() => $scope.loadingControllerResources = false);\n }\n };\n\n /**\n * Translates \"Get suggestion...\" sql type option and updates sql type options with it.\n */\n const updateSqlTypes = () => {\n $scope.getSuggestionSqlType = $translate.instant('view.jdbc.create.get_suggestion_sql_type');\n $scope.sqlTypes = ['string', 'iri', 'boolean', 'byte', 'short', 'int', 'long', 'float', 'double', 'decimal', 'date', 'time', 'timestamp', $scope.getSuggestionSqlType];\n };\n\n /**\n * go to jdbc configurations page.\n */\n const goBack = () => {\n // Added timeout a success message to be shown.\n setTimeout(function () {\n goToJdbcView();\n }, 1000);\n };\n\n const goToJdbcView = () => {\n $location.url('/jdbc');\n };\n\n // =========================\n // Subscriptions handlers\n // =========================\n const languageChangedHandler = () => {\n $scope.language = $languageService.getLanguage();\n updateSqlTypes();\n };\n\n const repositoryWillChangeHandler = () => {\n return new Promise(function (resolve) {\n\n if ($scope.jdbcConfigurationInfo.isNewJdbcConfiguration) {\n resolve(true);\n return;\n }\n\n const onConfirm = () => {\n $scope.isDirty = false;\n resolve(true);\n };\n\n if ($scope.isDirty) {\n const onCancel = () => {\n resolve(false);\n };\n const title = $translate.instant('common.confirm');\n const message = $translate.instant('jdbc.warning.unsaved.changes');\n openConfirmDialog(title, message, onConfirm, onCancel);\n } else {\n onConfirm();\n }\n });\n };\n\n const locationChangedHandler = (event, newPath) => {\n if ($scope.isDirty) {\n event.preventDefault();\n const title = $translate.instant('common.confirm');\n const message = $translate.instant('jdbc.warning.unsaved.changes');\n const onConfirm = () => {\n removeAllListeners();\n const baseLen = $location.absUrl().length - $location.url().length;\n const path = newPath.substring(baseLen);\n $location.path(path);\n };\n openConfirmDialog(title, message, onConfirm);\n } else {\n removeAllListeners();\n }\n };\n\n const beforeunloadHandler = (event) => {\n if ($scope.isDirty) {\n event.returnValue = true;\n }\n };\n\n const removeAllListeners = () => {\n window.removeEventListener('beforeunload', beforeunloadHandler);\n subscriptions.forEach((subscription) => subscription());\n };\n\n const repositoryChangedHandler = (repository) => {\n console.log(repository)\n if (!repository) {\n return;\n }\n if (initialRepoChangeTrigger) {\n initialRepoChangeTrigger = false;\n } else {\n getOntotextYasgui().abortQuery().then(goToJdbcView);\n }\n };\n\n const activeRepositoryHandler = (activeRepo) => {\n if (activeRepo) {\n $scope.canEditActiveRepo = $scope.canWriteActiveRepo();\n if (initialRepoInitialization) {\n loadOntotextYasgui();\n initialRepoInitialization = false;\n } else {\n getOntotextYasgui().abortQuery().then(goToJdbcView);\n }\n }\n };\n\n // =========================\n // Subscriptions\n // =========================\n const subscriptions = [];\n\n const repositoryContextService = ServiceProvider.get(RepositoryContextService);\n const repositoryChangeSubscription = repositoryContextService.onSelectedRepositoryChanged(repositoryChangedHandler, repositoryWillChangeHandler)\n\n subscriptions.push(repositoryChangeSubscription);\n subscriptions.push($rootScope.$on('$translateChangeSuccess', languageChangedHandler));\n subscriptions.push($scope.$on('$locationChangeStart', locationChangedHandler));\n subscriptions.push($scope.$on('$destroy', removeAllListeners));\n // Prevent go out of the current page? check\n window.addEventListener('beforeunload', beforeunloadHandler);\n\n\n // Wait until the active repository object is set, otherwise \"canWriteActiveRepo()\" may return a wrong result and the \"ontotext-yasgui\"\n // readOnly configuration may be incorrect.\n subscriptions.push($scope.$watch($scope.getActiveRepositoryObject, activeRepositoryHandler));\n}\n","export const YasqeMode = {\n /**\n * The query can be edited.\n */\n WRITE: 'WRITE',\n\n /**\n * The editor is read-only, but the query can be copied.\n */\n READ: 'READ',\n\n /**\n * The editor is read-only and the query can't be copied.\n */\n PROTECTED: 'PROTECTED'\n};\n","/**\n * DTO\n */\nexport class JdbcColumn {\n constructor() {\n this.column_name = '';\n this.column_type = '';\n this.sparql_type = '';\n this.nullable = true;\n }\n}\n\n/**\n * Constructs an array with {@link JdbcColumn} objects for everyone column of <code>columnNames</code>.\n *\n * @param {string[]} columnNames - array with column names.\n * @param {Object} columnTypes - objects that holds key-value pair. The key is column id, the value is {@link JdbcColumnType} object.\n * @return {JdbcColumn[]} the array with jdbc columns.\n */\nexport const toJDBCColumns = (columnNames = [], columnTypes) => {\n return columnNames.map((columnName) => {\n return {\n column_name: columnName,\n column_type: columnTypes[columnName].column_type,\n nullable: true,\n sparql_type: columnTypes[columnName].sparql_type\n };\n });\n};\n\nexport const updateColumn = (column, columnSuggestion) => {\n column.column_type = columnSuggestion[column.column_name].column_type;\n column.sparql_type = columnSuggestion[column.column_name].sparql_type;\n};\n","export class JdbcConfigurationError extends Error {\n\n constructor(message, jdbcConfigurationInfo) {\n super(message);\n this.jdbcConfigurationInfo = jdbcConfigurationInfo;\n }\n}\n"],"names":["RenderingMode","YASGUI","YASQE","YASR","Notifications","toastr","$translate","showToastMessageWithDelay","message","Promise","r","success","instant","setTimeout","angular","module","factory","$inject","DEFAULT_SPARQL_QUERY","JdbcConfigurationInfo","constructor","query","isNewJdbcConfiguration","jdbcConfigurationName","undefined","this","isValidQuery","isValidQueryType","hasUndefinedColumns","isColumnsEmpty","columns","JdbcListCtrl","$scope","$repositories","JdbcRestService","ModalService","getSqlConfigurations","getActiveRepository","isActiveRepoOntopType","isActiveRepoFedXType","jdbcConfigurations","getJdbcConfigurations","data","error","msg","getError","$watch","deleteConfiguration","name","openSimpleModal","title","warning","result","then","deleteJdbcConfiguration","e","JdbcCreateCtrl","$q","$rootScope","$location","$window","$timeout","$interval","RDF4JRepositoriesRestService","SparqlRestService","$languageService","EventEmitterService","emptySparqlResponse","getSuggestionSqlType","sqlTypes","activeTab","jdbcConfigurationInfo","search","saveOrUpdateExecuted","language","getLanguage","isDirty","prefixes","loadingControllerResources","isQueryRunning","canEditActiveRepo","initialRepoInitialization","initialRepoChangeTrigger","saveJdbcConfiguration","goToJdbcView","saveOrUpdate","createConfiguration","updateConfiguration","validateQueryType","validateQuery","validateColumns","updateJdbcConfigurationQuery","catch","JdbcConfigurationError","getPreview","updateYasguiConfiguration","render","initialQuery","getSqlTablePreview","tablePreviewResults","hasResult","results","bindings","length","info","sparqlResponse","getSuggestions","finally","setActiveTab","tabIndex","getColumnsSuggestions","setDirty","getTypeLabel","type","indexOf","toUpperCase","selectColumnType","columnName","prevColumnType","column","find","column_name","column_type","getColumnsTypeSuggestion","response","columnSuggestion","updateColumn","notifyColumnTypeChanged","deleteColumn","index","splice","hasPrecision","columnType","containsColumnsWithPrecision","some","el","containsColumnsWithScale","hasScale","isLiteral","containsNonLiteralColumnsOnly","every","canWriteActiveRepo","sqlView","JSON","stringify","all","getNewSqlTablePreview","resolve","getExistingSqlTablePreview","currentColumnType","decodeHTML","allowHtml","init","jdbcConfiguration","updateSqlTypes","configuration","createNewJdbcConfiguration","isNewConfiguration","goBack","updateJdbcConfiguration","additionalConfiguration","config","extend","yasguiConfig","getDefaultYasguiConfiguration","showEditorTabs","showToolbar","showResultTabs","showQueryButton","showResultInfo","downloadAsOn","showYasqeResizer","componentId","maxPersistentResponseSize","getCellContent","yasqeActionButtons","DISABLE_YASQE_BUTTONS_CONFIGURATION","yasqeMode","YasqeMode","WRITE","READ","getOntotextYasgui","getQueryType","queryType","reject","isQueryValid","valid","getColumnNames","console","log","toJDBCColumns","YasguiComponentDirectiveUtil","getOntotextYasguiElement","getQuery","_prefixes","value","replace","openConfirmDialog","onConfirm","onCancel","isFunction","url","beforeunloadHandler","event","returnValue","removeAllListeners","window","removeEventListener","subscriptions","forEach","subscription","repositoryChangeSubscription","ServiceProvider","get","RepositoryContextService","onSelectedRepositoryChanged","repository","abortQuery","repositoryWillChangeHandler","push","$on","languageChangedHandler","locationChangedHandler","newPath","preventDefault","baseLen","absUrl","path","substring","addEventListener","getActiveRepositoryObject","activeRepo","loadOntotextYasgui","activeRepository","getPrefixes","getJdbcConfiguration","templateContent","controller","PROTECTED","JdbcColumn","sparql_type","nullable","columnNames","columnTypes","map","Error","super"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=79329;export const __webpack_ids__=[79329];export const __webpack_modules__={79329:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});const o='<link href="css/ttyg/agent-settings-modal.css?v=3.1.0-TR7" rel="stylesheet"/> <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.1.0-TR7" rel="stylesheet"/> <div class="modal-header"> <button type="button" class="close" ng-click="close()"></button> <h4 class="modal-title">{{( operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.title.edit \' : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.title.clone\' : \'ttyg.agent.create_agent_modal.title.create\') | translate}}</h4> </div> <div class="modal-body"> <form novalidate name="agentSettingsForm" id="agentSettingsForm" class="agent-settings-form" guide-selector="agent-form"> <div class="form-group agent-name-label"> <label for="name" uib-popover="{{\'ttyg.agent.create_agent_modal.form.agent_name.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.agent_name.label\' | translate}}</label> <input type="text" class="form-control" id="name" name="name" ng-model="agentFormModel.name" required autocomplete="off" guide-selector="agent-name" placeholder="{{\'ttyg.agent.create_agent_modal.form.agent_name.placeholder\' | translate}}"> <div class="alert alert-danger" ng-if="agentSettingsForm.name.$touched && agentSettingsForm.name.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group repository-id"> <label for="repositoryId" uib-popover="{{\'ttyg.agent.create_agent_modal.form.repository.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.repository.label\' | translate}}</label> <select class="form-control" id="repositoryId" name="repositoryId" ng-model="agentFormModel.repositoryId" required ng-change="onRepositoryChange()" guide-selector="repository-id" ng-options="repository.value as repository.label for repository in activeRepositoryList"> </select> <div class="alert alert-danger" ng-if="agentSettingsForm.repositoryId.$touched && agentSettingsForm.repositoryId.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-row clearfix"> <div class="form-group llm-model col-md-4"> <label for="model">{{\'ttyg.agent.create_agent_modal.form.model.label\' | translate}}</label> <help-info-popover help-info="helpInfoForModel"></help-info-popover> <input type="text" class="form-control" id="model" name="model" ng-model="agentFormModel.model" guide-selector="model" required autocomplete="off"> <div class="alert alert-danger" ng-if="agentSettingsForm.model.$touched && agentSettingsForm.model.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group temperature col-md-4"> <label for="temperature"> <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.temperature.label\' | translate}}</span> <i class="fa fa-triangle-exclamation text-warning high-temperature-warning" ng-if="showHighTemperatureWarning" uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning\' | translate}}" popover-trigger="mouseenter"></i> </label> <input type="text" id="temperature" name="temperature" readonly="readonly" class="form-control" ng-class="{\'has-warning\': showHighTemperatureWarning}" ng-model="agentFormModel.temperature.value"> <input id="temperatureSlider" name="temperature" type="range" min="{{agentFormModel.temperature.minValue}}" max="{{agentFormModel.temperature.maxValue}}" step="{{agentFormModel.temperature.step}}" ng-change="onTemperatureChange()" ng-model="agentFormModel.temperature.value"/> </div> <div class="form-group top-p col-md-4"> <label for="topP" uib-popover="{{\'ttyg.agent.create_agent_modal.form.top_p.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.top_p.label\' | translate}}</label> <input type="text" class="form-control" id="topP" name="topP" readonly="readonly" ng-model="agentFormModel.topP.value"> <input id="topPSlider" name="topP" type="range" min="{{agentFormModel.topP.minValue}}" max="{{agentFormModel.topP.maxValue}}" step="{{agentFormModel.topP.step}}" ng-model="agentFormModel.topP.value"/> </div> </div> <div class="form-group extraction-methods-group"> <label for="extractionMethods" uib-popover="{{\'ttyg.agent.create_agent_modal.form.extraction_method.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.extraction_method.label\' | translate}}</label> <div id="extractionMethods" name="extractionMethods" ng-model="agentFormModel.assistantExtractionMethods.extractionMethods" required class="accordion extraction-methods" ng-class="{\'has-error\': agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid}"> <div ng-repeat="extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods" class="extraction-method"> <div id="{{extractionMethod.method + \'_method_heading\'}}" class="extraction-method-heading" ng-class="{\'selected\': extractionMethod.selected}" guide-selector="query-method-{{extractionMethod.method}}"> <div class="mr-0 extraction-method-toggle"> <input type="checkbox" id="{{extractionMethod.method + \'_checkbox\'}}" guide-selector="query-method-{{extractionMethod.method}}-input" name="{{extractionMethod.method}}" class="switch" ng-click="toggleExtractionMethod(extractionMethod, $event)" ng-model="extractionMethod.selected"/> <label for="{{extractionMethod.method + \'_checkbox\'}}"></label> </div> <a class="btn btn-link panel-toggle-link" aria-expanded="false" aria-controls="{{extractionMethod.method + \'_method_content\'}}" ng-click="onExtractionMethodPanelToggle(extractionMethod)"> <span class="mr-1" uib-popover="{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.label\' | translate}}</span> <i class="fa fa-chevron-down toggle-icon" ng-class="{\'expanded\': extractionMethod.expanded}"> </i> </a> </div> <div id="{{extractionMethod.method + \'_method_content\'}}" class="show extraction-method-content" aria-labelledby="{{extractionMethod.method + \'_method_heading\'}}" data-parent="#extractionMethods"> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL" class="extraction-method-options" ng-class="{\'has-error\': extractionMethod.selected && !extractionMethod.sparqlOption}"> <div class="sparql-option ontology-graph-option" guide-selector="sparql-ontology-graph-option"> <label class="radio-inline" uib-popover="{{\'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip\' | translate}}" popover-trigger="mouseenter"> <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected" guide-selector="sparql-ontology-graph-option-input" ng-model="extractionMethod.sparqlOption" value="ontologyGraph"> {{\'ttyg.agent.create_agent_modal.form.ontology_graph.label\' | translate}} </label> <div class="panel" ng-show="extractionMethod.sparqlOption === \'ontologyGraph\'"> <div class="form-group"> <input type="text" class="form-control" id="ontologyGraph" guide-selector="sparql-ontology-graph-input" name="ontologyGraph" ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'ontologyGraph\'" ng-model="extractionMethod.ontologyGraph"> </div> </div> </div> <div class="sparql-option sparql-query-option"> <label class="radio-inline" uib-popover="{{\'ttyg.agent.create_agent_modal.form.construct_query.tooltip\' | translate}}" popover-trigger="mouseenter"> <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected" ng-model="extractionMethod.sparqlOption" value="sparqlQuery"> {{\'ttyg.agent.create_agent_modal.form.construct_query.label\' | translate}} </label> <div class="panel" ng-show="extractionMethod.sparqlOption === \'sparqlQuery\'"> <div class="form-group"> <textarea type="text" class="form-control" id="sparqlQuery" name="sparqlQuery" rows="10" ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'sparqlQuery\'" ng-minlength="extractionMethod.sparqlQuery.minLength" ng-maxlength="extractionMethod.sparqlQuery.maxLength" ng-model="extractionMethod.sparqlQuery.value">\n </textarea> </div> </div> </div> <div class="alert alert-danger sparql-method-option-required-error mb-0" ng-if="extractionMethod.selected && !extractionMethod.sparqlOption"> {{\'ttyg.agent.create_agent_modal.form.sparql_search.required_option\' | translate}} </div> <div class="add-missing-namespaces-option mt-1" guide-selector="add-missing-namespaces-option"> <input id="addMissingNamespaces" name="addMissingNamespaces" type="checkbox" guide-selector="add-missing-namespaces" ng-model="extractionMethod.addMissingNamespaces"> <label for="addMissingNamespaces" uib-popover="{{\'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip\' | translate}}" popover-trigger="mouseenter">{{ \'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label\' | translate }}</label> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH" ng-class="{\'has-error\': agentSettingsForm.$error.FTSDisabled}" class="extraction-method-options"> <button class="btn btn-link btn-sm pull-right" ng-click="checkIfFTSEnabled()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div class="alert alert-danger missing-repositoryid-error mb-0" ng-if="!agentFormModel.repositoryId"> {{\'ttyg.agent.create_agent_modal.form.fts_search.missing_repository_id\' | translate}} </div> <div ng-if="!ftsEnabled && agentFormModel.repositoryId" class="fts-disabled-message" ng-bind-html="getFTSDisabledHelpMessage()"> </div> <div class="form-group max-triples" ng-show="ftsEnabled && agentFormModel.repositoryId"> <label for="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label\' | translate}} </label> <input type="number" class="form-control" id="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY" ng-class="{\'has-error\': agentSettingsForm.$error.missingIndex}" class="extraction-method-options"> <button class="btn btn-link btn-sm pull-right" ng-click="updateSimilaritySearchPanel()" ng-disabled="disabled" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div ng-if="!similarityIndexes.length" class="no-similarity-index-message"> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1\' | translate}} <a href="#" target="_blank" ng-click="goToCreateSimilarityView()"> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2\' | translate}} </a> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3\' | translate}}. </div> <div ng-show="similarityIndexes.length"> <div class="form-group similarity-index"> <label for="similarityIndex" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_index.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_index.label\' | translate}}</label> <span ng-if="extractionMethodLoaderFlags.similarity_search" onto-loader-fancy size="16"></span> <select class="form-control" id="similarityIndex" name="similarityIndex" guide-selector="similarity-index-select" ng-required="extractionMethod.selected" ng-if="!extractionMethodLoaderFlags.similarity_search" ng-model="extractionMethod.similarityIndex" ng-options="similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes"> </select> <div class="alert alert-danger" ng-if="extractionMethod.similarityIndex.$touched && extractionMethod.similarityIndex.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group similarity-index-threshold"> <label for="similarityIndexThreshold" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.label\' | translate}}</label> <input type="text" class="form-control" id="similarityIndexThreshold" name="similarityIndexThreshold" readonly="readonly" ng-model="extractionMethod.similarityIndexThreshold.value"> <input id="similarityIndexThresholdSlider" name="similarityIndexThreshold" type="range" ng-required="extractionMethod.selected" min="{{extractionMethod.similarityIndexThreshold.minValue}}" max="{{extractionMethod.similarityIndexThreshold.maxValue}}" step="0.1" ng-model="extractionMethod.similarityIndexThreshold.value"/> </div> <div class="form-group similarity-max-triples"> <label for="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label\' | translate}}</label> <input type="number" class="form-control" id="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL" ng-class="{\'has-error\': agentSettingsForm.$error.missingConnector}" class="extraction-method-options"> <button class="btn btn-link btn-sm pull-right" ng-click="updateRetrievalConnectorPanel()" ng-disabled="disabled" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div ng-if="!retrievalConnectors.length" class="no-retrieval-connector-message"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1\' | translate}} <a href="#" target="_blank" ng-click="goToConnectorsView()"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2\' | translate}} </a> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3\' | translate}}. </div> <div ng-show="retrievalConnectors.length"> <div class="form-group retrieval-connector"> <label for="retrievalConnectorInstance" uib-popover="{{\'ttyg.agent.create_agent_modal.form.connector_id.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.connector_id.label\' | translate}}</label> <span ng-if="extractionMethodLoaderFlags.retrieval_search" onto-loader-fancy size="16"></span> <select class="form-control" id="retrievalConnectorInstance" name="retrievalConnectorInstance" ng-required="extractionMethod.selected" ng-if="!extractionMethodLoaderFlags.retrieval_search" ng-model="extractionMethod.retrievalConnectorInstance" ng-options="retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors"> </select> <div class="alert alert-danger" ng-if="extractionMethod.retrievalConnectorInstance.$touched && extractionMethod.retrievalConnectorInstance.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group query-template"> <label for="queryTemplate" uib-popover="{{\'ttyg.agent.create_agent_modal.form.query_template.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.query_template.label\' | translate}}</label> <textarea type="text" class="form-control" id="queryTemplate" name="queryTemplate" rows="10" ng-required="extractionMethod.selected" ng-minlength="extractionMethod.queryTemplate.minLength" ng-maxlength="extractionMethod.queryTemplate.maxLength" ng-model="extractionMethod.queryTemplate.value">\n </textarea> <div class="alert alert-danger" ng-if="extractionMethod.name.$touched && extractionMethod.name.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group retrieval-connector-max-triples"> <label for="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label\' | translate}}</label> <input type="number" class="form-control" id="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> </div> </div> </div> </div> <div class="alert alert-danger extraction-method-required-error" ng-if="agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid"> {{\'ttyg.agent.create_agent_modal.form.extraction_method.required\' | translate}} </div> </div> <div id="additionalExtractionMethods" class="form-group additional-extraction-methods"> <label uib-popover="{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.additional_query_methods.label\' | translate}} </label> <div ng-repeat="extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods" class="additional-extraction-method"> <div ng-if="ExtractionMethodTemplates[extractionMethod.method]"> <div ng-include="\'js/angular/ttyg/templates/\' + ExtractionMethodTemplates[extractionMethod.method] + \'.html\'"></div> </div> </div> </div> <div class="form-group user-instructions"> <div class="toolbar"> <label for="userInstruction" uib-popover="{{\'ttyg.agent.create_agent_modal.form.user_instruction.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.user_instruction.label\' | translate}}</label> <div class="actions"> <copy-to-clipboard tooltip-text="ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip" text-to-copy="{{agentFormModel.instructions.userInstruction}}"></copy-to-clipboard> <button class="btn btn-link btn-sm create-chat-btn" ng-click="onRestoreDefaultUserInstructions()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip\' | translate}}"> <i class="fa fa-arrow-rotate-left"></i> </button> </div> </div> <textarea type="text" class="form-control" id="userInstruction" name="userInstruction" rows="5" guide-selector="user-instructions" ng-model="agentFormModel.instructions.userInstruction" placeholder="{{\'ttyg.agent.create_agent_modal.form.user_instruction.placeholder\' | translate}}">\n </textarea> </div> <div class="text-xs-center"> <button type="button" ng-click="showAdvancedSettings = !showAdvancedSettings" class="btn btn-link btn-sm toggle-advanced-settings"> <span ng-hide="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.show\' | translate}}<em class="icon-caret-down"></em></span> <span ng-show="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.hide\' | translate}}<em class="icon-caret-up"></em></span> </button> </div> <div ng-show="showAdvancedSettings" class="advanced-settings"> <div class="form-group system-instructions"> <div class="toolbar"> <label for="systemInstruction"> <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.system_instruction.label\' | translate}}</span> <i class="fa fa-triangle-exclamation text-warning overriding-system-instructions-warning" ng-if="showSystemInstructionWarning" uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body\' | translate}}" popover-trigger="mouseenter"></i> </label> <div class="actions"> <copy-to-clipboard tooltip-text="ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip" text-to-copy="{{agentFormModel.instructions.systemInstruction}}"></copy-to-clipboard> <button class="btn btn-link btn-sm create-chat-btn" ng-click="onRestoreDefaultSystemInstructions()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip\' | translate}}"> <i class="fa fa-arrow-rotate-left"></i> </button> </div> </div> <textarea type="text" class="form-control" id="systemInstruction" name="systemInstruction" rows="5" placeholder="{{\'ttyg.agent.create_agent_modal.form.system_instruction.placeholder\' | translate}}" ng-class="{\'has-warning\': showSystemInstructionWarning}" ng-model="agentFormModel.instructions.systemInstruction" ng-change="onSystemInstructionChange()">\n </textarea> </div> </div> </form> </div> <div class="modal-footer"> <button type="button" ng-click="onExplainAgentSettings()" class="btn explain-agent-settings-btn"> {{\'ttyg.agent.create_agent_modal.btn.explain_settings.label\' | translate}} </button> <div> <button type="button" ng-click="cancel()" class="btn cancel-btn"> {{\'ttyg.agent.create_agent_modal.btn.cancel.label\' | translate}} </button> <button type="button" ng-click="ok()" ng-disabled="agentSettingsForm.$invalid || savingAgent" guide-selector="save-agent-settings" class="btn btn-primary save-agent-settings-btn"> <span>{{(operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.btn.save.label\' : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.btn.save.label\' : \'ttyg.agent.create_agent_modal.btn.create.label\') | translate}}</span> <span class="saving-agent-loader" ng-if="savingAgent" onto-loader-fancy hide-message="true" size="15"></span> </button> </div> </div> '}};
|
|
2
|
-
//# sourceMappingURL=79329.dd73d019c61e2414ed51.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"79329.dd73d019c61e2414ed51.bundle.js","mappings":"uJAOA,QANW,upsB","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/modal/agent-settings-modal.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-settings-modal.css?v=3.1.0-TR7\" rel=\"stylesheet\"/> <link href=\"css/lib/ng-tags-input/ng-tags-input.min.css?v=3.1.0-TR7\" rel=\"stylesheet\"/> <div class=\"modal-header\"> <button type=\"button\" class=\"close\" ng-click=\"close()\"></button> <h4 class=\"modal-title\">{{( operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.title.edit ' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.title.clone' : 'ttyg.agent.create_agent_modal.title.create') | translate}}</h4> </div> <div class=\"modal-body\"> <form novalidate name=\"agentSettingsForm\" id=\"agentSettingsForm\" class=\"agent-settings-form\" guide-selector=\"agent-form\"> <div class=\"form-group agent-name-label\"> <label for=\"name\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.agent_name.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.agent_name.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"name\" name=\"name\" ng-model=\"agentFormModel.name\" required autocomplete=\"off\" guide-selector=\"agent-name\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.agent_name.placeholder' | translate}}\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.name.\\$touched && agentSettingsForm.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group repository-id\"> <label for=\"repositoryId\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.repository.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.repository.label' | translate}}</label> <select class=\"form-control\" id=\"repositoryId\" name=\"repositoryId\" ng-model=\"agentFormModel.repositoryId\" required ng-change=\"onRepositoryChange()\" guide-selector=\"repository-id\" ng-options=\"repository.value as repository.label for repository in activeRepositoryList\"> </select> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.repositoryId.\\$touched && agentSettingsForm.repositoryId.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-row clearfix\"> <div class=\"form-group llm-model col-md-4\"> <label for=\"model\">{{'ttyg.agent.create_agent_modal.form.model.label' | translate}}</label> <help-info-popover help-info=\"helpInfoForModel\"></help-info-popover> <input type=\"text\" class=\"form-control\" id=\"model\" name=\"model\" ng-model=\"agentFormModel.model\" guide-selector=\"model\" required autocomplete=\"off\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.model.\\$touched && agentSettingsForm.model.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group temperature col-md-4\"> <label for=\"temperature\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.temperature.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning high-temperature-warning\" ng-if=\"showHighTemperatureWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <input type=\"text\" id=\"temperature\" name=\"temperature\" readonly=\"readonly\" class=\"form-control\" ng-class=\"{'has-warning': showHighTemperatureWarning}\" ng-model=\"agentFormModel.temperature.value\"> <input id=\"temperatureSlider\" name=\"temperature\" type=\"range\" min=\"{{agentFormModel.temperature.minValue}}\" max=\"{{agentFormModel.temperature.maxValue}}\" step=\"{{agentFormModel.temperature.step}}\" ng-change=\"onTemperatureChange()\" ng-model=\"agentFormModel.temperature.value\"/> </div> <div class=\"form-group top-p col-md-4\"> <label for=\"topP\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.top_p.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.top_p.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"topP\" name=\"topP\" readonly=\"readonly\" ng-model=\"agentFormModel.topP.value\"> <input id=\"topPSlider\" name=\"topP\" type=\"range\" min=\"{{agentFormModel.topP.minValue}}\" max=\"{{agentFormModel.topP.maxValue}}\" step=\"{{agentFormModel.topP.step}}\" ng-model=\"agentFormModel.topP.value\"/> </div> </div> <div class=\"form-group extraction-methods-group\"> <label for=\"extractionMethods\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.extraction_method.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.extraction_method.label' | translate}}</label> <div id=\"extractionMethods\" name=\"extractionMethods\" ng-model=\"agentFormModel.assistantExtractionMethods.extractionMethods\" required class=\"accordion extraction-methods\" ng-class=\"{'has-error': agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid}\"> <div ng-repeat=\"extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods\" class=\"extraction-method\"> <div id=\"{{extractionMethod.method + '_method_heading'}}\" class=\"extraction-method-heading\" ng-class=\"{'selected': extractionMethod.selected}\" guide-selector=\"query-method-{{extractionMethod.method}}\"> <div class=\"mr-0 extraction-method-toggle\"> <input type=\"checkbox\" id=\"{{extractionMethod.method + '_checkbox'}}\" guide-selector=\"query-method-{{extractionMethod.method}}-input\" name=\"{{extractionMethod.method}}\" class=\"switch\" ng-click=\"toggleExtractionMethod(extractionMethod, \\$event)\" ng-model=\"extractionMethod.selected\"/> <label for=\"{{extractionMethod.method + '_checkbox'}}\"></label> </div> <a class=\"btn btn-link panel-toggle-link\" aria-expanded=\"false\" aria-controls=\"{{extractionMethod.method + '_method_content'}}\" ng-click=\"onExtractionMethodPanelToggle(extractionMethod)\"> <span class=\"mr-1\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.label' | translate}}</span> <i class=\"fa fa-chevron-down toggle-icon\" ng-class=\"{'expanded': extractionMethod.expanded}\"> </i> </a> </div> <div id=\"{{extractionMethod.method + '_method_content'}}\" class=\"show extraction-method-content\" aria-labelledby=\"{{extractionMethod.method + '_method_heading'}}\" data-parent=\"#extractionMethods\"> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL\" class=\"extraction-method-options\" ng-class=\"{'has-error': extractionMethod.selected && !extractionMethod.sparqlOption}\"> <div class=\"sparql-option ontology-graph-option\" guide-selector=\"sparql-ontology-graph-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" guide-selector=\"sparql-ontology-graph-option-input\" ng-model=\"extractionMethod.sparqlOption\" value=\"ontologyGraph\"> {{'ttyg.agent.create_agent_modal.form.ontology_graph.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'ontologyGraph'\"> <div class=\"form-group\"> <input type=\"text\" class=\"form-control\" id=\"ontologyGraph\" guide-selector=\"sparql-ontology-graph-input\" name=\"ontologyGraph\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'ontologyGraph'\" ng-model=\"extractionMethod.ontologyGraph\"> </div> </div> </div> <div class=\"sparql-option sparql-query-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.construct_query.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" ng-model=\"extractionMethod.sparqlOption\" value=\"sparqlQuery\"> {{'ttyg.agent.create_agent_modal.form.construct_query.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'sparqlQuery'\"> <div class=\"form-group\"> <textarea type=\"text\" class=\"form-control\" id=\"sparqlQuery\" name=\"sparqlQuery\" rows=\"10\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'sparqlQuery'\" ng-minlength=\"extractionMethod.sparqlQuery.minLength\" ng-maxlength=\"extractionMethod.sparqlQuery.maxLength\" ng-model=\"extractionMethod.sparqlQuery.value\">\n </textarea> </div> </div> </div> <div class=\"alert alert-danger sparql-method-option-required-error mb-0\" ng-if=\"extractionMethod.selected && !extractionMethod.sparqlOption\"> {{'ttyg.agent.create_agent_modal.form.sparql_search.required_option' | translate}} </div> <div class=\"add-missing-namespaces-option mt-1\" guide-selector=\"add-missing-namespaces-option\"> <input id=\"addMissingNamespaces\" name=\"addMissingNamespaces\" type=\"checkbox\" guide-selector=\"add-missing-namespaces\" ng-model=\"extractionMethod.addMissingNamespaces\"> <label for=\"addMissingNamespaces\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{ 'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label' | translate }}</label> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH\" ng-class=\"{'has-error': agentSettingsForm.\\$error.FTSDisabled}\" class=\"extraction-method-options\"> <button class=\"btn btn-link btn-sm pull-right\" ng-click=\"checkIfFTSEnabled()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"!agentFormModel.repositoryId\"> {{'ttyg.agent.create_agent_modal.form.fts_search.missing_repository_id' | translate}} </div> <div ng-if=\"!ftsEnabled && agentFormModel.repositoryId\" class=\"fts-disabled-message\" ng-bind-html=\"getFTSDisabledHelpMessage()\"> </div> <div class=\"form-group max-triples\" ng-show=\"ftsEnabled && agentFormModel.repositoryId\"> <label for=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label' | translate}} </label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingIndex}\" class=\"extraction-method-options\"> <button class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateSimilaritySearchPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div ng-if=\"!similarityIndexes.length\" class=\"no-similarity-index-message\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1' | translate}} <a href=\"#\" target=\"_blank\" ng-click=\"goToCreateSimilarityView()\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3' | translate}}. </div> <div ng-show=\"similarityIndexes.length\"> <div class=\"form-group similarity-index\"> <label for=\"similarityIndex\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_index.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.similarity_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"similarityIndex\" name=\"similarityIndex\" guide-selector=\"similarity-index-select\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.similarity_search\" ng-model=\"extractionMethod.similarityIndex\" ng-options=\"similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.similarityIndex.\\$touched && extractionMethod.similarityIndex.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group similarity-index-threshold\"> <label for=\"similarityIndexThreshold\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_threshold.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"similarityIndexThreshold\" name=\"similarityIndexThreshold\" readonly=\"readonly\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"> <input id=\"similarityIndexThresholdSlider\" name=\"similarityIndexThreshold\" type=\"range\" ng-required=\"extractionMethod.selected\" min=\"{{extractionMethod.similarityIndexThreshold.minValue}}\" max=\"{{extractionMethod.similarityIndexThreshold.maxValue}}\" step=\"0.1\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"/> </div> <div class=\"form-group similarity-max-triples\"> <label for=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingConnector}\" class=\"extraction-method-options\"> <button class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateRetrievalConnectorPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div ng-if=\"!retrievalConnectors.length\" class=\"no-retrieval-connector-message\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1' | translate}} <a href=\"#\" target=\"_blank\" ng-click=\"goToConnectorsView()\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3' | translate}}. </div> <div ng-show=\"retrievalConnectors.length\"> <div class=\"form-group retrieval-connector\"> <label for=\"retrievalConnectorInstance\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.connector_id.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.connector_id.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.retrieval_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"retrievalConnectorInstance\" name=\"retrievalConnectorInstance\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.retrieval_search\" ng-model=\"extractionMethod.retrievalConnectorInstance\" ng-options=\"retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.retrievalConnectorInstance.\\$touched && extractionMethod.retrievalConnectorInstance.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group query-template\"> <label for=\"queryTemplate\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.query_template.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.query_template.label' | translate}}</label> <textarea type=\"text\" class=\"form-control\" id=\"queryTemplate\" name=\"queryTemplate\" rows=\"10\" ng-required=\"extractionMethod.selected\" ng-minlength=\"extractionMethod.queryTemplate.minLength\" ng-maxlength=\"extractionMethod.queryTemplate.maxLength\" ng-model=\"extractionMethod.queryTemplate.value\">\n </textarea> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.name.\\$touched && extractionMethod.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group retrieval-connector-max-triples\"> <label for=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> </div> </div> </div> <div class=\"alert alert-danger extraction-method-required-error\" ng-if=\"agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.extraction_method.required' | translate}} </div> </div> <div id=\"additionalExtractionMethods\" class=\"form-group additional-extraction-methods\"> <label uib-popover=\"{{'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.additional_query_methods.label' | translate}} </label> <div ng-repeat=\"extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods\" class=\"additional-extraction-method\"> <div ng-if=\"ExtractionMethodTemplates[extractionMethod.method]\"> <div ng-include=\"'js/angular/ttyg/templates/' + ExtractionMethodTemplates[extractionMethod.method] + '.html'\"></div> </div> </div> </div> <div class=\"form-group user-instructions\"> <div class=\"toolbar\"> <label for=\"userInstruction\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.user_instruction.label' | translate}}</label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.userInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultUserInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"userInstruction\" name=\"userInstruction\" rows=\"5\" guide-selector=\"user-instructions\" ng-model=\"agentFormModel.instructions.userInstruction\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.placeholder' | translate}}\">\n </textarea> </div> <div class=\"text-xs-center\"> <button type=\"button\" ng-click=\"showAdvancedSettings = !showAdvancedSettings\" class=\"btn btn-link btn-sm toggle-advanced-settings\"> <span ng-hide=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.show' | translate}}<em class=\"icon-caret-down\"></em></span> <span ng-show=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.hide' | translate}}<em class=\"icon-caret-up\"></em></span> </button> </div> <div ng-show=\"showAdvancedSettings\" class=\"advanced-settings\"> <div class=\"form-group system-instructions\"> <div class=\"toolbar\"> <label for=\"systemInstruction\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.system_instruction.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning overriding-system-instructions-warning\" ng-if=\"showSystemInstructionWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.systemInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultSystemInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"systemInstruction\" name=\"systemInstruction\" rows=\"5\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.placeholder' | translate}}\" ng-class=\"{'has-warning': showSystemInstructionWarning}\" ng-model=\"agentFormModel.instructions.systemInstruction\" ng-change=\"onSystemInstructionChange()\">\n </textarea> </div> </div> </form> </div> <div class=\"modal-footer\"> <button type=\"button\" ng-click=\"onExplainAgentSettings()\" class=\"btn explain-agent-settings-btn\"> {{'ttyg.agent.create_agent_modal.btn.explain_settings.label' | translate}} </button> <div> <button type=\"button\" ng-click=\"cancel()\" class=\"btn cancel-btn\"> {{'ttyg.agent.create_agent_modal.btn.cancel.label' | translate}} </button> <button type=\"button\" ng-click=\"ok()\" ng-disabled=\"agentSettingsForm.\\$invalid || savingAgent\" guide-selector=\"save-agent-settings\" class=\"btn btn-primary save-agent-settings-btn\"> <span>{{(operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.btn.save.label' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.btn.save.label' : 'ttyg.agent.create_agent_modal.btn.create.label') | translate}}</span> <span class=\"saving-agent-loader\" ng-if=\"savingAgent\" onto-loader-fancy hide-message=\"true\" size=\"15\"></span> </button> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=82206;export const __webpack_ids__=[82206];export const __webpack_modules__={28499:(e,t,o)=>{var s;o.d(t,{D:()=>s}),function(e){e.RIGHT="right",e.LEFT="left"}(s||(s={}))},44123:(e,t,o)=>{var s;o.d(t,{O:()=>s}),function(e){e.LEFT="left",e.RIGHT="right",e.TOP="top",e.BOTTOM="bottom",e.AUTO="auto"}(s||(s={}))},77050:(e,t,o)=>{o.d(t,{T:()=>i,s:()=>r});var s=o(57154);function r(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}class n{constructor(){this.languageContextService=s.ServiceProvider.get(s.LanguageContextService),this.translationChangedObservers={},this.defaultBundle=this.languageContextService.getDefaultBundle(),this.subscribeToBundleChange()}onTranslate(e,t=[],o=()=>{}){this.translationChangedObservers[e]=this.translationChangedObservers[e]||[];const s={parameters:t,callback:o};return this.translationChangedObservers[e].push(s),o(this.translate(e,t)),()=>{const t=this.translationChangedObservers[e].indexOf(s);-1!==t&&this.translationChangedObservers[e].splice(t,1)}}translate(e,t){return this.translateInLocale(e,t)}translateInLocale(e,t){let o=this.translateFromBundle(this.currentBundle,e);return o||(o=this.translateFromBundle(this.defaultBundle,e)),o?(o=this.applyParameters(o,t),r(o)):(console.warn(`Missing translation for key: [${e}]`),e)}translateFromBundle(e,t){if(!e)return;let o=e[t];return"string"!=typeof o&&(o=this.translateAsJsonObject(e,t)),o}translateAsJsonObject(e,t){let o=t.split(".");return this.getTranslation(e,o)}getTranslation(e,t){if(!t||!e)return;const o=e[t.splice(0,1)[0]];return 0===t.length?o:"string"!=typeof o?t.length>0?this.getTranslation(o,t):o:void 0}applyParameters(e,t){return t?t.reduce((e,t)=>n.replaceAll(e,t),e):e}static replaceAll(e,t){return t?e.split(`{{${t.key}}}`).join(t.value):e}notifyTranslationsChanged(){Object.keys(this.translationChangedObservers).forEach(e=>{(this.translationChangedObservers[e]||[]).forEach(t=>t.callback(this.translate(e,t.parameters)))})}subscribeToBundleChange(){this.languageChangeSubscription=this.languageContextService.onLanguageBundleChanged(e=>{e&&(this.currentBundle=e,this.notifyTranslationsChanged())})}destroy(){this.languageChangeSubscription&&this.languageChangeSubscription()}}const i=new n},81491:(e,t,o)=>{o.d(t,{H:()=>r});const s='button, [href], input:not([type="hidden"]), select, textarea, [tabindex]:not([tabindex="-1"])';class r{static setDocumentBodyOverflow(e){const t=document.body.style.overflow;return document.body.style.overflow=e,t}static hideDocumentBodyOverflow(){return r.setDocumentBodyOverflow("hidden")}static focusNextElement(e,t=s){const o=Array.from(e.querySelectorAll(t));if(o.length>0){const e=o.indexOf(document.activeElement),t=o[(e+1)%o.length];t&&t.focus()}}static focusPreviousElement(e,t=s){const o=Array.from(e.querySelectorAll(t));if(o.length>0){const e=o.indexOf(document.activeElement),t=o[(e-1+o.length)%o.length];t&&t.focus()}}static preventLeavingDialog(e,t){"Tab"===t.key&&(t.preventDefault(),t.shiftKey?r.focusPreviousElement(e):r.focusNextElement(e))}static focusElement(e){const t=document.querySelector(e);null==t||t.focus()}static scrollElementIntoView(e,t={block:"nearest"}){const o=document.querySelector(e);o&&o.scrollIntoView(t)}static waitForElement(e){return new Promise((t,o)=>{const s=new MutationObserver(()=>{try{const o=document.querySelector(e);o&&(s.disconnect(),t(o))}catch(e){s.disconnect(),o(e)}});s.observe(document.body,{subtree:!0,childList:!0,attributes:!0})})}}},82206:(e,t,o)=>{o.r(t),o.d(t,{onto_language_selector:()=>u,onto_license_alert:()=>d,onto_operations_notification:()=>b,onto_rdf_search:()=>m,onto_repository_selector:()=>v,onto_search_icon:()=>y,onto_search_resource_input:()=>w,onto_user_login:()=>S,onto_user_menu:()=>k});var s=o(87848),r=o(87050),n=o(57154),i=o(28499),a=o(44123),l=o(77050),c=o(81491);const u=class{constructor(e){(0,s.r)(this,e),this.languageService=n.ServiceProvider.get(n.LanguageService),this.languageContextService=n.ServiceProvider.get(n.LanguageContextService),this.items=[],this.dropdownAlignment=i.D.LEFT}connectedCallback(){this.onLanguageChangeSubscription=this.languageContextService.onSelectedLanguageChanged(e=>this.changeLanguage(e)),this.items=this.getLanguageDropdownOptions()}disconnectedCallback(){this.onLanguageChangeSubscription&&this.onLanguageChangeSubscription()}render(){var e,t;return(0,s.h)(s.a,{key:"faabdc9c474b053c32f4ae2c45cd79bd6166a255"},(0,s.h)("onto-dropdown",{key:"6c169e99e7bbddb3c76a126e83d05de1be615add",class:"onto-language-selector",onValueChanged:this.valueChangeHandler(),dropdownButtonNameLabelKey:this.currentLanguage?void 0:"language_selector.toggle_menu.label",dropdownButtonName:null!==(e=this.currentLanguage)&&void 0!==e?e:void 0,dropdownButtonTooltipLabelKey:this.currentLanguage?"language_selector.toggle_menu.tooltip":"language_selector.toggle_menu.label",dropdownAlignment:null!==(t=this.dropdownAlignment)&&void 0!==t?t:i.D.RIGHT,dropdownTooltipTrigger:"mouseenter focus",iconClass:"icon-translation",items:this.items}))}valueChangeHandler(){return e=>this.onSelectedLanguageChanged(e)}changeLanguage(e){let t=e;t||(t=this.languageService.getDefaultLanguage()),this.currentLanguage=t,this.items=this.getLanguageDropdownOptions()}onSelectedLanguageChanged(e){this.languageContextService.updateSelectedLanguage(e.detail)}getLanguageDropdownOptions(){return this.languageService.getSupportedLanguages().map(e=>{const t=this.currentLanguage===e?"icon-tick":"";return(new r.D).setNameLabelKey(`language_selector.language.${e}.label`).setTooltipLabelKey(`language_selector.language.${e}.tooltip.`+(this.currentLanguage===e?"selected":"not_selected")).setIconClass(t).setCssClass(e).setValue(e).setDropdownTooltipTrigger("mouseenter focus")})}};u.style=":host{display:block}onto-language-selector{display:block}onto-language-selector .onto-dropdown{height:100%}onto-language-selector .onto-dropdown.open .onto-dropdown-button{height:fit-content}onto-language-selector .onto-dropdown.closed .onto-dropdown-button{background-color:transparent}onto-language-selector .onto-dropdown.closed .onto-dropdown-button .icon-translation{font-size:1.5em}onto-language-selector .onto-dropdown.closed .onto-dropdown-button:hover{background-color:#d4d4d4}";const d=class{constructor(e){(0,s.r)(this,e)}render(){var e;return(0,s.h)(s.a,{key:"f8edcfb2abe0189beba3959894c66e2b83e45259","tooltip-content":null===(e=this.license)||void 0===e?void 0:e.message,"tooltip-placement":a.O.BOTTOM,"data-test":"onto-license-alert"},(0,s.h)("button",{key:"a9bfed58a715e53660489bc89eff6a8db78951f1",class:"onto-license-alert onto-btn",onClick:this.onLicenseAlertClick},(0,s.h)("span",{key:"98ad05e8ab710b782eaf32d676ebdf8d226ac5aa",class:"icon-warning"}),(0,s.h)("translate-label",{key:"eb5f23e742b73c1fd678b1bce6fc4501e5ae023d",labelKey:"license_alert.label"})))}onLicenseAlertClick(e){e.preventDefault(),window.singleSpa.navigateToUrl("license")}};d.style=":host{display:block}.onto-license-alert{animation:fade-button 2s infinite;--fade-color:var(--color-danger-medium);border:1px solid transparent !important}.onto-license-alert:hover{text-decoration:none;background-color:var(--color-danger-medium) !important;border-color:var(--color-danger-medium) !important}.onto-license-alert:hover span{transform:scale(1.2)}.onto-license-alert span{transition:transform 0.15s ease-out}.onto-license-alert .icon-warning{margin-right:0.2em;line-height:0.75;font-size:1.4em;display:inline-block;vertical-align:middle}";const p={[n.OperationGroup.BACKUP]:"fa-regular fa-archive",[n.OperationGroup.QUERY]:"fa-regular fa-arrow-right-arrow-left",[n.OperationGroup.CLUSTER]:"fa-regular fa-sitemap",[n.OperationGroup.IMPORT]:"icon-import"},h={[n.OperationStatus.WARNING]:"status-warning",[n.OperationStatus.INFORMATION]:"status-information",[n.OperationStatus.CRITICAL]:"status-critical"},g={[n.OperationStatus.WARNING]:"onto-btn-fade-warning",[n.OperationStatus.CRITICAL]:"onto-btn-fade-danger"},b=class{constructor(e){(0,s.r)(this,e),this.isOpen=!1,this.toggleDropdown=e=>{e.stopPropagation(),this.isOpen=!this.isOpen},this.onLinkClicked=e=>t=>{t.preventDefault(),window.singleSpa.navigateToUrl(e)}}handleOutsideClick(){this.isOpen&&(this.isOpen=!1)}render(){var e;return this.operationGroups=n.MapperProvider.get(n.OperationGroupSummaryListMapper).mapToModel(this.activeOperations.toOperationsGroupSummary()),(0,s.h)("section",{key:"bb68f35a80c6f17a7ca819c9dbcd5d3ee035f0f4",class:"operations-statuses"},(0,s.h)("button",{key:"93bb9f94f6aabbd0f4cc6051e7d6fc53766156a7",class:`operations-statuses-dropdown-toggle ${this.isOpen?"open":"closed"} ${null!==(e=g[this.activeOperations.status])&&void 0!==e?e:""}`,onClick:this.toggleDropdown},this.operationGroups.getItems().map(e=>(0,s.h)("section",{key:e.id,class:"operation-status-header"},(0,s.h)("i",{class:`${p[e.group]} ${h[e.status]}`}),e.totalOperations?(0,s.h)("sup",{class:"running-operation-count tag-info"},e.totalOperations):"")),(0,s.h)("i",{key:"1b53270644f24ee4e942f9b3b9e06140e1875052",class:"fa-light fa-angle-down "+(this.isOpen?"fa-rotate-180":"")})),this.isOpen&&(0,s.h)("ul",{key:"d01a26f10f578b7998e83d27b37c871607b4dbc6",class:"operations-dropdown"},(0,s.h)("section",{key:"764e51a7c1bb88538f54cb066b4d37343b4c00dd",class:"operations-statuses-content"},this.activeOperations.allRunningOperations.getItems().map(e=>(0,s.h)("li",{key:e.id},(0,s.h)("a",{class:`operation-status-content onto-btn ${h[e.status]}`,target:"_blank",onClick:this.onLinkClicked(e.href)},(0,s.h)("i",{class:p[e.group]}),(0,s.h)("span",{class:"operation-status-label"},(0,s.h)("translate-label",{labelKey:`operations_notification.links.${e.labelKey}`})),(0,s.h)("span",{class:"operation-number"},e.count?(0,s.h)("span",{class:"operation-status-running-operation-count"},e.count):"")))))))}get el(){return(0,s.g)(this)}};b.style=".operations-statuses{position:relative}.operations-statuses .operations-statuses-dropdown-toggle{display:flex;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;border:1px solid transparent;padding:0.4rem 1rem;font-size:1rem;gap:0.75em;transition:all 0.15s ease-out}.operations-statuses .operations-statuses-dropdown-toggle:hover{background-color:#d4d4d4;border-color:#d4d4d4}.operations-statuses .operations-statuses-dropdown-toggle:hover i:not(.fa-angle-down){transform:scale(1.2)}.operations-statuses .operations-statuses-dropdown-toggle:focus{outline:none}.operations-statuses .operations-statuses-dropdown-toggle.open{background-color:#bbb !important;border-color:#bbb !important}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-header{display:flex}.operations-statuses .operations-statuses-dropdown-toggle .operation-status-header .running-operation-count{color:white;padding:1px 2px;line-height:1;align-self:center;top:-1em;font-size:60%}.operations-statuses .operations-dropdown{position:absolute;right:0;z-index:1000;border:none;background-color:var(--primary-color, #9e2b0a);border-radius:0;list-style:none;padding:0;-moz-transition:all 150ms ease-out;-o-transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out;transition:all 150ms ease-out}.operations-statuses .operations-dropdown .operations-statuses-content{display:flex;flex-direction:column;background-color:#bbb;margin:0}.operations-statuses .operations-dropdown .operations-statuses-content li:first-child{margin-top:5px}.operations-statuses .operations-dropdown .operations-statuses-content li:last-child{margin-bottom:5px}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content{display:flex;flex-direction:row;margin:5px 10px;align-items:center;justify-content:start;cursor:pointer;text-decoration:none;width:auto;gap:0.5em;background-color:#EBEBEB;border-color:#EBEBEB}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content i{width:8.33%}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-number{min-width:50px;display:block}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-number .operation-status-running-operation-count{display:block;width:100%;color:white;border-radius:2px;padding:3px 2px 2px;text-align:center;font-size:75%;background-color:var(--color-info-dark, #004177) !important}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-status-content>*{padding:0}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content .operation-status-label{width:66.66%;padding-left:5px;line-height:0;text-align:start}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content:hover{text-decoration:none;background-color:#d4d4d4;border-color:#d4d4d4}.operations-statuses .operations-dropdown .operations-statuses-content .operation-status-content:hover i{transform:scale(1.2)}.operations-statuses .status-information{color:var(--color-info-dark, #004177) !important}.operations-statuses .status-warning{color:var(--color-warning-dark, #7e2308) !important}.operations-statuses .status-critical{color:var(--color-danger-dark, #a31425) !important}.operations-statuses i{padding-left:3px;padding-right:3px;font-size:1.1em;line-height:1.6rem !important;align-content:center;transition:transform 0.15s ease-out}.operations-statuses i.fa-angle-down{color:rgba(0, 0, 0, 0.35);transition:all 0.2s ease-in}.operations-statuses .icon-import{font-size:21px}";const m=class{constructor(e){(0,s.r)(this,e),this.subscriptions=new n.SubscriptionList,this.eventService=n.ServiceProvider.get(n.EventService),this.resourceSearchStorageService=n.ServiceProvider.get(n.ResourceSearchStorageService),this.RDF_CONTEXT="rdfSearchContext",this.isOpen=!1,this.redirectUrl=n.UriUtil.RESOURCE_URL}handleClick(e){var t;this.isOpen&&((null===(t=this.rdfSearchRef)||void 0===t?void 0:t.contains(e.target))||(this.isOpen=!1))}connectedCallback(){this.onSuggestionSelected()}disconnectedCallback(){this.subscriptions.unsubscribeAll()}componentDidRender(){this.focusSearchInput()}componentDidLoad(){this.buttonConfig=this.createButtonConfig()}render(){return(0,s.h)("section",{key:"1e1a1cee99df6649be6576f9016145517a8d0f7d",ref:e=>this.rdfSearchRef=e,class:"onto-rdf-search",onKeyDown:this.onKeyDown(),"data-test":"onto-rdf-search-component"},(0,s.h)("section",{key:"c9ece5ee22594314fc6bac0ff869282c9354e943",class:"search-area "+(this.isOpen?"visible":"invisible")},(0,s.h)("i",{key:"72d62b9b17a55a6ace4bce5e64ddf3a0726e049f",onClick:this.setIsOpen(!1),"tooltip-content":l.T.translate("rdf_search.tooltips.close_search_area"),"tooltip-placement":a.O.BOTTOM,"data-test":"onto-rdf-resource-search-close-btn",class:"fa-light fa-xmark-large close-btn"}),(0,s.h)("onto-search-resource-input",{key:"c81d0f967b5f2e5e6a78d6818029fc08bec6e2d2",buttonConfig:this.buttonConfig,preserveSearch:!0,isHidden:!this.isOpen,"data-test":"onto-rdf-resource-search-input",context:this.RDF_CONTEXT})),this.isOpen?"":(0,s.h)("onto-search-icon",{onClick:this.setIsOpen(!0)}))}setIsOpen(e){return()=>{this.isOpen=e,this.isOpen&&this.loadSelectedViewFromStorage()}}createButtonConfig(){return new n.SearchButtonConfig({isRadio:!0,buttons:[this.createSearchButton(r.R.TABLE_VIEW,"rdf_search.buttons.table",()=>{this.redirectUrl=n.UriUtil.RESOURCE_URL,this.resourceSearchStorageService.setSelectedView(r.R.TABLE_VIEW)},!0),this.createSearchButton(r.R.VISUAL_VIEW,"rdf_search.buttons.visual",()=>{this.redirectUrl=n.UriUtil.GRAPHS_VISUALIZATIONS_URL,this.resourceSearchStorageService.setSelectedView(r.R.VISUAL_VIEW)},!1)]})}createSearchButton(e,t,o,s){return new n.SearchButton({label:l.T.translate(t),id:e,callback:o,selected:s})}onSuggestionSelected(){this.subscriptions.add(this.eventService.subscribe(r.R.SUGGESTION_SELECTED_EVENT,e=>{if(e.getContext()===this.RDF_CONTEXT){const t=e.getSuggestion().getOverrideToVisual()?n.UriUtil.GRAPHS_VISUALIZATIONS_URL:this.redirectUrl;(0,n.openInNewTab)(n.UriUtil.createAutocompleteRedirect(t,e.getSuggestion().getValue()))}}))}onKeyDown(){return e=>{"Escape"===e.key&&(this.isOpen=!1)}}focusSearchInput(){this.isOpen&&c.H.focusElement(`#${this.RDF_CONTEXT}`)}loadSelectedViewFromStorage(){const e=this.resourceSearchStorageService.getSelectedView();if(e){const t=this.buttonConfig.getButtons().find(t=>t.id===e);t&&(this.buttonConfig=this.buttonConfig.selectButton(t))}}};m.style=":root{--search-primary-color:var(--primary-color, #9e2b0a)}.onto-rdf-search{display:flex;align-items:center;line-height:0.75;font-size:1.4em;height:auto}.onto-rdf-search .search-area{white-space:nowrap;text-align:start;font-weight:300;max-width:100vw;position:fixed;right:3em;z-index:1;display:block;width:60vw;-webkit-transition:top 0.3s ease-in, opacity 0.5s ease;transition:top 0.3s ease-in, opacity 0.5s ease;box-shadow:0 3px 6px rgba(0, 0, 0, 0.1);border-radius:0;margin-bottom:1em;background-color:white;padding:1.6rem;border:1px solid rgba(0, 0, 0, 0.125)}.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(--search-primary-color);transition:all 0.15s ease-out}.onto-rdf-search i.fa-magnifying-glass,.onto-rdf-search i.close-btn{padding:0.5rem 0.8rem}.onto-rdf-search i:hover{transform:scale(1.2)}";const f=({repository:e,defaultToggleButtonName:t,location:o})=>{var r;const n=e?"repository-selection active-repository":"repository-selection no-selected-repository";return(0,s.h)("div",{class:n,"data-test":"repository-selection"},e&&(0,s.h)("i",{class:"button-icon icon-repo-"+e.type})," ",null!==(r=null==e?void 0:e.id)&&void 0!==r?r:t,o)},v=class{constructor(e){(0,s.r)(this,e),this.repositoryContextService=n.ServiceProvider.get(n.RepositoryContextService),this.subscriptions=[]}onItemsChanged(e){(null==e?void 0:e.length)?this.dropdownItems=this.attachTooltipsToItems(this.items):this.dropdownItems=[]}connectedCallback(){var e;this.subscriptions.push(...this.subscribeToTranslationChanged()),(null===(e=this.items)||void 0===e?void 0:e.length)?this.dropdownItems=this.attachTooltipsToItems(this.items):this.dropdownItems=[]}disconnectedCallback(){this.subscriptions.forEach(e=>e())}render(){const e=(0,s.h)(f,{key:"713344a720b1cbd39899946f688ccc00e0e67715",repository:this.currentRepository,defaultToggleButtonName:this.getButtonLabel(),location:this.getLocation()});return(0,s.h)(s.a,{key:"91a8cfbe304712bf2393666a524c5f88134a667c"},(0,s.h)("onto-dropdown",Object.assign({key:"632f81fc84d682b8812c95ed579330e324f02866",class:"onto-repository-selector","data-test":"onto-repository-selector",onValueChanged:this.onValueChanged(),dropdownButtonName:e,dropdownButtonTooltip:this.createTooltipFunctionForRepository(this.currentRepository)},this.currentRepository?{dropdownButtonGuideSelector:`repository-id-${this.currentRepository.id}`}:{},{dropdownTooltipTrigger:"mouseenter focus",dropdownAlignment:i.D.RIGHT,tooltipPlacement:this.tooltipAlignment,tooltipTheme:"light-border",items:this.dropdownItems})))}attachTooltipsToItems(e){return e?e.map(e=>e.setTooltip(this.createTooltipFunctionForRepository(e.value))):[]}tooltipAlignment(e){return e?a.O.LEFT:a.O.BOTTOM}onValueChanged(){return e=>this.onRepositoryChanged(e.detail)}createTooltipFunctionForRepository(e){return async()=>{if(!e)return"";const t=await this.repositorySizeInfoFetcher(e);return this.buildRepositoryTooltipHtml(e,t)}}buildRepositoryTooltipHtml(e,t){let o=`\n <div class="repository-tooltip-title">\n <span class="label">${l.T.translate("repository-selector.tooltip.repository")}</span>\n <span class="value">${e.id}</span>\n </div>\n <div class="repository-tooltip-content">\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.location")}:</div>\n <div class="value">${e.location?e.location:l.T.translate("repository-selector.tooltip.local")}</div>\n </div>\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.type")}:</div>\n <div class="value">${l.T.translate("repository-selector.tooltip.types."+(e.type||"unknown"))}</div>\n </div>\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.access")}:</div>\n <div class="value">${l.T.translate(this.canWriteRepo(e)?"repository-selector.tooltip.accesses.read_write":"repository-selector.tooltip.accesses.read")}</div>\n </div>`;return o+=this.buildRepositorySizeInfoHtml(t),o+="</div>",o}buildRepositorySizeInfoHtml(e){if(!e||e.total<0)return"";let t=`\n <div class="repository-tooltip-row total">\n <div class="label">${l.T.translate("repository-selector.tooltip.repository-size.total")}:</div>\n <div class="value">${this.totalTripletsFormatter.format(e.total)}</div>\n </div>`;if(e.explicit>=0&&(t+=`\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.repository-size.explicit")}:</div>\n <div class="value">${this.totalTripletsFormatter.format(e.explicit)}</div>\n </div>`),e.inferred>=0&&(t+=`\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.repository-size.inferred")}:</div>\n <div class="value">${this.totalTripletsFormatter.format(e.inferred)}</div>\n </div>`),e.total>=0){let o="-";e.explicit>0&&(o=this.totalTripletsFormatter.format(e.total/e.explicit)),t+=`\n <div class="repository-tooltip-row">\n <div class="label">${l.T.translate("repository-selector.tooltip.repository-size.expansion_ratio")}:</div>\n <div class="value">${o}</div>\n </div>`}return t}subscribeToTranslationChanged(){return[l.T.onTranslate("repository-selector.btn.toggle",[],e=>{this.defaultToggleButtonName=e}),l.T.onTranslate("repository-selector.btn.no_repositories",[],e=>{this.noRepositoriesButtonMessage=e})]}onRepositoryChanged(e){this.repositoryContextService.updateSelectedRepository(e)}getLocation(){var e;return(null===(e=this.currentRepository)||void 0===e?void 0:e.location)?`@${n.UriUtil.shortenIri(this.currentRepository.location)}`:""}getButtonLabel(){var e;return(null===(e=this.items)||void 0===e?void 0:e.length)?this.defaultToggleButtonName:this.noRepositoriesButtonMessage}static get watchers(){return{items:["onItemsChanged"]}}};v.style=":root{--onto-repository-selector-color:var(--secondary-color, #373a3c)}:host{display:block}.onto-repository-selector .onto-dropdown.closed .onto-dropdown-button{background-color:#ebebeb;color:var(--onto-repository-selector-color)}.onto-repository-selector .onto-dropdown.closed .onto-dropdown-button:hover{background-color:#d4d4d4}.onto-repository-selector .repository-selector-dropdown-item{display:flex;align-items:center;gap:0.4em}.onto-repository-selector .repository-selector-dropdown-item .item-icon{font-size:1.4em}.onto-repository-selector .repository-selector-dropdown-item .item-label{line-height:0.75em;display:inline-block;vertical-align:middle;text-align:left}.onto-repository-selector .repository-selector-dropdown-item .item-label .repository-id{line-height:0.75em}.onto-repository-selector .repository-selector-dropdown-item .item-label .repository-location{font-weight:300;font-size:0.75em;margin-top:0.4em;display:inline-block;max-width:120px;text-overflow:ellipsis;overflow:hidden}.tippy-box[data-theme=light-border]{border-radius:0}.tippy-box[data-theme=light-border] .tippy-content{padding:0;color:#373a3c;border:1px solid rgba(0, 0, 0, 0.125);box-shadow:1px 3px 6px rgba(0, 0, 0, 0.2)}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-title{font-size:1rem;font-weight:400;padding:8px 14px;background-color:#f7f7f7;border-bottom:#EBEBEB 1px solid}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-title .value{word-wrap:break-word}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-content{padding:1.5rem 0.5rem;display:flex;flex-direction:column;gap:0.8em;font-weight:400;font-size:0.875rem}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row{display:flex;flex-direction:row;justify-content:space-between}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row.total{margin-top:1.2em}.tippy-box[data-theme=light-border] .tippy-content .repository-tooltip-row .value{margin-left:0.6em}";const y=class{constructor(e){(0,s.r)(this,e),this.tooltipKey="rdf_search.labels.search",this.subscriptions=new n.SubscriptionList}connectedCallback(){this.onTooltipChange()}disconnectedCallback(){this.subscriptions.unsubscribeAll()}render(){return(0,s.h)("i",{key:"0f4007de16d840b3de144efb0dd046196a6de10b","tooltip-content":this.tooltipLabel,"tooltip-placement":a.O.BOTTOM,class:"onto-search-icon fa-light fa-magnifying-glass"})}onTooltipChange(){this.subscriptions.add(l.T.onTranslate(this.tooltipKey,[],e=>this.tooltipLabel=e))}};y.style=".onto-search-icon{cursor:pointer;color:var(--primary-color, #9e2b0a);transition:all 0.15s ease-out;font-size:1.6rem}.onto-search-icon.fa-magnifying-glass{padding:0.5rem 0.8rem}.onto-search-icon:hover{transform:scale(1.2)}";const w=class{constructor(e){(0,s.r)(this,e),this.autocompleteService=n.ServiceProvider.get(n.AutocompleteService),this.autocompleteContextService=n.ServiceProvider.get(n.AutocompleteContextService),this.autocompleteStorageService=n.ServiceProvider.get(n.AutocompleteStorageService),this.resourceSearchStorageService=n.ServiceProvider.get(n.ResourceSearchStorageService),this.toastrService=n.ServiceProvider.get(n.OntoToastrService),this.eventService=n.ServiceProvider.get(n.EventService),this.namespaceContextService=n.ServiceProvider.get(n.NamespacesContextService),this.subscriptions=new n.SubscriptionList,this.autocompleteWarningShown=!1,this.skipValidation=!1,this.isHidden=!1,this.isAutocompleteEnabled=!1,this.handleInput=e=>{const t=e.target;t.value?(this.setInputValue(t.value),this.checkForAutocomplete()):this.clearInput()},this.clearInput=()=>{this.setInputValue(""),this.preserveSearch&&this.resourceSearchStorageService.clearStoredSearch()},this.onKeyDown=e=>{switch(e.key){case"Enter":this.onEnter(e);break;case"Escape":this.onEscape();break;case"ArrowUp":this.onArrowUp(e);break;case"ArrowDown":this.onArrowDown(e)}}}onVisibilityChange(e){var t;e?null===(t=this.searchResult)||void 0===t||t.clearSuggestions():this.setInputValue(this.resourceSearchStorageService.getInputValue())}connectedCallback(){this.onAutocompleteEnabledChange(),this.onNamespaceChange(),this.loadInputFromStorage()}disconnectedCallback(){this.subscriptions.unsubscribeAll()}render(){var e,t,o;return(0,s.h)("section",{key:"62cc53dd259de23a622c5403e245cd184bbed457",class:"search-resources-input"},(0,s.h)("div",{key:"1f01096b931e6b00d11a589469e2c0d6f0a482fa",class:"input-row"},(0,s.h)("span",{key:"69d07343236d427e97c152113c2298a877d51d92",class:"input-wrapper"},(0,s.h)("input",{key:"bb345a34a7db8965b8ba1753347d5fa8875f37eb",value:this.inputValue,id:this.context,type:"text",autocomplete:"off",placeholder:`${l.T.translate("rdf_search.labels.search")}...`,ref:e=>this.inputRef=e,onKeyDown:this.onKeyDown,"data-test":this.context,onInput:this.handleInput}),(null===(e=this.inputValue)||void 0===e?void 0:e.length)?(0,s.h)("i",{onClick:this.clearInput,"tooltip-content":l.T.translate("rdf_search.tooltips.clear"),"tooltip-placement":a.O.BOTTOM,class:"fa-light fa-xmark clear-input"}):""),null===(t=this.buttonConfig)||void 0===t?void 0:t.getButtons().getItems().map(e=>(0,s.h)("button",{key:e.label,onClick:this.handleButtonClick(e),class:e.selected?"selected":""},e.label))),(0,s.h)("span",{key:"aa0b7701e0c8eee0b7eee02253b7da9989ff0bf6",class:"hint"},l.T.translate("rdf_search.labels.hint")),(0,s.h)("section",{key:"16930ff94cd1e182c73bf93127472806f00cccb2",class:"autocomplete-results-wrapper","data-test":"onto-autocomplete-results"},null===(o=this.searchResult)||void 0===o?void 0:o.getSuggestions().getItems().map(e=>(0,s.h)("p",{key:e.getId(),onClick:this.onSuggestionClick(e),"data-test":"onto-autocomplete-suggestion",onMouseMove:this.hoverSuggestion(e),class:`${e.isHovered()?"hovered":""} ${e.isSelected()?"selected":""}`,innerHTML:e.getDescription()}))))}handleButtonClick(e){return()=>this.buttonConfig=this.buttonConfig.selectButton(e)}loadAutocompleteResults(){var e;this.inputValue?this.isAutocompleteEnabled&&this.autocompleteService.search(this.inputValue).then(e=>{this.onResultsReceived(e)}):null===(e=this.searchResult)||void 0===e||e.clearSuggestions()}hoverSuggestion(e){return()=>this.searchResult=this.searchResult.hoverSuggestion(e)}onAutocompleteEnabledChange(){this.isAutocompleteEnabled=this.autocompleteStorageService.isEnabled(),this.subscriptions.add(this.autocompleteContextService.onAutocompleteEnabledChanged(e=>{this.isAutocompleteEnabled=null!=e?e:this.isAutocompleteEnabled}))}checkForAutocomplete(){if(this.inputValue.length>0&&!this.isAutocompleteEnabled&&!this.autocompleteWarningShown){this.autocompleteWarningShown=!0;const e=l.T.translate("rdf_search.toasts.autocomplete_is_off");this.toastrService.warning(`<a class="no-underline" style="font-weight: 500">${e}</a>`,{onClick:(0,n.navigateTo)("autocomplete"),removeOnClick:!0})}}onSuggestionClick(e){return t=>{e.setOverrideToVisual(t.ctrlKey||t.metaKey),this.searchRdfResource(e)}}searchRdfResource(e){e.getType()===n.SuggestionType.PREFIX?this.expandPrefix(e):(this.notifyRdfResourceSelected(e),this.preserveSearch&&this.resourceSearchStorageService.setLastSelected(e))}notifyRdfResourceSelected(e){var t;this.searchResult=null===(t=this.searchResult)||void 0===t?void 0:t.selectSuggestion(e),this.eventService.emit({NAME:r.R.SUGGESTION_SELECTED_EVENT,payload:new n.SuggestionSelectedPayload(e,this.context)})}expandPrefix(e){this.setInputValue(this.namespaces.getByPrefix(e.getValue())),this.inputRef.focus()}setInputValue(e){this.inputValue=e,this.preserveSearch&&this.resourceSearchStorageService.setInputValue(this.inputValue),this.loadAutocompleteResults()}onNamespaceChange(){this.subscriptions.add(this.namespaceContextService.onNamespacesChanged(e=>{this.namespaces=e}))}onEnter(e){var t;let o=null===(t=this.searchResult)||void 0===t?void 0:t.getHoveredSuggestion();o||(o=new n.Suggestion({value:n.UriUtil.removeAngleBrackets(this.inputValue),type:n.SuggestionType.URI})),o.setOverrideToVisual(e.ctrlKey||e.metaKey),this.validateAndSearch(o)}onArrowUp(e){this.searchResult=this.searchResult.hoverPreviousSuggestion(),this.displaySuggestion(e)}onArrowDown(e){this.searchResult=this.searchResult.hoverNextSuggestion(),this.displaySuggestion(e)}displaySuggestion(e){e.preventDefault(),this.inputRef.value=this.searchResult.getHoveredSuggestion().getValue(),this.scrollToSuggestionBySelector("p.hovered")}getSuggestionValue(e){return e.getType()===n.SuggestionType.PREFIX?this.namespaces.getByPrefix(e.getValue()):e.getValue()}scrollToSuggestionBySelector(e,t){c.H.waitForElement(e).then(()=>{c.H.scrollElementIntoView(e,t)})}validateAndSearch(e){if(!this.skipValidation){if(!e.getValue())return void this.toastrService.error(l.T.translate("rdf_search.toasts.empty_input"));if(!n.UriUtil.isValidUri(this.getSuggestionValue(e)))return void this.toastrService.error(l.T.translate("rdf_search.toasts.invalid_uri"))}this.searchRdfResource(e)}onEscape(){this.preserveSearch||this.clearInput()}loadInputFromStorage(){this.preserveSearch&&(this.inputValue=this.resourceSearchStorageService.getInputValue()||"")}onResultsReceived(e){const t=null==e?void 0:e.getByValue(this.resourceSearchStorageService.getLastSelectedValue());t&&this.preserveSearch?(e.hoverSuggestion(t),this.searchResult=e.selectSuggestion(t),this.scrollToSuggestionBySelector("p.hovered.selected",{block:"start"})):(this.searchResult=e.hoverFirstSuggestion(),this.scrollToSuggestionBySelector("p.hovered",{block:"start"}))}static get watchers(){return{isHidden:["onVisibilityChange"]}}};w.style=".search-resources-input{padding-right:20px}.search-resources-input .input-row{gap:3px;display:flex;flex-wrap:wrap}.search-resources-input .input-row .input-wrapper{position:relative;display:flex;flex:1;min-width:20vw}.search-resources-input .input-row .input-wrapper input{flex:1;padding:0.5rem 0.75rem;font-size:1rem;line-height:1.25;color:#55595c;background-color:#fff;background-image:none;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0, 0, 0, 0.15);min-width:inherit}.search-resources-input .input-row .input-wrapper input:focus{color:#55595c;border-color:#66afe9;outline:0}.search-resources-input .input-row i.fa-xmark{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(--secondary-color, #003663)}.search-resources-input .input-row button.selected{background-color:var(--primary-color, #9e2b0a);color:white}.search-resources-input .input-row button:focus{outline:none}.search-resources-input .input-row button:hover:not(.selected){background-color:#d4d4d4;border-color:#d4d4d4}.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:#373a3c;background-color:#fff;margin-bottom:0;padding:5px 25px;cursor:pointer}.search-resources-input .autocomplete-results-wrapper p b{color:var(--secondary-color, #003663)}.search-resources-input .autocomplete-results-wrapper p.selected{background-color:var(--autocomplete-background-selected, #02A99A)}.search-resources-input .autocomplete-results-wrapper p.hovered:not(.selected),.search-resources-input .autocomplete-results-wrapper p:hover:not(.selected){background-color:var(--autocomplete-background, rgba(2, 169, 143, 0.3019607843))}";const S=class{constructor(e){(0,s.r)(this,e)}render(){return(0,s.h)("section",{key:"198e55a469a059b1b9490c873987146c8c5f55a1",class:"onto-user-login"},(0,s.h)("button",{key:"5a9f024c81571784f1bda1c5c74a39fba44f7bed",onClick:(0,n.navigateTo)("/login")},(0,s.h)("i",{key:"0296dc4fbd1efb5e992fcc38db556488cd65ba0f",class:"icon-arrow-right"}),(0,s.h)("translate-label",{key:"597c98c2925e263e78688fa4c9cefd4230074d02",class:"user-login-label",labelKey:"user_menu.login"})))}};S.style=":root{--onto-user-login-color:var(--secondary-color, #373a3c)}.onto-user-login{position:relative;width:fit-content}.onto-user-login button{display:flex;color:var(--onto-user-login-color);flex-direction:row;line-height:1.5;font-weight:400;font-size:1rem;text-align:center;user-select:none;border:1px solid transparent;padding:0.4em 1rem;cursor:pointer;white-space:nowrap;place-items:center;transition:all 0.15s ease-out}.onto-user-login button .user-login-label{padding:0 0.4rem}.onto-user-login button:hover{background-color:#d4d4d4;border-color:#d4d4d4}.onto-user-login button:hover .fa-user{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.fa-angle-down{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}";const k=class{constructor(e){(0,s.r)(this,e),this.logout=()=>{n.ServiceProvider.get(n.AuthenticationService).logout()},this.toggleDropdown=()=>{this.isOpen=!this.isOpen},this.handleOutsideClick=e=>{this.isOpen&&!this.hostElement.contains(e.target)&&(this.isOpen=!1)}}connectedCallback(){document.addEventListener("click",this.handleOutsideClick)}disconnectedCallback(){document.removeEventListener("click",this.handleOutsideClick)}render(){var e;return(0,s.h)("section",{key:"9af009c793910f1b3e649e8dc8caa5ee0ef453f4",class:"onto-user-menu"},(0,s.h)("div",{key:"57d6117855907c7448e2c11ea42c226ef15d218a",class:"dropdown-toggle-wrapper",onClick:this.toggleDropdown},(0,s.h)("button",{key:"30e36c837726d768dbf62d564a6307df3e2244eb",class:this.isOpen?"open":""},(0,s.h)("i",{key:"a8c1de5c3aa4ef5e018710ed26e2bab25701400e",class:"fa-solid fa-user"}),(0,s.h)("span",{key:"0be9deb90e4a63116d0464fef29a8d0ec1b9fbcf",class:"username"},this.user.username),(0,s.h)("i",{key:"7e18b21b67075714cf636d113683bcc3dbdb0daa",class:"fa-light fa-angle-down "+(this.isOpen?"fa-rotate-180":"")})),this.isOpen?(0,s.h)("section",{class:"onto-user-menu-dropdown"},(0,s.h)("translate-label",{onClick:(0,n.navigateTo)("settings"),labelKey:"user_menu.my_settings"}),(null===(e=this.securityConfig)||void 0===e?void 0:e.hasExternalAuthUser)?"":(0,s.h)("translate-label",{onClick:this.logout,labelKey:"user_menu.logout"})):""))}get hostElement(){return(0,s.g)(this)}};k.style=":root{--user-menu-primary-color:var(--primary-color, #9e2b0a)}.onto-user-menu{position:relative;width:fit-content}.onto-user-menu button{display:flex;flex-direction:row;line-height:1.5;font-weight:400;font-size:1rem;text-align:center;user-select:none;border:1px solid transparent;padding:0.4em 1rem;cursor:pointer;white-space:nowrap;place-items:center;transition:all 0.15s ease-out;color:var(--secondary-color)}.onto-user-menu button:hover{background-color:#d4d4d4;border-color:#d4d4d4}.onto-user-menu button:hover .fa-user{transform:scale(1.2)}.onto-user-menu button:focus{outline:none}.onto-user-menu button.open{color:white;background-color:var(--user-menu-primary-color);border-color:var(--user-menu-primary-color)}.onto-user-menu button.open .fa-user{color:var(--icon-on-primary-color, rgba(255, 255, 255, 0.8))}.onto-user-menu button.open:hover .fa-user{transform:scale(1.2)}.onto-user-menu button .username{padding:0 5px}.onto-user-menu button i{color:var(--user-menu-primary-color);line-height:0.75;font-size:1.2em;transition:0.15s ease-out}.onto-user-menu button i.fa-angle-down{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}.onto-user-menu .onto-user-menu-dropdown{position:absolute;z-index:1000;display:flex;flex-direction:column;cursor:pointer;color:white;text-decoration:none;right:0;min-width:7rem;font-size:1rem;width:100%;background-color:var(--user-menu-primary-color)}.onto-user-menu .onto-user-menu-dropdown translate-label{padding:0.4rem 1rem;user-select:none;white-space:nowrap;font-weight:400}.onto-user-menu .onto-user-menu-dropdown translate-label:hover,.onto-user-menu .onto-user-menu-dropdown translate-label:focus{background-color:rgba(0, 0, 0, 0.1)}"},87050:(e,t,o)=>{o.d(t,{D:()=>s,R:()=>r});class s{constructor(){this._dropdownTooltipTrigger="manual"}get name(){return this._name}setName(e){return this._name=e,this}get nameLabelKey(){return this._nameLabelKey}setNameLabelKey(e){return this._nameLabelKey=e,this}get tooltip(){return this._tooltip}setTooltip(e){return this._tooltip=e,this}get tooltipLabelKey(){return this._tooltipLabelKey}setTooltipLabelKey(e){return this._tooltipLabelKey=e,this}get iconClass(){return this._iconClass}setIconClass(e){return this._iconClass=e,this}get value(){return this._value}setValue(e){return this._value=e,this}get dropdownTooltipTrigger(){return this._dropdownTooltipTrigger}setDropdownTooltipTrigger(e){return this._dropdownTooltipTrigger=e,this}get cssClass(){return this._cssClass}setCssClass(e){return this._cssClass=e,this}get guideSelector(){return this._guideSelector}setGuideSelector(e){return this._guideSelector=e,this}}var r;!function(e){e.SUGGESTION_SELECTED_EVENT="suggestion-selected-event",e.TABLE_VIEW="table",e.VISUAL_VIEW="visual",e.RDF_SEARCH_ICON_CLICKED="rdfSearchIconClicked"}(r||(r={}))}};
|
|
2
|
-
//# sourceMappingURL=82206.c251c5be920eed354934.bundle.js.map
|