graphdb-workbench 3.1.0-TR11 → 3.1.0-TR13
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/{12396.0e82ea391201a21331b7.bundle.js → 12396.a4cb05c47cf17cbfd891.bundle.js} +2 -2
- package/dist/{12396.0e82ea391201a21331b7.bundle.js.map → 12396.a4cb05c47cf17cbfd891.bundle.js.map} +1 -1
- package/dist/{13486.58f89862c40c0f84cb09.bundle.js → 13486.b4c8bf17c522084e59fb.bundle.js} +2 -2
- package/dist/13486.b4c8bf17c522084e59fb.bundle.js.map +1 -0
- package/dist/13813.84b8832e83dec53d66b9.bundle.js +2 -0
- package/dist/13813.84b8832e83dec53d66b9.bundle.js.map +1 -0
- package/dist/{15535.48081afce23c62f128e9.bundle.js → 15535.aa936791f2b5dd74f7ee.bundle.js} +2 -2
- package/dist/{15535.48081afce23c62f128e9.bundle.js.map → 15535.aa936791f2b5dd74f7ee.bundle.js.map} +1 -1
- package/dist/{16162.df8405c22910f90c37ad.bundle.js → 16162.dca58b88b4d145a7fcf7.bundle.js} +2 -2
- package/dist/{16162.df8405c22910f90c37ad.bundle.js.map → 16162.dca58b88b4d145a7fcf7.bundle.js.map} +1 -1
- package/dist/{20287.1da2ac80bac0f2a8672c.bundle.js → 20287.22c94209c4a5b0aa569b.bundle.js} +2 -2
- package/dist/{20287.1da2ac80bac0f2a8672c.bundle.js.map → 20287.22c94209c4a5b0aa569b.bundle.js.map} +1 -1
- package/dist/{21136.4ab3afcde1292d1f06bd.bundle.js → 21136.b0b60f89d0aecc146390.bundle.js} +2 -2
- package/dist/{21136.4ab3afcde1292d1f06bd.bundle.js.map → 21136.b0b60f89d0aecc146390.bundle.js.map} +1 -1
- package/dist/{21142.aaa6ddd23c1aa3fb59f3.bundle.js → 21142.c1026a9490be83c3be64.bundle.js} +2 -2
- package/dist/{21142.aaa6ddd23c1aa3fb59f3.bundle.js.map → 21142.c1026a9490be83c3be64.bundle.js.map} +1 -1
- package/dist/{21170.f3fa40f23586f6ee4efc.bundle.js → 21170.4f1089c6ecb858d32307.bundle.js} +2 -2
- package/dist/{21170.f3fa40f23586f6ee4efc.bundle.js.map → 21170.4f1089c6ecb858d32307.bundle.js.map} +1 -1
- package/dist/{21195.5354c27d13a1f201dd19.bundle.js → 21195.4025ee868703a7826ae6.bundle.js} +2 -2
- package/dist/{21195.5354c27d13a1f201dd19.bundle.js.map → 21195.4025ee868703a7826ae6.bundle.js.map} +1 -1
- package/dist/23283.cc3b7fb640bcd9a0f7d2.bundle.js +2 -0
- package/dist/23283.cc3b7fb640bcd9a0f7d2.bundle.js.map +1 -0
- package/dist/24785.ff0689efffa1540e2904.bundle.js +2 -0
- package/dist/24785.ff0689efffa1540e2904.bundle.js.map +1 -0
- package/dist/25090.a073fc84568f38c40d67.bundle.js +2 -0
- package/dist/25090.a073fc84568f38c40d67.bundle.js.map +1 -0
- package/dist/{25747.d6f1641bf4600fe2570e.bundle.js → 25747.d8d9c4a6472dddad834f.bundle.js} +2 -2
- package/dist/{25747.d6f1641bf4600fe2570e.bundle.js.map → 25747.d8d9c4a6472dddad834f.bundle.js.map} +1 -1
- package/dist/{27580.53ac898e74f0bcc1ea5b.bundle.js → 27580.af47ce7d030e916c7a4e.bundle.js} +2 -2
- package/dist/{27580.53ac898e74f0bcc1ea5b.bundle.js.map → 27580.af47ce7d030e916c7a4e.bundle.js.map} +1 -1
- package/dist/28319.60fe63ffc79f8ba2cb23.bundle.js +2 -0
- package/dist/28319.60fe63ffc79f8ba2cb23.bundle.js.map +1 -0
- package/dist/{31636.be790098c5979344c509.bundle.js → 31636.fbeed6706183663eeee2.bundle.js} +2 -2
- package/dist/{31636.be790098c5979344c509.bundle.js.map → 31636.fbeed6706183663eeee2.bundle.js.map} +1 -1
- package/dist/{32489.a540e39f30922c1c5341.bundle.js → 32489.fafc19e8e0eb964a3ec5.bundle.js} +2 -2
- package/dist/{32489.a540e39f30922c1c5341.bundle.js.map → 32489.fafc19e8e0eb964a3ec5.bundle.js.map} +1 -1
- package/dist/34330.298b3fb714ce7fc0bda1.bundle.js +2 -0
- package/dist/34330.298b3fb714ce7fc0bda1.bundle.js.map +1 -0
- package/dist/{34495.e36ea443ec8352b615e6.bundle.js → 34495.bcc635daf309f60ba23b.bundle.js} +2 -2
- package/dist/{34495.e36ea443ec8352b615e6.bundle.js.map → 34495.bcc635daf309f60ba23b.bundle.js.map} +1 -1
- package/dist/36665.eda6cfdf545f2608a6c7.bundle.js +2 -0
- package/dist/36665.eda6cfdf545f2608a6c7.bundle.js.map +1 -0
- package/dist/36737.9d37e743918e6d45c10b.bundle.js +2 -0
- package/dist/36737.9d37e743918e6d45c10b.bundle.js.map +1 -0
- package/dist/{38360.f109d6e1129e9f58f7e4.bundle.js → 38360.55d84891b7ad65b37108.bundle.js} +2 -2
- package/dist/{38360.f109d6e1129e9f58f7e4.bundle.js.map → 38360.55d84891b7ad65b37108.bundle.js.map} +1 -1
- package/dist/{38644.8ad2f682465c65e84a9e.bundle.js → 38644.62bda02822616b30f0c7.bundle.js} +2 -2
- package/dist/{38644.8ad2f682465c65e84a9e.bundle.js.map → 38644.62bda02822616b30f0c7.bundle.js.map} +1 -1
- package/dist/{38843.a59a07e73a42cfb5e52d.bundle.js → 38843.28a56aadf139c5f83a07.bundle.js} +2 -2
- package/dist/{38843.a59a07e73a42cfb5e52d.bundle.js.map → 38843.28a56aadf139c5f83a07.bundle.js.map} +1 -1
- package/dist/39448.10bcf72a104ce8276328.bundle.js +2 -0
- package/dist/39448.10bcf72a104ce8276328.bundle.js.map +1 -0
- package/dist/{39518.77133465be137d37352f.bundle.js → 39518.24cdd6c870b5b026f43b.bundle.js} +2 -2
- package/dist/{39518.77133465be137d37352f.bundle.js.map → 39518.24cdd6c870b5b026f43b.bundle.js.map} +1 -1
- package/dist/{39539.60c0d00449eb3988203c.bundle.js → 39539.cb091b6ad5074999b72d.bundle.js} +2 -2
- package/dist/{39539.60c0d00449eb3988203c.bundle.js.map → 39539.cb091b6ad5074999b72d.bundle.js.map} +1 -1
- package/dist/{39874.6ca23ead080b52dc1bc6.bundle.js → 39874.ff510b958fcdbda4db58.bundle.js} +2 -2
- package/dist/39874.ff510b958fcdbda4db58.bundle.js.map +1 -0
- package/dist/4125.fd7946ca01aa51acba15.bundle.js +2 -0
- package/dist/4125.fd7946ca01aa51acba15.bundle.js.map +1 -0
- package/dist/{41453.9d5109ca609b8a870e5f.bundle.js → 41453.b696ac82dcadda585f04.bundle.js} +2 -2
- package/dist/{41453.9d5109ca609b8a870e5f.bundle.js.map → 41453.b696ac82dcadda585f04.bundle.js.map} +1 -1
- package/dist/{41621.d1b7d799116c07df17d1.bundle.js → 41621.68c5ebc2104a62e2b41d.bundle.js} +2 -2
- package/dist/41621.68c5ebc2104a62e2b41d.bundle.js.map +1 -0
- package/dist/{42129.42e556d7bd6885bba119.bundle.js → 42129.f9f2bafc4520aad7f942.bundle.js} +2 -2
- package/dist/{42129.42e556d7bd6885bba119.bundle.js.map → 42129.f9f2bafc4520aad7f942.bundle.js.map} +1 -1
- package/dist/42143.1483a9470e09485cc4e4.bundle.js +2 -0
- package/dist/42143.1483a9470e09485cc4e4.bundle.js.map +1 -0
- package/dist/{44444.834176d51f7ef0dab499.bundle.js → 44444.153ba656276a2f1bfdc3.bundle.js} +2 -2
- package/dist/{44444.834176d51f7ef0dab499.bundle.js.map → 44444.153ba656276a2f1bfdc3.bundle.js.map} +1 -1
- package/dist/{45843.49565fdfa9b426eeb208.bundle.js → 45843.2fb1782023f0992f82c1.bundle.js} +2 -2
- package/dist/{45843.49565fdfa9b426eeb208.bundle.js.map → 45843.2fb1782023f0992f82c1.bundle.js.map} +1 -1
- package/dist/51087.2e79fab6ad7c1282ee52.bundle.js +2 -0
- package/dist/51087.2e79fab6ad7c1282ee52.bundle.js.map +1 -0
- package/dist/51490.ca9c851e556c4c7940e5.bundle.js +2 -0
- package/dist/51490.ca9c851e556c4c7940e5.bundle.js.map +1 -0
- package/dist/{55862.bed529171c68ce972610.bundle.js → 55862.88796a9db69e193b8b83.bundle.js} +2 -2
- package/dist/{55862.bed529171c68ce972610.bundle.js.map → 55862.88796a9db69e193b8b83.bundle.js.map} +1 -1
- package/dist/57952.b096d19a802e06030ef0.bundle.js +2 -0
- package/dist/57952.b096d19a802e06030ef0.bundle.js.map +1 -0
- package/dist/{58306.67303bb681080a4df993.bundle.js → 58306.f76e839a5a73f4f4e23a.bundle.js} +2 -2
- package/dist/{58306.67303bb681080a4df993.bundle.js.map → 58306.f76e839a5a73f4f4e23a.bundle.js.map} +1 -1
- package/dist/{59718.f1ae3d1480c7179c57f0.bundle.js → 59718.dfd5982de2b39ccaa2ee.bundle.js} +2 -2
- package/dist/59718.dfd5982de2b39ccaa2ee.bundle.js.map +1 -0
- package/dist/67232.5a23ef1e641a2ca030c6.bundle.js +2 -0
- package/dist/67232.5a23ef1e641a2ca030c6.bundle.js.map +1 -0
- package/dist/{67888.7c67b21eb93e77d4bb70.bundle.js → 67888.1537da0fa115fd7a2f06.bundle.js} +2 -2
- package/dist/{67888.7c67b21eb93e77d4bb70.bundle.js.map → 67888.1537da0fa115fd7a2f06.bundle.js.map} +1 -1
- package/dist/68685.3ec66ceae3e494eba19b.bundle.js +2 -0
- package/dist/68685.3ec66ceae3e494eba19b.bundle.js.map +1 -0
- package/dist/{69112.817cf7b4d2911108c736.bundle.js → 69112.82e4d57df53e40b54050.bundle.js} +2 -2
- package/dist/69112.82e4d57df53e40b54050.bundle.js.map +1 -0
- package/dist/{70938.aee60e09777981a03d4c.bundle.js → 70938.fd6dd4e05b512128a074.bundle.js} +2 -2
- package/dist/{70938.aee60e09777981a03d4c.bundle.js.map → 70938.fd6dd4e05b512128a074.bundle.js.map} +1 -1
- package/dist/{72379.db460365f0917f4f179b.bundle.js → 72379.207930bac55b212354ae.bundle.js} +2 -2
- package/dist/{72379.db460365f0917f4f179b.bundle.js.map → 72379.207930bac55b212354ae.bundle.js.map} +1 -1
- package/dist/{73667.551fe5a23573c3b0af21.bundle.js → 73667.f42971a7477d6744c54c.bundle.js} +2 -2
- package/dist/{73667.551fe5a23573c3b0af21.bundle.js.map → 73667.f42971a7477d6744c54c.bundle.js.map} +1 -1
- package/dist/{73793.c064cab7716d96ea9713.bundle.js → 73793.adf7b10d53a8ee7fa07c.bundle.js} +2 -2
- package/dist/{73793.c064cab7716d96ea9713.bundle.js.map → 73793.adf7b10d53a8ee7fa07c.bundle.js.map} +1 -1
- package/dist/{73964.adb0a07a8c4dad17f592.bundle.js → 73964.fd1ad5e7aa228ad4cbbb.bundle.js} +2 -2
- package/dist/73964.fd1ad5e7aa228ad4cbbb.bundle.js.map +1 -0
- package/dist/74106.f94ca66e9fc021789d6a.bundle.js +2 -0
- package/dist/74106.f94ca66e9fc021789d6a.bundle.js.map +1 -0
- package/dist/{75282.5e1cc49318a8ae5f34cf.bundle.js → 75282.f097da30576bae97c906.bundle.js} +2 -2
- package/dist/{75282.5e1cc49318a8ae5f34cf.bundle.js.map → 75282.f097da30576bae97c906.bundle.js.map} +1 -1
- package/dist/{75849.33196fcbd48643974506.bundle.js → 75849.9c78b9889eccbaee7ae0.bundle.js} +2 -2
- package/dist/{75849.33196fcbd48643974506.bundle.js.map → 75849.9c78b9889eccbaee7ae0.bundle.js.map} +1 -1
- package/dist/{78250.9ea78ce55f322719b1d8.bundle.js → 78250.9f4b0c688bdb06967ed6.bundle.js} +2 -2
- package/dist/{78250.9ea78ce55f322719b1d8.bundle.js.map → 78250.9f4b0c688bdb06967ed6.bundle.js.map} +1 -1
- package/dist/79329.69815208f7a0b1678dc2.bundle.js +2 -0
- package/dist/79329.69815208f7a0b1678dc2.bundle.js.map +1 -0
- package/dist/{82926.93d02072a678a29fbd64.bundle.js → 82926.ce06c4bb3d76b9fe5fa9.bundle.js} +2 -2
- package/dist/{82926.93d02072a678a29fbd64.bundle.js.map → 82926.ce06c4bb3d76b9fe5fa9.bundle.js.map} +1 -1
- package/dist/86142.3f4acbd124c99af11e48.bundle.js +2 -0
- package/dist/86142.3f4acbd124c99af11e48.bundle.js.map +1 -0
- package/dist/86639.5584db5b403656b75ad4.bundle.js +2 -0
- package/dist/86639.5584db5b403656b75ad4.bundle.js.map +1 -0
- package/dist/89695.9a36bd7b51d76634b902.bundle.js +2 -0
- package/dist/89695.9a36bd7b51d76634b902.bundle.js.map +1 -0
- package/dist/{9062.c781c7dfbb1a5f907a71.bundle.js → 9062.91ba683ec5a6cb53c23f.bundle.js} +2 -2
- package/dist/{9062.c781c7dfbb1a5f907a71.bundle.js.map → 9062.91ba683ec5a6cb53c23f.bundle.js.map} +1 -1
- package/dist/94519.1b7b699d10f1278380c3.bundle.js +2 -0
- package/dist/94519.1b7b699d10f1278380c3.bundle.js.map +1 -0
- package/dist/95953.4ea6a7c68a22779ba299.bundle.js +2 -0
- package/dist/95953.4ea6a7c68a22779ba299.bundle.js.map +1 -0
- package/dist/96089.7e28823f34c450de1f7e.bundle.js +2 -0
- package/dist/96089.7e28823f34c450de1f7e.bundle.js.map +1 -0
- package/dist/98860.5ade579c8f05a0df416b.bundle.js +2 -0
- package/dist/98860.5ade579c8f05a0df416b.bundle.js.map +1 -0
- package/dist/{99448.d257ae9548057a204517.bundle.js → 99448.b2524aa8fdf2f3aee82a.bundle.js} +2 -2
- package/dist/{99448.d257ae9548057a204517.bundle.js.map → 99448.b2524aa8fdf2f3aee82a.bundle.js.map} +1 -1
- package/dist/api/ontotext-workbench-api.js +1 -1
- package/dist/api/ontotext-workbench-api.js.map +1 -1
- package/dist/css/ttyg/agent-settings-modal.css +1 -1
- package/dist/i18n/locale-en.json +9 -0
- package/dist/i18n/locale-fr.json +9 -0
- 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/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 +34 -5
- package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
- package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
- package/dist/{legacyWorkbench.f804eda735b6f1961ceb.js → legacyWorkbench.c5245455051fd0bab730.js} +3 -3
- package/dist/{legacyWorkbench.f804eda735b6f1961ceb.js.map → legacyWorkbench.c5245455051fd0bab730.js.map} +1 -1
- package/dist/{main.5a06ce3271fcd9cb93e7.js → main.fa0b99f721588e894d1d.js} +3 -3
- package/dist/{main.5a06ce3271fcd9cb93e7.js.map → main.fa0b99f721588e894d1d.js.map} +1 -1
- package/dist/pages/aclmanagement.html +2 -2
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +1 -1
- package/dist/pages/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-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-layout/onto-layout.js +1 -1
- package/dist/shared-components/collection/components/onto-layout/onto-layout.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-layout.entry.esm.js.map +1 -1
- package/dist/shared-components/shared-components/p-504c7e8e.entry.js +1 -0
- package/dist/shared-components/shared-components/p-504c7e8e.entry.js.map +1 -0
- package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
- package/package.json +1 -1
- package/dist/13486.58f89862c40c0f84cb09.bundle.js.map +0 -1
- package/dist/13813.a49f3fcf17ecd10c738e.bundle.js +0 -2
- package/dist/13813.a49f3fcf17ecd10c738e.bundle.js.map +0 -1
- package/dist/23283.a69ab10a85671d5323b4.bundle.js +0 -2
- package/dist/23283.a69ab10a85671d5323b4.bundle.js.map +0 -1
- package/dist/24785.07db24a70db7d20d268a.bundle.js +0 -2
- package/dist/24785.07db24a70db7d20d268a.bundle.js.map +0 -1
- package/dist/25090.8336e69433235ea3dfc6.bundle.js +0 -2
- package/dist/25090.8336e69433235ea3dfc6.bundle.js.map +0 -1
- package/dist/28319.54765ea398eaa88b7b54.bundle.js +0 -2
- package/dist/28319.54765ea398eaa88b7b54.bundle.js.map +0 -1
- package/dist/34330.a2a4211b14d118bd4c03.bundle.js +0 -2
- package/dist/34330.a2a4211b14d118bd4c03.bundle.js.map +0 -1
- package/dist/36665.8a0821c1742e6bd10e66.bundle.js +0 -2
- package/dist/36665.8a0821c1742e6bd10e66.bundle.js.map +0 -1
- package/dist/36737.0f3e0ff6942f79d49804.bundle.js +0 -2
- package/dist/36737.0f3e0ff6942f79d49804.bundle.js.map +0 -1
- package/dist/39448.a6ec42f0d72642fe9ee9.bundle.js +0 -2
- package/dist/39448.a6ec42f0d72642fe9ee9.bundle.js.map +0 -1
- package/dist/39874.6ca23ead080b52dc1bc6.bundle.js.map +0 -1
- package/dist/4125.28d3c85c122f270c9b2c.bundle.js +0 -2
- package/dist/4125.28d3c85c122f270c9b2c.bundle.js.map +0 -1
- package/dist/41621.d1b7d799116c07df17d1.bundle.js.map +0 -1
- package/dist/42143.87a6b0a089da7a2318dd.bundle.js +0 -2
- package/dist/42143.87a6b0a089da7a2318dd.bundle.js.map +0 -1
- package/dist/51087.8bc01b7861b40bc7082d.bundle.js +0 -2
- package/dist/51087.8bc01b7861b40bc7082d.bundle.js.map +0 -1
- package/dist/51490.358f66f8d298a6251e90.bundle.js +0 -2
- package/dist/51490.358f66f8d298a6251e90.bundle.js.map +0 -1
- package/dist/57952.afa9e0608388e5bae876.bundle.js +0 -2
- package/dist/57952.afa9e0608388e5bae876.bundle.js.map +0 -1
- package/dist/59718.f1ae3d1480c7179c57f0.bundle.js.map +0 -1
- package/dist/67232.ca7667a39c74efdb90e1.bundle.js +0 -2
- package/dist/67232.ca7667a39c74efdb90e1.bundle.js.map +0 -1
- package/dist/68685.314faeaa55a342568c0b.bundle.js +0 -2
- package/dist/68685.314faeaa55a342568c0b.bundle.js.map +0 -1
- package/dist/69112.817cf7b4d2911108c736.bundle.js.map +0 -1
- package/dist/73964.adb0a07a8c4dad17f592.bundle.js.map +0 -1
- package/dist/74106.82ee18377b0ae14c6a7f.bundle.js +0 -2
- package/dist/74106.82ee18377b0ae14c6a7f.bundle.js.map +0 -1
- package/dist/79329.a3a25c9508f4287f135c.bundle.js +0 -2
- package/dist/79329.a3a25c9508f4287f135c.bundle.js.map +0 -1
- package/dist/86142.ed366f6953d750eb99b8.bundle.js +0 -2
- package/dist/86142.ed366f6953d750eb99b8.bundle.js.map +0 -1
- package/dist/86639.6cf8f34680ceacc7298d.bundle.js +0 -2
- package/dist/86639.6cf8f34680ceacc7298d.bundle.js.map +0 -1
- package/dist/89695.2d49f93862aee2cf23af.bundle.js +0 -2
- package/dist/89695.2d49f93862aee2cf23af.bundle.js.map +0 -1
- package/dist/94519.f41b6f4fb1b1bb6e3bf5.bundle.js +0 -2
- package/dist/94519.f41b6f4fb1b1bb6e3bf5.bundle.js.map +0 -1
- package/dist/95953.1334544dd7e80f0da6cf.bundle.js +0 -2
- package/dist/95953.1334544dd7e80f0da6cf.bundle.js.map +0 -1
- package/dist/96089.15302200bfd9f685b009.bundle.js +0 -2
- package/dist/96089.15302200bfd9f685b009.bundle.js.map +0 -1
- package/dist/98860.30ea9a212cf6e622ec36.bundle.js +0 -2
- package/dist/98860.30ea9a212cf6e622ec36.bundle.js.map +0 -1
- package/dist/shared-components/shared-components/p-28a4ce8f.entry.js +0 -1
- package/dist/shared-components/shared-components/p-28a4ce8f.entry.js.map +0 -1
- /package/dist/{legacyWorkbench.f804eda735b6f1961ceb.js.LICENSE.txt → legacyWorkbench.c5245455051fd0bab730.js.LICENSE.txt} +0 -0
- /package/dist/{main.5a06ce3271fcd9cb93e7.js.LICENSE.txt → main.fa0b99f721588e894d1d.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"94519.1b7b699d10f1278380c3.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/node-state.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/cluster-management-constants.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/clustermanagement/services/cluster-drawing.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/states.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/clustermanagement/directives/cluster-legend.directive.js"],"sourcesContent":["export const NodeState = {\n LEADER: 'LEADER',\n FOLLOWER: 'FOLLOWER',\n CANDIDATE: 'CANDIDATE',\n // node without icon\n OUT_OF_SYNC_BLANK: 'OUT_OF_SYNC_BLANK'\n};\n","import {NodeState} from \"./node-state\";\nimport {LinkState} from \"./states\";\n\nconst CLUSTER_MANAGEMENT_CONSTANTS = (function () {\n const SVG_NODE_WIDTH = 15;\n\n const PADDING_LEFT = 12;\n const PADDING_TOP = 12;\n\n const TITLE_PADDING_TOP = 15;\n const TITLE_FONT_SIZE = 13;\n const TITLE_FONT_WEIGHT = 700;\n const TITLE_LINE_HEIGHT = 18;\n const TITLE_COLOR = '#000000';\n\n const LEGEND_ITEMS_PADDING_TOP = 40;\n const LEGEND_ITEM_PADDING_TOP = 8;\n const LEGEND_ITEM_ICON_FONT_SIZE = 15;\n const LEGEND_ITEM_FONT_SIZE = 11;\n const LEGEND_ITEM_FONT_WEIGHT = 400;\n const LEGEND_ITEM_COLOR = '#000000';\n const LEGEND_ITEM_LINE_HEIGHT = 13;\n const LEGEND_ITEM_PADDING_LEFT = PADDING_LEFT + SVG_NODE_WIDTH;\n\n const BACKGROUND_PADDING = PADDING_LEFT * 2;\n\n const getLegendNodes = function () {\n const legendNodes = [];\n legendNodes.push({nodeState: NodeState.LEADER, customText: 'node_state_leader'});\n legendNodes.push({nodeState: NodeState.FOLLOWER, customText: 'node_state_follower'});\n // the out of sync node in the leged should not have an icon\n legendNodes.push({nodeState: NodeState.OUT_OF_SYNC_BLANK, customText: 'node_state_out_of_sync'});\n legendNodes.forEach((node, index) => node.id = index);\n return legendNodes;\n };\n\n const getLegendLinks = function () {\n const links = [];\n links.push({status: LinkState.IN_SYNC, linkTypeKey: 'link_state_in_sync'});\n links.push({status: LinkState.SYNCING, linkTypeKey: 'link_state_syncing'});\n links.push({status: LinkState.OUT_OF_SYNC, linkTypeKey: 'link_state_out_of_sync'});\n links.push({status: LinkState.RECEIVING_SNAPSHOT, linkTypeKey: 'link_state_receiving_snapshot'});\n links.forEach((link, index) => link.id = index);\n return links;\n };\n\n const getSyncStatuses = () => {\n return [\n {\n labelKey: 'node_state_candidate',\n classes: 'icon-any',\n icon: '\\ue914'\n }, {\n labelKey: 'node_state_no_cluster',\n classes: 'close',\n icon: 'X'\n }, {\n labelKey: 'link_state_out_of_sync',\n classes: 'icon-any',\n icon: '\\ue920'\n }, {\n labelKey: 'node_state_no_connection',\n classes: 'icon-any',\n icon: '\\ue931'\n }, {\n labelKey: 'node_state_read_only',\n classes: 'icon-any',\n icon: '\\ue95c'\n }, {\n labelKey: 'node_state_restricted',\n classes: 'icon-any',\n icon: '\\ue933'\n }, {\n labelKey: 'recovery_state.searching_for_node',\n classes: 'fa-d3',\n icon: '\\uf29c'\n }, {\n labelKey: 'recovery_state.waiting_for_snapshot',\n classes: 'fa-d3',\n icon: '\\uf017'\n }, {\n labelKey: 'recovery_state.building_snapshot',\n classes: 'fa-d3 fa-solid',\n icon: '\\uf187'\n }, {\n labelKey: 'recovery_state.sending_snapshot',\n classes: 'fa-d3 fa-solid',\n icon: '\\uf0ee'\n }, {\n labelKey: 'recovery_state.receiving_snapshot',\n classes: 'fa-d3 fa-solid',\n icon: '\\uf0ed'\n }, {\n labelKey: 'recovery_state.applying_snapshot',\n classes: 'fa-d3 fa-solid',\n icon: '\\uf050'\n }\n ];\n };\n\n return {\n getLegendNodes,\n getSyncStatuses,\n getLegendLinks,\n SVG_NODE_WIDTH,\n PADDING_LEFT,\n PADDING_TOP,\n TITLE_PADDING_TOP,\n TITLE_FONT_SIZE,\n TITLE_FONT_WEIGHT,\n TITLE_COLOR,\n TITLE_LINE_HEIGHT,\n LEGEND_ITEM_FONT_SIZE,\n LEGEND_ITEM_ICON_FONT_SIZE,\n LEGEND_ITEM_FONT_WEIGHT,\n LEGEND_ITEM_COLOR,\n LEGEND_ITEM_LINE_HEIGHT,\n LEGEND_ITEM_PADDING_LEFT,\n LEGEND_ITEMS_PADDING_TOP,\n LEGEND_ITEM_PADDING_TOP,\n BACKGROUND_PADDING\n };\n})();\n\nexport {\n CLUSTER_MANAGEMENT_CONSTANTS\n};\n","import {LinkState, NodeState, RecoveryState} from \"../../models/clustermanagement/states\";\nimport {isEmpty} from \"lodash\";\nimport {select, line} from 'd3';\n\nconst d3 = {\n line,\n select\n};\n\nconst clusterColors = {\n ontoOrange: 'var(--primary-color)',\n ontoBlue: 'var(--secondary-color)',\n ontoGreen: 'var(--tertiary-color)',\n ontoGrey: 'var(--gray-color)'\n};\n\nconst linkStateColors = {\n [LinkState.IN_SYNC]: clusterColors.ontoBlue,\n [LinkState.SYNCING]: clusterColors.ontoBlue,\n [LinkState.OUT_OF_SYNC]: clusterColors.ontoGrey,\n [LinkState.RECEIVING_SNAPSHOT]: clusterColors.ontoBlue\n};\n\nconst linkStateStyle = {\n // solid line\n [LinkState.IN_SYNC]: 'none',\n // dashed line\n [LinkState.SYNCING]: '10 10',\n // dashed line\n [LinkState.OUT_OF_SYNC]: '10 10',\n // dashed line\n [LinkState.RECEIVING_SNAPSHOT]: '10 10'\n};\n\nconst font = {\n FONT_AWESOME: 'FONT_AWESOME',\n ICOMOON: 'ICOMOON'\n};\n\nconst shortMessageLimit = 40;\n\nexport function createClusterSvgElement(element) {\n return d3.select(element)\n .append('svg')\n .classed('cluster-diagram', true);\n}\n\nexport function createClusterZone(parent) {\n const clusterZone = parent.append('g');\n clusterZone\n .append(\"circle\")\n .classed('cluster-zone', true)\n .style('fill', 'transparent')\n .style('stroke-width', '4');\n return clusterZone;\n}\n\nexport function setCreateClusterZone(hasCluster, clusterZone, translationsMap, hasAccess = false) {\n clusterZone\n .select('.cluster-zone')\n .classed('no-cluster', !hasCluster)\n .classed('has-access', hasAccess);\n\n if (hasCluster) {\n clusterZone.selectAll('#no-cluster-zone').remove();\n } else {\n const textGroup = clusterZone\n .append('g')\n .attr(\"id\", \"no-cluster-zone\");\n textGroup\n .append('text')\n .attr('id', 'no-cluster-label')\n .text(translationsMap.no_cluster_configured)\n .attr('y', -50)\n .classed('h2', true)\n .style('text-anchor', \"middle\");\n if (hasAccess) {\n textGroup.append('text')\n .attr('id', 'create-cluster-label')\n .classed('h3', true)\n .text(translationsMap.create_cluster_btn)\n .style('text-anchor', \"middle\");\n }\n textGroup.append('text')\n .attr('y', 130)\n .attr('class', 'icon-any repo')\n .attr('fill', clusterColors.ontoOrange)\n .style('text-anchor', \"middle\")\n .classed('settings-icon', true)\n .text(\"\\ue92b\");\n }\n}\n\nexport function updateClusterZoneLabels(hasCluster, clusterZone, translationsMap) {\n if (hasCluster) {\n return;\n }\n clusterZone.select('#no-cluster-zone #no-cluster-label')\n .text(translationsMap.no_cluster_configured);\n clusterZone.select('#no-cluster-zone #create-cluster-label')\n .text(translationsMap.create_cluster_btn);\n}\n\nexport function moveElement(element, x, y) {\n element.attr('transform', () => {\n return `translate(${x}, ${y})`;\n });\n}\n\nexport function createNodes(nodesDataBinding, nodeRadius, isLegend) {\n const nodeGroup = nodesDataBinding.enter()\n .append('g')\n .attr('id', 'node-group')\n .classed('legend', isLegend);\n\n const nodeUpdateElements = nodeGroup\n .merge(nodesDataBinding)\n .attr('id', 'node-group')\n .classed('legend', isLegend);\n\n createHexagon(nodeGroup, nodeRadius);\n nodesDataBinding.exit().remove();\n\n nodeGroup\n .append('text')\n .attr('class', 'icon-any node-icon');\n\n if (!isLegend) {\n addHostnameToNodes(nodeGroup, nodeRadius, isLegend);\n }\n return nodeUpdateElements;\n}\n\nfunction addHostnameToNodes(nodeElements, nodeRadius) {\n const nodeTextHost = nodeElements.append('g');\n\n nodeTextHost\n .append('rect')\n .attr('class', 'id-host-background')\n .attr('rx', 6);\n\n nodeTextHost\n .append('rect')\n .attr('class', 'node-info-background')\n .attr('rx', 6);\n\n nodeTextHost\n .append('text')\n .attr('y', nodeRadius + 25)\n .attr('class', 'id id-host');\n\n nodeTextHost\n .append('text')\n .attr('y', nodeRadius + 55)\n .attr('class', 'node-info-text');\n}\n\nexport function updateNodes(nodes) {\n updateNodesIcon(nodes);\n updateNodesClasses(nodes);\n updateNodesHostnameText(nodes);\n updateNodesInfoText(nodes);\n}\n\nfunction updateNodesClasses(nodes) {\n nodes\n .select('.node.member')\n .classed('leader', (node) => node.nodeState === NodeState.LEADER)\n .classed('follower', (node) => node.nodeState === NodeState.FOLLOWER)\n .classed('candidate', (node) => node.nodeState === NodeState.CANDIDATE)\n .classed('other', (node) => {\n return node.nodeState !== NodeState.LEADER &&\n node.nodeState !== NodeState.FOLLOWER &&\n node.nodeState !== NodeState.CANDIDATE;\n });\n}\n\nfunction updateNodesIcon(nodes) {\n nodes.select('.node-icon')\n .each(function (d) {\n const iconType = hasRecoveryState(d) ? getNodeInfoIconType(d) : getNodeIconType(d);\n d3.select(this)\n .classed('icon-any', iconType.font === font.ICOMOON)\n .classed('fa-d3', iconType.font === font.FONT_AWESOME)\n .text(iconType.icon);\n });\n}\n\nfunction hasRecoveryState(node) {\n return !isEmpty(node.recoveryStatus);\n}\n\nconst iconMap = {\n [RecoveryState.SEARCHING_FOR_NODE]: {icon: '\\uf29c', font: font.FONT_AWESOME},\n [RecoveryState.WAITING_FOR_SNAPSHOT]: {icon: '\\uf017', font: font.FONT_AWESOME},\n [RecoveryState.RECEIVING_SNAPSHOT]: {icon: '\\uf0ed', font: font.FONT_AWESOME},\n [RecoveryState.APPLYING_SNAPSHOT]: {icon: '\\uf050', font: font.FONT_AWESOME},\n [RecoveryState.BUILDING_SNAPSHOT]: {icon: '\\uf187', font: font.FONT_AWESOME},\n [RecoveryState.SENDING_SNAPSHOT]: {icon: '\\uf0ee', font: font.FONT_AWESOME},\n [RecoveryState.RECOVERY_OPERATION_FAILURE_WARNING]: {icon: '\\ue920', font: font.ICOMOON}\n};\n\nconst nodeStateIcons = {\n [NodeState.CANDIDATE]: {icon: '\\ue914', font: font.ICOMOON},\n [NodeState.NO_CONNECTION]: {icon: '\\ue931', font: font.ICOMOON},\n [NodeState.OUT_OF_SYNC]: {icon: '\\ue920', font: font.ICOMOON},\n [NodeState.READ_ONLY]: {icon: '\\ue95c', font: font.ICOMOON},\n [NodeState.RESTRICTED]: {icon: '\\ue933', font: font.ICOMOON}\n};\n\nfunction getNodeInfoIconType(node) {\n const status = node.recoveryStatus;\n\n if (!status || !status.state) {\n return {icon: '', font: ''};\n }\n\n return iconMap[status.state] || {icon: '', font: ''};\n}\n\nfunction getNodeIconType(node) {\n const iconType = nodeStateIcons[node.nodeState];\n return iconType ? iconType : {icon: '', font: ''};\n}\n\nfunction updateNodesInfoText(nodes) {\n let objectHeight;\n let objectWidth;\n // Set initial text element\n nodes.select('.node-info-text')\n .each(function (d) {\n d.infoNode = this;\n })\n .select(function () {\n return this.parentNode;\n })\n .append('foreignObject')\n .attr('width', function (d) {\n let shortMessage = '';\n if (!isEmpty(d.recoveryStatus)) {\n shortMessage = extractShortMessageFromNode(d);\n }\n const rect = calculateElementSizeByText(shortMessage);\n objectHeight = rect.height;\n objectWidth = rect.width;\n return objectWidth;\n })\n .attr('height', function (d) {\n return objectHeight;\n })\n .attr('x', function (d) {\n return -(objectWidth / 2);\n })\n .attr('y', function (d) {\n return 78;\n })\n .classed('hidden', function (d) {\n return isEmpty(d.recoveryStatus);\n })\n .style('font-size', '12px')\n .style('font-weight', '400')\n .style('text-align', 'center')\n .style('padding', '4px')\n .style('background', '#EEEEEE')\n .style('border-radius', '6px')\n .attr('class', 'node-info-fo')\n .append('xhtml:div')\n .html(function (d) {\n return extractShortMessageFromNode(d);\n });\n\n // Remove the original text elements, as they are now replaced by foreignObjects\n nodes.select('.node-info-text').remove();\n\n resizeLabelDynamic(nodes);\n}\n\nfunction extractShortMessageFromNode(node) {\n return node.recoveryStatus.message && node.recoveryStatus.message.length > shortMessageLimit ?\n node.recoveryStatus.message.substring(0, shortMessageLimit) + '...' : node.recoveryStatus.message || '';\n}\n\nfunction calculateElementSizeByText(text) {\n const tmp = document.createElement('div');\n tmp.innerHTML = text;\n tmp.style.padding = '4px';\n tmp.style.position = 'absolute';\n tmp.style.visibility = 'hidden';\n tmp.style.fontSize = '12px';\n tmp.style.fontWeight = '400';\n tmp.style.textAlign = 'center';\n tmp.style.height = 'auto';\n tmp.style.width = 'auto';\n tmp.style.whiteSpace = 'nowrap';\n\n document.body.appendChild(tmp);\n const rect = tmp.getBoundingClientRect();\n const height = rect.height;\n const width = rect.width;\n document.body.removeChild(tmp);\n\n return {height, width};\n}\n\nfunction addRecoveryLabelListeners(object, message, truncatedSize, displayMessage, fullSize) {\n object.on('mouseover.tooltip', () => {\n object\n .attr('width', fullSize.width)\n .attr('height', fullSize.height)\n .attr('x', -fullSize.width / 2)\n .html(`<div>${message}</div>`);\n });\n object.on('mouseout.tooltip', () => {\n object\n .attr('width', truncatedSize.width)\n .attr('height', truncatedSize.height)\n .attr('x', -truncatedSize.width / 2)\n .html(`<div>${displayMessage}</div>`);\n });\n}\n\nfunction resizeLabelDynamic(nodes) {\n nodes.select('.node-info-fo')\n .each(function (d) {\n const object = d3.select(this);\n if (isEmpty(d.recoveryStatus)) {\n object.attr('width', 0);\n return;\n }\n const shortMessage = extractShortMessageFromNode(d);\n const isShorten = d.recoveryStatus.message && d.recoveryStatus.message.length > shortMessageLimit && shortMessage !== d.recoveryStatus.message;\n const displayMessage = isShorten ? shortMessage : d.recoveryStatus.message;\n const truncatedSize = calculateElementSizeByText(shortMessage);\n const fullSize = calculateElementSizeByText(d.recoveryStatus.message);\n object.on('.tooltip', null);\n\n if (isShorten) {\n addRecoveryLabelListeners(object, d.recoveryStatus.message, truncatedSize, displayMessage, fullSize);\n }\n\n // Set initial size and text\n object\n .attr('width', truncatedSize.width)\n .attr('height', truncatedSize.height)\n .attr('x', -truncatedSize.width / 2)\n .html(`<div>${displayMessage}</div>`);\n });\n}\n\nfunction updateNodesHostnameText(nodes) {\n nodes\n .select('.id.id-host')\n .each(function (d) {\n d.labelNode = this;\n })\n .text(function (d) {\n return d.hostname;\n });\n\n // Add padding styling to text background. left/right/top/bottom +5\n nodes\n .select('.id-host-background')\n .attr('width', function (d) {\n return d3.select(d.labelNode).node().getBBox().width + 10;\n })\n .attr('height', function (d) {\n return d3.select(d.labelNode).node().getBBox().height + 10;\n })\n .attr('x', function (d) {\n return d3.select(d.labelNode).node().getBBox().x - 5;\n })\n .attr('y', function (d) {\n return d3.select(d.labelNode).node().getBBox().y - 5;\n });\n}\n\nexport function createLinks(linksDataBinding) {\n linksDataBinding.enter()\n .append('path')\n .classed('link', true);\n\n linksDataBinding.exit().remove();\n}\n\nexport function updateLinks(linksDataBinding, nodes) {\n linksDataBinding\n .attr('class', (link) => {\n // add the link id as a css class for testing purposes\n const idClass = link.id.replaceAll(':', '-');\n return `link ${idClass}`;\n })\n .attr('stroke', setLinkColor)\n .style('stroke-dasharray', setLinkStyle)\n .style(\"marker-mid\", (link) => setArrowLink(link, ARROW_CONFIG.BIG))\n .attr('d', (link) => getLinkCoordinates(link, nodes));\n}\n\nexport const ARROW_CONFIG = {\n SMALL: {name: 'small', size: 3},\n BIG: {name: 'big', size: 5}\n};\n\nexport function addArrowHead(svg, config) {\n svg.append(\"svg:defs\").append(\"svg:marker\")\n .attr(\"id\", `arrowhead_${config.name}`)\n .attr(\"viewBox\", `0 0 ${config.size * 2} ${config.size * 2}`)\n .attr(\"refX\", config.size)\n .attr(\"refY\", config.size)\n .attr(\"markerWidth\", config.size)\n .attr(\"markerHeight\", config.size)\n .attr(\"orient\", \"auto-start-reverse\")\n .append(\"path\")\n .attr(\"d\", `M 0 0 L ${config.size * 2} ${config.size} L 0 ${config.size * 2} z`)\n .style(\"fill\", \"var(--secondary-color)\");\n}\n\nexport function setArrowLink(link, config) {\n if (link.status === LinkState.RECEIVING_SNAPSHOT) {\n return `url(#arrowhead_${config.name})`;\n }\n}\n\nexport function setLinkColor(link) {\n const linkColor = linkStateColors[link.status];\n return linkColor || 'none';\n}\n\nexport function setLinkStyle(link) {\n const linkStyle = linkStateStyle[link.status];\n return linkStyle || 'none';\n}\n\nfunction getLinkCoordinates(link, nodes) {\n const source = nodes.find((node) => node.address === link.source);\n const target = nodes.find((node) => node.address === link.target);\n const deltaX = target.x - source.x;\n const deltaY = target.y - source.y;\n const dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const normX = deltaX / dist;\n const normY = deltaY / dist;\n // Padding from node center point\n const sourcePadding = 55;\n const targetPadding = 55;\n const sourceX = source.x + (sourcePadding * normX);\n const sourceY = source.y + (sourcePadding * normY);\n const targetX = target.x - (targetPadding * normX);\n const targetY = target.y - (targetPadding * normY);\n // Calculate midpoint\n const midpointX = (sourceX + targetX) / 2;\n const midpointY = (sourceY + targetY) / 2;\n // In order to draw an arrowhead in the middle of a line, the line needs to be composed by\n // two segments, otherwise the arrowhead won't show up.\n return 'M' + sourceX + ',' + sourceY + 'L' + midpointX + ',' + midpointY +\n 'L' + targetX + ',' + targetY;\n}\n\nexport function positionNodesOnClusterZone(nodeElements, clusterZoneX, clusterZoneY, clusterZoneRadius) {\n nodeElements\n .attr('transform', (node, index) => {\n // Calculate initial positions for the new nodes based on\n // spreading them evenly on a circle around the center of the page.\n const theta = 2 * Math.PI * index / nodeElements.size();\n const x = clusterZoneX + Math.cos(theta) * clusterZoneRadius;\n const y = clusterZoneY + Math.sin(theta) * clusterZoneRadius;\n node.x = x;\n node.y = y;\n return `translate(${x}, ${y})`;\n });\n}\n\nexport function createHexagon(nodeGroup, radius) {\n const _s32 = (Math.sqrt(3) / 2);\n const xDiff = 0;\n const yDiff = 0;\n const points = [[radius + xDiff, yDiff], [radius / 2 + xDiff, radius * _s32 + yDiff], [-radius / 2 + xDiff, radius * _s32 + yDiff],\n [-radius + xDiff, yDiff],\n [-radius / 2 + xDiff, -radius * _s32 + yDiff], [radius / 2 + xDiff, -radius * _s32 + yDiff], [radius + xDiff, yDiff],\n [radius / 2 + xDiff, radius * _s32 + yDiff]];\n return nodeGroup\n .selectAll(\"path.area\")\n .data([points])\n .enter()\n .append(\"path\")\n .attr('class', 'node member')\n .attr(\"stroke-width\", \"10\")\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"d\", d3.line());\n}\n\nexport function removeEventListeners() {\n d3.select(document).selectAll('.node-info-fo').on('.tooltip', null);\n}\n","export const NodeState = {\n LEADER: 'LEADER',\n FOLLOWER: 'FOLLOWER',\n CANDIDATE: 'CANDIDATE',\n OUT_OF_SYNC: 'OUT_OF_SYNC',\n NO_CONNECTION: 'NO_CONNECTION',\n READ_ONLY: 'READ_ONLY',\n RESTRICTED: 'RESTRICTED',\n NO_CLUSTER: 'NO_CLUSTER'\n};\n\nexport const RecoveryState = {\n SEARCHING_FOR_NODE: 'SEARCHING_FOR_NODE',\n WAITING_FOR_SNAPSHOT: 'WAITING_FOR_SNAPSHOT',\n RECEIVING_SNAPSHOT: 'RECEIVING_SNAPSHOT',\n APPLYING_SNAPSHOT: 'APPLYING_SNAPSHOT',\n BUILDING_SNAPSHOT: 'BUILDING_SNAPSHOT',\n SENDING_SNAPSHOT: 'SENDING_SNAPSHOT',\n RECOVERY_OPERATION_FAILURE_WARNING: 'RECOVERY_OPERATION_FAILURE_WARNING'\n};\n\nexport const LinkState = {\n IN_SYNC: 'IN_SYNC',\n OUT_OF_SYNC: 'OUT_OF_SYNC',\n SYNCING: 'SYNCING',\n NO_CONNECTION: 'NO_CONNECTION',\n // complimentary state, built based on the recovery state of two nodes when one is receiving snapshot to the other\n RECEIVING_SNAPSHOT: 'RECEIVING_SNAPSHOT'\n};\n\nexport const TopologyState = {\n PRIMARY_NODE: 'PRIMARY_NODE',\n SECONDARY_NODE: 'SECONDARY_NODE'\n};\n","import {CLUSTER_MANAGEMENT_CONSTANTS} from \"../../models/clustermanagement/cluster-management-constants\";\nimport * as CDS from \"../services/cluster-drawing.service\";\nimport {LinkState} from \"../../models/clustermanagement/states\";\nimport {ARROW_CONFIG} from \"../services/cluster-drawing.service\";\nimport {select} from 'd3';\n\nconst d3 = {select};\nconst modules = [];\nangular.module('graphdb.framework.clustermanagement.directives.cluster-legend', modules)\n .directive('clusterLegend', clusterLegend);\n\nclusterLegend.$inject = ['$rootScope', 'ClusterViewContextService', '$translate', '$document'];\n\nfunction clusterLegend($rootScope, ClusterViewContextService, $translate, $document) {\n return {\n restrict: 'E',\n templateUrl: 'js/angular/clustermanagement/templates/cluster-legend.html',\n scope: {},\n link: ($scope) => {\n\n // =========================\n // Public variables\n // =========================\n\n $scope.hideLegend = true;\n\n // =========================\n // Private variables\n // =========================\n\n const subscriptions = [];\n let legendGroup;\n let legendHeight;\n let legendWidth;\n\n // =========================\n // Public functions\n // =========================\n\n $scope.toggleLegend = () => {\n $scope.hideLegend = !$scope.hideLegend;\n legendGroup.classed('hidden-legend', $scope.hideLegend);\n };\n\n // =========================\n // Private functions\n // =========================\n\n const init = () => {\n const clusterViewD3Container = ClusterViewContextService.getClusterViewD3Container();\n createLegendGroup(clusterViewD3Container);\n createLegendBackground();\n addNodeStates(legendGroup);\n addSyncStatus();\n addLinks();\n updateLegendDimensions();\n updateLegendBackground();\n };\n\n const addNodeStates = (legendGroup) => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_node_state');\n const legendNodeData = legendGroup\n .selectAll('.node-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getLegendNodes());\n const legendNodesElements = CDS.createNodes(legendNodeData, CLUSTER_MANAGEMENT_CONSTANTS.SVG_NODE_WIDTH, true);\n CDS.updateNodes(legendNodesElements);\n const LABEL_Y_POSITION = 3;\n legendNodesElements\n .attr('transform', function (d, i) {\n updateLegendDimensions();\n return `translate(${CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT}, ${legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP})`;\n })\n .append('text')\n .classed('links-statuses', true)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .style('fill', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR)\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT + CLUSTER_MANAGEMENT_CONSTANTS.SVG_NODE_WIDTH)\n .attr('y', LABEL_Y_POSITION)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.customText);\n });\n };\n\n const addSyncStatus = () => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_sync_status');\n const syncStatusesGroups = legendGroup.selectAll('.sync-statuses-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getSyncStatuses())\n .enter()\n .append('g')\n .attr('class', 'sync-statuses-group');\n\n const rowY = new Map();\n\n syncStatusesGroups\n .append('text')\n .attr('class', (d) => `sync-status ${d.classes}`)\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT - 10)\n .attr('y', function (d, index) {\n const rowTop = index * (20 + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP) + legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEMS_PADDING_TOP;\n rowY.set(index, rowTop);\n return rowTop;\n })\n .text(function (d) {\n return d.icon;\n });\n\n const labelOffsetY = (CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_ICON_FONT_SIZE - CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE) / 2;\n syncStatusesGroups\n .append('text')\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .style('fill', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.labelKey);\n })\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE)\n .attr('y', function (d, index) {\n return rowY.get(index) - labelOffsetY;\n })\n .classed('links-statuses', true);\n };\n\n const addLinks = () => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_link_states');\n const linkStatesGroup = legendGroup.selectAll('.link-states-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getLegendLinks())\n .enter()\n .append('g')\n .attr('class', 'link-state');\n\n // map vertical positions of each link in order to be able to draw labels next to the links\n const rowY = new Map();\n\n linkStatesGroup\n .append('path')\n .classed('link', true)\n .attr('stroke-dasharray', CDS.setLinkStyle)\n .attr('stroke', CDS.setLinkColor)\n .attr('d', (link, index) => {\n const y = index * (CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP) + legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEMS_PADDING_TOP;\n const lineWidth = legendWidth / 2;\n rowY.set(index, y);\n let line;\n if (link.status === LinkState.RECEIVING_SNAPSHOT) {\n const lineMidPoint = lineWidth / 2;\n // In order to draw an arrowhead in the middle of a line, the line needs to be composed by\n // two segments, otherwise the arrowhead won't show up.\n line = `M${CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT} ${y} L${lineMidPoint} ${y} L${lineWidth} ${y}`;\n } else {\n line = `M${CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT} ${y} ${lineWidth} ${y}`;\n }\n return line;\n })\n .style(\"marker-mid\", (link) => CDS.setArrowLink(link, ARROW_CONFIG.SMALL));\n\n linkStatesGroup\n .append('text')\n .style('font-size', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE)\n .style('line-height', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_LINE_HEIGHT)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .style('fill', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.linkTypeKey);\n })\n .attr('x', legendWidth/2 + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT)\n .attr('y', function (d, index) {\n return rowY.get(index) + 4;\n })\n .classed('links-statuses', true);\n };\n\n /**\n * Creates main legend container with rectangle that defines width, height and corner radius of legend.\n * @param {*} clusterViewD3Container - main container where legend have to live.\n */\n const createLegendGroup = (clusterViewD3Container) => {\n legendGroup = clusterViewD3Container.append('g')\n .classed('hidden-legend', $scope.hideLegend)\n .classed('cluster-legend-group', true);\n };\n\n const createLegendBackground = () => {\n legendGroup.append('rect')\n .attr('class', 'legend-background')\n .attr('fill', '#EEEEEE');\n };\n\n const updateLegendDimensions = () => {\n legendGroup\n .call((d) => {\n legendHeight = d.node().getBBox().height;\n });\n legendWidth = getMaxWidthOfChildren(legendGroup) + 30;\n };\n\n const updateLegendBackground = () => {\n const maxWidth = getMaxWidthOfChildren(legendGroup);\n legendGroup.select('.legend-background')\n .attr('height', legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.PADDING_TOP * 3)\n .attr('width', maxWidth + CLUSTER_MANAGEMENT_CONSTANTS.BACKGROUND_PADDING)\n .attr('rx', '6');\n };\n\n const getMaxWidthOfChildren = (parent) => {\n let maxWidth = 0;\n\n parent.selectAll(':not(.legend-background)').each(function () {\n const bbox = this.getBBox();\n maxWidth = Math.max(maxWidth, bbox.width);\n });\n\n return maxWidth;\n };\n\n /**\n * Adds title to <code>legendGroup</code>.\n * @param {*} legendGroup - the root group tag (<g>) of legend.\n * @param {string} labelKey\n *\n * @return {*}\n */\n const addTitle = (legendGroup, labelKey) => {\n return legendGroup\n .append('text')\n .attr('class', 'legend-title')\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT)\n .style('font-size', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_FONT_SIZE)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_FONT_WEIGHT)\n .style('line-height', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_LINE_HEIGHT)\n .style('fill', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_COLOR)\n .text(function () {\n return translateAndSubscribe(this, labelKey);\n })\n .attr('y', () => {\n updateLegendDimensions();\n return legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.TITLE_PADDING_TOP;\n });\n };\n\n const translateAndSubscribe = (domElement, labelKey) => {\n subscriptions.push($rootScope.$on('$translateChangeSuccess', () => {\n d3.select(domElement).text($translate.instant(labelKey));\n updateLegendBackground();\n }));\n\n return $translate.instant(labelKey);\n };\n\n const removeAllListeners = () => {\n $document.off('keydown', closeDialog);\n subscriptions.forEach((subscription) => subscription());\n };\n\n const closeDialog = () => {\n $scope.hideLegend = true;\n legendGroup.classed('hidden-legend', $scope.hideLegend);\n };\n\n const onKeyDown = (event) => {\n if (event.key === 'Escape') {\n closeDialog();\n }\n };\n\n // =========================\n // Subscriptions functions\n // =========================\n $document.on('keydown', onKeyDown);\n subscriptions.push(ClusterViewContextService.onClusterViewD3ContainerUpdated(init));\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllListeners);\n\n init();\n }\n };\n}\n"],"names":["NodeState","LEADER","FOLLOWER","CANDIDATE","OUT_OF_SYNC_BLANK","CLUSTER_MANAGEMENT_CONSTANTS","getLegendNodes","legendNodes","push","nodeState","customText","forEach","node","index","id","getSyncStatuses","labelKey","classes","icon","getLegendLinks","links","status","LinkState","IN_SYNC","linkTypeKey","SYNCING","OUT_OF_SYNC","RECEIVING_SNAPSHOT","link","SVG_NODE_WIDTH","PADDING_LEFT","PADDING_TOP","TITLE_PADDING_TOP","TITLE_FONT_SIZE","TITLE_FONT_WEIGHT","TITLE_COLOR","TITLE_LINE_HEIGHT","LEGEND_ITEM_FONT_SIZE","LEGEND_ITEM_ICON_FONT_SIZE","LEGEND_ITEM_FONT_WEIGHT","LEGEND_ITEM_COLOR","LEGEND_ITEM_LINE_HEIGHT","LEGEND_ITEM_PADDING_LEFT","LEGEND_ITEMS_PADDING_TOP","LEGEND_ITEM_PADDING_TOP","BACKGROUND_PADDING","d3","line","select","clusterColors","ontoOrange","ontoBlue","ontoGreen","ontoGrey","linkStateColors","linkStateStyle","font","FONT_AWESOME","ICOMOON","shortMessageLimit","createClusterSvgElement","element","append","classed","createClusterZone","parent","clusterZone","style","setCreateClusterZone","hasCluster","translationsMap","hasAccess","selectAll","remove","textGroup","attr","text","no_cluster_configured","create_cluster_btn","updateClusterZoneLabels","moveElement","x","y","createNodes","nodesDataBinding","nodeRadius","isLegend","nodeGroup","enter","nodeUpdateElements","merge","createHexagon","exit","nodeElements","nodeTextHost","addHostnameToNodes","updateNodes","nodes","each","d","iconType","isEmpty","recoveryStatus","nodeStateIcons","getNodeIconType","state","iconMap","getNodeInfoIconType","this","updateNodesIcon","updateNodesClasses","labelNode","hostname","getBBox","width","height","updateNodesHostnameText","objectHeight","objectWidth","infoNode","parentNode","shortMessage","extractShortMessageFromNode","rect","calculateElementSizeByText","html","object","isShorten","message","length","displayMessage","truncatedSize","fullSize","on","addRecoveryLabelListeners","resizeLabelDynamic","updateNodesInfoText","RecoveryState","SEARCHING_FOR_NODE","WAITING_FOR_SNAPSHOT","APPLYING_SNAPSHOT","BUILDING_SNAPSHOT","SENDING_SNAPSHOT","RECOVERY_OPERATION_FAILURE_WARNING","NO_CONNECTION","READ_ONLY","RESTRICTED","substring","tmp","document","createElement","innerHTML","padding","position","visibility","fontSize","fontWeight","textAlign","whiteSpace","body","appendChild","getBoundingClientRect","removeChild","createLinks","linksDataBinding","updateLinks","replaceAll","setLinkColor","setLinkStyle","setArrowLink","ARROW_CONFIG","BIG","source","find","address","target","deltaX","deltaY","dist","Math","sqrt","normX","normY","sourceX","sourceY","targetX","targetY","getLinkCoordinates","SMALL","name","size","addArrowHead","svg","config","positionNodesOnClusterZone","clusterZoneX","clusterZoneY","clusterZoneRadius","theta","PI","cos","sin","radius","_s32","points","data","removeEventListeners","NO_CLUSTER","TopologyState","PRIMARY_NODE","SECONDARY_NODE","clusterLegend","$rootScope","ClusterViewContextService","$translate","$document","restrict","templateUrl","scope","$scope","hideLegend","subscriptions","legendGroup","legendHeight","legendWidth","toggleLegend","init","clusterViewD3Container","getClusterViewD3Container","createLegendGroup","createLegendBackground","addNodeStates","addSyncStatus","addLinks","updateLegendDimensions","updateLegendBackground","addTitle","legendNodeData","legendNodesElements","CDS","i","translateAndSubscribe","syncStatusesGroups","rowY","Map","rowTop","set","labelOffsetY","get","linkStatesGroup","lineWidth","lineMidPoint","call","getMaxWidthOfChildren","maxWidth","bbox","max","domElement","$on","instant","closeDialog","event","key","onClusterViewD3ContainerUpdated","removeAllListeners","off","subscription","angular","module","directive","$inject"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_id__=95953;export const __webpack_ids__=[11637,14102,17187,25593,27473,50479,51682,59263,61105,65191,66989,75232,95953];export const __webpack_modules__={11637:(e,t,n)=>{n.r(t),n.d(t,{SimilarityIndexStatus:()=>o});const o={CREATING:"CREATING",BUILDING:"BUILDING",BUILT:"BUILT",REBUILDING:"REBUILDING",OUTDATED:"OUTDATED",INTERRUPTED:"INTERRUPTED",OBSOLETE:"OBSOLETE",FAILED:"FAILED",isCreatingStatus:e=>o.CREATING===e,isBuildingStatus:e=>o.BUILDING===e,isBuiltStatus:e=>o.BUILT===e,isRebuildingStatus:e=>o.REBUILDING===e,isOutdatedStatus:e=>o.OUTDATED===e,isInterruptedStatus:e=>o.INTERRUPTED===e,isObsoleteStatus:e=>o.OBSOLETE===e,isFailedStatus:e=>o.FAILED===e}},14102:(e,t,n)=>{n.r(t),n.d(t,{SimilarityIndex:()=>i});var o=n(50479),r=n(11637);class i{constructor(){this.analyzer="",this.infer=!0,this.options="",this.sameAs=!0,this.searchQuery="",this.selectQuery="",this.stopList=void 0,this.name="",this.type=o.SimilarityIndexType.TEXT,this.status=void 0,this.analogicalQuery=void 0,this.inputIndex=void 0,this.isLiteralIndex=""}isTextType(){return o.SimilarityIndexType.isTextType(this.type)}isTextLiteralType(){return o.SimilarityIndexType.isTextLiteralType(this.type)}isPredicationType(){return o.SimilarityIndexType.isPredicationType(this.type)}isCreatingStatus(){return r.SimilarityIndexStatus.isCreatingStatus(this.status)}isBuildingStatus(){return r.SimilarityIndexStatus.isBuildingStatus(this.status)}isBuiltStatus(){return r.SimilarityIndexStatus.isBuiltStatus(this.status)}isRebuildingStatus(){return r.SimilarityIndexStatus.isRebuildingStatus(this.status)}isOutdatedStatus(){return r.SimilarityIndexStatus.isOutdatedStatus(this.status)}isInterruptedStatus(){return r.SimilarityIndexStatus.isInterruptedStatus(this.status)}isObsoleteStatus(){return r.SimilarityIndexStatus.isObsoleteStatus(this.status)}isFailedStatus(){return r.SimilarityIndexStatus.isFailedStatus(this.status)}}},17187:(e,t,n)=>{function o(e,t,n,o,r){e.agentInstructionsExplain=r.agentInstructionsExplain,e.close=()=>{t.dismiss({})},e.onCloseAgentInstructionsExplainModal=()=>{t.dismiss({})};const i=[];e.$on("$destroy",()=>{i.forEach(e=>e())})}n.r(t),n(51682),n(66989),n(36665),n(69289),angular.module("graphdb.framework.ttyg.controllers.agent-instructions-explain-modal",[]).controller("AgentInstructionsExplainModalController",o),o.$inject=["$scope","$uibModalInstance","ModalService","$translate","dialogModel"]},25593:(e,t,n)=>{n.r(t),n.d(t,{ConnectorListModel:()=>i,ConnectorModel:()=>s,ConnectorSettingsModel:()=>a,ConnectorTypeModel:()=>r,ConnectorTypesListModel:()=>o});class o{constructor(e={}){this._connectors=e.connectors||[]}getConnectorByName(e){return this._connectors.find(t=>t.name===e)}get connectors(){return this._connectors}set connectors(e){this._connectors=e}}class r{constructor(e){this._name=e.name,this._prefix=e.prefix}get name(){return this._name}set name(e){this._name=e}get prefix(){return this._prefix}set prefix(e){this._prefix=e}}class i{constructor(e=[]){this._connectors=e.connectors}get connectors(){return this._connectors}set connectors(e){this._connectors=e}}class s{constructor(e){this._name=e.name,this._settings=new a(e)}get settings(){return this._settings}set settings(e){this._settings=e}get name(){return this._name}set name(e){this._name=e}}class a{constructor(e){this._settings=e.values||{}}get settings(){return this._settings}set settings(e){this._settings=e}}},27473:(e,t,n)=>{n.r(t),n.d(t,{mapIndexesResponseToSimilarityIndex:()=>r});var o=n(14102);const r=e=>e.map(e=>{const t=new o.SimilarityIndex;return t.type=e.type,t.stopList=e.stopList,t.status=e.status,t.selectQuery=e.selectQuery,t.searchQuery=e.searchQuery,t.sameAs=e.sameAs,t.options=e.options,t.name=e.name,t.infer=e.infer,t.analyzer=e.analyzer,t.analogicalQuery=e.analogicalQuery,t})},50479:(e,t,n)=>{n.r(t),n.d(t,{SimilarityIndexType:()=>o});const o={TEXT:"text",TEXT_LITERAL:"textLiteral",PREDICATION:"predication",isTextType:e=>o.TEXT===e,isTextLiteralType:e=>o.TEXT_LITERAL===e,isPredicationType:e=>o.PREDICATION===e}},51682:(e,t,n)=>{n.r(t),n(75232);var o=n(27473),r=n(38940);function i(e){const t=(t,n)=>e.getIndexes(t,n).then(e=>(0,o.mapIndexesResponseToSimilarityIndex)(e.data));return{getIndexes:t,getIndexesAsMenuModel:(e,n)=>t(e,n).then(e=>e.map(e=>new r.SelectMenuOptionsModel({label:e.name,value:e.name})))}}angular.module("graphdb.framework.core.services.similarity",["graphdb.framework.rest.similarity.service"]).factory("SimilarityService",i),i.$inject=["SimilarityRestService"]},59263:(e,t,n)=>{n.r(t),n.d(t,{connectorTypesListMapper:()=>r,connectorsMapper:()=>i});var o=n(25593);const r=e=>{const t=new o.ConnectorTypesListModel;return e?(t.connectors=Object.keys(e).map(t=>new o.ConnectorTypeModel({name:t,prefix:e[t]})),t):t},i=e=>{const t=new o.ConnectorListModel;return e?(t.connectors=e.map(e=>new o.ConnectorModel(e)),t):t}},61105:()=>{angular.module("graphdb.framework.rest.connectors.service",[]).factory("ConnectorsRestService",t),t.$inject=["$http"];const e="rest/connectors";function t(t){return{getConnectors:function(n,o){return n?t.get(e,{headers:{"X-GraphDB-Repository":n,"X-GraphDB-Repository-Location":o}}):t.get(e)},initConnector:function(n){return t.get(`${e}/options?prefix=${n}`)},hasConnector:function(n,o,r){return o?t.get(`${e}/existing?prefix=${n}`,{headers:{"X-GraphDB-Repository":o,"X-GraphDB-Repository-Location":r}}):t.get(`${e}/existing?prefix=${n}`)},checkConnector:function(n){return t.post(`${e}/check`,n,{headers:{"Content-Type":"text/plain"}})}}}},65191:()=>{function e(e,t,n,o,r){e.externalIntegrationConfiguration=r.externalIntegrationConfiguration,e.difyExtension=r.difyExtensionUrl,e.queryMethods=r.queryMethodsUrl,e.agentId=r.agentId,e.agentName=r.agentName,e.close=()=>{t.dismiss({})},e.onCloseExternalIntegrationConfigurationModal=()=>{t.dismiss({})}}angular.module("graphdb.framework.ttyg.controllers.external-integration-configuration-modal",[]).controller("ExternalIntegrationConfigurationModalController",e),e.$inject=["$scope","$uibModalInstance","ModalService","$translate","dialogModel"]},66989:(e,t,n)=>{n.r(t),n(61105);var o=n(59263),r=n(38940);function i(e){const t=(t,n)=>e.getConnectors(t,n).then(e=>(0,o.connectorTypesListMapper)(e.data)),n=(t,n,r)=>e.hasConnector(encodeURIComponent(t),n,r).then(e=>(0,o.connectorsMapper)(e.data));return{getConnectorTypes:t,getConnectorsByType:n,getConnectorPrefixByName:(e,n,o)=>t(n,o).then(t=>{const n=t.getConnectorByName(e);return n?n.prefix:null}),getConnectorsByTypeAsSelectMenuOptions:(e,t,o)=>n(e,t,o).then(e=>e.connectors.map(e=>new r.SelectMenuOptionsModel({value:e.name,label:e.name})))}}angular.module("graphdb.framework.core.services.connectors",["graphdb.framework.rest.connectors.service"]).factory("ConnectorsService",i),i.$inject=["ConnectorsRestService"]},75232:()=>{angular.module("graphdb.framework.rest.similarity.service",[]).factory("SimilarityRestService",t),t.$inject=["$http","$repositories"];const e="rest/similarity";function t(t){return{getIndexes:function(n,o){return n?t.get(e,{headers:{"X-GraphDB-Repository":n,"X-GraphDB-Repository-Location":o}}):t.get(e)},getSearchQueries:function(){return t.get(`${e}/config`)},rebuildIndex:function(e){return n("PUT",e.name,e.options,e.selectQuery,e.searchQuery,e.analogicalQuery,e.stopList,e.infer,e.sameAs,e.type)},deleteIndex:function(n){return t.delete(`${e}?name=${n.name}`)},createIndex:n,getSamples:function(){return t.get(`${e}/samples`)},getQuery:function(e){return t.get("rest/similarity/query",{params:{name:e.indexName,options:e.indexOptions,stopList:e.indexStopList,selectQuery:e.query,infer:e.queryInference,sameAs:e.querySameAs,type:e.viewType,analyzer:e.indexAnalyzer}})},saveSearchQuery:function(e){return t({method:"put",url:"rest/similarity/search-query",data:e})}};function n(n,o,r,i,s,a,l,c,d,g,u){return t({method:n,url:`${e}`,noCancelOnRouteChange:!0,data:{name:o,options:r,selectQuery:i,stopList:l,infer:c,sameAs:d,type:g,analyzer:u,searchQuery:s,analogicalQuery:a}})}}},84430:(e,t,n)=>{n.r(t),n(65191);var o=n(70826);function r(e,t,n){return{open:function(r){return t.getExternalUrl().then(t=>{const n=function(e,t){return{agentName:e.name,agentId:e.id,queryMethodsUrl:`${t}/rest/llm/tool/ttyg/${e.id}`,difyExtensionUrl:`${t}/rest/llm/ttyg/${e.id}/dify`}}(r,t.data);return e.open({templateUrl:"js/angular/ttyg/templates/modal/external-integration-configuration-modal.html",controller:"ExternalIntegrationConfigurationModalController",windowClass:"external-integration-configuration-modal",backdrop:"static",resolve:{dialogModel:()=>n}}).result.then(()=>{}).catch(()=>{})}).catch(e=>{n.error(getError(e,0,o.TTYG_ERROR_MSG_LENGTH))})}}}angular.module("graphdb.framework.ttyg.services.externalIntegrationModal",["graphdb.framework.ttyg.controllers.external-integration-configuration-modal"]).factory("ExternalIntegrationModalService",r),r.$inject=["$uibModal","LocationsRestService","toastr"]},95953:(e,t,n)=>{n.r(t);var o=n(69937),r=n(28319),i=(n(51682),n(66989),n(36665),n(69289),n(17187),n(84430),n(51445)),s=n(71920),a=n(70826),l=n(16135),c=n(76076);function d(e,t,n,d,g,u,m,p,y,h,I,S,x,E,T,M,f,_,v){e.AGENT_OPERATION=a.AGENT_OPERATION,e.operation=S.operation,e.savingAgent=!1,e.agentFormModel=S.agentFormModel,e.activeRepositoryInfo=S.activeRepositoryInfo,e.extractionMethodLoaderFlags={[r.ExtractionMethod.SIMILARITY]:!1},e.activeRepositoryList=S.activeRepositoryList,e.extractionMethods=r.ExtractionMethod,e.additionalExtractionMethods=r.AdditionalExtractionMethod,e.ExtractionMethodTemplates=T,e.showAdvancedSettings=!1,e.showHighTemperatureWarning=!1,e.showSystemInstructionWarning=!1,e.similarityIndexes=[],e.retrievalConnectors=[],e.ftsEnabled=!1,e.autocompleteSuggestions=[],e.showContextSize=null!==e.agentFormModel.contextSize,e.toggleExtractionMethod=t=>{t.expanded=t.selected,e.agentSettingsForm.extractionMethods.$setTouched(),O(),w[t.method](t)},e.onExtractionMethodPanelToggle=e=>{e.toggleCollapse(),w[e.method](e)},e.toggleAdditionalExtractionMethod=t=>{t.expanded=t.selected,e.checkAutocompleteIndexEnabled(),k[t.method](t)},e.onAdditionalExtractionMethodPanelToggle=e=>{e.toggleCollapse(),k[e.method](e)},e.helpInfoForModel={ttygHelpInfo:function(){const e=(0,o.Gz)(I.instant("ttyg.agent.create_agent_modal.form.model.hint"));return p.trustAsHtml(e)}(),linkText:I.instant("ttyg.agent.create_agent_modal.form.model.link_text"),documentationUrl:c.DocumentationUrlResolver.getDocumentationUrl(v.productShortVersion,"talk-to-graph.html#prerequisites-and-configuration")},e.getFTSDisabledHelpMessage=()=>{const t=(0,o.Gz)(I.instant("ttyg.agent.create_agent_modal.form.fts_search.fts_disabled_message",{repositoryEditPage:"repository/edit/"+e.agentFormModel.repositoryId}));return p.trustAsHtml(t)},e.goToAutocompleteView=t=>{t.preventDefault(),x.emit(s.TTYGEventName.GO_TO_AUTOCOMPLETE_INDEX_VIEW,{repositoryId:e.agentFormModel.repositoryId})},e.goToCreateSimilarityView=t=>{t.preventDefault(),x.emit(s.TTYGEventName.GO_TO_CREATE_SIMILARITY_VIEW,{repositoryId:e.agentFormModel.repositoryId})},e.goToConnectorsView=t=>{t.preventDefault(),x.emit(s.TTYGEventName.GO_TO_CONNECTORS_VIEW,{repositoryId:e.agentFormModel.repositoryId})},e.ok=()=>{const t=e.agentFormModel.toPayload();return R[e.operation](t)},e.cancel=()=>{t.dismiss({})},e.close=()=>{t.dismiss({})},e.updateSimilaritySearchPanel=(t=!1)=>{const n=e.agentFormModel.assistantExtractionMethods.getSimilarityExtractionMethod();n.selected&&(t&&(n.similarityIndex=null),$(n))},e.updateRetrievalConnectorPanel=(t=!1)=>{const n=e.agentFormModel.assistantExtractionMethods.getRetrievalExtractionMethod();n.selected&&(t&&(n.retrievalConnectorInstance=null),N(n))},e.checkIfFTSEnabled=()=>{e.agentFormModel.repositoryId?e.agentFormModel.assistantExtractionMethods.getFTSSearchExtractionMethod().selected?(e.extractionMethodLoaderFlags[r.ExtractionMethod.FTS_SEARCH]=!0,m.getRepositoryModel({id:e.agentFormModel.repositoryId}).then(t=>{e.ftsEnabled=t.getParamValue(i.REPOSITORY_PARAMS.enableFtsIndex)}).catch(e=>{L(e,"ttyg.agent.messages.error_repository_config_loading")}).finally(()=>{e.extractionMethodLoaderFlags[r.ExtractionMethod.FTS_SEARCH]=!1,e.agentSettingsForm.$setValidity("FTSDisabled",e.ftsEnabled)})):e.agentSettingsForm.$setValidity("FTSDisabled",!0):e.agentSettingsForm.$setValidity("FTSDisabled",!1)},e.openExternalIntegrationConfig=()=>{const t=e.agentFormModel;_.open(t)},e.onRepositoryChange=()=>{U(!0,!0)},e.checkAutocompleteIndexEnabled=t=>{if(t||(t=e.agentFormModel.additionalExtractionMethods.additionalExtractionMethods.find(e=>e.method===r.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH)),t&&!t.selected||!e.agentFormModel.repositoryId)return;const n=b();M.checkAutocompleteStatus(n.repositoryId,n.repositoryLocation).then(t=>{e.autocompleteEnabled=t,e.agentSettingsForm.$setValidity("autocompleteDisabled",t)}).catch(t=>{e.agentSettingsForm.$setValidity("autocompleteDisabled",!1),y.error(getError(t))})},e.onRestoreDefaultContextSize=()=>{e.agentFormModel.contextSize=e.agentFormModel.contextSizeCopy},e.onRestoreDefaultSystemInstructions=()=>{e.agentFormModel.instructions.systemInstruction=e.agentFormModel.instructions.systemInstructionCopy},e.onRestoreDefaultUserInstructions=()=>{e.agentFormModel.instructions.userInstruction=e.agentFormModel.instructions.userInstructionCopy},e.onTemperatureChange=()=>{e.showHighTemperatureWarning=e.agentFormModel.temperature.value>1},e.onSystemInstructionChange=()=>{""===e.agentFormModel.instructions.systemInstruction||e.showSystemInstructionWarning||(e.showSystemInstructionWarning=!0,n.openModalAlert({title:I.instant("ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.title"),message:I.instant("ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body")}).result.then(function(){})),""===e.agentFormModel.instructions.systemInstruction&&(e.showSystemInstructionWarning=!1)},e.onExplainAgentSettings=()=>{const t=e.agentFormModel.toPayload();E.explainAgentSettings(t).then(e=>{const t={templateUrl:"js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html",controller:"AgentInstructionsExplainModalController",windowClass:"agent-instructions-explain-modal",backdrop:"static",resolve:{dialogModel:function(){return{agentInstructionsExplain:e}}},size:"lg"};d.open(t).result.then(()=>{})}).catch(e=>{y.error(getError(e,0,a.TTYG_ERROR_MSG_LENGTH))})},e.getSuggestions=t=>{const n=t.target.value;f.getAutocompleteSuggestions(n).then(l.mapUriAsNtripleAutocompleteResponse).then(t=>{e.autocompleteSuggestions=t.map(e=>({text:e.value}))}).catch(e=>{y.error(getError(e,0,a.TTYG_ERROR_MSG_LENGTH))})};const R={[a.AGENT_OPERATION.CREATE]:e=>C(e),[a.AGENT_OPERATION.EDIT]:e=>A(e),[a.AGENT_OPERATION.CLONE]:e=>F(e)},C=n=>(e.savingAgent=!0,E.createAgent(n).then(e=>{t.close(e),y.success(I.instant("ttyg.agent.messages.agent_save_successfully",{agentName:e.name}))}).catch(e=>{y.error(getError(e,0,a.TTYG_ERROR_MSG_LENGTH))}).finally(()=>{e.savingAgent=!1})),A=n=>(e.savingAgent=!0,E.editAgent(n).then(e=>{t.close(e),y.success(I.instant("ttyg.agent.messages.agent_save_successfully",{agentName:e.name}))}).catch(e=>{y.error(getError(e,0,a.TTYG_ERROR_MSG_LENGTH))}).finally(()=>{e.savingAgent=!1})),F=n=>(e.savingAgent=!0,E.createAgent(n).then(e=>{t.close(e),y.success(I.instant("ttyg.agent.messages.agent_save_successfully",{agentName:e.name}))}).catch(e=>{y.error(getError(e,0,a.TTYG_ERROR_MSG_LENGTH))}).finally(()=>{e.savingAgent=!1})),L=(e,t)=>{console.error(e),y.error(I.instant(t))},O=()=>{e.agentSettingsForm.extractionMethods.$setValidity("required",e.agentFormModel.hasExtractionMethodSelected())},b=()=>{const t=e.activeRepositoryList.find(t=>t.value===e.agentFormModel.repositoryId);return{repositoryId:t?t.data.repository.id:void 0,repositoryLocation:t?t.data.repository.location:void 0}},$=t=>{if(t.selected||e.agentSettingsForm.$setValidity("missingIndex",!0),e.agentFormModel.repositoryId&&t.expanded){e.extractionMethodLoaderFlags[t.method]=!0;const n=b();g.getIndexesAsMenuModel(n.repositoryId,n.repositoryLocation).then(n=>{e.similarityIndexes=n,e.agentSettingsForm.$setValidity("missingIndex",!t.selected||!(!n||!n.length)),G(e.similarityIndexes,t)}).catch(t=>{e.agentSettingsForm.$setValidity("missingIndex",!1),L(t,"ttyg.agent.messages.error_similarity_indexes_loading")}).finally(()=>{e.extractionMethodLoaderFlags[t.method]=!1})}},G=(e,t)=>{if(0===e.length)return void(t.similarityIndex=null);const n=e.find(e=>e.value===t.similarityIndex);t.similarityIndex=n?n.value:e[0].value},N=t=>{if(e.agentFormModel.repositoryId&&(t.selected||e.agentSettingsForm.$setValidity("missingConnector",!0),t.expanded)){e.extractionMethodLoaderFlags[t.method]=!0;const n=b();u.getConnectorPrefixByName("ChatGPT Retrieval",n.repositoryId,n.repositoryLocation).then(e=>u.getConnectorsByTypeAsSelectMenuOptions(e,n.repositoryId,n.repositoryLocation)).then(n=>{e.retrievalConnectors=n,e.agentSettingsForm.$setValidity("missingConnector",!t.selected||!(!n||!n.length)),D(e.retrievalConnectors,t)}).catch(t=>{e.agentSettingsForm.$setValidity("missingConnector",!1),L(t,"ttyg.agent.messages.error_retrieval_connectors_loading")}).finally(()=>{e.extractionMethodLoaderFlags[t.method]=!1})}},D=(e,t)=>{if(0===e.length)return void(t.retrievalConnectorInstance=null);const n=e.find(e=>e.value===t.retrievalConnectorInstance);t.retrievalConnectorInstance=n?n.value:e[0].value},w={[r.ExtractionMethod.FTS_SEARCH]:t=>{e.checkIfFTSEnabled()},[r.ExtractionMethod.SPARQL]:e=>{},[r.ExtractionMethod.SIMILARITY]:e=>$(e),[r.ExtractionMethod.RETRIEVAL]:e=>N(e)},k={[r.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH]:e=>P(e),[r.AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH]:()=>{}},P=t=>{t.selected||e.agentSettingsForm.$setValidity("autocompleteDisabled",!0),e.checkAutocompleteIndexEnabled(t)},U=(t=!1,n=!1)=>{e.checkIfFTSEnabled(),e.updateSimilaritySearchPanel(t),e.updateRetrievalConnectorPanel(n),e.checkAutocompleteIndexEnabled()},B=()=>{document.hidden||U()},V=(e,t)=>{const n=document.getElementById(e);n&&(n.value=t)};document.addEventListener("visibilitychange",B),e.$on("$destroy",()=>{document.removeEventListener("visibilitychange",B)}),b().repositoryId||(e.agentFormModel.repositoryId=null),setTimeout(O,0),t.rendered.then(()=>{V("temperatureSlider",e.agentFormModel.temperature.value),V("topPSlider",e.agentFormModel.topP.value)})}angular.module("graphdb.framework.ttyg.controllers.agent-settings-modal",["graphdb.framework.core.services.similarity","graphdb.framework.core.services.connectors","graphdb.framework.rest.repositories.service","graphdb.framework.ttyg.controllers.agent-instructions-explain-modal","graphdb.framework.ttyg.services.externalIntegrationModal","ngTagsInput"]).constant("ExtractionMethodTemplates",{iri_discovery_search:"iri-discovery-search",autocomplete_iri_discovery_search:"autocomplete-iri-discovery-search"}).controller("AgentSettingsModalController",d),d.$inject=["$scope","$uibModalInstance","ModalService","$uibModal","SimilarityService","ConnectorsService","RepositoriesRestService","$sce","toastr","UriUtils","$translate","dialogModel","TTYGContextService","TTYGService","ExtractionMethodTemplates","AutocompleteService","AutocompleteRestService","ExternalIntegrationModalService","productInfo"]}};
|
|
2
|
+
//# sourceMappingURL=95953.4ea6a7c68a22779ba299.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"95953.4ea6a7c68a22779ba299.bundle.js","mappings":"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","sources":["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/ttyg/controllers/agent-instructions-explain-modal.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/connectors/connectors.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-type.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/services/similarity.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/mappers/connectors-mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/connectors.rest.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/controllers/external-integration-configuration-modal.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/services/connectors.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/similarity.rest.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/externalIntegrationModal.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/controllers/agent-settings-modal.controller.js"],"sourcesContent":["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","import 'angular/core/services/similarity.service';\nimport 'angular/core/services/connectors.service';\nimport 'angular/core/services/ttyg.service';\nimport 'angular/rest/repositories.rest.service';\n\nangular\n .module('graphdb.framework.ttyg.controllers.agent-instructions-explain-modal', [])\n .controller('AgentInstructionsExplainModalController', AgentInstructionsExplainModalController);\n\nAgentInstructionsExplainModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$translate',\n 'dialogModel'\n];\n\nfunction AgentInstructionsExplainModalController($scope, $uibModalInstance, ModalService, $translate, dialogModel) {\n // =========================\n // Public variables\n // =========================\n\n $scope.agentInstructionsExplain = dialogModel.agentInstructionsExplain;\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n $scope.onCloseAgentInstructionsExplainModal = () => {\n $uibModalInstance.dismiss({});\n };\n\n // =========================\n // Private functions\n // =========================\n\n // =========================\n // Subscriptions\n // =========================\n\n const subscriptions = [];\n\n const onDestroy = () => {\n subscriptions.forEach((subscription) => subscription());\n };\n $scope.$on('$destroy', onDestroy);\n\n // =========================\n // Initialization\n // =========================\n}\n","export class ConnectorTypesListModel {\n constructor(data = {}) {\n /**\n * @type {ConnectorTypeModel[]}\n * @private\n */\n this._connectors = data.connectors || [];\n }\n\n getConnectorByName(name) {\n return this._connectors.find((connector) => connector.name === name);\n }\n\n get connectors() {\n return this._connectors;\n }\n\n set connectors(value) {\n this._connectors = value;\n }\n}\n\nexport class ConnectorTypeModel {\n constructor(data) {\n /**\n * @type {string}\n * @private\n */\n this._name = data.name;\n /**\n * @type {string}\n * @private\n */\n this._prefix = data.prefix;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n\n get prefix() {\n return this._prefix;\n }\n\n set prefix(value) {\n this._prefix = value;\n }\n}\n\nexport class ConnectorListModel {\n constructor(data = []) {\n this._connectors = data.connectors;\n }\n\n get connectors() {\n return this._connectors;\n }\n\n set connectors(value) {\n this._connectors = value;\n }\n}\n\nexport class ConnectorModel {\n constructor(data) {\n this._name = data.name;\n this._settings = new ConnectorSettingsModel(data);\n }\n\n get settings() {\n return this._settings;\n }\n\n set settings(value) {\n this._settings = value;\n }\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n}\n\nexport class ConnectorSettingsModel {\n constructor(data) {\n this._settings = data.values || {};\n }\n\n get settings() {\n return this._settings;\n }\n\n set settings(value) {\n this._settings = value;\n }\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 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","import 'angular/rest/similarity.rest.service';\nimport {mapIndexesResponseToSimilarityIndex} from \"../../rest/mappers/similarity-index-mapper\";\nimport {SelectMenuOptionsModel} from \"../../models/form-fields\";\n\nconst modules = ['graphdb.framework.rest.similarity.service'];\n\nangular\n .module('graphdb.framework.core.services.similarity', modules)\n .factory('SimilarityService', SimilarityService);\n\nSimilarityService.$inject = ['SimilarityRestService'];\n\nfunction SimilarityService(SimilarityRestService) {\n\n /**\n * Returns the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SimilarityIndex[]>}\n */\n const getIndexes = (repositoryId, repositoryLocation) => {\n return SimilarityRestService.getIndexes(repositoryId, repositoryLocation)\n .then((response) => mapIndexesResponseToSimilarityIndex(response.data));\n };\n\n /**\n * Returns the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code> as a menu model.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SelectMenuOptionsModel[]>}\n */\n const getIndexesAsMenuModel = (repositoryId, repositoryLocation) => {\n return getIndexes(repositoryId, repositoryLocation)\n .then((indexesModel) => {\n return indexesModel.map((index) => {\n return new SelectMenuOptionsModel({label: index.name, value: index.name});\n });\n });\n };\n\n return {\n getIndexes,\n getIndexesAsMenuModel\n };\n}\n","import {\n ConnectorListModel,\n ConnectorModel,\n ConnectorTypeModel,\n ConnectorTypesListModel\n} from \"../../models/connectors/connectors\";\n\n/**\n * Maps the connectors response data to a ConnectorTypesListModel. These are all available connector types.\n * @param {{}} data\n * @return {ConnectorTypesListModel}\n */\nexport const connectorTypesListMapper = (data) => {\n const connectorListModel = new ConnectorTypesListModel();\n if (!data) {\n return connectorListModel;\n }\n connectorListModel.connectors = Object.keys(data).map((key) => {\n return new ConnectorTypeModel({\n name: key,\n prefix: data[key]\n });\n });\n return connectorListModel;\n};\n\n/**\n * Maps the connectors response data to a ConnectorListModel. These are the connector instances of one specific type.\n * @param {*[]} data\n * @return {ConnectorListModel}\n */\nexport const connectorsMapper = (data) => {\n const connectors = new ConnectorListModel();\n if (!data) {\n return connectors;\n }\n connectors.connectors = data.map((connectorResponse) => {\n return new ConnectorModel(connectorResponse);\n });\n return connectors;\n};\n","angular\n .module('graphdb.framework.rest.connectors.service', [])\n .factory('ConnectorsRestService', ConnectorsRestService);\n\nConnectorsRestService.$inject = ['$http'];\n\nconst CONNECTORS_ENDPOINT = 'rest/connectors';\n\nfunction ConnectorsRestService($http) {\n\n return {\n getConnectors,\n initConnector,\n hasConnector,\n checkConnector\n };\n\n /**\n * Fetches all connectors for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the values persisted in local storage will be used {@see authentication.interceptor.js}.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {*} The similarity indexes for the specified repository.\n */\n function getConnectors(repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(CONNECTORS_ENDPOINT, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(CONNECTORS_ENDPOINT);\n }\n\n function initConnector(prefix) {\n return $http.get(`${CONNECTORS_ENDPOINT}/options?prefix=${prefix}`);\n }\n\n /**\n * Fetches all connectors of a specific type defined by the prefix for the repository with id <code>repositoryId</code>\n * and location <code>repositoryLocation</code>. If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorListModel>}\n */\n function hasConnector(prefix, repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(`${CONNECTORS_ENDPOINT}/existing?prefix=${prefix}`, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(`${CONNECTORS_ENDPOINT}/existing?prefix=${prefix}`);\n }\n\n function checkConnector(data) {\n return $http.post(`${CONNECTORS_ENDPOINT}/check`, data, {\n headers: {\n 'Content-Type': 'text/plain'\n }\n });\n }\n}\n","angular\n .module('graphdb.framework.ttyg.controllers.external-integration-configuration-modal', [])\n .controller('ExternalIntegrationConfigurationModalController', ExternalIntegrationConfigurationModalController);\n\nExternalIntegrationConfigurationModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$translate',\n 'dialogModel'\n];\n\nfunction ExternalIntegrationConfigurationModalController($scope, $uibModalInstance, ModalService, $translate, dialogModel) {\n // =========================\n // Public variables\n // =========================\n\n $scope.externalIntegrationConfiguration = dialogModel.externalIntegrationConfiguration;\n $scope.difyExtension = dialogModel.difyExtensionUrl;\n $scope.queryMethods = dialogModel.queryMethodsUrl;\n $scope.agentId = dialogModel.agentId;\n $scope.agentName = dialogModel.agentName;\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n $scope.onCloseExternalIntegrationConfigurationModal = () => {\n $uibModalInstance.dismiss({});\n };\n}\n","import 'angular/rest/connectors.rest.service';\nimport {connectorsMapper, connectorTypesListMapper} from \"../../rest/mappers/connectors-mapper\";\nimport {SelectMenuOptionsModel} from \"../../models/form-fields\";\n\nconst modules = ['graphdb.framework.rest.connectors.service'];\n\nangular\n .module('graphdb.framework.core.services.connectors', modules)\n .factory('ConnectorsService', ConnectorsService);\n\nConnectorsService.$inject = ['ConnectorsRestService'];\n\nfunction ConnectorsService(ConnectorsRestService) {\n\n /**\n * Fetches all connector types from the server for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorTypesListModel>}\n */\n const getConnectorTypes = (repositoryId, repositoryLocation) => {\n return ConnectorsRestService.getConnectors(repositoryId, repositoryLocation)\n .then((response) => connectorTypesListMapper(response.data));\n };\n\n /**\n * Fetches the connector prefix by its name for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string} name\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<string|null>}\n */\n const getConnectorPrefixByName = (name, repositoryId, repositoryLocation) => {\n return getConnectorTypes(repositoryId, repositoryLocation)\n .then((connectorTypesModel) => {\n const connector = connectorTypesModel.getConnectorByName(name);\n return connector ? connector.prefix : null;\n });\n };\n\n /**\n * Fetches all connectors of a specific type defined by the prefix for the repository with id <code>repositoryId</code>\n * and location <code>repositoryLocation</code>. If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorListModel>}\n */\n const getConnectorsByType = (prefix, repositoryId, repositoryLocation) => {\n return ConnectorsRestService.hasConnector(encodeURIComponent(prefix), repositoryId, repositoryLocation)\n .then((response) => {\n return connectorsMapper(response.data);\n });\n };\n\n /**\n * Fetches all connectors of a specific type defined by the prefix and returns them as SelectMenuOptionsModel\n * for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SelectMenuOptionsModel[]>}\n */\n const getConnectorsByTypeAsSelectMenuOptions = (prefix, repositoryId, repositoryLocation) => {\n return getConnectorsByType(prefix, repositoryId, repositoryLocation)\n .then((connectorsModel) => connectorsModel.connectors.map((connector) => {\n return new SelectMenuOptionsModel({\n value: connector.name,\n label: connector.name\n });\n }));\n };\n\n return {\n getConnectorTypes,\n getConnectorsByType,\n getConnectorPrefixByName,\n getConnectorsByTypeAsSelectMenuOptions\n };\n}\n","angular\n .module('graphdb.framework.rest.similarity.service', [])\n .factory('SimilarityRestService', SimilarityRestService);\n\nSimilarityRestService.$inject = ['$http', '$repositories'];\n\nconst SIMILARITY_ENDPOINT = 'rest/similarity';\n\nfunction SimilarityRestService($http) {\n\n return {\n getIndexes,\n getSearchQueries,\n rebuildIndex,\n deleteIndex,\n createIndex,\n getSamples,\n getQuery,\n saveSearchQuery\n };\n\n /**\n * Fetches the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {*} The similarity indexes for the specified repository.\n */\n function getIndexes(repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(SIMILARITY_ENDPOINT, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(SIMILARITY_ENDPOINT);\n }\n\n function getSamples() {\n return $http.get(`${SIMILARITY_ENDPOINT}/samples`);\n }\n\n function getSearchQueries() {\n return $http.get(`${SIMILARITY_ENDPOINT}/config`);\n }\n\n function createIndex(method, name, options, selectQuery, searchQuery, analogicalQuery, stopList, infer, sameAs, type, analyzer) {\n return $http({\n method,\n url: `${SIMILARITY_ENDPOINT}`,\n noCancelOnRouteChange: true,\n data: {\n name,\n options,\n selectQuery,\n stopList,\n infer,\n sameAs,\n type,\n analyzer,\n searchQuery,\n analogicalQuery\n }\n }\n );\n }\n\n function rebuildIndex(index) {\n return createIndex('PUT', index.name, index.options, index.selectQuery, index.searchQuery, index.analogicalQuery, index.stopList, index.infer, index.sameAs, index.type);\n }\n\n function deleteIndex(index) {\n return $http.delete(`${SIMILARITY_ENDPOINT}?name=${index.name}`);\n }\n\n function getQuery(data) {\n return $http.get('rest/similarity/query',\n {\n params: {\n name: data.indexName,\n options: data.indexOptions,\n stopList: data.indexStopList,\n selectQuery: data.query,\n infer: data.queryInference,\n sameAs: data.querySameAs,\n type: data.viewType,\n analyzer: data.indexAnalyzer\n }\n });\n }\n\n function saveSearchQuery(data) {\n return $http({\n method: 'put',\n url: 'rest/similarity/search-query',\n data\n });\n }\n}\n","import 'angular/ttyg/controllers/external-integration-configuration-modal.controller';\nimport {TTYG_ERROR_MSG_LENGTH} from \"./constants\";\n\nangular\n .module('graphdb.framework.ttyg.services.externalIntegrationModal',\n ['graphdb.framework.ttyg.controllers.external-integration-configuration-modal'])\n .factory('ExternalIntegrationModalService', ExternalIntegrationModalService)\n\nExternalIntegrationModalService.$inject = ['$uibModal', 'LocationsRestService', 'toastr'];\n\nfunction ExternalIntegrationModalService($uibModal, LocationsRestService, toastr) {\n function buildDialogModel(agent, baseUrl) {\n return {\n agentName: agent.name,\n agentId: agent.id,\n queryMethodsUrl: `${baseUrl}/rest/llm/tool/ttyg/${agent.id}`,\n difyExtensionUrl: `${baseUrl}/rest/llm/ttyg/${agent.id}/dify`\n };\n }\n\n function open(agent) {\n return LocationsRestService.getExternalUrl()\n .then((response) => {\n const dialogModel = buildDialogModel(agent, response.data);\n\n return $uibModal.open({\n templateUrl: 'js/angular/ttyg/templates/modal/external-integration-configuration-modal.html',\n controller: 'ExternalIntegrationConfigurationModalController',\n windowClass: 'external-integration-configuration-modal',\n backdrop: 'static',\n resolve: {\n dialogModel: () => dialogModel\n }\n }).result\n .then(() => {\n // Modal was closed with success - do nothing\n })\n .catch(() => {\n // Modal was dismissed — do nothing\n });\n })\n .catch((error) => {\n // Catches API failure\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n }\n\n return {open};\n}\n","import {decodeHTML} from \"../../../../app\";\nimport {AdditionalExtractionMethod, ExtractionMethod} from \"../../models/ttyg/agents\";\nimport 'angular/core/services/similarity.service';\nimport 'angular/core/services/connectors.service';\nimport 'angular/core/services/ttyg.service';\nimport 'angular/rest/repositories.rest.service';\nimport 'angular/ttyg/controllers/agent-instructions-explain-modal.controller';\nimport 'angular/ttyg/services/externalIntegrationModal.service';\nimport {REPOSITORY_PARAMS} from \"../../models/repository/repository\";\nimport {TTYGEventName} from \"../services/ttyg-context.service\";\nimport {AGENT_OPERATION, TTYG_ERROR_MSG_LENGTH} from \"../services/constants\";\nimport {mapUriAsNtripleAutocompleteResponse} from \"../../rest/mappers/autocomplete-mapper\";\nimport {DocumentationUrlResolver} from \"../../utils/documentation-url-resolver\";\n\nangular\n .module('graphdb.framework.ttyg.controllers.agent-settings-modal', [\n 'graphdb.framework.core.services.similarity',\n 'graphdb.framework.core.services.connectors',\n 'graphdb.framework.rest.repositories.service',\n 'graphdb.framework.ttyg.controllers.agent-instructions-explain-modal',\n 'graphdb.framework.ttyg.services.externalIntegrationModal',\n 'ngTagsInput'\n ])\n .constant('ExtractionMethodTemplates', {\n 'iri_discovery_search': 'iri-discovery-search',\n 'autocomplete_iri_discovery_search': 'autocomplete-iri-discovery-search'\n })\n .controller('AgentSettingsModalController', AgentSettingsModalController);\n\nAgentSettingsModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$uibModal',\n 'SimilarityService',\n 'ConnectorsService',\n 'RepositoriesRestService',\n '$sce',\n 'toastr',\n 'UriUtils',\n '$translate',\n 'dialogModel',\n 'TTYGContextService',\n 'TTYGService',\n 'ExtractionMethodTemplates',\n 'AutocompleteService',\n 'AutocompleteRestService',\n 'ExternalIntegrationModalService',\n 'productInfo'];\n\nfunction AgentSettingsModalController(\n $scope,\n $uibModalInstance,\n ModalService,\n $uibModal,\n SimilarityService,\n ConnectorsService,\n RepositoriesRestService,\n $sce,\n toastr,\n UriUtils,\n $translate,\n dialogModel,\n TTYGContextService,\n TTYGService,\n ExtractionMethodTemplates,\n AutocompleteService,\n AutocompleteRestService,\n ExternalIntegrationModalService,\n productInfo) {\n\n // =========================\n // Private variables\n // =========================\n\n const CHAT_GPT_RETRIEVAL_CONNECTOR_NAME = 'ChatGPT Retrieval';\n\n // =========================\n // Public variables\n // =========================\n\n $scope.AGENT_OPERATION = AGENT_OPERATION;\n\n /**\n * The operation type for the modal. This can be one of <code>AGENT_OPERATION</code> constants.\n */\n $scope.operation = dialogModel.operation;\n\n /**\n * Flag to control the visibility of the loader when creating an agent.\n * @type {boolean}\n */\n $scope.savingAgent = false;\n\n /**\n * The model used in the form.\n * @type {AgentFormModel|*}\n */\n $scope.agentFormModel = dialogModel.agentFormModel;\n\n /**\n * The active repository info model.\n * @type {RepositoryInfoModel|*}\n */\n $scope.activeRepositoryInfo = dialogModel.activeRepositoryInfo;\n\n /**\n * Flags used to show/hide the loader for the extraction methods when the user opens a panel and some data needs to\n * be loaded.\n * @type {{[string]: boolean}} - the key is the extraction method types in <code>ExtractionMethod</code>\n */\n $scope.extractionMethodLoaderFlags = {\n [ExtractionMethod.SIMILARITY]: false\n };\n\n /**\n * The repository select menu options model.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.activeRepositoryList = dialogModel.activeRepositoryList;\n\n /**\n * The extraction method types constants.\n * @type {{SPARQL: string, FTS_SEARCH: string, SIMILARITY: string, RETRIEVAL: string}}\n */\n $scope.extractionMethods = ExtractionMethod;\n\n /**\n * The additional extraction method types constants.\n * @type {{IRI_DISCOVERY_SEARCH: string, AUTOCOMPLETE_IRI_DISCOVERY_SEARCH: string}}\n */\n $scope.additionalExtractionMethods = AdditionalExtractionMethod;\n\n /**\n * The names of the template files, containing the Extraction Method Templates.\n * @type {Object<string, string>}\n */\n $scope.ExtractionMethodTemplates = ExtractionMethodTemplates;\n\n /**\n * Flag used to show/hide the advanced settings in the modal.\n * @type {boolean}\n */\n $scope.showAdvancedSettings = false;\n\n /**\n * Flag used to show/hide the high temperature warning in the modal.\n * @type {boolean}\n */\n $scope.showHighTemperatureWarning = false;\n\n /**\n * Flag used to control the visibility of the system instruction warning.\n * @type {boolean}\n */\n $scope.showSystemInstructionWarning = false;\n\n /**\n * The similarity indexes to be used for the similarity extraction method as select menu options.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.similarityIndexes = [];\n\n /**\n * The retrieval connectors to be used for the retrieval extraction method as select menu options.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.retrievalConnectors = [];\n\n /**\n * Flag used to show/hide the FTS enabled state in the modal.\n * @type {boolean}\n */\n $scope.ftsEnabled = false;\n\n /**\n * The autocomplete suggestions source for the 'Autocomplete IRI discovery' extraction method.\n * @type {*[]}\n */\n $scope.autocompleteSuggestions = [];\n\n /**\n * Flag to determine if the context size field should be visible in the form.\n * @type {boolean}\n */\n $scope.showContextSize = ($scope.agentFormModel.contextSize !== null);\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Sets the UI touched state and validation state for the extraction methods property so that the UI can show if\n * the user has selected at least one extraction method and warn him if he hasn't.\n *\n * @param {ExtractionMethodFormModel} extractionMethod\n */\n $scope.toggleExtractionMethod = (extractionMethod) => {\n extractionMethod.expanded = extractionMethod.selected;\n $scope.agentSettingsForm.extractionMethods.$setTouched();\n setExtractionMethodValidityStatus();\n extractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Handles the panel toggle event for the extraction method. This is used to do some initialization when the user\n * opens the panel for a specific extraction method.\n * @param {ExtractionMethodFormModel} extractionMethod\n */\n $scope.onExtractionMethodPanelToggle = (extractionMethod) => {\n extractionMethod.toggleCollapse();\n extractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Sets the UI touched state and validation state for the additional extraction methods property so that the UI can show if\n * the user has selected at least one extraction method.\n *\n * @param {AdditionalExtractionMethodFormModel} extractionMethod\n */\n $scope.toggleAdditionalExtractionMethod = (extractionMethod) => {\n extractionMethod.expanded = extractionMethod.selected;\n $scope.checkAutocompleteIndexEnabled();\n additionalExtractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Handles the panel toggle event for the additional extraction method. This is used to do some initialization when the user\n * opens the panel for a specific extraction method.\n * @param {AdditionalExtractionMethodFormModel} extractionMethod\n */\n $scope.onAdditionalExtractionMethodPanelToggle = (extractionMethod) => {\n extractionMethod.toggleCollapse();\n additionalExtractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n $scope.helpInfoForModel = {\n ttygHelpInfo: getModelHelpMessage(),\n linkText: $translate.instant('ttyg.agent.create_agent_modal.form.model.link_text'),\n documentationUrl: DocumentationUrlResolver.getDocumentationUrl(productInfo.productShortVersion, 'talk-to-graph.html#prerequisites-and-configuration')\n }\n\n /**\n * Resolves the hint for the FTS search missing message. This is needed because the hint contains a html link that\n * should be properly rendered.\n * @return {*}\n */\n $scope.getFTSDisabledHelpMessage = () => {\n // The hint contains a html link which should be properly rendered.\n const message = decodeHTML(\n $translate.instant(\n 'ttyg.agent.create_agent_modal.form.fts_search.fts_disabled_message',\n {repositoryEditPage: 'repository/edit/' + $scope.agentFormModel.repositoryId}\n )\n );\n return $sce.trustAsHtml(message);\n };\n\n /**\n * Opens the 'Autocomplete index' view in a new tab.\n */\n $scope.goToAutocompleteView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_AUTOCOMPLETE_INDEX_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n }\n\n /**\n * Opens the 'Create Similarity' view in a new tab.\n */\n $scope.goToCreateSimilarityView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_CREATE_SIMILARITY_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n };\n\n /**\n * Opens the 'Connectors' view in a new tab.\n */\n $scope.goToConnectorsView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_CONNECTORS_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n };\n\n /**\n * Handles the selected agent operation which can be one of <code>AGENT_OPERATION</code> types. Respective handler\n * is called based on the operation type with the agent payload build based on the form model.\n * @return {Promise<void>}\n */\n $scope.ok = () => {\n const agentPayload = $scope.agentFormModel.toPayload();\n return agentOperationHandlers[$scope.operation](agentPayload);\n };\n\n /**\n * Closes the modal when the user cancels the agent creation.\n */\n $scope.cancel = () => {\n $uibModalInstance.dismiss({});\n };\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n /**\n * Updates the similarity search panel.\n *\n * @param {boolean} clearIndexSelection - If true, the selected index will be cleared.\n */\n $scope.updateSimilaritySearchPanel = (clearIndexSelection = false) => {\n const similaritySearchExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getSimilarityExtractionMethod();\n if (!similaritySearchExtractionMethod.selected) {\n return;\n }\n if (clearIndexSelection) {\n similaritySearchExtractionMethod.similarityIndex = null;\n }\n handleSimilaritySearchExtractionMethodPanelToggle(similaritySearchExtractionMethod);\n };\n\n /**\n * Updates the ChatGPT retrieval connector panel.\n *\n * @param {boolean} clearSelection - If true, the selected connector will be cleared.\n */\n $scope.updateRetrievalConnectorPanel = (clearSelection = false) => {\n const retrievalExtractionExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getRetrievalExtractionMethod();\n if (!retrievalExtractionExtractionMethod.selected) {\n return;\n }\n if (clearSelection) {\n retrievalExtractionExtractionMethod.retrievalConnectorInstance = null;\n }\n handleRetrievalConnectorExtractionMethodPanelToggle(retrievalExtractionExtractionMethod);\n };\n\n $scope.checkIfFTSEnabled = () => {\n if (!$scope.agentFormModel.repositoryId) {\n $scope.agentSettingsForm.$setValidity('FTSDisabled', false);\n return;\n }\n\n const ftsSearchExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getFTSSearchExtractionMethod();\n if (!ftsSearchExtractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('FTSDisabled', true);\n return;\n }\n\n $scope.extractionMethodLoaderFlags[ExtractionMethod.FTS_SEARCH] = true;\n\n // pass a fake repository info object with only an id because we don't care for the location\n RepositoriesRestService.getRepositoryModel({id: $scope.agentFormModel.repositoryId}).then((repositoryModel) => {\n $scope.ftsEnabled = repositoryModel.getParamValue(REPOSITORY_PARAMS.enableFtsIndex);\n })\n .catch((error) => {\n logAndShowError(error, 'ttyg.agent.messages.error_repository_config_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[ExtractionMethod.FTS_SEARCH] = false;\n $scope.agentSettingsForm.$setValidity('FTSDisabled', $scope.ftsEnabled);\n });\n };\n\n /**\n * Opens a modal to copy the external integration for the currently edited agent.\n *\n * @function\n */\n $scope.openExternalIntegrationConfig = () => {\n const agent = $scope.agentFormModel;\n ExternalIntegrationModalService.open(agent);\n };\n\n /**\n * Handles the change in the repository id field. This is needed because\n * the FTS method configuration depends on the selected repository to be\n * able to validate if the FTS is enabled for that selected repository.\n */\n $scope.onRepositoryChange = () => {\n refreshValidations(true, true);\n };\n\n /**\n * Checks the status of the autocomplete index.\n * @param {AdditionalExtractionMethodFormModel|undefined} method - The extraction method to check the autocomplete\n * index for. This function can be called in the visibilitychange handler, so the method might not be defined.\n * If not provided, it will check the 'Autocomplete IRI discovery search' method from the additional extraction\n * methods.\n */\n $scope.checkAutocompleteIndexEnabled = (method) => {\n if (!method) {\n method = $scope.agentFormModel.additionalExtractionMethods.additionalExtractionMethods\n .find((extractionMethod) => extractionMethod.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH);\n }\n // If the method is not selected, we don't need to check the autocomplete index status.\n // Also, if the repository id is not set, we can't check the autocomplete index status.\n if (method && !method.selected || !$scope.agentFormModel.repositoryId) {\n return;\n }\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n AutocompleteService.checkAutocompleteStatus(selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((autocompleteEnabled) => {\n $scope.autocompleteEnabled = autocompleteEnabled;\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', autocompleteEnabled);\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', false);\n toastr.error(getError(error));\n });\n }\n\n /**\n * Restores the default context size.\n */\n $scope.onRestoreDefaultContextSize = () => {\n $scope.agentFormModel.contextSize = $scope.agentFormModel.contextSizeCopy;\n };\n\n /**\n * Restores the default system instructions.\n */\n $scope.onRestoreDefaultSystemInstructions = () => {\n $scope.agentFormModel.instructions.systemInstruction = $scope.agentFormModel.instructions.systemInstructionCopy;\n };\n\n /**\n * Restores the default user instructions.\n */\n $scope.onRestoreDefaultUserInstructions = () => {\n $scope.agentFormModel.instructions.userInstruction = $scope.agentFormModel.instructions.userInstructionCopy;\n };\n\n /**\n * Handles the change in the temperature field. This is needed because the high temperature warning should be shown\n * when the temperature is higher than 1.\n */\n $scope.onTemperatureChange = () => {\n $scope.showHighTemperatureWarning = $scope.agentFormModel.temperature.value > 1;\n };\n\n /**\n * Handles the change in the system instructions field.\n */\n $scope.onSystemInstructionChange = () => {\n if ($scope.agentFormModel.instructions.systemInstruction !== '' && !$scope.showSystemInstructionWarning) {\n $scope.showSystemInstructionWarning = true;\n ModalService.openModalAlert({\n title: $translate.instant('ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.title'),\n message: $translate.instant('ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body')\n }).result\n .then(function () {\n // Do nothing, just warning the user\n });\n }\n if ($scope.agentFormModel.instructions.systemInstruction === '') {\n $scope.showSystemInstructionWarning = false;\n }\n };\n\n /**\n * Opens the agent instructions explain modal.\n */\n $scope.onExplainAgentSettings = () => {\n const agentPayload = $scope.agentFormModel.toPayload();\n TTYGService.explainAgentSettings(agentPayload)\n .then((agentInstructionsExplain) => {\n const options = {\n templateUrl: 'js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html',\n controller: 'AgentInstructionsExplainModalController',\n windowClass: 'agent-instructions-explain-modal',\n backdrop: 'static',\n resolve: {\n dialogModel: function () {\n return {\n agentInstructionsExplain\n };\n }\n },\n size: 'lg'\n };\n $uibModal.open(options).result\n .then(() => {\n // Do nothing\n });\n }).catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n };\n\n $scope.getSuggestions = (event) => {\n const inputText = event.target.value;\n AutocompleteRestService.getAutocompleteSuggestions(inputText)\n .then(mapUriAsNtripleAutocompleteResponse)\n .then((suggestions) => {\n $scope.autocompleteSuggestions = suggestions.map(item => ({text: item.value}));\n }).catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n }\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Resolves the hint message for the agent model property.\n * This is needed because the hint contains a html link that\n * should be properly rendered.\n * @return {*}\n */\n function getModelHelpMessage() {\n // The hint contains a html link which should be properly rendered.\n const message = decodeHTML($translate.instant('ttyg.agent.create_agent_modal.form.model.hint'));\n return $sce.trustAsHtml(message);\n }\n\n /**\n * Mapping of agent operations to their respective handlers.\n * @type {{[AGENT_OPERATION.EDIT]: (function(*): Promise<void>), [AGENT_OPERATION.CLONE]: (function(*): Promise<void>), [AGENT_OPERATION.CREATE]: (function(*): Promise<void>)}}\n */\n const agentOperationHandlers = {\n [AGENT_OPERATION.CREATE]: (payload) => createAgent(payload),\n [AGENT_OPERATION.EDIT]: (payload) => editAgent(payload),\n [AGENT_OPERATION.CLONE]: (payload) => cloneAgent(payload)\n };\n\n /**\n * Creates a new agent with the given payload and closes the modal if no errors occur.\n * @param {*} newAgentPayload - the payload for the new agent.\n * @return {Promise<void>}\n */\n const createAgent = (newAgentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.createAgent(newAgentPayload)\n .then((agentModel) => {\n $uibModalInstance.close(agentModel);\n toastr.success($translate.instant('ttyg.agent.messages.agent_save_successfully', {agentName: agentModel.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n /**\n * Sends the edit agent payload to the server and closes the modal if no errors occur.\n * @param {*} agentPayload - the payload for the agent to be edited.\n * @return {Promise<void>}\n */\n const editAgent = (agentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.editAgent(agentPayload)\n .then((updatedAgent) => {\n $uibModalInstance.close(updatedAgent);\n toastr.success($translate.instant('ttyg.agent.messages.agent_save_successfully', {agentName: updatedAgent.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n /**\n * Clones the agent with the given payload and closes the modal if no errors occur.\n * @param {*} agentPayload\n * @return {Promise<void>}\n */\n const cloneAgent = (agentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.createAgent(agentPayload)\n .then((updatedAgent) => {\n $uibModalInstance.close(updatedAgent);\n toastr.success($translate.instant(\"ttyg.agent.messages.agent_save_successfully\", {agentName: updatedAgent.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n const logAndShowError = (error, errorMessageKey) => {\n console.error(error);\n toastr.error($translate.instant(errorMessageKey));\n };\n\n const setExtractionMethodValidityStatus = () => {\n $scope.agentSettingsForm.extractionMethods.$setValidity('required', $scope.agentFormModel.hasExtractionMethodSelected());\n };\n\n const handleFTSExtractionMethodPanelToggle = (extractionMethod) => {\n $scope.checkIfFTSEnabled();\n };\n\n /**\n * Returns the repository info model for the selected repository in the form.\n *\n * @return {{repositoryLocation: (*|undefined), repositoryId: (*|undefined)}}\n */\n const getSelectedRepositoryInfo = () => {\n const selectRepositoryInfo = $scope.activeRepositoryList.find((repository) => repository.value === $scope.agentFormModel.repositoryId);\n return {\n repositoryId: selectRepositoryInfo ? selectRepositoryInfo.data.repository.id : undefined,\n repositoryLocation: selectRepositoryInfo ? selectRepositoryInfo.data.repository.location : undefined\n };\n };\n\n const handleSimilaritySearchExtractionMethodPanelToggle = (extractionMethod) => {\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('missingIndex', true);\n }\n if (!$scope.agentFormModel.repositoryId) {\n return;\n }\n if (extractionMethod.expanded) {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = true;\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n SimilarityService.getIndexesAsMenuModel(selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((indexes) => {\n $scope.similarityIndexes = indexes;\n $scope.agentSettingsForm.$setValidity('missingIndex', !extractionMethod.selected || !!(indexes && indexes.length));\n updateSelectedSimilarityIndex($scope.similarityIndexes, extractionMethod);\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('missingIndex', false);\n logAndShowError(error, 'ttyg.agent.messages.error_similarity_indexes_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = false;\n });\n }\n };\n\n /**\n * Updates the selected similarity index for the extraction method.\n *\n * @param {SelectMenuOptionsModel[]} indexes - The list of all available similarity indexes.\n * @param {Object} extractionMethod - The extraction method object containing the currently selected similarity index.\n */\n const updateSelectedSimilarityIndex = (indexes, extractionMethod) => {\n if (indexes.length === 0) {\n // If no similarity indexes are available, clear the similarity index.\n extractionMethod.similarityIndex = null;\n return;\n }\n\n // If the selected index is not found in the current list, default to the first index.\n const selectedIndex = indexes.find((index) => index.value === extractionMethod.similarityIndex);\n extractionMethod.similarityIndex = selectedIndex ? selectedIndex.value : indexes[0].value;\n };\n\n const handleRetrievalConnectorExtractionMethodPanelToggle = (extractionMethod) => {\n if (!$scope.agentFormModel.repositoryId) {\n return;\n }\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('missingConnector', true);\n }\n\n if (extractionMethod.expanded) {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = true;\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n ConnectorsService.getConnectorPrefixByName(CHAT_GPT_RETRIEVAL_CONNECTOR_NAME, selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((prefix) => ConnectorsService.getConnectorsByTypeAsSelectMenuOptions(prefix, selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation))\n .then((connectors) => {\n $scope.retrievalConnectors = connectors;\n $scope.agentSettingsForm.$setValidity('missingConnector', !extractionMethod.selected || !!(connectors && connectors.length));\n updateSelectedRetrievalConnector($scope.retrievalConnectors, extractionMethod);\n\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('missingConnector', false);\n logAndShowError(error, 'ttyg.agent.messages.error_retrieval_connectors_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = false;\n });\n }\n };\n\n /**\n * Updates the selected retrieval connector for the extraction method.\n *\n * @param {SelectMenuOptionsModel[]} retrievalConnectors - The list of all available connectors.\n * @param {Object} extractionMethod - The extraction method object containing the currently selected retrieval connector.\n */\n const updateSelectedRetrievalConnector = (retrievalConnectors, extractionMethod) => {\n if (retrievalConnectors.length === 0) {\n // If no connector are available, clear the similarity index.\n extractionMethod.retrievalConnectorInstance = null;\n return;\n }\n const selectedConnector = retrievalConnectors.find((connector) => connector.value === extractionMethod.retrievalConnectorInstance);\n\n // If the selected connector is not found in the current list, default to the first index.\n extractionMethod.retrievalConnectorInstance = selectedConnector\n ? selectedConnector.value\n : retrievalConnectors[0].value;\n };\n\n const extractionPanelToggleHandlers = {\n [ExtractionMethod.FTS_SEARCH]: (extractionMethod) => handleFTSExtractionMethodPanelToggle(extractionMethod),\n [ExtractionMethod.SPARQL]: (extractionMethod) => {\n },\n [ExtractionMethod.SIMILARITY]: (extractionMethod) => handleSimilaritySearchExtractionMethodPanelToggle(extractionMethod),\n [ExtractionMethod.RETRIEVAL]: (extractionMethod) => handleRetrievalConnectorExtractionMethodPanelToggle(extractionMethod)\n };\n\n const additionalExtractionPanelToggleHandlers = {\n [AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH]: (extractionMethod) => handleAutocompleteExtractionMethodPanelToggle(extractionMethod),\n [AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH]: () => {\n },\n };\n\n const handleAutocompleteExtractionMethodPanelToggle = (extractionMethod) => {\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', true);\n }\n $scope.checkAutocompleteIndexEnabled(extractionMethod);\n }\n\n const refreshValidations = (clearIndexSelection = false, clearRetrievalConnectorSelection = false) => {\n $scope.checkIfFTSEnabled();\n $scope.updateSimilaritySearchPanel(clearIndexSelection);\n $scope.updateRetrievalConnectorPanel(clearRetrievalConnectorSelection);\n $scope.checkAutocompleteIndexEnabled();\n };\n\n const onTabVisibilityChanged = () => {\n if (!document.hidden) {\n refreshValidations();\n }\n };\n\n const refreshSliderById = (elementId, value) => {\n const slider = document.getElementById(elementId);\n if (slider) {\n slider.value = value;\n }\n };\n\n // =========================\n // Subscriptions\n // =========================\n\n const removeAllSubscribers = () => {\n document.removeEventListener(\"visibilitychange\", onTabVisibilityChanged);\n };\n\n document.addEventListener(\"visibilitychange\", onTabVisibilityChanged);\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllSubscribers);\n\n\n // =========================\n // Initialization\n // =========================\n\n const init = () => {\n // Set repository id to null if it is missing from the list of active repositories\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n if (!selectedRepositoryInfo.repositoryId) {\n $scope.agentFormModel.repositoryId = null;\n }\n // Delay the validation status setting because angular form ngmodel is not present immediately\n setTimeout(setExtractionMethodValidityStatus, 0);\n $uibModalInstance.rendered.then(() => {\n refreshSliderById('temperatureSlider', $scope.agentFormModel.temperature.value);\n refreshSliderById('topPSlider', $scope.agentFormModel.topP.value);\n });\n };\n init();\n}\n"],"names":["SimilarityIndexStatus","status","CREATING","BUILDING","BUILT","REBUILDING","OUTDATED","INTERRUPTED","OBSOLETE","FAILED","SimilarityIndex","constructor","this","analyzer","infer","options","sameAs","searchQuery","selectQuery","stopList","undefined","name","type","SimilarityIndexType","TEXT","analogicalQuery","inputIndex","isLiteralIndex","isTextType","isTextLiteralType","isPredicationType","isCreatingStatus","isBuildingStatus","isBuiltStatus","isRebuildingStatus","isOutdatedStatus","isInterruptedStatus","isObsoleteStatus","isFailedStatus","AgentInstructionsExplainModalController","$scope","$uibModalInstance","ModalService","$translate","dialogModel","agentInstructionsExplain","close","dismiss","onCloseAgentInstructionsExplainModal","subscriptions","$on","onDestroy","forEach","subscription","angular","module","controller","$inject","ConnectorTypesListModel","data","_connectors","connectors","getConnectorByName","find","connector","value","ConnectorTypeModel","_name","_prefix","prefix","ConnectorListModel","ConnectorModel","_settings","ConnectorSettingsModel","settings","values","mapIndexesResponseToSimilarityIndex","responseData","map","index","similarityIndex","TEXT_LITERAL","PREDICATION","SimilarityService","SimilarityRestService","getIndexes","repositoryId","repositoryLocation","then","response","getIndexesAsMenuModel","indexesModel","SelectMenuOptionsModel","label","factory","connectorTypesListMapper","connectorListModel","Object","keys","key","connectorsMapper","connectorResponse","ConnectorsRestService","CONNECTORS_ENDPOINT","$http","getConnectors","get","headers","initConnector","hasConnector","checkConnector","post","ExternalIntegrationConfigurationModalController","externalIntegrationConfiguration","difyExtension","difyExtensionUrl","queryMethods","queryMethodsUrl","agentId","agentName","onCloseExternalIntegrationConfigurationModal","ConnectorsService","getConnectorTypes","getConnectorsByType","encodeURIComponent","getConnectorPrefixByName","connectorTypesModel","getConnectorsByTypeAsSelectMenuOptions","connectorsModel","SIMILARITY_ENDPOINT","getSearchQueries","rebuildIndex","createIndex","deleteIndex","delete","getSamples","getQuery","params","indexName","indexOptions","indexStopList","query","queryInference","querySameAs","viewType","indexAnalyzer","saveSearchQuery","method","url","noCancelOnRouteChange","ExternalIntegrationModalService","$uibModal","LocationsRestService","toastr","open","agent","getExternalUrl","baseUrl","id","buildDialogModel","templateUrl","windowClass","backdrop","resolve","result","catch","error","getError","TTYG_ERROR_MSG_LENGTH","AgentSettingsModalController","RepositoriesRestService","$sce","UriUtils","TTYGContextService","TTYGService","ExtractionMethodTemplates","AutocompleteService","AutocompleteRestService","productInfo","AGENT_OPERATION","operation","savingAgent","agentFormModel","activeRepositoryInfo","extractionMethodLoaderFlags","ExtractionMethod","SIMILARITY","activeRepositoryList","extractionMethods","additionalExtractionMethods","AdditionalExtractionMethod","showAdvancedSettings","showHighTemperatureWarning","showSystemInstructionWarning","similarityIndexes","retrievalConnectors","ftsEnabled","autocompleteSuggestions","showContextSize","contextSize","toggleExtractionMethod","extractionMethod","expanded","selected","agentSettingsForm","$setTouched","setExtractionMethodValidityStatus","extractionPanelToggleHandlers","onExtractionMethodPanelToggle","toggleCollapse","toggleAdditionalExtractionMethod","checkAutocompleteIndexEnabled","additionalExtractionPanelToggleHandlers","onAdditionalExtractionMethodPanelToggle","helpInfoForModel","ttygHelpInfo","message","decodeHTML","instant","trustAsHtml","getModelHelpMessage","linkText","documentationUrl","DocumentationUrlResolver","getDocumentationUrl","productShortVersion","getFTSDisabledHelpMessage","repositoryEditPage","goToAutocompleteView","event","preventDefault","emit","TTYGEventName","GO_TO_AUTOCOMPLETE_INDEX_VIEW","goToCreateSimilarityView","GO_TO_CREATE_SIMILARITY_VIEW","goToConnectorsView","GO_TO_CONNECTORS_VIEW","ok","agentPayload","toPayload","agentOperationHandlers","cancel","updateSimilaritySearchPanel","clearIndexSelection","similaritySearchExtractionMethod","assistantExtractionMethods","getSimilarityExtractionMethod","handleSimilaritySearchExtractionMethodPanelToggle","updateRetrievalConnectorPanel","clearSelection","retrievalExtractionExtractionMethod","getRetrievalExtractionMethod","retrievalConnectorInstance","handleRetrievalConnectorExtractionMethodPanelToggle","checkIfFTSEnabled","getFTSSearchExtractionMethod","FTS_SEARCH","getRepositoryModel","repositoryModel","getParamValue","REPOSITORY_PARAMS","enableFtsIndex","logAndShowError","finally","$setValidity","openExternalIntegrationConfig","onRepositoryChange","refreshValidations","AUTOCOMPLETE_IRI_DISCOVERY_SEARCH","selectedRepositoryInfo","getSelectedRepositoryInfo","checkAutocompleteStatus","autocompleteEnabled","onRestoreDefaultContextSize","contextSizeCopy","onRestoreDefaultSystemInstructions","instructions","systemInstruction","systemInstructionCopy","onRestoreDefaultUserInstructions","userInstruction","userInstructionCopy","onTemperatureChange","temperature","onSystemInstructionChange","openModalAlert","title","onExplainAgentSettings","explainAgentSettings","size","getSuggestions","inputText","target","getAutocompleteSuggestions","mapUriAsNtripleAutocompleteResponse","suggestions","item","text","CREATE","payload","createAgent","EDIT","editAgent","CLONE","cloneAgent","newAgentPayload","agentModel","success","updatedAgent","errorMessageKey","console","hasExtractionMethodSelected","selectRepositoryInfo","repository","location","indexes","length","updateSelectedSimilarityIndex","selectedIndex","updateSelectedRetrievalConnector","selectedConnector","SPARQL","RETRIEVAL","handleAutocompleteExtractionMethodPanelToggle","IRI_DISCOVERY_SEARCH","clearRetrievalConnectorSelection","onTabVisibilityChanged","document","hidden","refreshSliderById","elementId","slider","getElementById","addEventListener","removeAllSubscribers","removeEventListener","setTimeout","rendered","topP","constant"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_id__=96089;export const __webpack_ids__=[96089];export const __webpack_modules__={96089:(e,t,n)=>{n.r(t);var o=n(73964);angular.module("graphdb.framework.rest.ttyg.service",[]).factory("TTYGRestService",i),i.$inject=["$http"];const s="rest/chat/conversations",a="rest/chat/agents",r=`${s}/explain`,g=!1;function i(e){const t=new o.TtygRestServiceFakeBackend;return{getConversation:n=>g?t.getConversation(n):e.get(`${s}/${n}`),renameConversation:(n,o)=>g?t.renameConversation(n,o):e.put(`${s}/${n}`,o),exportConversation:n=>g?t.exportConversation(n):e.get(`${s}/export/${n}`,{responseType:"blob"}),askQuestion:n=>g?t.askQuestion(n):e.post(`${s}`,n),continueChatRun:n=>g?t.continueChatRun(n):e.post(`${s}/continue`,n),getConversations:()=>g?t.getConversations():e.get(s),deleteConversation:n=>g?t.deleteConversation(n):e.delete(`${s}/${n}`),createConversation:(n={})=>g?t.createConversation(n):e.post(s,n),getAgents:()=>g?t.getAgents():e.get(a),getAgent:n=>g?t.getAgent(n):e.get(`${a}/${n}`),createAgent:n=>g?t.createAgent(n):e.post(a,n),editAgent:n=>g?t.editAgent(n):e.put(`${a}`,n),deleteAgent:n=>g?t.deleteAgent(n):e.delete(`${a}/${n}`),explainResponse:(n={})=>g?t.explainResponse(n):e.post(r,n),getAgentDefaultValues:()=>g?t.getAgentDefaultValues():e.get(`${a}/default`),explainAgentSettings:n=>g?t.explainAgentSettings():e.post(`${a}/explain`,n)}}}};
|
|
2
|
+
//# sourceMappingURL=96089.7e28823f34c450de1f7e.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"96089.7e28823f34c450de1f7e.bundle.js","mappings":"+IAEAA,QACKC,OAAO,sCAAuC,IAC9CC,QAAQ,kBAAmBC,GAEhCA,EAAgBC,QAAU,CAAC,SAE3B,MAAMC,EAAyB,0BACzBC,EAAkB,mBAClBC,EAA4B,GAAGF,YAE/BG,GAAc,EAEpB,SAASL,EAAgBM,GAErB,MAAMC,EAAe,IAAIC,EAAAA,2BAoMzB,MAAO,CACHC,gBAvLqBC,GACjBL,EACOE,EAAaE,gBAAgBC,GAEjCJ,EAAMK,IAAI,GAAGT,KAA0BQ,KAoL9CE,mBAxKuBA,CAACF,EAAIG,IACxBR,EACOE,EAAaK,mBAAmBF,EAAIG,GAExCP,EAAMQ,IAAI,GAAGZ,KAA0BQ,IAAMG,GAqKpDE,mBA7JwBL,GACpBL,EACOE,EAAaQ,mBAAmBL,GAEpCJ,EAAMK,IAAI,GAAGT,YAAiCQ,IAAM,CAACM,aAAc,SA0J1EC,YAlJiBJ,GACbR,EACOE,EAAaU,YAAYJ,GAE7BP,EAAMY,KAAK,GAAGhB,IAA0BW,GA+I/CM,gBAvIqBN,GACjBR,EACOE,EAAaY,gBAAgBN,GAEjCP,EAAMY,KAAK,GAAGhB,aAAmCW,GAoIxDO,iBAxMqBA,IACjBf,EACOE,EAAaa,mBAEjBd,EAAMK,IAAIT,GAqMjBmB,mBA7HwBX,GACpBL,EACOE,EAAac,mBAAmBX,GAEpCJ,EAAMgB,OAAO,GAAGpB,KAA0BQ,KA0HjDa,mBAlHuBA,CAACV,EAAO,CAAC,IAC5BR,EACOE,EAAagB,mBAAmBV,GAEpCP,EAAMY,KAAKhB,EAAwBW,GA+G1CW,UAxGcA,IACVnB,EAEOE,EAAaiB,YAKjBlB,EAAMK,IAAIR,GAiGjBsB,SAzFcf,GACVL,EACOE,EAAakB,SAASf,GAE1BJ,EAAMK,IAAI,GAAGR,KAAmBO,KAsFvCgB,YA9EiBC,GACbtB,EACOE,EAAamB,YAAYC,GAE7BrB,EAAMY,KAAKf,EAAiBwB,GA2EnCC,UAnEeD,GACXtB,EACOE,EAAaqB,UAAUD,GAE3BrB,EAAMQ,IAAI,GAAGX,IAAmBwB,GAgEvCE,YAxDiBnB,GACbL,EACOE,EAAasB,YAAYnB,GAE7BJ,EAAMgB,OAAO,GAAGnB,KAAmBO,KAqD1CoB,gBA7CoBA,CAACjB,EAAO,CAAC,IACzBR,EACOE,EAAauB,gBAAgBjB,GAEjCP,EAAMY,KAAKd,EAA2BS,GA0C7CkB,sBAnC0BA,IACtB1B,EACOE,EAAawB,wBAEjBzB,EAAMK,IAAI,GAAGR,aAgCpB6B,qBAxB0BnB,GACtBR,EACOE,EAAayB,uBAEjB1B,EAAMY,KAAK,GAAGf,YAA2BU,GAsBxD,C","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/ttyg.rest.service.js"],"sourcesContent":["import {TtygRestServiceFakeBackend} from './ttyg.rest.service.fake.backend';\n\nangular\n .module('graphdb.framework.rest.ttyg.service', [])\n .factory('TTYGRestService', TTYGRestService);\n\nTTYGRestService.$inject = ['$http'];\n\nconst CONVERSATIONS_ENDPOINT = 'rest/chat/conversations';\nconst AGENTS_ENDPOINT = 'rest/chat/agents';\nconst EXPLAIN_RESPONSE_ENDPOINT = `${CONVERSATIONS_ENDPOINT}/explain`;\n\nconst DEVELOPMENT = false;\n\nfunction TTYGRestService($http) {\n\n const _fakeBackend = new TtygRestServiceFakeBackend();\n\n const getConversations = () => {\n if (DEVELOPMENT) {\n return _fakeBackend.getConversations();\n }\n return $http.get(CONVERSATIONS_ENDPOINT);\n };\n\n /**\n * Loads a conversation by its ID.\n * @param {string} id\n * @return {Promise<*>}\n */\n const getConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.getConversation(id);\n }\n return $http.get(`${CONVERSATIONS_ENDPOINT}/${id}`);\n };\n\n /**\n * Calls the REST API to rename the conversation.\n *\n * Bear in mind that the backend doesn't return the whole conversation object, but only the name and the ID.\n *\n * @param {string} id - the conversation ID\n * @param {{name: string}} data - request payload containing the new name\n * @return {Promise<{name: string, id: string}>}\n */\n const renameConversation = (id, data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.renameConversation(id, data);\n }\n return $http.put(`${CONVERSATIONS_ENDPOINT}/${id}`, data);\n };\n\n /**\n * Exports a conversation by its ID.\n * @param {string} id\n * @return {Promise<{Blob}>} Returns the conversation as a Blob\n */\n const exportConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.exportConversation(id);\n }\n return $http.get(`${CONVERSATIONS_ENDPOINT}/export/${id}`, {responseType: 'blob'});\n };\n\n /**\n * Calls the REST API to ask a question.\n * @param {*} data\n * @return {*}\n */\n const askQuestion = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.askQuestion(data);\n }\n return $http.post(`${CONVERSATIONS_ENDPOINT}`, data);\n };\n\n /**\n * Calls the REST API to continue a chat run.\n * @param {*} data\n * @return {*}\n */\n const continueChatRun = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.continueChatRun(data);\n }\n return $http.post(`${CONVERSATIONS_ENDPOINT}/continue`, data);\n };\n\n /**\n * Deletes a conversation by its ID.\n * @param {string} id\n * @return {Promise<void>}\n */\n const deleteConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.deleteConversation(id);\n }\n return $http.delete(`${CONVERSATIONS_ENDPOINT}/${id}`);\n };\n\n /**\n * Creates a new conversation.\n * @param {*} data - the data to be sent to the backend\n * @return {Promise<*>}\n */\n const createConversation = (data = {}) => {\n if (DEVELOPMENT) {\n return _fakeBackend.createConversation(data);\n }\n return $http.post(CONVERSATIONS_ENDPOINT, data);\n };\n\n /**\n * Fetches agents from the backend.\n * @return {Promise<*>|*}\n */\n const getAgents = () => {\n if (DEVELOPMENT) {\n // return _fakeBackend.simulateHttpError();\n return _fakeBackend.getAgents();\n // return new Promise((resolve) => {\n // setTimeout(() => resolve(_fakeBackend.getAgents()), 3000);\n // });\n }\n return $http.get(AGENTS_ENDPOINT);\n };\n\n /**\n * Fetches an agent by its ID from the backend.\n * @param {string} id\n * @return {Promise<Awaited<{data: T}>>|*}\n */\n const getAgent = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.getAgent(id);\n }\n return $http.get(`${AGENTS_ENDPOINT}/${id}`);\n };\n\n /**\n * Creates a new agent in the backend.\n * @param {*} agent\n * @return {Promise<AgentModel>}\n */\n const createAgent = (agent) => {\n if (DEVELOPMENT) {\n return _fakeBackend.createAgent(agent);\n }\n return $http.post(AGENTS_ENDPOINT, agent);\n };\n\n /**\n * Updates the specified <code>agent</code>.\n * @param {AgentModel} agent - The agent to be updated.\n * @return {Promise<AgentModel>} A promise that resolves the updated agent.\n */\n const editAgent = (agent) => {\n if (DEVELOPMENT) {\n return _fakeBackend.editAgent(agent);\n }\n return $http.put(`${AGENTS_ENDPOINT}`, agent);\n };\n\n /**\n * Deletes an agent by its ID from the backend.\n * @param {string} id\n * @return {Promise<void>}\n */\n const deleteAgent = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.deleteAgent(id);\n }\n return $http.delete(`${AGENTS_ENDPOINT}/${id}`);\n };\n\n /**\n * Calls backend server to fetch an explanation of how the answer was generated.\n * @param {*} data\n * @return {Promise}\n */\n const explainResponse = (data = {}) => {\n if (DEVELOPMENT) {\n return _fakeBackend.explainResponse(data);\n }\n return $http.post(EXPLAIN_RESPONSE_ENDPOINT, data);\n };\n\n /**\n * Calls the backend server to fetch the default values for an agent.\n * @return {Promise}\n */\n const getAgentDefaultValues = () => {\n if (DEVELOPMENT) {\n return _fakeBackend.getAgentDefaultValues();\n }\n return $http.get(`${AGENTS_ENDPOINT}/default`);\n };\n\n /**\n * Calls the backend server to fetch an explanation of how the agent settings were generated.\n * @param {*} data\n * @return {Promise}\n */\n const explainAgentSettings = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.explainAgentSettings();\n }\n return $http.post(`${AGENTS_ENDPOINT}/explain`, data);\n };\n\n\n return {\n getConversation,\n renameConversation,\n exportConversation,\n askQuestion,\n continueChatRun,\n getConversations,\n deleteConversation,\n createConversation,\n getAgents,\n getAgent,\n createAgent,\n editAgent,\n deleteAgent,\n explainResponse,\n getAgentDefaultValues,\n explainAgentSettings\n };\n}\n"],"names":["angular","module","factory","TTYGRestService","$inject","CONVERSATIONS_ENDPOINT","AGENTS_ENDPOINT","EXPLAIN_RESPONSE_ENDPOINT","DEVELOPMENT","$http","_fakeBackend","TtygRestServiceFakeBackend","getConversation","id","get","renameConversation","data","put","exportConversation","responseType","askQuestion","post","continueChatRun","getConversations","deleteConversation","delete","createConversation","getAgents","getAgent","createAgent","agent","editAgent","deleteAgent","explainResponse","getAgentDefaultValues","explainAgentSettings"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_id__=98860;export const __webpack_ids__=[98860];export const __webpack_modules__={98860:()=>{PluginRegistry.add("guide.step",[{guideBlockName:"conversation-with-ttyg-agent",getSteps:(t,e)=>{const o=e.GuideUtils;t.mainAction="conversation-with-ttyg-agent";const n=t.startNewConversation,i=[];if(t.showInfo&&i.push({guideBlockName:"info-message",options:angular.extend({},{skipPoint:!0,url:"ttyg",class:"conversation-info-guide-dialog",content:"guide.step_plugin.conversation-with-ttyg-agent.info"},t)}),n){const e=o.getGuideElementSelector("create-chat-btn"),n=[{guideBlockName:"info-message",options:angular.extend({},{url:"ttyg",beforeShowPromise:(t,n)=>o.waitFor(e,1).then(()=>{setTimeout(()=>t.next())}).catch(()=>{const e=n.id;setTimeout(()=>t.show(e+2))})},t)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.conversation-with-ttyg-agent.start-conversation",class:"start-conversation-guide-dialog",url:"ttyg",elementSelector:e,disableNextFlow:!0},t)}];i.push(...n)}const s=t.questions.map(t=>({guideBlockName:"ask-ttyg-agent",options:t}));return i.push(...s),i}}])}};
|
|
2
|
+
//# sourceMappingURL=98860.5ade579c8f05a0df416b.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"98860.5ade579c8f05a0df416b.bundle.js","mappings":"oHAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,+BAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAC5BF,EAAQG,WAAa,+BACrB,MAAMC,EAAuBJ,EAAQI,qBAG/BC,EAAQ,GAcd,GAhBiBL,EAAQM,UAKrBD,EAAME,KAAK,CACPT,eAAgB,eAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBC,WAAW,EACXC,IAAK,OACLC,MAAO,iCACPC,QAAS,uDACVb,KAIPI,EAAsB,CACtB,MAAMU,EAAwBZ,EAAWa,wBAAwB,mBAC3DC,EAA4B,CAC9B,CAEIlB,eAAgB,eAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBE,IAAK,OACLM,kBAAmBA,CAACC,EAAOC,IAAgBjB,EAAWkB,QAAQN,EAAuB,GAChFO,KAAK,KAEFC,WAAW,IAAMJ,EAAMK,UAE1BC,MAAM,KACH,MAAMC,EAASN,EAAYO,GAE3BJ,WAAW,IAAMJ,EAAMS,KAAKF,EAAS,OAE9CzB,IAEP,CACIF,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBI,QAAS,oEACTD,MAAO,kCACPD,IAAK,OACLiB,gBAAiBd,EACjBe,iBAAiB,GAClB7B,KAGXK,EAAME,QAAQS,EAClB,CAEA,MAAMc,EAAgB9B,EAAQ+B,UAAUC,IAAKC,IAClC,CACHnC,eAAgB,iBAChBE,QAASiC,KAMjB,OAFA5B,EAAME,QAAQuB,GAEPzB,K","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/ttyg/conversation-with-ttyg-agent/plugin.js"],"sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'conversation-with-ttyg-agent',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'conversation-with-ttyg-agent';\n const startNewConversation = options.startNewConversation;\n const showInfo = options.showInfo;\n\n const steps = [];\n\n if (showInfo) {\n steps.push({\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n skipPoint: true,\n url: 'ttyg',\n class: 'conversation-info-guide-dialog',\n content: 'guide.step_plugin.conversation-with-ttyg-agent.info',\n }, options)\n })\n }\n\n if (startNewConversation) {\n const createChatBtnSelector = GuideUtils.getGuideElementSelector('create-chat-btn')\n const newConversationStartSteps = [\n {\n // If button is not visible for some reason, skip the whole step\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n url: 'ttyg',\n beforeShowPromise: (guide, currentStep) => GuideUtils.waitFor(createChatBtnSelector, 1)\n .then(() => {\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.next())\n })\n .catch(() => {\n const stepId = currentStep.id;\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.show(stepId + 2))\n }),\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.conversation-with-ttyg-agent.start-conversation',\n class: 'start-conversation-guide-dialog',\n url: 'ttyg',\n elementSelector: createChatBtnSelector,\n disableNextFlow: true\n }, options)\n }\n ]\n steps.push(...newConversationStartSteps);\n }\n\n const questionSteps = options.questions.map((questionWithOptions) => {\n return {\n guideBlockName: 'ask-ttyg-agent',\n options: questionWithOptions\n };\n });\n\n steps.push(...questionSteps);\n\n return steps;\n }\n }\n]);\n"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","mainAction","startNewConversation","steps","showInfo","push","angular","extend","skipPoint","url","class","content","createChatBtnSelector","getGuideElementSelector","newConversationStartSteps","beforeShowPromise","guide","currentStep","waitFor","then","setTimeout","next","catch","stepId","id","show","elementSelector","disableNextFlow","questionSteps","questions","map","questionWithOptions"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=99448;export const __webpack_ids__=[99448];export const __webpack_modules__={64088:(e,t,n)=>{n.d(t,{A:()=>r});var a=a||{};a.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var a=0;a<t.children.length;a++)e(t.children[a]);if(1===t.children.length){var r=1.2*t.size;n&&(r=.1*t.children[0].size),t.children.push({name:"placeholder",size:r})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var a=t[n];"placeholder"===a.data.name?t.splice(n,1):a.children&&e(a.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var a=n.x-n.children[0].x;n.children[0].x+=a,r(n.children[0],a)}}function r(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,r(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,a=0;a<e.length;a++){var r=e[a];r.x-=t,r.y-=n}}};const r=a},88141:(e,t,n)=>{n.d(t,{A:()=>i}),n(62979);const a={selectAll:n(93462).selectAll};var r=r||{};r.Export={getCSSRules:function(e){const t=$('link[href="'+e+'"]')[0].sheet.rules;let n="";return _.each(t,function(e){n+=e.cssText}),n},generateBase64ImageSource:function(e){e||(e="svg");const t=a.selectAll(e).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(t)))}};const i=r},99448:(e,t,n)=>{n.r(t);var a=n(75468),r=n(64088),i=n(19935),s=n(93462),c=n(88141);function l(e,t,n,l,o,d,h,u,f,p,g,v,x){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(h,m,y){!function(h){let m=!1;var y,A,S=s.pack().size([780,780]),C=s.scaleLinear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(s.interpolateHcl),R=s.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function E(){return R.append("svg:g").attrs({id:"main-group",transform:"translate(400,400)"})}function P(){return"true"===g.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function w(){var e=c.A.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=3.1.0-TR11");s.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),s.selectAll("g").style("opacity",1);var t=c.A.Export.generateBase64ImageSource("#classChart svg");s.select(this).attrs({href:t,download:"class-hierarchy-"+d.getActiveRepository()+".svg"})}h.hidePrefixes=P();var H,I,T=E();if(!h.classHierarchyData.classCount&&d.getActiveRepository()&&!d.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=g.get(`classHierarchy-selectedGraph-${d.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success(function(t,n,a){e.loader=!1,207===n&&u.warning(x.instant("graphexplore.update.diagram"),x.instant("graphexplore.repository.data.changed")),h.classHierarchyData=t,s.select("#download-svg").on("mouseover",w)}).error(function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(x.instant("graphexplore.error.request.failed",{name:p,error:getError(t)}))})}var L,D,k,N,b,F,z,O={};function U(n,c,d,u){D&&D(),k&&k(),s.selectAll("#main-group").remove(),T=E(),r.A.SingleChild.addPlaceholders(n,!0),(A=s.hierarchy(n)).sum(function(e){return e.size}),L=d||A,S(A);var g,v=A.descendants();L.isInFocusTransitive=!0,r.A.SingleChild.removePlaceholders(v),r.A.SingleChild.centerNodes(v),r.A.SingleChild.makePositionsRelativeToZero(v),y||(y=(0,a.A)().attr("class","d3-tip").customPosition(function(e,t){return{top:"inherit",bottom:l.innerHeight-t.clientY+"px",right:l.innerWidth-t.clientX+"px"}}).html(function(e){return e.data.name}),R.call(y));var x=T.selectAll("circle").data(v).enter().append("g");c.doFade&&x.each(function(e){i.A.Transition.fadeIn(s.select(this),550)});var P,w=[],N=x.append("circle").attr("class",function(e){return e.data.role}).attr("guide-selector",function(e){return"class-"+e.data.name}).style("fill",function(e){return e.children?C(e.depth):"#E0D0D0"}).each(function(e){if(e.circle=s.select(this),e.data.name!==p){var t=e.data.name;w.push({name:t}),O[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",function(t){c.noPrefixes||e.textHidden?y.show(e,t):y.hide(e)}),e.circle.on("mouseout",y.hide)}}).on("gdb-focus",(e,t)=>I(t)).on("gdb-zoom",(e,t)=>Z(t));function b(e){s.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),P=e}function $(){h.showClassInfoPanel=!1}w&&(w=_.uniqBy(w,"name"),h.flattenedClassNames=w);var F=i.A.Click.delayDblClick();s.selectAll(".parent, .topLevelParent, .child, .root").call(F),I=function(e){Z(e),e.data.name===p?($(),s.selectAll(".selected").classed("selected",!1)):(b(e),m||(h.selectedClass=P,h.showClassInfoPanel=!0),h.$on("sidePanelClosed",function(t){s.selectAll(".selected").classed("selected",e.selected=!1)}))},F.on("click",function(e,t){t.data.id&&l.history.pushState({id:t.data.id},"classHierarchyPage"+t.data.id,"hierarchy#"+t.data.id),y.hide(),I(t)}),F.on("dblclick",function(t,a){a!==n&&(y.hide(),b(a),e.$broadcast("goToDomainRangeGraphView",P,L),t.stopPropagation())});var z=0;R.on("wheel",function(e){y.hide(),e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var a=e.target.__data__;if(a||(a=L),"in"===n){if(a!==L){for(;a.parent&&!a.parent.isInFocusTransitive;)a=a.parent;a.depth<L.depth&&(a=L)}if(a===L&&a.children){for(var r=a.children[0],i=1;i<a.children.length;i++)a.children[i].sortingRank>r.sortingRank&&(r=a.children[i]);r.children&&(a=r)}else a.children||(a=a.parent);Z(a,!0)}else"out"===n&&(a=L.parent)&&Z(a,!0);L.data.name===p&&l.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),Y()}});var U=T.selectAll("text").data(v).enter().append("text").attr("class",function(e){return e.children&&e.children.length?"label":"label child-label"}).each(function(e){e.textSel=s.select(this)});c.noPrefixes?(U.each(function(e){var t=e.data.name.indexOf(":");e.data.name.indexOf("http://")>-1?e.noPrefixName=e.data.name:t>-1&&(e.noPrefixName=e.data.name.substring(t+1))}),U.style("font-size",function(e){return i.A.Text.calcFontSize(e.noPrefixName,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)})):U.style("font-size",function(e){return i.A.Text.calcFontSize(e.data.name,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r/3)}),U.style("display",function(e){return e.parent&&e.parent.data===L.data?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")}),c.doFade&&!c.keepPrevState&&U.each(function(e){i.A.Transition.fadeIn(s.select(this),550)}),H=function(){function e(e){e&&N.each(function(t){+e===t.data.id&&I(t)})}var n=t.hash();l.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var B=T.selectAll("circle, text");function V(e,t){var n=800/e[2];g=e,B.attr("transform",function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"}),N.attr("r",function(e){return e.r*n}),t&&U.each(function(e){e.data.fullName!==L.data.topLevelParentUri&&L.data.topLevelParentUri!==p||(e.textSel.style("display","none"),L.children&&L.children.length?_.each(L.children,function(e){e.textSel.style("display","inline")}):L.textSel.style("display","inline"),L.parent&&_.each(L.parent.children,function(e){e.data.name!==L.data.name&&e.textSel.style("display","inline")}))}),U.style("font-size",function(e){return c.noPrefixes?i.A.Text.calcFontSize(e.noPrefixName,e.r*n):i.A.Text.calcFontSize(e.data.name,e.r*n)}).text(function(e){return c.noPrefixes?i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r*n/3)})}function M(e){var t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display=""):(e.textHidden=!0,this.style.display="none")}function Z(e,t){if(o(function(){h.showExternalElements=e.data.name===p}),L!==e&&(e.data.id&&l.history.replaceState({id:e.data.id},"classHierarchyPage"+e.data.id,"hierarchy#"+e.data.id),e.children||(e=e.parent,L!==e))){if(t&&($(),s.selectAll(".selected").classed("selected",!1)),L.parent)for(var n=L;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=!!n.children,n=n.parent;2*(L=e).r/(2*L.r+20)<.3||h.currentSliderValue>h.currentBrowserLimit?(V([L.x,L.y,M(L.r)]),U.each(function(e){W.call(this,e)})):s.transition().duration(f).tween("zoom",function(e){var t=s.interpolateZoom(g,[L.x,L.y,M(L.r)]);return function(e){V(t(e))}}).selectAll("text").each(W)}}V([L.x,L.y,M(L.r)],u),D=h.$on("rootFocus",function(){l.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),I(A)}),k=h.$on("classSearch",function(e){I(e)})}function Y(){const t=h.classHierarchyData.classCount;let n=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",Y),window.addEventListener("beforeunload",function e(){window.removeEventListener("resize",Y),window.removeEventListener("beforeunload",e)}),h.$watch("classHierarchyData",function(){N&&N(),b&&b(),F&&F(),z&&z();var e=P();if(h.classHierarchyData.classCount){Y();var t=_.cloneDeep(h.classHierarchyData);var n,a,r=s.hierarchy(t).descendants().sort(function(e,t){return e.data.sortingRank>t.data.sortingRank?-1:e.data.sortingRank<t.data.sortingRank||e.data.depth>t.data.depth?1:e.data.depth<t.data.depth?-1:0});function d(e,t){const r={keepPrevState:!0,noPrefixes:P()};a=r.noPrefixes,U(n||e,r,L,!0),o(()=>{g.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H(),m=!1},70)}function u(e,r,i){if(!e)return;g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:p,children:[]};const s=new Set;for(let t=1;t<=e;t++)s.add(r[t].data.id),r[t].parent===r[0]&&n.children.push(r[t].data);(function e(t){if(!t.children)return;const n=[];for(const e of t.children)s.has(e.id)&&n.push($.extend({},e));t.children=n;for(const n of t.children)e(n)})(n),i?(a=angular.isUndefined(a)?P():a,U(n,{noPrefixes:a})):d(t)}var i,c=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)u(c,r);else{var l={doFade:!0,keepPrevState:!0,noPrefixes:P()};U(t,l),H()}N=h.$watch("hidePrefixes",function(n){angular.isUndefined(n)||e?e=void 0:o(function(){m=!0,function(e){angular.isUndefined(e)||g.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),d(t,!0)},50)},!0),b=h.$watch("currentSliderValue",function(e){u(e,r,!0)},!0),z=h.$on("onEnterKeypressSearchAction",function(e){i&&I(i)}),F=h.$on("searchedClass",function(e,t){(i=O[t.name])&&I(i)})}},!0)}(h)}}}n(32150),angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]}};
|
|
2
|
-
//# sourceMappingURL=99448.
|
|
1
|
+
export const __webpack_id__=99448;export const __webpack_ids__=[99448];export const __webpack_modules__={64088:(e,t,n)=>{n.d(t,{A:()=>r});var a=a||{};a.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var a=0;a<t.children.length;a++)e(t.children[a]);if(1===t.children.length){var r=1.2*t.size;n&&(r=.1*t.children[0].size),t.children.push({name:"placeholder",size:r})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var a=t[n];"placeholder"===a.data.name?t.splice(n,1):a.children&&e(a.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var a=n.x-n.children[0].x;n.children[0].x+=a,r(n.children[0],a)}}function r(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,r(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,a=0;a<e.length;a++){var r=e[a];r.x-=t,r.y-=n}}};const r=a},88141:(e,t,n)=>{n.d(t,{A:()=>i}),n(62979);const a={selectAll:n(93462).selectAll};var r=r||{};r.Export={getCSSRules:function(e){const t=$('link[href="'+e+'"]')[0].sheet.rules;let n="";return _.each(t,function(e){n+=e.cssText}),n},generateBase64ImageSource:function(e){e||(e="svg");const t=a.selectAll(e).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(t)))}};const i=r},99448:(e,t,n)=>{n.r(t);var a=n(75468),r=n(64088),i=n(19935),s=n(93462),c=n(88141);function l(e,t,n,l,o,d,h,u,f,p,g,v,x){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(h,m,y){!function(h){let m=!1;var y,A,S=s.pack().size([780,780]),C=s.scaleLinear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(s.interpolateHcl),R=s.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function E(){return R.append("svg:g").attrs({id:"main-group",transform:"translate(400,400)"})}function P(){return"true"===g.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function w(){var e=c.A.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=3.1.0-TR13");s.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),s.selectAll("g").style("opacity",1);var t=c.A.Export.generateBase64ImageSource("#classChart svg");s.select(this).attrs({href:t,download:"class-hierarchy-"+d.getActiveRepository()+".svg"})}h.hidePrefixes=P();var H,I,T=E();if(!h.classHierarchyData.classCount&&d.getActiveRepository()&&!d.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=g.get(`classHierarchy-selectedGraph-${d.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success(function(t,n,a){e.loader=!1,207===n&&u.warning(x.instant("graphexplore.update.diagram"),x.instant("graphexplore.repository.data.changed")),h.classHierarchyData=t,s.select("#download-svg").on("mouseover",w)}).error(function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(x.instant("graphexplore.error.request.failed",{name:p,error:getError(t)}))})}var L,D,k,N,b,F,z,O={};function U(n,c,d,u){D&&D(),k&&k(),s.selectAll("#main-group").remove(),T=E(),r.A.SingleChild.addPlaceholders(n,!0),(A=s.hierarchy(n)).sum(function(e){return e.size}),L=d||A,S(A);var g,v=A.descendants();L.isInFocusTransitive=!0,r.A.SingleChild.removePlaceholders(v),r.A.SingleChild.centerNodes(v),r.A.SingleChild.makePositionsRelativeToZero(v),y||(y=(0,a.A)().attr("class","d3-tip").customPosition(function(e,t){return{top:"inherit",bottom:l.innerHeight-t.clientY+"px",right:l.innerWidth-t.clientX+"px"}}).html(function(e){return e.data.name}),R.call(y));var x=T.selectAll("circle").data(v).enter().append("g");c.doFade&&x.each(function(e){i.A.Transition.fadeIn(s.select(this),550)});var P,w=[],N=x.append("circle").attr("class",function(e){return e.data.role}).attr("guide-selector",function(e){return"class-"+e.data.name}).style("fill",function(e){return e.children?C(e.depth):"#E0D0D0"}).each(function(e){if(e.circle=s.select(this),e.data.name!==p){var t=e.data.name;w.push({name:t}),O[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",function(t){c.noPrefixes||e.textHidden?y.show(e,t):y.hide(e)}),e.circle.on("mouseout",y.hide)}}).on("gdb-focus",(e,t)=>I(t)).on("gdb-zoom",(e,t)=>Z(t));function b(e){s.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),P=e}function $(){h.showClassInfoPanel=!1}w&&(w=_.uniqBy(w,"name"),h.flattenedClassNames=w);var F=i.A.Click.delayDblClick();s.selectAll(".parent, .topLevelParent, .child, .root").call(F),I=function(e){Z(e),e.data.name===p?($(),s.selectAll(".selected").classed("selected",!1)):(b(e),m||(h.selectedClass=P,h.showClassInfoPanel=!0),h.$on("sidePanelClosed",function(t){s.selectAll(".selected").classed("selected",e.selected=!1)}))},F.on("click",function(e,t){t.data.id&&l.history.pushState({id:t.data.id},"classHierarchyPage"+t.data.id,"hierarchy#"+t.data.id),y.hide(),I(t)}),F.on("dblclick",function(t,a){a!==n&&(y.hide(),b(a),e.$broadcast("goToDomainRangeGraphView",P,L),t.stopPropagation())});var z=0;R.on("wheel",function(e){y.hide(),e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var a=e.target.__data__;if(a||(a=L),"in"===n){if(a!==L){for(;a.parent&&!a.parent.isInFocusTransitive;)a=a.parent;a.depth<L.depth&&(a=L)}if(a===L&&a.children){for(var r=a.children[0],i=1;i<a.children.length;i++)a.children[i].sortingRank>r.sortingRank&&(r=a.children[i]);r.children&&(a=r)}else a.children||(a=a.parent);Z(a,!0)}else"out"===n&&(a=L.parent)&&Z(a,!0);L.data.name===p&&l.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),Y()}});var U=T.selectAll("text").data(v).enter().append("text").attr("class",function(e){return e.children&&e.children.length?"label":"label child-label"}).each(function(e){e.textSel=s.select(this)});c.noPrefixes?(U.each(function(e){var t=e.data.name.indexOf(":");e.data.name.indexOf("http://")>-1?e.noPrefixName=e.data.name:t>-1&&(e.noPrefixName=e.data.name.substring(t+1))}),U.style("font-size",function(e){return i.A.Text.calcFontSize(e.noPrefixName,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)})):U.style("font-size",function(e){return i.A.Text.calcFontSize(e.data.name,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r/3)}),U.style("display",function(e){return e.parent&&e.parent.data===L.data?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")}),c.doFade&&!c.keepPrevState&&U.each(function(e){i.A.Transition.fadeIn(s.select(this),550)}),H=function(){function e(e){e&&N.each(function(t){+e===t.data.id&&I(t)})}var n=t.hash();l.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var B=T.selectAll("circle, text");function V(e,t){var n=800/e[2];g=e,B.attr("transform",function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"}),N.attr("r",function(e){return e.r*n}),t&&U.each(function(e){e.data.fullName!==L.data.topLevelParentUri&&L.data.topLevelParentUri!==p||(e.textSel.style("display","none"),L.children&&L.children.length?_.each(L.children,function(e){e.textSel.style("display","inline")}):L.textSel.style("display","inline"),L.parent&&_.each(L.parent.children,function(e){e.data.name!==L.data.name&&e.textSel.style("display","inline")}))}),U.style("font-size",function(e){return c.noPrefixes?i.A.Text.calcFontSize(e.noPrefixName,e.r*n):i.A.Text.calcFontSize(e.data.name,e.r*n)}).text(function(e){return c.noPrefixes?i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r*n/3)})}function M(e){var t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display=""):(e.textHidden=!0,this.style.display="none")}function Z(e,t){if(o(function(){h.showExternalElements=e.data.name===p}),L!==e&&(e.data.id&&l.history.replaceState({id:e.data.id},"classHierarchyPage"+e.data.id,"hierarchy#"+e.data.id),e.children||(e=e.parent,L!==e))){if(t&&($(),s.selectAll(".selected").classed("selected",!1)),L.parent)for(var n=L;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=!!n.children,n=n.parent;2*(L=e).r/(2*L.r+20)<.3||h.currentSliderValue>h.currentBrowserLimit?(V([L.x,L.y,M(L.r)]),U.each(function(e){W.call(this,e)})):s.transition().duration(f).tween("zoom",function(e){var t=s.interpolateZoom(g,[L.x,L.y,M(L.r)]);return function(e){V(t(e))}}).selectAll("text").each(W)}}V([L.x,L.y,M(L.r)],u),D=h.$on("rootFocus",function(){l.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),I(A)}),k=h.$on("classSearch",function(e){I(e)})}function Y(){const t=h.classHierarchyData.classCount;let n=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",Y),window.addEventListener("beforeunload",function e(){window.removeEventListener("resize",Y),window.removeEventListener("beforeunload",e)}),h.$watch("classHierarchyData",function(){N&&N(),b&&b(),F&&F(),z&&z();var e=P();if(h.classHierarchyData.classCount){Y();var t=_.cloneDeep(h.classHierarchyData);var n,a,r=s.hierarchy(t).descendants().sort(function(e,t){return e.data.sortingRank>t.data.sortingRank?-1:e.data.sortingRank<t.data.sortingRank||e.data.depth>t.data.depth?1:e.data.depth<t.data.depth?-1:0});function d(e,t){const r={keepPrevState:!0,noPrefixes:P()};a=r.noPrefixes,U(n||e,r,L,!0),o(()=>{g.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H(),m=!1},70)}function u(e,r,i){if(!e)return;g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:p,children:[]};const s=new Set;for(let t=1;t<=e;t++)s.add(r[t].data.id),r[t].parent===r[0]&&n.children.push(r[t].data);(function e(t){if(!t.children)return;const n=[];for(const e of t.children)s.has(e.id)&&n.push($.extend({},e));t.children=n;for(const n of t.children)e(n)})(n),i?(a=angular.isUndefined(a)?P():a,U(n,{noPrefixes:a})):d(t)}var i,c=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)u(c,r);else{var l={doFade:!0,keepPrevState:!0,noPrefixes:P()};U(t,l),H()}N=h.$watch("hidePrefixes",function(n){angular.isUndefined(n)||e?e=void 0:o(function(){m=!0,function(e){angular.isUndefined(e)||g.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),d(t,!0)},50)},!0),b=h.$watch("currentSliderValue",function(e){u(e,r,!0)},!0),z=h.$on("onEnterKeypressSearchAction",function(e){i&&I(i)}),F=h.$on("searchedClass",function(e,t){(i=O[t.name])&&I(i)})}},!0)}(h)}}}n(32150),angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]}};
|
|
2
|
+
//# sourceMappingURL=99448.b2524aa8fdf2f3aee82a.bundle.js.map
|