graphdb-workbench 3.2.0-TR2 → 3.2.0-TR3
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/12358.4be185f89eebea9c35bf.bundle.js +3 -0
- package/dist/12358.4be185f89eebea9c35bf.bundle.js.map +1 -0
- package/dist/{12396.9a7f2862146b6f9adcb1.bundle.js → 12396.07e90b6c97623a9fd754.bundle.js} +2 -2
- package/dist/{12396.9a7f2862146b6f9adcb1.bundle.js.map → 12396.07e90b6c97623a9fd754.bundle.js.map} +1 -1
- package/dist/{15535.7b170e17ee0a58970ab6.bundle.js → 15535.12490e9b6d305e7bd827.bundle.js} +2 -2
- package/dist/{15535.7b170e17ee0a58970ab6.bundle.js.map → 15535.12490e9b6d305e7bd827.bundle.js.map} +1 -1
- package/dist/{16162.67e7c1f5f313481b1e80.bundle.js → 16162.58804ed92b5b3ae97510.bundle.js} +2 -2
- package/dist/{16162.67e7c1f5f313481b1e80.bundle.js.map → 16162.58804ed92b5b3ae97510.bundle.js.map} +1 -1
- package/dist/19402.7f6ea977348338acc824.bundle.js +2 -0
- package/dist/19402.7f6ea977348338acc824.bundle.js.map +1 -0
- package/dist/{20287.dd5bc263fe26adf34965.bundle.js → 20287.3ce3542c50f41b8b85a3.bundle.js} +2 -2
- package/dist/{20287.dd5bc263fe26adf34965.bundle.js.map → 20287.3ce3542c50f41b8b85a3.bundle.js.map} +1 -1
- package/dist/{21136.b7efcb40fb956ff1109c.bundle.js → 21136.c6d780b6f550c0df2d2a.bundle.js} +2 -2
- package/dist/{21136.b7efcb40fb956ff1109c.bundle.js.map → 21136.c6d780b6f550c0df2d2a.bundle.js.map} +1 -1
- package/dist/21142.b48a4c497617cb2df01f.bundle.js +2 -0
- package/dist/21142.b48a4c497617cb2df01f.bundle.js.map +1 -0
- package/dist/{21170.7832554eab9eaade6ffb.bundle.js → 21170.6079e1b218a1eea085f5.bundle.js} +2 -2
- package/dist/{21170.7832554eab9eaade6ffb.bundle.js.map → 21170.6079e1b218a1eea085f5.bundle.js.map} +1 -1
- package/dist/21195.152b932628044855ef83.bundle.js +2 -0
- package/dist/21195.152b932628044855ef83.bundle.js.map +1 -0
- package/dist/{25747.c01110e23b922cdd3d9e.bundle.js → 25747.117e03f9f9ae52f13606.bundle.js} +2 -2
- package/dist/{25747.c01110e23b922cdd3d9e.bundle.js.map → 25747.117e03f9f9ae52f13606.bundle.js.map} +1 -1
- package/dist/{27580.5a421770ab66d2dedc37.bundle.js → 27580.dc966117bc0ee9eecd70.bundle.js} +2 -2
- package/dist/{27580.5a421770ab66d2dedc37.bundle.js.map → 27580.dc966117bc0ee9eecd70.bundle.js.map} +1 -1
- package/dist/29350.d2791feedf54d2e4b7b6.bundle.js +2 -0
- package/dist/29350.d2791feedf54d2e4b7b6.bundle.js.map +1 -0
- package/dist/{31636.54e2817f8ae3998a34b3.bundle.js → 31636.95fa5e5c2a521d1effd5.bundle.js} +2 -2
- package/dist/{31636.54e2817f8ae3998a34b3.bundle.js.map → 31636.95fa5e5c2a521d1effd5.bundle.js.map} +1 -1
- package/dist/{32489.f7a2dc39cd61c2cd8874.bundle.js → 32489.c5d26d5023f0e0583408.bundle.js} +2 -2
- package/dist/{32489.f7a2dc39cd61c2cd8874.bundle.js.map → 32489.c5d26d5023f0e0583408.bundle.js.map} +1 -1
- package/dist/{34495.be67c06c39909114bbe4.bundle.js → 34495.2a7b45477194d52af3e5.bundle.js} +2 -2
- package/dist/{34495.be67c06c39909114bbe4.bundle.js.map → 34495.2a7b45477194d52af3e5.bundle.js.map} +1 -1
- package/dist/36633.eba4270db7fdcf1aad4c.bundle.js +2 -0
- package/dist/36633.eba4270db7fdcf1aad4c.bundle.js.map +1 -0
- package/dist/36665.19388ed0db6a1d64ad65.bundle.js +2 -0
- package/dist/36665.19388ed0db6a1d64ad65.bundle.js.map +1 -0
- package/dist/{38360.efec913bb97c3b8588a4.bundle.js → 38360.23a88f346d3a1d92dbb1.bundle.js} +2 -2
- package/dist/{38360.efec913bb97c3b8588a4.bundle.js.map → 38360.23a88f346d3a1d92dbb1.bundle.js.map} +1 -1
- package/dist/{38644.800252af49cd67310834.bundle.js → 38644.6682aa9acc813134b85a.bundle.js} +2 -2
- package/dist/{38644.800252af49cd67310834.bundle.js.map → 38644.6682aa9acc813134b85a.bundle.js.map} +1 -1
- package/dist/{38843.29e34a5e5293cee51566.bundle.js → 38843.7cf0aca4cc512c447e29.bundle.js} +2 -2
- package/dist/{38843.29e34a5e5293cee51566.bundle.js.map → 38843.7cf0aca4cc512c447e29.bundle.js.map} +1 -1
- package/dist/{39518.0ca97879b92271d7c5e2.bundle.js → 39518.cbb394dbd1fb5c717e82.bundle.js} +2 -2
- package/dist/{39518.0ca97879b92271d7c5e2.bundle.js.map → 39518.cbb394dbd1fb5c717e82.bundle.js.map} +1 -1
- package/dist/{39539.7cea6717cc3a5ba91617.bundle.js → 39539.63178d205aa9af450438.bundle.js} +2 -2
- package/dist/{39539.7cea6717cc3a5ba91617.bundle.js.map → 39539.63178d205aa9af450438.bundle.js.map} +1 -1
- package/dist/40516.3cfaf1ff4704c038f944.bundle.js +2 -0
- package/dist/40516.3cfaf1ff4704c038f944.bundle.js.map +1 -0
- package/dist/{41453.4ae219d972a187c36bfc.bundle.js → 41453.3a71e125d59ca56c3e48.bundle.js} +2 -2
- package/dist/{41453.4ae219d972a187c36bfc.bundle.js.map → 41453.3a71e125d59ca56c3e48.bundle.js.map} +1 -1
- package/dist/{42129.0314e45b4b818b01b71f.bundle.js → 42129.6bbb7e9d5f3be5d0cb47.bundle.js} +2 -2
- package/dist/{42129.0314e45b4b818b01b71f.bundle.js.map → 42129.6bbb7e9d5f3be5d0cb47.bundle.js.map} +1 -1
- package/dist/{44444.02026ff20e2a843dc05b.bundle.js → 44444.f65e3b550875b4b6e1a8.bundle.js} +2 -2
- package/dist/{44444.02026ff20e2a843dc05b.bundle.js.map → 44444.f65e3b550875b4b6e1a8.bundle.js.map} +1 -1
- package/dist/44874.b16be286176dfe4aa766.bundle.js +2 -0
- package/dist/44874.b16be286176dfe4aa766.bundle.js.map +1 -0
- package/dist/49539.63984d5b37bc8b9a7244.bundle.js +2 -0
- package/dist/49539.63984d5b37bc8b9a7244.bundle.js.map +1 -0
- package/dist/{51087.b072d1c0e53403535283.bundle.js → 51087.1e118e7fe32a8c09d6cb.bundle.js} +2 -2
- package/dist/51087.1e118e7fe32a8c09d6cb.bundle.js.map +1 -0
- package/dist/{55862.5e8602827fbf72e60cc2.bundle.js → 55862.81278272f7885ce93baf.bundle.js} +2 -2
- package/dist/{55862.5e8602827fbf72e60cc2.bundle.js.map → 55862.81278272f7885ce93baf.bundle.js.map} +1 -1
- package/dist/{58306.94b9336f68d11bdd72f0.bundle.js → 58306.061bfe57a80e266022a1.bundle.js} +2 -2
- package/dist/{58306.94b9336f68d11bdd72f0.bundle.js.map → 58306.061bfe57a80e266022a1.bundle.js.map} +1 -1
- package/dist/60039.5f9e955234f5eaf33372.bundle.js +2 -0
- package/dist/60039.5f9e955234f5eaf33372.bundle.js.map +1 -0
- package/dist/63415.7a4dfa072b5665c5995b.bundle.js +2 -0
- package/dist/63415.7a4dfa072b5665c5995b.bundle.js.map +1 -0
- package/dist/64118.edc8ed6671017d09ff4e.bundle.js +2 -0
- package/dist/64118.edc8ed6671017d09ff4e.bundle.js.map +1 -0
- package/dist/{67888.772326168aed83cbad9c.bundle.js → 67888.6a4fedd47a2764fdb04b.bundle.js} +2 -2
- package/dist/{67888.772326168aed83cbad9c.bundle.js.map → 67888.6a4fedd47a2764fdb04b.bundle.js.map} +1 -1
- package/dist/71920.c171884910616d02e2c6.bundle.js +2 -0
- package/dist/71920.c171884910616d02e2c6.bundle.js.map +1 -0
- package/dist/{72379.8a3290df05f18f8c65bd.bundle.js → 72379.d82f665d3a8b231008a3.bundle.js} +2 -2
- package/dist/{72379.8a3290df05f18f8c65bd.bundle.js.map → 72379.d82f665d3a8b231008a3.bundle.js.map} +1 -1
- package/dist/{73667.52fdbdadddafe9e9559b.bundle.js → 73667.5a32fae13853f9158d8b.bundle.js} +2 -2
- package/dist/{73667.52fdbdadddafe9e9559b.bundle.js.map → 73667.5a32fae13853f9158d8b.bundle.js.map} +1 -1
- package/dist/{73793.7e812bab1754ddd5efb5.bundle.js → 73793.88917a280c5cbacfd4c5.bundle.js} +2 -2
- package/dist/{73793.7e812bab1754ddd5efb5.bundle.js.map → 73793.88917a280c5cbacfd4c5.bundle.js.map} +1 -1
- package/dist/73964.7a3038b5726d50c1a051.bundle.js +2 -0
- package/dist/73964.7a3038b5726d50c1a051.bundle.js.map +1 -0
- package/dist/{75282.2f97d3a7d7f3fdd7aebf.bundle.js → 75282.865c935a564591b19c85.bundle.js} +2 -2
- package/dist/{75282.2f97d3a7d7f3fdd7aebf.bundle.js.map → 75282.865c935a564591b19c85.bundle.js.map} +1 -1
- package/dist/75849.d9fcfe95fed333bad2d0.bundle.js +2 -0
- package/dist/75849.d9fcfe95fed333bad2d0.bundle.js.map +1 -0
- package/dist/{78250.73e3013c5b2ebdddbf38.bundle.js → 78250.c266986c29f5c73eb46a.bundle.js} +2 -2
- package/dist/{78250.73e3013c5b2ebdddbf38.bundle.js.map → 78250.c266986c29f5c73eb46a.bundle.js.map} +1 -1
- package/dist/7928.9ab4b363abb28bfc6bd5.bundle.js +2 -0
- package/dist/7928.9ab4b363abb28bfc6bd5.bundle.js.map +1 -0
- package/dist/{79329.3d912887ba7e96090fb4.bundle.js → 79329.8d230cc14746653003ee.bundle.js} +2 -2
- package/dist/{79329.3d912887ba7e96090fb4.bundle.js.map → 79329.8d230cc14746653003ee.bundle.js.map} +1 -1
- package/dist/{82926.93a59d42bf8d49aaac8e.bundle.js → 82926.0cb2c4faf483e67f5e7f.bundle.js} +2 -2
- package/dist/{82926.93a59d42bf8d49aaac8e.bundle.js.map → 82926.0cb2c4faf483e67f5e7f.bundle.js.map} +1 -1
- package/dist/85609.68438b4955212d5fcb84.bundle.js +2 -0
- package/dist/85609.68438b4955212d5fcb84.bundle.js.map +1 -0
- package/dist/85788.501c7244b890d519f8cf.bundle.js +2 -0
- package/dist/85788.501c7244b890d519f8cf.bundle.js.map +1 -0
- package/dist/{89695.4ee87c52d4088115c51e.bundle.js → 89695.b7e90a123bc2875ccae4.bundle.js} +2 -2
- package/dist/89695.b7e90a123bc2875ccae4.bundle.js.map +1 -0
- package/dist/{9062.3541de664710a36fdac7.bundle.js → 9062.9bb14aa1e3d51036c7fe.bundle.js} +2 -2
- package/dist/{9062.3541de664710a36fdac7.bundle.js.map → 9062.9bb14aa1e3d51036c7fe.bundle.js.map} +1 -1
- package/dist/96089.4317e132ef8cc0033f83.bundle.js +2 -0
- package/dist/96089.4317e132ef8cc0033f83.bundle.js.map +1 -0
- package/dist/{99448.384b74c734331e5f8909.bundle.js → 99448.2ecdf14415bcd9299354.bundle.js} +2 -2
- package/dist/{99448.384b74c734331e5f8909.bundle.js.map → 99448.2ecdf14415bcd9299354.bundle.js.map} +1 -1
- package/dist/css/ttyg/chat-item-details.css +1 -1
- package/dist/css/ttyg/chat-panel.css +1 -1
- package/dist/i18n/locale-en.json +3 -0
- package/dist/i18n/locale-fr.json +3 -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 +5 -5
- package/dist/js/angular/ttyg/templates/chat-list.html +2 -2
- package/dist/js/angular/ttyg/templates/chat-panel.html +12 -7
- 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 +2 -2
- 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.2bd696723af2573e8bb7.js → legacyWorkbench.ffd119cc335034d736cc.js} +3 -3
- package/dist/{legacyWorkbench.2bd696723af2573e8bb7.js.map → legacyWorkbench.ffd119cc335034d736cc.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/package.json +1 -1
- package/dist/12358.2061f29dc113149946a3.bundle.js +0 -3
- package/dist/12358.2061f29dc113149946a3.bundle.js.map +0 -1
- package/dist/19402.07424b4b7c9dd775d860.bundle.js +0 -2
- package/dist/19402.07424b4b7c9dd775d860.bundle.js.map +0 -1
- package/dist/21142.ec45fad4d52b36961d17.bundle.js +0 -2
- package/dist/21142.ec45fad4d52b36961d17.bundle.js.map +0 -1
- package/dist/21195.caae6cc33d755ad52df4.bundle.js +0 -2
- package/dist/21195.caae6cc33d755ad52df4.bundle.js.map +0 -1
- package/dist/29350.9976c09d5cdaa48ecb19.bundle.js +0 -2
- package/dist/29350.9976c09d5cdaa48ecb19.bundle.js.map +0 -1
- package/dist/36633.bd17a2028ef302870ec4.bundle.js +0 -2
- package/dist/36633.bd17a2028ef302870ec4.bundle.js.map +0 -1
- package/dist/36665.eda6cfdf545f2608a6c7.bundle.js +0 -2
- package/dist/36665.eda6cfdf545f2608a6c7.bundle.js.map +0 -1
- package/dist/40516.734b24eead67142c4045.bundle.js +0 -2
- package/dist/40516.734b24eead67142c4045.bundle.js.map +0 -1
- package/dist/44874.5854c207bbe2c4f2438e.bundle.js +0 -2
- package/dist/44874.5854c207bbe2c4f2438e.bundle.js.map +0 -1
- package/dist/49539.d253a79e8b9710776e48.bundle.js +0 -2
- package/dist/49539.d253a79e8b9710776e48.bundle.js.map +0 -1
- package/dist/51087.b072d1c0e53403535283.bundle.js.map +0 -1
- package/dist/60039.cb9262af0bc63b635c76.bundle.js +0 -2
- package/dist/60039.cb9262af0bc63b635c76.bundle.js.map +0 -1
- package/dist/63415.81af22cc29be1144e07f.bundle.js +0 -2
- package/dist/63415.81af22cc29be1144e07f.bundle.js.map +0 -1
- package/dist/64118.fb6952c8ef6fc9117f35.bundle.js +0 -2
- package/dist/64118.fb6952c8ef6fc9117f35.bundle.js.map +0 -1
- package/dist/71920.46e7b0ec1d22adcd8e55.bundle.js +0 -2
- package/dist/71920.46e7b0ec1d22adcd8e55.bundle.js.map +0 -1
- package/dist/73964.fd1ad5e7aa228ad4cbbb.bundle.js +0 -2
- package/dist/73964.fd1ad5e7aa228ad4cbbb.bundle.js.map +0 -1
- package/dist/75849.bd0bdefa903741034a71.bundle.js +0 -2
- package/dist/75849.bd0bdefa903741034a71.bundle.js.map +0 -1
- package/dist/7928.7900a3911c83495d74dd.bundle.js +0 -2
- package/dist/7928.7900a3911c83495d74dd.bundle.js.map +0 -1
- package/dist/85609.680b755726c66ea1de34.bundle.js +0 -2
- package/dist/85609.680b755726c66ea1de34.bundle.js.map +0 -1
- package/dist/85788.4e0818c48b6f29153db4.bundle.js +0 -2
- package/dist/85788.4e0818c48b6f29153db4.bundle.js.map +0 -1
- package/dist/89695.4ee87c52d4088115c51e.bundle.js.map +0 -1
- package/dist/96089.7e28823f34c450de1f7e.bundle.js +0 -2
- package/dist/96089.7e28823f34c450de1f7e.bundle.js.map +0 -1
- /package/dist/{12358.2061f29dc113149946a3.bundle.js.LICENSE.txt → 12358.4be185f89eebea9c35bf.bundle.js.LICENSE.txt} +0 -0
- /package/dist/{legacyWorkbench.2bd696723af2573e8bb7.js.LICENSE.txt → legacyWorkbench.ffd119cc335034d736cc.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=27580;export const __webpack_ids__=[27580];export const __webpack_modules__={27580:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});const o='<link href="css/cluster-nodes-configuration.css?v=3.2.0-TR2" rel="stylesheet"/> <div onto-loader-new ng-if="loader" class="create-cluster-loader" message="getLoaderMessage" size="100"></div> <div class="add-node-wrapper pull-right mb-1"> <button ng-click="addNode()" ng-disabled="editedNodeIndex !== undefined" class="btn btn-primary add-node-btn" gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.add_node_tooltip\' | translate}}"> <i class="fa fa-plus"></i> {{\'cluster_management.update_cluster_group_dialog.actions.add_node\' | translate}} </button> </div> <div class="table-responsive"> <form name="form" id="updateClusterGroupForm"> <table class="cluster-group table table-striped table-hover cluster-group-table" aria-describedby="cluster group table"> <thead> <tr class="labels-row"> <th scope="col" class="index-column"> {{\'cluster_management.update_cluster_group_dialog.column.index\' | translate}} </th> <th scope="col" class="location-column"> {{\'cluster_management.update_cluster_group_dialog.column.location\' | translate}} </th> <th scope="col" class="info-column"> {{\'cluster_management.update_cluster_group_dialog.column.info\' | translate}} </th> <th scope="col" class="status-column"> {{\'cluster_management.update_cluster_group_dialog.column.status\' | translate}} </th> <th scope="col" class="empty-column"></th> <th scope="col" class="actions-column"></th> </tr> </thead> <tbody> <tr ng-if="!viewModel.length"> <td colspan="5" class="no-data"> {{\'cluster_management.update_cluster_group_dialog.messages.no_cluster\' | translate}} </td> </tr> <tr ng-repeat-start="node in viewModel track by $index" ng-if="0"></tr> <tr ng-if="$index !== editedNodeIndex" class="node preview-node-row" data-endpoint="{{node.endpoint}}" capture-height="$index" ng-class="{\'selected\': $index === selectedNode || $index === editedNodeIndex}"> <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td> <td class="location-cell data" ng-class="{\'deleting\': node.isDeleted, \'adding\': !node.item.address}"> <div class="location-item" id="endpoint-{{::node.index}}"> <span class="text-only">{{node.item.endpoint}}</span> <copy-to-clipboard text-to-copy="{{node.item.endpoint}}" custom-tooltip-style="true" ng-attr-target-selector="#endpoint-{{::node.index}}" custom-tooltip-text="{{\'cluster_management.update_cluster_group_dialog.copy_to_clipboard.copied.tooltip\' | translate}}"></copy-to-clipboard> </div> </td> <td class="info-cell data"> <span ng-if="node.isLocal"> {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span> </span> <span ng-if="node.item.nodeState"> {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) | translate }} </span> </td> <td class="status-cell data"> <div ng-if="!node.item.address" class="adding"> <i class="fa fa-circle-check status-icon"></i> {{\'cluster_management.update_cluster_group_dialog.new_node\' | translate}} </div> <div ng-if="node.isDeleted" class="deleting"> <i class="fa fa-xmark status-icon"></i> {{\'cluster_management.update_cluster_group_dialog.deleted_node\' | translate}} </div> </td> <td class="empty-cell"></td> <td class="actions-cell"> <div ng-if="editedNodeIndex === undefined && !node.isDeleted" class="actions-group"> <button ng-click="deleteNode($index, node)" ng-disabled="(hasCluster && !canDeleteNode) || (!hasCluster && node.isLocal)" class="btn btn-link delete-node-btn secondary" gdb-tooltip="{{ (hasCluster && canDeleteNode) || (!hasCluster && !node.isLocal) ?\n (\'cluster_management.update_cluster_group_dialog.actions.delete_node\' | translate) :\n (\'cluster_management.update_cluster_group_dialog.actions.cannot_delete_node\' | translate) }}" title-class="delete-node-tooltip"> <i class="fa fa-xmark"></i> </button> <button ng-click="replaceNode($index, node)" class="btn btn-link replace-node-btn" ng-disabled="!hasCluster && node.isLocal" gdb-tooltip="{{hasCluster || !node.isLocal ?\n (\'cluster_management.update_cluster_group_dialog.actions.replace_node\' | translate) :\n (\'cluster_management.update_cluster_group_dialog.actions.cannot_replace_node\' | translate) }}"> <i class="fa fa-arrow-right-arrow-left"></i> </button> </div> <div ng-if="editedNodeIndex === undefined && node.isDeleted" class="actions-group"> <button ng-click="restoreNode(node)" class="btn btn-link restore-node-btn secondary" gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.restore_node\' | translate}}"> <i class="fa fa-rotate-left"></i> </button> </div> </td> </tr> <tr ng-if="$index === editedNodeIndex" class="node edit-node-row" data-endpoint="{{node.endpoint}}" style="" ng-class="{\'selected table-info\': $index === editedNodeIndex}"> <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td> <td class="data location-cell"> <div class="autocomplete-container"> <input type="text" name="location" required ng-model="node.endpoint" ng-change="filterSuggestions(node)" ng-blur="hideSuggestions(node)" ng-click="filterSuggestions(node)" ng-keydown="handleKeydown($event, form.location.$valid, node.endpoint)" auto-grow validate-url exclude="/repositories" exclude-protocol="ftp,ftps" validate-duplicate-url excluded-urls="clusterNodesEndpoints" allow-empty="false" class="form-control form-control-sm textarea-edit" uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}" tooltip-placement="top" placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}"> <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown"> <li ng-repeat="suggestion in suggestions" ng-mouseup="selectSuggestion(node, suggestion)"> {{ suggestion }} </li> </ul> </div> </td> <td class="info-cell data"> <span ng-if="node.isLocal"> {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span> </span> <span ng-if="node.item.nodeState"> {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) | translate }} </span> </td> <td class="status-cell"></td> <td class="empty-cell"></td> <td class="actions-cell"> <div class="crud-actions-group"> <button ng-click="cancel()" class="btn btn-link cancel-node-replace-btn secondary" gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}"> <i class="fa fa-xmark"></i> </button> <button ng-click="saveNode(node.endpoint)" class="btn btn-link save-rule-btn" ng-disabled="!form.location.$valid" gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}"> <i class="fa fa-check"></i> </button> </div> </td> </tr> <tr ng-repeat-end ng-if="0"></tr> <tr ng-if="addNewLocation" class="node edit-node-row"> <td class="index-cell"></td> <td class="data location-cell"> <div class="autocomplete-container"> <input type="text" name="location" required ng-model="newLocation.endpoint" ng-change="filterSuggestions(newLocation)" ng-blur="hideSuggestions(newLocation)" ng-click="filterSuggestions(newLocation)" ng-keydown="handleKeydown($event, form.location.$valid, newLocation.endpoint)" auto-grow validate-url exclude="/repositories" exclude-protocol="ftp,ftps" validate-duplicate-url excluded-urls="clusterNodesEndpoints" allow-empty="false" class="form-control form-control-sm textarea-edit" uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}" tooltip-placement="top" placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}"> <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown"> <li ng-repeat="suggestion in suggestions" ng-mouseup="selectSuggestion(newLocation, suggestion)"> {{ suggestion }} </li> </ul> </div> </td> <td class="info-cell data"></td> <td class="status-cell"></td> <td class="empty-cell"></td> <td class="actions-cell"> <div class="crud-actions-group"> <button ng-click="cancel()" class="btn btn-link cancel-node-replace-btn secondary" gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}"> <i class="fa fa-xmark"></i> </button> <button ng-click="saveNode(newLocation.endpoint)" class="btn btn-link save-rule-btn" ng-disabled="!form.location.$valid" gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}"> <i class="fa fa-check"></i> </button> </div> </td> </tr> </tbody> </table> <div class="errors"> <div class="error-message" ng-show="form.location.$error.validUrl && !form.location.$pristine"> * {{\'valid.remote.location.warning\' | translate}} http://server.example.com:7200/. </div> <div class="error-message" ng-show="form.location.$error.duplicateUrl && !form.location.$pristine"> * {{\'duplicate.remote.location.warning\' | translate}} </div> <div ng-repeat="error in errors" class="error-message"> {{error}} </div> </div> <div class="form-horizontal" ng-if="!hasCluster"> <div class="form-group"> <div class="indented-div"> <span class="padding-label wrapper-div" gdb-tooltip="{{\'cluster_management.cluster_page.advanced_options_tooltip\' | translate}}"> <button type="button" class="text-btn advanced-options-btn text-left" data-toggle="collapse" data-target="#advancedOptions"> <i class="{{getAdvancedOptionsClass()}} advanced-options-toggle" aria-hidden="true"></i> {{\'cluster_management.cluster_page.advanced_options\' | translate}} </button> </span> </div> <div id="advancedOptions" class="collapse pb-1 pl-2"> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.electionMinTimeout.$invalid}"> <label for="election-minimum-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_min_timeout\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_min_timeout_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.electionMinTimeout" required id="election-minimum-timeout" min="0" pattern="[0-9]+" name="electionMinTimeout"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.electionMinTimeout.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.electionMinTimeout.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.electionRangeTimeout.$invalid}"> <label for="election-range-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_range_timeout\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_range_timeout_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.electionRangeTimeout" required id="election-range-timeout" min="0" pattern="[0-9]+" name="electionRangeTimeout"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.electionRangeTimeout.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.electionRangeTimeout.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.heartbeatInterval.$invalid}"> <label for="heartbeat-interval" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.heartbeat_interval\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.heartbeatInterval" required id="heartbeat-interval" min="0" pattern="[0-9]+" name="heartbeatInterval"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.heartbeatInterval.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.heartbeatInterval.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.messageSizeKB.$invalid}"> <label for="message-size" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.message_size_kb\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.message_size_kb_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.messageSizeKB" required id="message-size" min="0" pattern="[0-9]+" name="messageSizeKB"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.messageSizeKB.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.messageSizeKB.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.verificationTimeout.$invalid}"> <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.verification_timeout\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.verification_timeout_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.verificationTimeout" required id="verification-timeout" min="0" pattern="[0-9]+" name="verificationTimeout"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.verificationTimeout.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.verificationTimeout.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.transactionLogMaximumSizeGB.$invalid}"> <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.transactionLogMaximumSizeGB" required id="transaction-log-maximum-size-gb" pattern="-?[1-9][0-9]*(\\.[0-9]+)?" name="transaction_log_maximum_size_gb"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.pattern"> {{\'cluster_management.cluster_page.errors.small_transaction_log_max_size\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.batchUpdateInterval.$invalid}"> <label for="batch-update-interval" class="col-xs-4 col-form-label"> {{\'cluster_management.cluster_configuration_properties.batch_update_interval\' | translate}}* </label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.batch_update_interval_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.batchUpdateInterval" required id="batch-update-interval" min="0" name="batchUpdateInterval"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.batchUpdateInterval.$error.required"> {{\'required.field\' | translate}} </div> </div> </div> </div> </div> </div> </div> </form> </div> '}};
|
|
2
|
-
//# sourceMappingURL=27580.
|
|
1
|
+
export const __webpack_id__=27580;export const __webpack_ids__=[27580];export const __webpack_modules__={27580:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});const o='<link href="css/cluster-nodes-configuration.css?v=3.2.0-TR3" rel="stylesheet"/> <div onto-loader-new ng-if="loader" class="create-cluster-loader" message="getLoaderMessage" size="100"></div> <div class="add-node-wrapper pull-right mb-1"> <button ng-click="addNode()" ng-disabled="editedNodeIndex !== undefined" class="btn btn-primary add-node-btn" gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.add_node_tooltip\' | translate}}"> <i class="fa fa-plus"></i> {{\'cluster_management.update_cluster_group_dialog.actions.add_node\' | translate}} </button> </div> <div class="table-responsive"> <form name="form" id="updateClusterGroupForm"> <table class="cluster-group table table-striped table-hover cluster-group-table" aria-describedby="cluster group table"> <thead> <tr class="labels-row"> <th scope="col" class="index-column"> {{\'cluster_management.update_cluster_group_dialog.column.index\' | translate}} </th> <th scope="col" class="location-column"> {{\'cluster_management.update_cluster_group_dialog.column.location\' | translate}} </th> <th scope="col" class="info-column"> {{\'cluster_management.update_cluster_group_dialog.column.info\' | translate}} </th> <th scope="col" class="status-column"> {{\'cluster_management.update_cluster_group_dialog.column.status\' | translate}} </th> <th scope="col" class="empty-column"></th> <th scope="col" class="actions-column"></th> </tr> </thead> <tbody> <tr ng-if="!viewModel.length"> <td colspan="5" class="no-data"> {{\'cluster_management.update_cluster_group_dialog.messages.no_cluster\' | translate}} </td> </tr> <tr ng-repeat-start="node in viewModel track by $index" ng-if="0"></tr> <tr ng-if="$index !== editedNodeIndex" class="node preview-node-row" data-endpoint="{{node.endpoint}}" capture-height="$index" ng-class="{\'selected\': $index === selectedNode || $index === editedNodeIndex}"> <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td> <td class="location-cell data" ng-class="{\'deleting\': node.isDeleted, \'adding\': !node.item.address}"> <div class="location-item" id="endpoint-{{::node.index}}"> <span class="text-only">{{node.item.endpoint}}</span> <copy-to-clipboard text-to-copy="{{node.item.endpoint}}" custom-tooltip-style="true" ng-attr-target-selector="#endpoint-{{::node.index}}" custom-tooltip-text="{{\'cluster_management.update_cluster_group_dialog.copy_to_clipboard.copied.tooltip\' | translate}}"></copy-to-clipboard> </div> </td> <td class="info-cell data"> <span ng-if="node.isLocal"> {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span> </span> <span ng-if="node.item.nodeState"> {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) | translate }} </span> </td> <td class="status-cell data"> <div ng-if="!node.item.address" class="adding"> <i class="fa fa-circle-check status-icon"></i> {{\'cluster_management.update_cluster_group_dialog.new_node\' | translate}} </div> <div ng-if="node.isDeleted" class="deleting"> <i class="fa fa-xmark status-icon"></i> {{\'cluster_management.update_cluster_group_dialog.deleted_node\' | translate}} </div> </td> <td class="empty-cell"></td> <td class="actions-cell"> <div ng-if="editedNodeIndex === undefined && !node.isDeleted" class="actions-group"> <button ng-click="deleteNode($index, node)" ng-disabled="(hasCluster && !canDeleteNode) || (!hasCluster && node.isLocal)" class="btn btn-link delete-node-btn secondary" gdb-tooltip="{{ (hasCluster && canDeleteNode) || (!hasCluster && !node.isLocal) ?\n (\'cluster_management.update_cluster_group_dialog.actions.delete_node\' | translate) :\n (\'cluster_management.update_cluster_group_dialog.actions.cannot_delete_node\' | translate) }}" title-class="delete-node-tooltip"> <i class="fa fa-xmark"></i> </button> <button ng-click="replaceNode($index, node)" class="btn btn-link replace-node-btn" ng-disabled="!hasCluster && node.isLocal" gdb-tooltip="{{hasCluster || !node.isLocal ?\n (\'cluster_management.update_cluster_group_dialog.actions.replace_node\' | translate) :\n (\'cluster_management.update_cluster_group_dialog.actions.cannot_replace_node\' | translate) }}"> <i class="fa fa-arrow-right-arrow-left"></i> </button> </div> <div ng-if="editedNodeIndex === undefined && node.isDeleted" class="actions-group"> <button ng-click="restoreNode(node)" class="btn btn-link restore-node-btn secondary" gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.restore_node\' | translate}}"> <i class="fa fa-rotate-left"></i> </button> </div> </td> </tr> <tr ng-if="$index === editedNodeIndex" class="node edit-node-row" data-endpoint="{{node.endpoint}}" style="" ng-class="{\'selected table-info\': $index === editedNodeIndex}"> <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td> <td class="data location-cell"> <div class="autocomplete-container"> <input type="text" name="location" required ng-model="node.endpoint" ng-change="filterSuggestions(node)" ng-blur="hideSuggestions(node)" ng-click="filterSuggestions(node)" ng-keydown="handleKeydown($event, form.location.$valid, node.endpoint)" auto-grow validate-url exclude="/repositories" exclude-protocol="ftp,ftps" validate-duplicate-url excluded-urls="clusterNodesEndpoints" allow-empty="false" class="form-control form-control-sm textarea-edit" uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}" tooltip-placement="top" placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}"> <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown"> <li ng-repeat="suggestion in suggestions" ng-mouseup="selectSuggestion(node, suggestion)"> {{ suggestion }} </li> </ul> </div> </td> <td class="info-cell data"> <span ng-if="node.isLocal"> {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span> </span> <span ng-if="node.item.nodeState"> {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) | translate }} </span> </td> <td class="status-cell"></td> <td class="empty-cell"></td> <td class="actions-cell"> <div class="crud-actions-group"> <button ng-click="cancel()" class="btn btn-link cancel-node-replace-btn secondary" gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}"> <i class="fa fa-xmark"></i> </button> <button ng-click="saveNode(node.endpoint)" class="btn btn-link save-rule-btn" ng-disabled="!form.location.$valid" gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}"> <i class="fa fa-check"></i> </button> </div> </td> </tr> <tr ng-repeat-end ng-if="0"></tr> <tr ng-if="addNewLocation" class="node edit-node-row"> <td class="index-cell"></td> <td class="data location-cell"> <div class="autocomplete-container"> <input type="text" name="location" required ng-model="newLocation.endpoint" ng-change="filterSuggestions(newLocation)" ng-blur="hideSuggestions(newLocation)" ng-click="filterSuggestions(newLocation)" ng-keydown="handleKeydown($event, form.location.$valid, newLocation.endpoint)" auto-grow validate-url exclude="/repositories" exclude-protocol="ftp,ftps" validate-duplicate-url excluded-urls="clusterNodesEndpoints" allow-empty="false" class="form-control form-control-sm textarea-edit" uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}" tooltip-placement="top" placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}"> <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown"> <li ng-repeat="suggestion in suggestions" ng-mouseup="selectSuggestion(newLocation, suggestion)"> {{ suggestion }} </li> </ul> </div> </td> <td class="info-cell data"></td> <td class="status-cell"></td> <td class="empty-cell"></td> <td class="actions-cell"> <div class="crud-actions-group"> <button ng-click="cancel()" class="btn btn-link cancel-node-replace-btn secondary" gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}"> <i class="fa fa-xmark"></i> </button> <button ng-click="saveNode(newLocation.endpoint)" class="btn btn-link save-rule-btn" ng-disabled="!form.location.$valid" gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}"> <i class="fa fa-check"></i> </button> </div> </td> </tr> </tbody> </table> <div class="errors"> <div class="error-message" ng-show="form.location.$error.validUrl && !form.location.$pristine"> * {{\'valid.remote.location.warning\' | translate}} http://server.example.com:7200/. </div> <div class="error-message" ng-show="form.location.$error.duplicateUrl && !form.location.$pristine"> * {{\'duplicate.remote.location.warning\' | translate}} </div> <div ng-repeat="error in errors" class="error-message"> {{error}} </div> </div> <div class="form-horizontal" ng-if="!hasCluster"> <div class="form-group"> <div class="indented-div"> <span class="padding-label wrapper-div" gdb-tooltip="{{\'cluster_management.cluster_page.advanced_options_tooltip\' | translate}}"> <button type="button" class="text-btn advanced-options-btn text-left" data-toggle="collapse" data-target="#advancedOptions"> <i class="{{getAdvancedOptionsClass()}} advanced-options-toggle" aria-hidden="true"></i> {{\'cluster_management.cluster_page.advanced_options\' | translate}} </button> </span> </div> <div id="advancedOptions" class="collapse pb-1 pl-2"> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.electionMinTimeout.$invalid}"> <label for="election-minimum-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_min_timeout\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_min_timeout_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.electionMinTimeout" required id="election-minimum-timeout" min="0" pattern="[0-9]+" name="electionMinTimeout"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.electionMinTimeout.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.electionMinTimeout.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.electionRangeTimeout.$invalid}"> <label for="election-range-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_range_timeout\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_range_timeout_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.electionRangeTimeout" required id="election-range-timeout" min="0" pattern="[0-9]+" name="electionRangeTimeout"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.electionRangeTimeout.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.electionRangeTimeout.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.heartbeatInterval.$invalid}"> <label for="heartbeat-interval" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.heartbeat_interval\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.heartbeatInterval" required id="heartbeat-interval" min="0" pattern="[0-9]+" name="heartbeatInterval"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.heartbeatInterval.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.heartbeatInterval.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.messageSizeKB.$invalid}"> <label for="message-size" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.message_size_kb\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.message_size_kb_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.messageSizeKB" required id="message-size" min="0" pattern="[0-9]+" name="messageSizeKB"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.messageSizeKB.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.messageSizeKB.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.verificationTimeout.$invalid}"> <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.verification_timeout\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.verification_timeout_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.verificationTimeout" required id="verification-timeout" min="0" pattern="[0-9]+" name="verificationTimeout"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.verificationTimeout.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.verificationTimeout.$error.pattern"> {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.transactionLogMaximumSizeGB.$invalid}"> <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb\' | translate}}*</label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.transactionLogMaximumSizeGB" required id="transaction-log-maximum-size-gb" pattern="-?[1-9][0-9]*(\\.[0-9]+)?" name="transaction_log_maximum_size_gb"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.required"> {{\'required.field\' | translate}} </div> <div class="form-control-feedback" ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.pattern"> {{\'cluster_management.cluster_page.errors.small_transaction_log_max_size\' | translate}} </div> </div> </div> </div> <div class="form-group"> <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.batchUpdateInterval.$invalid}"> <label for="batch-update-interval" class="col-xs-4 col-form-label"> {{\'cluster_management.cluster_configuration_properties.batch_update_interval\' | translate}}* </label> <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.batch_update_interval_tooltip\' | translate}}"> <input class="form-control" placeholder="{{\'required.field\' | translate}}" type="number" ng-model="clusterConfiguration.batchUpdateInterval" required id="batch-update-interval" min="0" name="batchUpdateInterval"> <div class="form-control-feedback" ng-show="clusterConfigurationForm.batchUpdateInterval.$error.required"> {{\'required.field\' | translate}} </div> </div> </div> </div> </div> </div> </div> </form> </div> '}};
|
|
2
|
+
//# sourceMappingURL=27580.dc966117bc0ee9eecd70.bundle.js.map
|
package/dist/{27580.5a421770ab66d2dedc37.bundle.js.map → 27580.dc966117bc0ee9eecd70.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"27580.5a421770ab66d2dedc37.bundle.js","mappings":"uJAOA,QANW,wmhB","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/clustermanagement/templates/cluster-nodes-configuration.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/cluster-nodes-configuration.css?v=3.2.0-TR2\" rel=\"stylesheet\"/> <div onto-loader-new ng-if=\"loader\" class=\"create-cluster-loader\" message=\"getLoaderMessage\" size=\"100\"></div> <div class=\"add-node-wrapper pull-right mb-1\"> <button ng-click=\"addNode()\" ng-disabled=\"editedNodeIndex !== undefined\" class=\"btn btn-primary add-node-btn\" gdb-tooltip=\"{{'cluster_management.update_cluster_group_dialog.actions.add_node_tooltip' | translate}}\"> <i class=\"fa fa-plus\"></i> {{'cluster_management.update_cluster_group_dialog.actions.add_node' | translate}} </button> </div> <div class=\"table-responsive\"> <form name=\"form\" id=\"updateClusterGroupForm\"> <table class=\"cluster-group table table-striped table-hover cluster-group-table\" aria-describedby=\"cluster group table\"> <thead> <tr class=\"labels-row\"> <th scope=\"col\" class=\"index-column\"> {{'cluster_management.update_cluster_group_dialog.column.index' | translate}} </th> <th scope=\"col\" class=\"location-column\"> {{'cluster_management.update_cluster_group_dialog.column.location' | translate}} </th> <th scope=\"col\" class=\"info-column\"> {{'cluster_management.update_cluster_group_dialog.column.info' | translate}} </th> <th scope=\"col\" class=\"status-column\"> {{'cluster_management.update_cluster_group_dialog.column.status' | translate}} </th> <th scope=\"col\" class=\"empty-column\"></th> <th scope=\"col\" class=\"actions-column\"></th> </tr> </thead> <tbody> <tr ng-if=\"!viewModel.length\"> <td colspan=\"5\" class=\"no-data\"> {{'cluster_management.update_cluster_group_dialog.messages.no_cluster' | translate}} </td> </tr> <tr ng-repeat-start=\"node in viewModel track by \\$index\" ng-if=\"0\"></tr> <tr ng-if=\"\\$index !== editedNodeIndex\" class=\"node preview-node-row\" data-endpoint=\"{{node.endpoint}}\" capture-height=\"\\$index\" ng-class=\"{'selected': \\$index === selectedNode || \\$index === editedNodeIndex}\"> <td class=\"index-cell\"><span ng-if=\"!node.isDeleted\">{{node.index + 1}}</span></td> <td class=\"location-cell data\" ng-class=\"{'deleting': node.isDeleted, 'adding': !node.item.address}\"> <div class=\"location-item\" id=\"endpoint-{{::node.index}}\"> <span class=\"text-only\">{{node.item.endpoint}}</span> <copy-to-clipboard text-to-copy=\"{{node.item.endpoint}}\" custom-tooltip-style=\"true\" ng-attr-target-selector=\"#endpoint-{{::node.index}}\" custom-tooltip-text=\"{{'cluster_management.update_cluster_group_dialog.copy_to_clipboard.copied.tooltip' | translate}}\"></copy-to-clipboard> </div> </td> <td class=\"info-cell data\"> <span ng-if=\"node.isLocal\"> {{'cluster_management.update_cluster_group_dialog.current_node' | translate}}<span ng-if=\"node.item.nodeState\">, </span> </span> <span ng-if=\"node.item.nodeState\"> {{ ('cluster_management.update_cluster_group_dialog.' + node.item.nodeState.toLowerCase()) | translate }} </span> </td> <td class=\"status-cell data\"> <div ng-if=\"!node.item.address\" class=\"adding\"> <i class=\"fa fa-circle-check status-icon\"></i> {{'cluster_management.update_cluster_group_dialog.new_node' | translate}} </div> <div ng-if=\"node.isDeleted\" class=\"deleting\"> <i class=\"fa fa-xmark status-icon\"></i> {{'cluster_management.update_cluster_group_dialog.deleted_node' | translate}} </div> </td> <td class=\"empty-cell\"></td> <td class=\"actions-cell\"> <div ng-if=\"editedNodeIndex === undefined && !node.isDeleted\" class=\"actions-group\"> <button ng-click=\"deleteNode(\\$index, node)\" ng-disabled=\"(hasCluster && !canDeleteNode) || (!hasCluster && node.isLocal)\" class=\"btn btn-link delete-node-btn secondary\" gdb-tooltip=\"{{ (hasCluster && canDeleteNode) || (!hasCluster && !node.isLocal) ?\n ('cluster_management.update_cluster_group_dialog.actions.delete_node' | translate) :\n ('cluster_management.update_cluster_group_dialog.actions.cannot_delete_node' | translate) }}\" title-class=\"delete-node-tooltip\"> <i class=\"fa fa-xmark\"></i> </button> <button ng-click=\"replaceNode(\\$index, node)\" class=\"btn btn-link replace-node-btn\" ng-disabled=\"!hasCluster && node.isLocal\" gdb-tooltip=\"{{hasCluster || !node.isLocal ?\n ('cluster_management.update_cluster_group_dialog.actions.replace_node' | translate) :\n ('cluster_management.update_cluster_group_dialog.actions.cannot_replace_node' | translate) }}\"> <i class=\"fa fa-arrow-right-arrow-left\"></i> </button> </div> <div ng-if=\"editedNodeIndex === undefined && node.isDeleted\" class=\"actions-group\"> <button ng-click=\"restoreNode(node)\" class=\"btn btn-link restore-node-btn secondary\" gdb-tooltip=\"{{'cluster_management.update_cluster_group_dialog.actions.restore_node' | translate}}\"> <i class=\"fa fa-rotate-left\"></i> </button> </div> </td> </tr> <tr ng-if=\"\\$index === editedNodeIndex\" class=\"node edit-node-row\" data-endpoint=\"{{node.endpoint}}\" style=\"\" ng-class=\"{'selected table-info': \\$index === editedNodeIndex}\"> <td class=\"index-cell\"><span ng-if=\"!node.isDeleted\">{{node.index + 1}}</span></td> <td class=\"data location-cell\"> <div class=\"autocomplete-container\"> <input type=\"text\" name=\"location\" required ng-model=\"node.endpoint\" ng-change=\"filterSuggestions(node)\" ng-blur=\"hideSuggestions(node)\" ng-click=\"filterSuggestions(node)\" ng-keydown=\"handleKeydown(\\$event, form.location.\\$valid, node.endpoint)\" auto-grow validate-url exclude=\"/repositories\" exclude-protocol=\"ftp,ftps\" validate-duplicate-url excluded-urls=\"clusterNodesEndpoints\" allow-empty=\"false\" class=\"form-control form-control-sm textarea-edit\" uib-tooltip=\"{{'remote.location.enter.url.msg' | translate}}\" tooltip-placement=\"top\" placeholder=\"{{'cluster_management.update_cluster_group_dialog.field_placeholders.location' | translate}}\"> <ul ng-show=\"suggestions.length > 0 && showDropdown\" class=\"autocomplete-dropdown\"> <li ng-repeat=\"suggestion in suggestions\" ng-mouseup=\"selectSuggestion(node, suggestion)\"> {{ suggestion }} </li> </ul> </div> </td> <td class=\"info-cell data\"> <span ng-if=\"node.isLocal\"> {{'cluster_management.update_cluster_group_dialog.current_node' | translate}}<span ng-if=\"node.item.nodeState\">, </span> </span> <span ng-if=\"node.item.nodeState\"> {{ ('cluster_management.update_cluster_group_dialog.' + node.item.nodeState.toLowerCase()) | translate }} </span> </td> <td class=\"status-cell\"></td> <td class=\"empty-cell\"></td> <td class=\"actions-cell\"> <div class=\"crud-actions-group\"> <button ng-click=\"cancel()\" class=\"btn btn-link cancel-node-replace-btn secondary\" gdb-tooltip=\"{{'cluster_management.update_cluster_group_dialog.actions.cancel' | translate}}\"> <i class=\"fa fa-xmark\"></i> </button> <button ng-click=\"saveNode(node.endpoint)\" class=\"btn btn-link save-rule-btn\" ng-disabled=\"!form.location.\\$valid\" gdb-tooltip=\"{{form.location.\\$valid ? 'cluster_management.update_cluster_group_dialog.actions.add_node' : 'cluster_management.update_cluster_group_dialog.messages.invalid_form' | translate}}\"> <i class=\"fa fa-check\"></i> </button> </div> </td> </tr> <tr ng-repeat-end ng-if=\"0\"></tr> <tr ng-if=\"addNewLocation\" class=\"node edit-node-row\"> <td class=\"index-cell\"></td> <td class=\"data location-cell\"> <div class=\"autocomplete-container\"> <input type=\"text\" name=\"location\" required ng-model=\"newLocation.endpoint\" ng-change=\"filterSuggestions(newLocation)\" ng-blur=\"hideSuggestions(newLocation)\" ng-click=\"filterSuggestions(newLocation)\" ng-keydown=\"handleKeydown(\\$event, form.location.\\$valid, newLocation.endpoint)\" auto-grow validate-url exclude=\"/repositories\" exclude-protocol=\"ftp,ftps\" validate-duplicate-url excluded-urls=\"clusterNodesEndpoints\" allow-empty=\"false\" class=\"form-control form-control-sm textarea-edit\" uib-tooltip=\"{{'remote.location.enter.url.msg' | translate}}\" tooltip-placement=\"top\" placeholder=\"{{'cluster_management.update_cluster_group_dialog.field_placeholders.location' | translate}}\"> <ul ng-show=\"suggestions.length > 0 && showDropdown\" class=\"autocomplete-dropdown\"> <li ng-repeat=\"suggestion in suggestions\" ng-mouseup=\"selectSuggestion(newLocation, suggestion)\"> {{ suggestion }} </li> </ul> </div> </td> <td class=\"info-cell data\"></td> <td class=\"status-cell\"></td> <td class=\"empty-cell\"></td> <td class=\"actions-cell\"> <div class=\"crud-actions-group\"> <button ng-click=\"cancel()\" class=\"btn btn-link cancel-node-replace-btn secondary\" gdb-tooltip=\"{{'cluster_management.update_cluster_group_dialog.actions.cancel' | translate}}\"> <i class=\"fa fa-xmark\"></i> </button> <button ng-click=\"saveNode(newLocation.endpoint)\" class=\"btn btn-link save-rule-btn\" ng-disabled=\"!form.location.\\$valid\" gdb-tooltip=\"{{form.location.\\$valid ? 'cluster_management.update_cluster_group_dialog.actions.add_node' : 'cluster_management.update_cluster_group_dialog.messages.invalid_form' | translate}}\"> <i class=\"fa fa-check\"></i> </button> </div> </td> </tr> </tbody> </table> <div class=\"errors\"> <div class=\"error-message\" ng-show=\"form.location.\\$error.validUrl && !form.location.\\$pristine\"> * {{'valid.remote.location.warning' | translate}} http://server.example.com:7200/. </div> <div class=\"error-message\" ng-show=\"form.location.\\$error.duplicateUrl && !form.location.\\$pristine\"> * {{'duplicate.remote.location.warning' | translate}} </div> <div ng-repeat=\"error in errors\" class=\"error-message\"> {{error}} </div> </div> <div class=\"form-horizontal\" ng-if=\"!hasCluster\"> <div class=\"form-group\"> <div class=\"indented-div\"> <span class=\"padding-label wrapper-div\" gdb-tooltip=\"{{'cluster_management.cluster_page.advanced_options_tooltip' | translate}}\"> <button type=\"button\" class=\"text-btn advanced-options-btn text-left\" data-toggle=\"collapse\" data-target=\"#advancedOptions\"> <i class=\"{{getAdvancedOptionsClass()}} advanced-options-toggle\" aria-hidden=\"true\"></i> {{'cluster_management.cluster_page.advanced_options' | translate}} </button> </span> </div> <div id=\"advancedOptions\" class=\"collapse pb-1 pl-2\"> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.electionMinTimeout.\\$invalid}\"> <label for=\"election-minimum-timeout\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.election_min_timeout' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.election_min_timeout_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.electionMinTimeout\" required id=\"election-minimum-timeout\" min=\"0\" pattern=\"[0-9]+\" name=\"electionMinTimeout\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.electionMinTimeout.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.electionMinTimeout.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.electionRangeTimeout.\\$invalid}\"> <label for=\"election-range-timeout\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.election_range_timeout' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.election_range_timeout_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.electionRangeTimeout\" required id=\"election-range-timeout\" min=\"0\" pattern=\"[0-9]+\" name=\"electionRangeTimeout\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.electionRangeTimeout.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.electionRangeTimeout.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.heartbeatInterval.\\$invalid}\"> <label for=\"heartbeat-interval\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.heartbeat_interval' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.heartbeatInterval\" required id=\"heartbeat-interval\" min=\"0\" pattern=\"[0-9]+\" name=\"heartbeatInterval\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.heartbeatInterval.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.heartbeatInterval.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.messageSizeKB.\\$invalid}\"> <label for=\"message-size\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.message_size_kb' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.message_size_kb_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.messageSizeKB\" required id=\"message-size\" min=\"0\" pattern=\"[0-9]+\" name=\"messageSizeKB\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.messageSizeKB.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.messageSizeKB.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.verificationTimeout.\\$invalid}\"> <label for=\"verification-timeout\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.verification_timeout' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.verification_timeout_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.verificationTimeout\" required id=\"verification-timeout\" min=\"0\" pattern=\"[0-9]+\" name=\"verificationTimeout\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.verificationTimeout.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.verificationTimeout.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.transactionLogMaximumSizeGB.\\$invalid}\"> <label for=\"verification-timeout\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.transactionLogMaximumSizeGB\" required id=\"transaction-log-maximum-size-gb\" pattern=\"-?[1-9][0-9]*(\\\\.[0-9]+)?\" name=\"transaction_log_maximum_size_gb\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.transactionLogMaximumSizeGB.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.transactionLogMaximumSizeGB.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.small_transaction_log_max_size' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.batchUpdateInterval.\\$invalid}\"> <label for=\"batch-update-interval\" class=\"col-xs-4 col-form-label\"> {{'cluster_management.cluster_configuration_properties.batch_update_interval' | translate}}* </label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.batch_update_interval_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.batchUpdateInterval\" required id=\"batch-update-interval\" min=\"0\" name=\"batchUpdateInterval\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.batchUpdateInterval.\\$error.required\"> {{'required.field' | translate}} </div> </div> </div> </div> </div> </div> </div> </form> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"27580.dc966117bc0ee9eecd70.bundle.js","mappings":"uJAOA,QANW,wmhB","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/clustermanagement/templates/cluster-nodes-configuration.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/cluster-nodes-configuration.css?v=3.2.0-TR3\" rel=\"stylesheet\"/> <div onto-loader-new ng-if=\"loader\" class=\"create-cluster-loader\" message=\"getLoaderMessage\" size=\"100\"></div> <div class=\"add-node-wrapper pull-right mb-1\"> <button ng-click=\"addNode()\" ng-disabled=\"editedNodeIndex !== undefined\" class=\"btn btn-primary add-node-btn\" gdb-tooltip=\"{{'cluster_management.update_cluster_group_dialog.actions.add_node_tooltip' | translate}}\"> <i class=\"fa fa-plus\"></i> {{'cluster_management.update_cluster_group_dialog.actions.add_node' | translate}} </button> </div> <div class=\"table-responsive\"> <form name=\"form\" id=\"updateClusterGroupForm\"> <table class=\"cluster-group table table-striped table-hover cluster-group-table\" aria-describedby=\"cluster group table\"> <thead> <tr class=\"labels-row\"> <th scope=\"col\" class=\"index-column\"> {{'cluster_management.update_cluster_group_dialog.column.index' | translate}} </th> <th scope=\"col\" class=\"location-column\"> {{'cluster_management.update_cluster_group_dialog.column.location' | translate}} </th> <th scope=\"col\" class=\"info-column\"> {{'cluster_management.update_cluster_group_dialog.column.info' | translate}} </th> <th scope=\"col\" class=\"status-column\"> {{'cluster_management.update_cluster_group_dialog.column.status' | translate}} </th> <th scope=\"col\" class=\"empty-column\"></th> <th scope=\"col\" class=\"actions-column\"></th> </tr> </thead> <tbody> <tr ng-if=\"!viewModel.length\"> <td colspan=\"5\" class=\"no-data\"> {{'cluster_management.update_cluster_group_dialog.messages.no_cluster' | translate}} </td> </tr> <tr ng-repeat-start=\"node in viewModel track by \\$index\" ng-if=\"0\"></tr> <tr ng-if=\"\\$index !== editedNodeIndex\" class=\"node preview-node-row\" data-endpoint=\"{{node.endpoint}}\" capture-height=\"\\$index\" ng-class=\"{'selected': \\$index === selectedNode || \\$index === editedNodeIndex}\"> <td class=\"index-cell\"><span ng-if=\"!node.isDeleted\">{{node.index + 1}}</span></td> <td class=\"location-cell data\" ng-class=\"{'deleting': node.isDeleted, 'adding': !node.item.address}\"> <div class=\"location-item\" id=\"endpoint-{{::node.index}}\"> <span class=\"text-only\">{{node.item.endpoint}}</span> <copy-to-clipboard text-to-copy=\"{{node.item.endpoint}}\" custom-tooltip-style=\"true\" ng-attr-target-selector=\"#endpoint-{{::node.index}}\" custom-tooltip-text=\"{{'cluster_management.update_cluster_group_dialog.copy_to_clipboard.copied.tooltip' | translate}}\"></copy-to-clipboard> </div> </td> <td class=\"info-cell data\"> <span ng-if=\"node.isLocal\"> {{'cluster_management.update_cluster_group_dialog.current_node' | translate}}<span ng-if=\"node.item.nodeState\">, </span> </span> <span ng-if=\"node.item.nodeState\"> {{ ('cluster_management.update_cluster_group_dialog.' + node.item.nodeState.toLowerCase()) | translate }} </span> </td> <td class=\"status-cell data\"> <div ng-if=\"!node.item.address\" class=\"adding\"> <i class=\"fa fa-circle-check status-icon\"></i> {{'cluster_management.update_cluster_group_dialog.new_node' | translate}} </div> <div ng-if=\"node.isDeleted\" class=\"deleting\"> <i class=\"fa fa-xmark status-icon\"></i> {{'cluster_management.update_cluster_group_dialog.deleted_node' | translate}} </div> </td> <td class=\"empty-cell\"></td> <td class=\"actions-cell\"> <div ng-if=\"editedNodeIndex === undefined && !node.isDeleted\" class=\"actions-group\"> <button ng-click=\"deleteNode(\\$index, node)\" ng-disabled=\"(hasCluster && !canDeleteNode) || (!hasCluster && node.isLocal)\" class=\"btn btn-link delete-node-btn secondary\" gdb-tooltip=\"{{ (hasCluster && canDeleteNode) || (!hasCluster && !node.isLocal) ?\n ('cluster_management.update_cluster_group_dialog.actions.delete_node' | translate) :\n ('cluster_management.update_cluster_group_dialog.actions.cannot_delete_node' | translate) }}\" title-class=\"delete-node-tooltip\"> <i class=\"fa fa-xmark\"></i> </button> <button ng-click=\"replaceNode(\\$index, node)\" class=\"btn btn-link replace-node-btn\" ng-disabled=\"!hasCluster && node.isLocal\" gdb-tooltip=\"{{hasCluster || !node.isLocal ?\n ('cluster_management.update_cluster_group_dialog.actions.replace_node' | translate) :\n ('cluster_management.update_cluster_group_dialog.actions.cannot_replace_node' | translate) }}\"> <i class=\"fa fa-arrow-right-arrow-left\"></i> </button> </div> <div ng-if=\"editedNodeIndex === undefined && node.isDeleted\" class=\"actions-group\"> <button ng-click=\"restoreNode(node)\" class=\"btn btn-link restore-node-btn secondary\" gdb-tooltip=\"{{'cluster_management.update_cluster_group_dialog.actions.restore_node' | translate}}\"> <i class=\"fa fa-rotate-left\"></i> </button> </div> </td> </tr> <tr ng-if=\"\\$index === editedNodeIndex\" class=\"node edit-node-row\" data-endpoint=\"{{node.endpoint}}\" style=\"\" ng-class=\"{'selected table-info': \\$index === editedNodeIndex}\"> <td class=\"index-cell\"><span ng-if=\"!node.isDeleted\">{{node.index + 1}}</span></td> <td class=\"data location-cell\"> <div class=\"autocomplete-container\"> <input type=\"text\" name=\"location\" required ng-model=\"node.endpoint\" ng-change=\"filterSuggestions(node)\" ng-blur=\"hideSuggestions(node)\" ng-click=\"filterSuggestions(node)\" ng-keydown=\"handleKeydown(\\$event, form.location.\\$valid, node.endpoint)\" auto-grow validate-url exclude=\"/repositories\" exclude-protocol=\"ftp,ftps\" validate-duplicate-url excluded-urls=\"clusterNodesEndpoints\" allow-empty=\"false\" class=\"form-control form-control-sm textarea-edit\" uib-tooltip=\"{{'remote.location.enter.url.msg' | translate}}\" tooltip-placement=\"top\" placeholder=\"{{'cluster_management.update_cluster_group_dialog.field_placeholders.location' | translate}}\"> <ul ng-show=\"suggestions.length > 0 && showDropdown\" class=\"autocomplete-dropdown\"> <li ng-repeat=\"suggestion in suggestions\" ng-mouseup=\"selectSuggestion(node, suggestion)\"> {{ suggestion }} </li> </ul> </div> </td> <td class=\"info-cell data\"> <span ng-if=\"node.isLocal\"> {{'cluster_management.update_cluster_group_dialog.current_node' | translate}}<span ng-if=\"node.item.nodeState\">, </span> </span> <span ng-if=\"node.item.nodeState\"> {{ ('cluster_management.update_cluster_group_dialog.' + node.item.nodeState.toLowerCase()) | translate }} </span> </td> <td class=\"status-cell\"></td> <td class=\"empty-cell\"></td> <td class=\"actions-cell\"> <div class=\"crud-actions-group\"> <button ng-click=\"cancel()\" class=\"btn btn-link cancel-node-replace-btn secondary\" gdb-tooltip=\"{{'cluster_management.update_cluster_group_dialog.actions.cancel' | translate}}\"> <i class=\"fa fa-xmark\"></i> </button> <button ng-click=\"saveNode(node.endpoint)\" class=\"btn btn-link save-rule-btn\" ng-disabled=\"!form.location.\\$valid\" gdb-tooltip=\"{{form.location.\\$valid ? 'cluster_management.update_cluster_group_dialog.actions.add_node' : 'cluster_management.update_cluster_group_dialog.messages.invalid_form' | translate}}\"> <i class=\"fa fa-check\"></i> </button> </div> </td> </tr> <tr ng-repeat-end ng-if=\"0\"></tr> <tr ng-if=\"addNewLocation\" class=\"node edit-node-row\"> <td class=\"index-cell\"></td> <td class=\"data location-cell\"> <div class=\"autocomplete-container\"> <input type=\"text\" name=\"location\" required ng-model=\"newLocation.endpoint\" ng-change=\"filterSuggestions(newLocation)\" ng-blur=\"hideSuggestions(newLocation)\" ng-click=\"filterSuggestions(newLocation)\" ng-keydown=\"handleKeydown(\\$event, form.location.\\$valid, newLocation.endpoint)\" auto-grow validate-url exclude=\"/repositories\" exclude-protocol=\"ftp,ftps\" validate-duplicate-url excluded-urls=\"clusterNodesEndpoints\" allow-empty=\"false\" class=\"form-control form-control-sm textarea-edit\" uib-tooltip=\"{{'remote.location.enter.url.msg' | translate}}\" tooltip-placement=\"top\" placeholder=\"{{'cluster_management.update_cluster_group_dialog.field_placeholders.location' | translate}}\"> <ul ng-show=\"suggestions.length > 0 && showDropdown\" class=\"autocomplete-dropdown\"> <li ng-repeat=\"suggestion in suggestions\" ng-mouseup=\"selectSuggestion(newLocation, suggestion)\"> {{ suggestion }} </li> </ul> </div> </td> <td class=\"info-cell data\"></td> <td class=\"status-cell\"></td> <td class=\"empty-cell\"></td> <td class=\"actions-cell\"> <div class=\"crud-actions-group\"> <button ng-click=\"cancel()\" class=\"btn btn-link cancel-node-replace-btn secondary\" gdb-tooltip=\"{{'cluster_management.update_cluster_group_dialog.actions.cancel' | translate}}\"> <i class=\"fa fa-xmark\"></i> </button> <button ng-click=\"saveNode(newLocation.endpoint)\" class=\"btn btn-link save-rule-btn\" ng-disabled=\"!form.location.\\$valid\" gdb-tooltip=\"{{form.location.\\$valid ? 'cluster_management.update_cluster_group_dialog.actions.add_node' : 'cluster_management.update_cluster_group_dialog.messages.invalid_form' | translate}}\"> <i class=\"fa fa-check\"></i> </button> </div> </td> </tr> </tbody> </table> <div class=\"errors\"> <div class=\"error-message\" ng-show=\"form.location.\\$error.validUrl && !form.location.\\$pristine\"> * {{'valid.remote.location.warning' | translate}} http://server.example.com:7200/. </div> <div class=\"error-message\" ng-show=\"form.location.\\$error.duplicateUrl && !form.location.\\$pristine\"> * {{'duplicate.remote.location.warning' | translate}} </div> <div ng-repeat=\"error in errors\" class=\"error-message\"> {{error}} </div> </div> <div class=\"form-horizontal\" ng-if=\"!hasCluster\"> <div class=\"form-group\"> <div class=\"indented-div\"> <span class=\"padding-label wrapper-div\" gdb-tooltip=\"{{'cluster_management.cluster_page.advanced_options_tooltip' | translate}}\"> <button type=\"button\" class=\"text-btn advanced-options-btn text-left\" data-toggle=\"collapse\" data-target=\"#advancedOptions\"> <i class=\"{{getAdvancedOptionsClass()}} advanced-options-toggle\" aria-hidden=\"true\"></i> {{'cluster_management.cluster_page.advanced_options' | translate}} </button> </span> </div> <div id=\"advancedOptions\" class=\"collapse pb-1 pl-2\"> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.electionMinTimeout.\\$invalid}\"> <label for=\"election-minimum-timeout\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.election_min_timeout' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.election_min_timeout_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.electionMinTimeout\" required id=\"election-minimum-timeout\" min=\"0\" pattern=\"[0-9]+\" name=\"electionMinTimeout\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.electionMinTimeout.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.electionMinTimeout.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.electionRangeTimeout.\\$invalid}\"> <label for=\"election-range-timeout\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.election_range_timeout' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.election_range_timeout_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.electionRangeTimeout\" required id=\"election-range-timeout\" min=\"0\" pattern=\"[0-9]+\" name=\"electionRangeTimeout\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.electionRangeTimeout.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.electionRangeTimeout.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.heartbeatInterval.\\$invalid}\"> <label for=\"heartbeat-interval\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.heartbeat_interval' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.heartbeatInterval\" required id=\"heartbeat-interval\" min=\"0\" pattern=\"[0-9]+\" name=\"heartbeatInterval\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.heartbeatInterval.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.heartbeatInterval.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.messageSizeKB.\\$invalid}\"> <label for=\"message-size\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.message_size_kb' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.message_size_kb_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.messageSizeKB\" required id=\"message-size\" min=\"0\" pattern=\"[0-9]+\" name=\"messageSizeKB\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.messageSizeKB.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.messageSizeKB.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.verificationTimeout.\\$invalid}\"> <label for=\"verification-timeout\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.verification_timeout' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.verification_timeout_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.verificationTimeout\" required id=\"verification-timeout\" min=\"0\" pattern=\"[0-9]+\" name=\"verificationTimeout\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.verificationTimeout.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.verificationTimeout.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.only_positive_integers' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.transactionLogMaximumSizeGB.\\$invalid}\"> <label for=\"verification-timeout\" class=\"col-xs-4 col-form-label\">{{'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb' | translate}}*</label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.transactionLogMaximumSizeGB\" required id=\"transaction-log-maximum-size-gb\" pattern=\"-?[1-9][0-9]*(\\\\.[0-9]+)?\" name=\"transaction_log_maximum_size_gb\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.transactionLogMaximumSizeGB.\\$error.required\"> {{'required.field' | translate}} </div> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.transactionLogMaximumSizeGB.\\$error.pattern\"> {{'cluster_management.cluster_page.errors.small_transaction_log_max_size' | translate}} </div> </div> </div> </div> <div class=\"form-group\"> <div class=\"input-group\" ng-class=\"{'has-danger': clusterConfigurationForm.batchUpdateInterval.\\$invalid}\"> <label for=\"batch-update-interval\" class=\"col-xs-4 col-form-label\"> {{'cluster_management.cluster_configuration_properties.batch_update_interval' | translate}}* </label> <div class=\"col-xs-8\" gdb-tooltip=\"{{'cluster_management.cluster_configuration_properties.batch_update_interval_tooltip' | translate}}\"> <input class=\"form-control\" placeholder=\"{{'required.field' | translate}}\" type=\"number\" ng-model=\"clusterConfiguration.batchUpdateInterval\" required id=\"batch-update-interval\" min=\"0\" name=\"batchUpdateInterval\"> <div class=\"form-control-feedback\" ng-show=\"clusterConfigurationForm.batchUpdateInterval.\\$error.required\"> {{'required.field' | translate}} </div> </div> </div> </div> </div> </div> </div> </form> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_id__=29350;export const __webpack_ids__=[29350,49539,65191,70826,71920,84430];export const __webpack_modules__={29350:(e,t,n)=>{n.r(t);var a=n(69937),o=n(71920);function E(e,t,n,E,i){return{restrict:"E",templateUrl:"js/angular/ttyg/templates/agent-list.html",scope:{agentList:"=",agentListFilterModel:"="},link:(E,l,r)=>{E.selectedAgent=void 0,E.selectedAgentsFilter=void 0,E.deletingAgent=void 0,E.onEditAgent=t=>{e.emit(o.TTYGEventName.EDIT_AGENT,t)},E.onExternalIntegration=e=>{i.open(e)},E.onCloneAgent=t=>{e.emit(o.TTYGEventName.CLONE_AGENT,t)},E.onDeleteAgent=E=>{const i=n.instant("ttyg.agent.delete_agent_modal.title"),l=(0,a.Gz)(n.instant("ttyg.agent.delete_agent_modal.body",{agentName:E.name}));t.openConfirmation(i,l,()=>e.emit(o.TTYGEventName.DELETE_AGENT,E))},E.onAgentsFilterChange=e=>{E.selectedAgentsFilter=e,E.selectedAgentsFilter&&E.agentList.filterByRepository(E.selectedAgentsFilter.key)};const d=()=>{const e=E.agentListFilterModel.find(e=>e.selected);E.selectedAgentsFilter=e||E.agentListFilterModel[0],E.onAgentsFilterChange(E.selectedAgentsFilter)},s=[];s.push(E.$watch("agentListFilterModel",d)),s.push(e.subscribe(o.TTYGEventName.DELETING_AGENT,e=>{E.deletingAgent=e})),s.push(e.onSelectedAgentChanged(e=>{E.selectedAgent=e})),E.$on("$destroy",()=>{s.forEach(e=>e())}),d()}}}n(84430),angular.module("graphdb.framework.ttyg.directives.agent-list",["graphdb.framework.ttyg.services.externalIntegrationModal"]).directive("agentList",E),E.$inject=["TTYGContextService","ModalService","$translate","$uibModal","ExternalIntegrationModalService"]},65191:()=>{function e(e,t,n,a,o){e.externalIntegrationConfiguration=o.externalIntegrationConfiguration,e.difyExtension=o.difyExtensionUrl,e.queryMethods=o.queryMethodsUrl,e.agentId=o.agentId,e.agentName=o.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"]},70826:(e,t,n)=>{n.r(t),n.d(t,{AGENTS_FILTER_ALL_KEY:()=>o,AGENT_OPERATION:()=>E,TTYG_ERROR_MSG_LENGTH:()=>a});const a=100,o="ALL",E={CREATE:"create",EDIT:"edit",CLONE:"clone"}},71920:(e,t,n)=>{n.r(t),n.d(t,{TTYGEventName:()=>E});var a=n(98980);function o(e){let t,n,o,i,l,r={},d=!1;const s=()=>(0,a.cloneDeep)(t),T=()=>(0,a.cloneDeep)(n),c=e=>{n=(0,a.cloneDeep)(e),p(E.CHAT_LIST_UPDATED,T())},g=e=>{n.appendChat(e),c(n)},A=()=>(0,a.cloneDeep)(o),_=e=>{o&&o.id===e.id||(o=(0,a.cloneDeep)(e),p(E.SELECT_CHAT,A()))},C=()=>(0,a.cloneDeep)(i),S=()=>(0,a.cloneDeep)(r),D=e=>!!r[e],u=()=>d,p=(t,n)=>{e.emitSync(t,(0,a.cloneDeep)(n))},N=(t,n)=>e.subscribeSync(t,e=>n(e));return{resetContext:()=>{t=void 0,n=void 0,o=void 0,i=void 0,r={},l=void 0,d=!1},emit:p,subscribe:N,getChats:T,updateChats:c,addChat:g,replaceChat:(e,t)=>{n.replaceChat(e,t),c(n)},createChat:e=>{g(e),_(e),p(E.CREATE_CHAT_SUCCESSFUL,e)},onChatsListChanged:e=>(n&&angular.isFunction(e)&&e(T()),N(E.CHAT_LIST_UPDATED,t=>e(t))),getSelectedChat:A,selectChat:_,deselectChat:()=>{o=void 0,p(E.SELECT_CHAT,A())},deleteChat:e=>{n.deleteChat(e),c(n)},onSelectedChatChanged:e=>(angular.isFunction(e)&&e(A()),N(E.SELECT_CHAT,t=>e(t))),updateSelectedChat:e=>{o&&o.id&&e&&o.id!==e.id||(o=(0,a.cloneDeep)(e),p(E.SELECTED_CHAT_UPDATED,A()))},onSelectedChatUpdated:e=>(o&&angular.isFunction(e)&&e(A()),N(E.SELECTED_CHAT_UPDATED,t=>e(t))),onLastMessageReceived:e=>(o&&angular.isFunction(e)&&e(A()),N(E.LAST_MESSAGE_RECEIVED,t=>e(t))),updateAgents:e=>{t=(0,a.cloneDeep)(e),p(E.AGENT_LIST_UPDATED,s())},onAgentsListChanged:e=>(t&&angular.isFunction(e)&&e(s()),N(E.AGENT_LIST_UPDATED,t=>e(t))),getAgents:s,getAgent:e=>{if(t)return(0,a.cloneDeep)(t.getAgent(e))},selectAgent:e=>{i=(0,a.cloneDeep)(e),p(E.AGENT_SELECTED,C())},getSelectedAgent:C,onSelectedAgentChanged:e=>(i&&angular.isFunction(e)&&e(C()),N(E.AGENT_SELECTED,t=>e(t))),getDefaultAgent:()=>(0,a.cloneDeep)(l),setDefaultAgent:e=>{l=e},setCanModifyAgent:e=>{d=(0,a.cloneDeep)(e),p(E.CAN_MODIFY_AGENT_UPDATED,u())},getCanModifyAgent:u,onCanUpdateAgentUpdated:e=>(angular.isFunction(e)&&e(u()),N(E.CAN_MODIFY_AGENT_UPDATED,t=>e(t))),hasExplainResponse:D,toggleExplainResponse:e=>{D(e)&&(r[e].expanded=!r[e].expanded,p(E.EXPLAIN_RESPONSE_CACHE_UPDATED,S()))},getExplainResponse:e=>(0,a.cloneDeep)(r[e]),addExplainResponseCache:e=>{r[e.answerId]=(0,a.cloneDeep)(e),p(E.EXPLAIN_RESPONSE_CACHE_UPDATED,S())},onExplainResponseCacheUpdated:e=>(angular.isFunction(e)&&e(S()),N(E.EXPLAIN_RESPONSE_CACHE_UPDATED,t=>e(t)))}}angular.module("graphdb.framework.ttyg.services.ttygcontext",[]).factory("TTYGContextService",o),o.$inject=["EventEmitterService","TTYGService"];const E={CREATE_CHAT:"createChat",CREATE_CHAT_SUCCESSFUL:"chatCreated",CREATE_CHAT_FAILURE:"chatCreationFailed",RENAME_CHAT:"renameChat",RENAME_CHAT_SUCCESSFUL:"chatRenamed",RENAME_CHAT_FAILURE:"chatRenamedFailure",SELECT_CHAT:"selectChat",SELECTED_CHAT_UPDATED:"selectChatUpdated",LAST_MESSAGE_RECEIVED:"lastMessageReceived",DELETING_CHAT:"deletingChat",DELETE_CHAT:"deleteChat",DELETE_CHAT_SUCCESSFUL:"chatDeleted",DELETE_CHAT_FAILURE:"chatDeletedFailure",CHAT_EXPORT:"chatExport",CHAT_EXPORT_SUCCESSFUL:"chatExportSuccess",CHAT_EXPORT_FAILURE:"chatExportFailure",CHAT_LIST_UPDATED:"chatListUpdated",ASK_QUESTION:"askQuestion",ASK_QUESTION_FAILURE:"askQuestionFailure",CONTINUE_CHAT_RUN:"continueChatRun",CANCEL_PENDING_QUESTION:"cancelPendingQuestion",PENDING_QUESTION_CANCELED_SUCCESSFUL:"pendingQuestionCanceledSuccessful",CANCEL_PENDING_QUESTION_FAILURE:"cancelPendingQuestionFailed",ASK_QUESTION_STARTING:"askQuestionStarting",LOAD_CHATS:"loadChats",LOAD_CHAT_SUCCESSFUL:"loadChatSuccess",LOAD_CHAT_FAILURE:"loadChatFailure",AGENT_LIST_UPDATED:"agentListUpdated",OPEN_AGENT_SETTINGS:"openAgentSettings",EDIT_AGENT:"editAgent",CLONE_AGENT:"cloneAgent",DELETE_AGENT:"deleteAgent",AGENT_DELETED:"agentDeleted",DELETING_AGENT:"deletingAgent",AGENT_SELECTED:"agentSelected",GO_TO_CREATE_SIMILARITY_VIEW:"goToCreateSimilarityView",GO_TO_CONNECTORS_VIEW:"goToConnectorsView",GO_TO_AUTOCOMPLETE_INDEX_VIEW:"goToAutocompleteIndexView",EXPLAIN_RESPONSE:"explainResponse",EXPLAIN_RESPONSE_CACHE_UPDATED:"explainResponseCacheUpdated",GO_TO_SPARQL_EDITOR:"openQueryInSparqlEditor",CAN_MODIFY_AGENT_UPDATED:"canModifyAgentUpdated"}},84430:(e,t,n)=>{n.r(t),n(65191);var a=n(70826);function o(e,t,n){return{open:function(o){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`}}(o,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,a.TTYG_ERROR_MSG_LENGTH))})}}}angular.module("graphdb.framework.ttyg.services.externalIntegrationModal",["graphdb.framework.ttyg.controllers.external-integration-configuration-modal"]).factory("ExternalIntegrationModalService",o),o.$inject=["$uibModal","LocationsRestService","toastr"]}};
|
|
2
|
+
//# sourceMappingURL=29350.d2791feedf54d2e4b7b6.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"29350.d2791feedf54d2e4b7b6.bundle.js","mappings":"wLAcA,SAASA,EAAmBC,EAAoBC,EAAcC,EAAYC,EAAWC,GACjF,MAAO,CACHC,SAAU,IACVC,YAAa,4CACbC,MAAO,CACHC,UAAW,IACXC,qBAAsB,KAE1BC,KAAMA,CAACC,EAAQC,EAASC,KAUpBF,EAAOG,mBAAgBC,EAMvBJ,EAAOK,0BAAuBD,EAM9BJ,EAAOM,mBAAgBF,EAcvBJ,EAAOO,YAAeC,IAClBnB,EAAmBoB,KAAKC,EAAAA,cAAcC,WAAYH,IAWtDR,EAAOY,sBAAyBJ,IAC5Bf,EAAgCoB,KAAKL,IAOzCR,EAAOc,aAAgBN,IACnBnB,EAAmBoB,KAAKC,EAAAA,cAAcK,YAAaP,IAOvDR,EAAOgB,cAAiBR,IACpB,MAAMS,EAAQ1B,EAAW2B,QAAQ,uCAC3BC,GAAuBC,EAAAA,EAAAA,IAAW7B,EAAW2B,QAAQ,qCAAsC,CAACG,UAAWb,EAAMc,QACnHhC,EAAaiC,iBAAiBN,EAAOE,EAAsB,IAAM9B,EAAmBoB,KAAKC,EAAAA,cAAcc,aAAchB,KAOzHR,EAAOyB,qBAAwBC,IAC3B1B,EAAOK,qBAAuBqB,EAC1B1B,EAAOK,sBACPL,EAAOH,UAAU8B,mBAAmB3B,EAAOK,qBAAqBuB,MAQxE,MAAMC,EAA6BA,KAC/B,MAAMH,EAAiB1B,EAAOF,qBAAqBgC,KAAMC,GAAWA,EAAOC,UAC3EhC,EAAOK,qBAAuBqB,GAAkB1B,EAAOF,qBAAqB,GAC5EE,EAAOyB,qBAAqBzB,EAAOK,uBAuBjC4B,EAAgB,GAMtBA,EAAcC,KAAKlC,EAAOmC,OAAO,uBAAwBN,IACzDI,EAAcC,KAAK7C,EAAmB+C,UAAU1B,EAAAA,cAAc2B,eAvBrCC,IACrBtC,EAAOM,cAAgBgC,KAuB3BL,EAAcC,KAAK7C,EAAmBkD,uBAhBN/B,IAC5BR,EAAOG,cAAgBK,KAkB3BR,EAAOwC,IAAI,WATkBC,KACzBR,EAAcS,QAASC,GAAiBA,OAexCd,KAKhB,C,SApJAe,QACKC,OAAO,+CALI,CACZ,6DAKCC,UAAU,YAAa1D,GAE5BA,EAAmB2D,QAAU,CAAC,qBAAsB,eAAgB,aAAc,YAAa,kC,aCA/F,SAASC,EAAgDhD,EAAQiD,EAAmB3D,EAAcC,EAAY2D,GAK1GlD,EAAOmD,iCAAmCD,EAAYC,iCACtDnD,EAAOoD,cAAgBF,EAAYG,iBACnCrD,EAAOsD,aAAeJ,EAAYK,gBAClCvD,EAAOwD,QAAUN,EAAYM,QAC7BxD,EAAOqB,UAAY6B,EAAY7B,UAS/BrB,EAAOyD,MAAQ,KACXR,EAAkBS,QAAQ,CAAC,IAG/B1D,EAAO2D,6CAA+C,KAClDV,EAAkBS,QAAQ,CAAC,GAEnC,CArCAd,QACKC,OAAO,8EAA+E,IACtFe,WAAW,kDAAmDZ,GAEnEA,EAAgDD,QAAU,CACtD,SACA,oBACA,eACA,aACA,c,gHCJG,MAAMc,EAAwB,IAMxBC,EAAwB,MAKxBC,EAAkB,CAC3BC,OAAQ,SACRC,KAAM,OACNC,MAAO,Q,qECXX,SAAS7E,EAAmB8E,GAOxB,IAAIC,EAOAC,EAOAC,EAOAC,EAeAC,EAPAC,EAAgB,CAAC,EASjBC,GAAkB,EAEtB,MAwBMC,EAAYA,KACPC,EAAAA,EAAAA,WAAUR,GAYfS,EAAWA,KACND,EAAAA,EAAAA,WAAUP,GAMfS,EAAeC,IACjBV,GAASO,EAAAA,EAAAA,WAAUG,GACnBtE,EAAKC,EAAcsE,kBAAmBH,MAYpCI,EAAWC,IACbb,EAAOc,WAAWD,GAClBJ,EAAYT,IA6BVe,EAAkBA,KACbR,EAAAA,EAAAA,WAAUN,GASfe,EAAcC,IACXhB,GAAiBA,EAAciB,KAAOD,EAAaC,KACpDjB,GAAgBM,EAAAA,EAAAA,WAAUU,GAC1B7E,EAAKC,EAAc8E,YAAaJ,OAuFlCK,EAAmBA,KACdb,EAAAA,EAAAA,WAAUL,GAcfmB,EAA2BA,KACtBd,EAAAA,EAAAA,WAAUH,GAsBfkB,EAAsBC,KACfnB,EAAcmB,GA8CrBC,EAAoBA,IACfnB,EAsBLjE,EAAOA,CAACqF,EAAeC,KACzB5B,EAAoB6B,SAASF,GAAelB,EAAAA,EAAAA,WAAUmB,KAUpD3D,EAAYA,CAAC0D,EAAeG,IACvB9B,EAAoB+B,cAAcJ,EAAgBC,GAAYE,EAASF,IAGlF,MAAO,CACHI,aAzTiBA,KACjB/B,OAAUhE,EACViE,OAASjE,EACTkE,OAAgBlE,EAChBmE,OAAiBnE,EACjBqE,EAAgB,CAAC,EACjBD,OAAgBpE,EAChBsE,GAAkB,GAmTlBjE,OACA2B,YAEAyC,WACAC,cACAG,UACAmB,YAjQgBA,CAAClB,EAASmB,KAC1BhC,EAAO+B,YAAYlB,EAASmB,GAC5BvB,EAAYT,IAgQZiC,WA7PgBpB,IAChBD,EAAQC,GACRG,EAAWH,GACXzE,EAAKC,EAAc6F,uBAAwBrB,IA2P3CsB,mBAnPwBP,IACpB5B,GAAUzB,QAAQ6D,WAAWR,IAC7BA,EAASpB,KAENzC,EAAU1B,EAAcsE,kBAAoBD,GAAUkB,EAASlB,KAgPtEK,kBACAC,aACAqB,aA3NiBA,KACjBpC,OAAgBlE,EAChBK,EAAKC,EAAc8E,YAAaJ,MA0NhCuB,WAjRgBC,IAChBvC,EAAOsC,WAAWC,GAClB9B,EAAYT,IAgRZwC,sBAlN2BZ,IACvBrD,QAAQ6D,WAAWR,IACnBA,EAASb,KAENhD,EAAU1B,EAAc8E,YAAcF,GAAiBW,EAASX,KA+MvEwB,mBAlMwBF,IACnBtC,GAAkBA,EAAciB,IAAOqB,GAAQtC,EAAciB,KAAOqB,EAAKrB,KAC1EjB,GAAgBM,EAAAA,EAAAA,WAAUgC,GAC1BnG,EAAKC,EAAcqG,sBAAuB3B,OAgM9C4B,sBAvL2Bf,IACvB3B,GAAiB1B,QAAQ6D,WAAWR,IACpCA,EAASb,KAENhD,EAAU1B,EAAcqG,sBAAwBzB,GAAiBW,EAASX,KAoLjF2B,sBA5K2BhB,IACvB3B,GAAiB1B,QAAQ6D,WAAWR,IACpCA,EAASb,KAENhD,EAAU1B,EAAcwG,sBAAwB5B,GAAiBW,EAASX,KA0KjF6B,aApKkBC,IAClBhD,GAAUQ,EAAAA,EAAAA,WAAUwC,GACpB3G,EAAKC,EAAc2G,mBAAoB1C,MAmKvC2C,oBA1JyBrB,IACrB7B,GAAWxB,QAAQ6D,WAAWR,IAC9BA,EAAStB,KAENvC,EAAU1B,EAAc2G,mBAAqB/B,GAAiBW,EAASX,KAuJ9EX,YACA4C,SAnTc/D,IACd,GAAIY,EACA,OAAOQ,EAAAA,EAAAA,WAAUR,EAAQmD,SAAS/D,KAkTtCgE,YAzIiBrH,IACjBoE,GAAiBK,EAAAA,EAAAA,WAAUzE,GAC3BM,EAAKC,EAAc+G,eAAgBhC,MAwInCA,mBACAlD,uBAjF4B0D,IACxB1B,GAAkB3B,QAAQ6D,WAAWR,IACrCA,EAASR,KAENrD,EAAU1B,EAAc+G,eAAiBnC,GAAiBW,EAASX,KA8E1EoC,gBAtUoBA,KACb9C,EAAAA,EAAAA,WAAUJ,GAsUjBmD,gBAnUqBnH,IACrBgE,EAAgBhE,GAmUhBoH,kBAxEuBC,IACvBnD,GAAkBE,EAAAA,EAAAA,WAAUiD,GAC5BpH,EAAKC,EAAcoH,yBAA0BjC,MAuE7CA,oBACAkC,wBA3D6B9B,IACzBrD,QAAQ6D,WAAWR,IACnBA,EAASJ,KAENzD,EAAU1B,EAAcoH,yBAA2BD,GAAmB5B,EAAS4B,KAyDtFlC,qBACAqC,sBAnH2BpC,IACvBD,EAAmBC,KACnBnB,EAAcmB,GAAUqC,UAAYxD,EAAcmB,GAAUqC,SAC5DxH,EAAKC,EAAcwH,+BAAgCxC,OAiHvDyC,mBAtIwBvC,IACjBhB,EAAAA,EAAAA,WAAUH,EAAcmB,IAsI/BwC,wBA9H6BC,IAC7B5D,EAAc4D,EAAgBzC,WAAYhB,EAAAA,EAAAA,WAAUyD,GACpD5H,EAAKC,EAAcwH,+BAAgCxC,MA6HnD4C,8BAzGmCrC,IAC/BrD,QAAQ6D,WAAWR,IACnBA,EAASP,KAENtD,EAAU1B,EAAcwH,+BAAiCK,GAAqBtC,EAASsC,KAuGtG,CApZA3F,QACKC,OAAO,8CAA+C,IACtD2F,QAAQ,qBAAsBnJ,GAEnCA,EAAmB0D,QAAU,CAAC,sBAAuB,eAkZ9C,MAAMrC,EAAgB,CAIzB+H,YAAa,aAKblC,uBAAwB,cAKxBmC,oBAAqB,qBAErBC,YAAa,aACbC,uBAAwB,cACxBC,oBAAqB,qBAKrBrD,YAAa,aAKbuB,sBAAuB,oBAKvBG,sBAAuB,sBAMvB4B,cAAe,eAKfC,YAAa,aAKbC,uBAAwB,cASxBC,oBAAqB,qBAErBC,YAAa,aACbC,uBAAwB,oBACxBC,oBAAqB,oBACrBpE,kBAAmB,kBAKnBqE,aAAc,cAKdC,qBAAsB,qBAKtBC,kBAAmB,kBAKnBC,wBAAyB,wBAKzBC,qCAAsC,oCAKtCC,gCAAiC,8BAKjCC,sBAAuB,sBAKvBC,WAAY,YACZC,qBAAsB,kBACtBC,kBAAmB,kBAEnBzC,mBAAoB,mBAMpB0C,oBAAqB,oBAKrBpJ,WAAY,YAKZI,YAAa,aAKbS,aAAc,cAKdwI,cAAe,eAMf3H,eAAgB,gBAKhBoF,eAAgB,gBAKhBwC,6BAA8B,2BAK9BC,sBAAuB,qBAKvBC,8BAA+B,4BAK/BC,iBAAkB,kBAKlBlC,+BAAgC,8BAKhCmC,oBAAqB,0BAErBvC,yBAA0B,wB,iDC9jB9B,SAASrI,EAAgCD,EAAW8K,EAAsBC,GAqCtE,MAAO,CAAC1J,KA3BR,SAAcL,GACV,OAAO8J,EAAqBE,iBACvBC,KAAMC,IACH,MAAMxH,EAZlB,SAA0B1C,EAAOmK,GAC7B,MAAO,CACHtJ,UAAWb,EAAMc,KACjBkC,QAAShD,EAAM+E,GACfhC,gBAAiB,GAAGoH,wBAA8BnK,EAAM+E,KACxDlC,iBAAkB,GAAGsH,mBAAyBnK,EAAM+E,UAE5D,CAKgCqF,CAAiBpK,EAAOkK,EAASG,MAErD,OAAOrL,EAAUqB,KAAK,CAClBlB,YAAa,gFACbiE,WAAY,kDACZkH,YAAa,2CACbC,SAAU,SACVC,QAAS,CACL9H,YAAaA,IAAMA,KAExB+H,OACER,KAAK,QAGLS,MAAM,UAIdA,MAAOC,IAEJZ,EAAOY,MAAMC,SAASD,EAAO,EAAGtH,EAAAA,yBAE5C,EAGJ,CA7CAjB,QACKC,OAAO,2DACJ,CAAC,gFACJ2F,QAAQ,kCAAmC/I,GAEhDA,EAAgCsD,QAAU,CAAC,YAAa,uBAAwB,S","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/directives/agent-list.directive.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/ttyg/services/constants.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/ttyg-context.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/externalIntegrationModal.service.js"],"sourcesContent":["import {decodeHTML} from \"../../../../app\";\nimport {TTYGEventName} from \"../services/ttyg-context.service\";\nimport 'angular/ttyg/services/externalIntegrationModal.service';\n\nconst modules = [\n 'graphdb.framework.ttyg.services.externalIntegrationModal'\n];\n\nangular\n .module('graphdb.framework.ttyg.directives.agent-list', modules)\n .directive('agentList', AgentListComponent);\n\nAgentListComponent.$inject = ['TTYGContextService', 'ModalService', '$translate', '$uibModal', 'ExternalIntegrationModalService'];\n\nfunction AgentListComponent(TTYGContextService, ModalService, $translate, $uibModal, ExternalIntegrationModalService) {\n return {\n restrict: 'E',\n templateUrl: 'js/angular/ttyg/templates/agent-list.html',\n scope: {\n agentList: '=',\n agentListFilterModel: '='\n },\n link: ($scope, element, attrs) => {\n\n // =========================\n // Public variables\n // =========================\n\n /**\n * Selected agent.\n * @type {AgentModel|undefined}\n */\n $scope.selectedAgent = undefined;\n\n /**\n * The selected agents filter.\n * @type {{key: string, label: string}|undefined}\n */\n $scope.selectedAgentsFilter = undefined;\n\n /**\n * An event instance holding the agent to be deleted and if the progress is ongoing.\n * @type {agentId: string, inProgress: boolean}\n */\n $scope.deletingAgent = undefined;\n\n // =========================\n // Private variables\n // =========================\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Triggers the agent edit process.\n * @param {AgentModel} agent\n */\n $scope.onEditAgent = (agent) => {\n TTYGContextService.emit(TTYGEventName.EDIT_AGENT, agent);\n };\n\n /**\n * Opens a modal to copy the external integration for a given agent.\n *\n * Used when the agent is already provided.\n *\n * @function\n * @param {AgentModel} agent - The agent for which to configure the integration.\n */\n $scope.onExternalIntegration = (agent) => {\n ExternalIntegrationModalService.open(agent);\n };\n\n /**\n * Triggers the agent clone process.\n * @param {AgentModel} agent\n */\n $scope.onCloneAgent = (agent) => {\n TTYGContextService.emit(TTYGEventName.CLONE_AGENT, agent);\n };\n\n /**\n * Triggers the agent delete process.\n * @param {AgentModel} agent\n */\n $scope.onDeleteAgent = (agent) => {\n const title = $translate.instant('ttyg.agent.delete_agent_modal.title');\n const confirmDeleteMessage = decodeHTML($translate.instant('ttyg.agent.delete_agent_modal.body', {agentName: agent.name}));\n ModalService.openConfirmation(title, confirmDeleteMessage, () => TTYGContextService.emit(TTYGEventName.DELETE_AGENT, agent));\n };\n\n /**\n * Filters the agents based on the selected repository.\n * @param {AgentListFilterModel} selectedFilter\n */\n $scope.onAgentsFilterChange = (selectedFilter) => {\n $scope.selectedAgentsFilter = selectedFilter;\n if ($scope.selectedAgentsFilter) {\n $scope.agentList.filterByRepository($scope.selectedAgentsFilter.key);\n }\n };\n\n // =========================\n // Private functions\n // =========================\n\n const updateSelectedAgentsFilter = () => {\n const selectedFilter = $scope.agentListFilterModel.find((filter) => filter.selected);\n $scope.selectedAgentsFilter = selectedFilter || $scope.agentListFilterModel[0];\n $scope.onAgentsFilterChange($scope.selectedAgentsFilter);\n };\n\n /**\n * Handles the progress of deletion of an agent.\n * @param {{agentId: string, inProgress: boolean}} event\n */\n const onDeletingAgent = (event) => {\n $scope.deletingAgent = event;\n };\n\n /**\n * Handles the selection of an agent.\n * @param {AgentModel} agent\n */\n const onSelectedAgentChanged = (agent) => {\n $scope.selectedAgent = agent;\n };\n\n // =========================\n // Subscriptions\n // =========================\n\n const subscriptions = [];\n\n const removeAllSubscribers = () => {\n subscriptions.forEach((subscription) => subscription());\n };\n\n subscriptions.push($scope.$watch('agentListFilterModel', updateSelectedAgentsFilter));\n subscriptions.push(TTYGContextService.subscribe(TTYGEventName.DELETING_AGENT, onDeletingAgent));\n subscriptions.push(TTYGContextService.onSelectedAgentChanged(onSelectedAgentChanged));\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllSubscribers);\n\n // =========================\n // Initialization\n // =========================\n\n function initialize() {\n updateSelectedAgentsFilter();\n }\n initialize();\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","/**\n * The length of the message to be cut and displayed to the user from the error\n * server's response.\n * @type {number}\n */\nexport const TTYG_ERROR_MSG_LENGTH = 100;\n\n/**\n * The key to use when filtering agents indicating that all agents should be shown.\n * @type {string}\n */\nexport const AGENTS_FILTER_ALL_KEY = 'ALL';\n\n/**\n * An enum with possible agent operations. This is used in the agent settings modal.\n */\nexport const AGENT_OPERATION = {\n CREATE: 'create',\n EDIT: 'edit',\n CLONE: 'clone'\n};\n","import {cloneDeep} from 'lodash';\n\nangular\n .module('graphdb.framework.ttyg.services.ttygcontext', [])\n .factory('TTYGContextService', TTYGContextService);\n\nTTYGContextService.$inject = ['EventEmitterService', 'TTYGService'];\n\nfunction TTYGContextService(EventEmitterService) {\n\n /**\n * The list of agents.\n * @type {AgentListModel}\n * @private\n */\n let _agents = undefined;\n\n /**\n * The ChatsListModel.\n * @type {ChatsListModel}\n * @private\n */\n let _chats = undefined;\n\n /**\n * The currently selected in the UI chat which is used for conversation.\n * @type {ChatModel|undefined}\n * @private\n */\n let _selectedChat = undefined;\n\n /**\n * The currently selected in the UI agent which is used for conversation.\n * @type {AgentModel|undefined}\n * @private\n */\n let _selectedAgent = undefined;\n\n /**\n * Stores information about loaded explain responses.\n * The key is the answer ID, and the value is an instance of {@see ExplainResponseModel} that holds the explanation message.\n *\n * @type {{[key: string]: ExplainResponseModel}}\n */\n let _explainCache = {};\n\n /**\n * The default agent values.\n * @type {AgentModel|undefined}\n * @private\n */\n let _defaultAgent = undefined;\n\n let _canModifyAgent = false;\n\n const resetContext = () => {\n _agents = undefined;\n _chats = undefined;\n _selectedChat = undefined;\n _selectedAgent = undefined;\n _explainCache = {};\n _defaultAgent = undefined;\n _canModifyAgent = false;\n };\n\n /**\n * @return {Promise<AgentModel>}\n */\n const getDefaultAgent = () => {\n return cloneDeep(_defaultAgent);\n };\n\n const setDefaultAgent = (agent) => {\n _defaultAgent = agent;\n };\n\n /**\n * @return {AgentListModel}\n */\n const getAgents = () => {\n return cloneDeep(_agents);\n };\n\n const getAgent = (agentId) => {\n if (_agents) {\n return cloneDeep(_agents.getAgent(agentId));\n }\n };\n\n /**\n * @return {ChatsListModel}\n */\n const getChats = () => {\n return cloneDeep(_chats);\n };\n\n /**\n * @param {ChatsListModel} chats\n */\n const updateChats = (chats) => {\n _chats = cloneDeep(chats);\n emit(TTYGEventName.CHAT_LIST_UPDATED, getChats());\n };\n\n /**\n * Deletes the chat with the provided <code>chatId</code>.\n * @param {ChatModel} chat\n */\n const deleteChat = (chat) => {\n _chats.deleteChat(chat);\n updateChats(_chats);\n };\n\n const addChat = (newChat) => {\n _chats.appendChat(newChat);\n updateChats(_chats);\n };\n\n const replaceChat = (newChat, oldChat) => {\n _chats.replaceChat(newChat, oldChat);\n updateChats(_chats);\n };\n\n const createChat = (newChat) => {\n addChat(newChat);\n selectChat(newChat);\n emit(TTYGEventName.CREATE_CHAT_SUCCESSFUL, newChat);\n }\n\n /** Subscribes to the 'chatListUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onChatsListChanged = (callback) => {\n if (_chats && angular.isFunction(callback)) {\n callback(getChats());\n }\n return subscribe(TTYGEventName.CHAT_LIST_UPDATED, (chats) => callback(chats));\n };\n\n /**\n * @return {ChatModel}\n */\n const getSelectedChat = () => {\n return cloneDeep(_selectedChat);\n };\n\n /**\n * Updates the selected chat with the provided <code>selectedChat</code> and emits the 'selectChat' event\n * to notify listeners that a new chat has been selected.\n *\n * @param {ChatModel} selectedChat - The chat object to select.\n */\n const selectChat = (selectedChat) => {\n if (!_selectedChat || _selectedChat.id !== selectedChat.id) {\n _selectedChat = cloneDeep(selectedChat);\n emit(TTYGEventName.SELECT_CHAT, getSelectedChat());\n }\n };\n\n const deselectChat = () => {\n _selectedChat = undefined;\n emit(TTYGEventName.SELECT_CHAT, getSelectedChat());\n };\n\n /**\n * Subscribes to the 'selectChat' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedChatChanged = (callback) => {\n if (angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.SELECT_CHAT, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * Updates the selected chat and emits the 'selectChatUpdated' event to notify listeners that a property\n * of the selected chat has changed.\n *\n * If the ID of the passed chat differs from the current selected chat, no action will occur.\n *\n * The selected chat can be updated through {@link TTYGContextService#selectChat}.\n *\n * @param {ChatModel} chat - The chat object that is being updated.\n */\n const updateSelectedChat = (chat) => {\n if (!_selectedChat || !_selectedChat.id || !chat || _selectedChat.id === chat.id) {\n _selectedChat = cloneDeep(chat);\n emit(TTYGEventName.SELECTED_CHAT_UPDATED, getSelectedChat());\n }\n };\n\n /** Subscribes to the 'selectChat' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedChatUpdated = (callback) => {\n if (_selectedChat && angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.SELECTED_CHAT_UPDATED, (selectedChat) => callback(selectedChat));\n };\n\n /** Subscribes to the 'lastMessageReceived' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onLastMessageReceived = (callback) => {\n if (_selectedChat && angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.LAST_MESSAGE_RECEIVED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * @param {AgentListModel} agents\n */\n const updateAgents = (agents) => {\n _agents = cloneDeep(agents);\n emit(TTYGEventName.AGENT_LIST_UPDATED, getAgents());\n };\n\n /**\n * Subscribes to the 'agentListUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onAgentsListChanged = (callback) => {\n if (_agents && angular.isFunction(callback)) {\n callback(getAgents());\n }\n return subscribe(TTYGEventName.AGENT_LIST_UPDATED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * @return {AgentModel}\n */\n const getSelectedAgent = () => {\n return cloneDeep(_selectedAgent);\n };\n\n /**\n * Updates the selected agent with the provided <code>selectedAgent</code> and emits the 'agentSelected' event\n * to notify listeners that a new agent has been selected.\n *\n * @param {AgentModel} selectedAgent - The instance of selected agent.\n */\n const selectAgent = (selectedAgent) => {\n _selectedAgent = cloneDeep(selectedAgent);\n emit(TTYGEventName.AGENT_SELECTED, getSelectedAgent());\n };\n\n const _getExplainResponseCache = () => {\n return cloneDeep(_explainCache);\n };\n\n /**\n * Gets the explain response.\n * @param {string} answerId\n * @return {ExplainResponseModel}\n */\n const getExplainResponse = (answerId) => {\n return cloneDeep(_explainCache[answerId]);\n };\n\n /**\n * Adds the <code>explainResponse</code> into the explain response cache.\n *\n * @param {ExplainResponseModel} explainResponse\n */\n const addExplainResponseCache = (explainResponse) => {\n _explainCache[explainResponse.answerId] = cloneDeep(explainResponse);\n emit(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, _getExplainResponseCache());\n };\n\n const hasExplainResponse = (answerId) => {\n return !!_explainCache[answerId];\n };\n\n const toggleExplainResponse = (answerId) => {\n if (hasExplainResponse(answerId)) {\n _explainCache[answerId].expanded = !_explainCache[answerId].expanded;\n emit(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, _getExplainResponseCache());\n }\n };\n\n /**\n * Subscribes to the 'explainResponseCacheUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onExplainResponseCacheUpdated = (callback) => {\n if (angular.isFunction(callback)) {\n callback(_getExplainResponseCache());\n }\n return subscribe(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, (explainResponses) => callback(explainResponses));\n };\n\n /**\n * Subscribes to the 'agentSelected' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedAgentChanged = (callback) => {\n if (_selectedAgent && angular.isFunction(callback)) {\n callback(getSelectedAgent());\n }\n return subscribe(TTYGEventName.AGENT_SELECTED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * Updates the \"canModifyAgent\" flag and emits the 'canModifyAgentUpdated' event to notify listeners that the canModifyAgent flag is changed.\n *\n * @param {boolean} canModifyAgent\n */\n const setCanModifyAgent = (canModifyAgent) => {\n _canModifyAgent = cloneDeep(canModifyAgent);\n emit(TTYGEventName.CAN_MODIFY_AGENT_UPDATED, getCanModifyAgent());\n };\n\n const getCanModifyAgent = () => {\n return _canModifyAgent;\n };\n\n /**\n * Subscribes to the 'canModifyAgentUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onCanUpdateAgentUpdated = (callback) => {\n if (angular.isFunction(callback)) {\n callback(getCanModifyAgent());\n }\n return subscribe(TTYGEventName.CAN_MODIFY_AGENT_UPDATED, (canModifyAgent) => callback(canModifyAgent));\n };\n\n /**\n * Emits an event with a deep-cloned payload using the EventEmitterService.\n *\n * @param {string} tTYGEventName - The name of the event to emit. It must be a value from {@link TTYGEventName}.\n * @param {*} payload - The data to emit with the event. The payload is deep-cloned before emission.\n */\n const emit = (tTYGEventName, payload) => {\n EventEmitterService.emitSync(tTYGEventName, cloneDeep(payload));\n };\n\n /**\n * Subscribes to an event with the specified callback using the EventEmitterService.\n *\n * @param {string} tTYGEventName - The name of the event to subscribe to. It must be a value from {@link TTYGEventName}.\n * @param {function} callback - The function to call when the event is emitted.\n * @return {function} - Returns a function that can be called to unsubscribe from the event.\n */\n const subscribe = (tTYGEventName, callback) => {\n return EventEmitterService.subscribeSync(tTYGEventName, (payload) => callback(payload));\n };\n\n return {\n resetContext,\n emit,\n subscribe,\n // chats\n getChats,\n updateChats,\n addChat,\n replaceChat,\n createChat,\n onChatsListChanged,\n getSelectedChat,\n selectChat,\n deselectChat,\n deleteChat,\n onSelectedChatChanged,\n updateSelectedChat,\n onSelectedChatUpdated,\n onLastMessageReceived,\n // agents\n updateAgents,\n onAgentsListChanged,\n getAgents,\n getAgent,\n selectAgent,\n getSelectedAgent,\n onSelectedAgentChanged,\n getDefaultAgent,\n setDefaultAgent,\n setCanModifyAgent,\n getCanModifyAgent,\n onCanUpdateAgentUpdated,\n // chat explain\n hasExplainResponse,\n toggleExplainResponse,\n getExplainResponse,\n addExplainResponseCache,\n onExplainResponseCacheUpdated\n };\n}\n\nexport const TTYGEventName = {\n /**\n * Emitting the \"createChat\" event triggers a backend request to create a new chat.\n */\n CREATE_CHAT: 'createChat',\n\n /**\n * This event is emitted when a chat is successfully created.\n */\n CREATE_CHAT_SUCCESSFUL: 'chatCreated',\n\n /**\n * This event is emitted when the creation of a chat fails.\n */\n CREATE_CHAT_FAILURE: 'chatCreationFailed',\n\n RENAME_CHAT: 'renameChat',\n RENAME_CHAT_SUCCESSFUL: 'chatRenamed',\n RENAME_CHAT_FAILURE: 'chatRenamedFailure',\n\n /**\n * Emitting the \"selectChat\" event when the selected chat has been changed.\n */\n SELECT_CHAT: 'selectChat',\n\n /**\n * Emitting the \"selectChatUpdated\" event when the selected chat has been updated.\n */\n SELECTED_CHAT_UPDATED: 'selectChatUpdated',\n\n /**\n * Emitting the \"lastMessageReceived\" event when the final answer message has been received.\n */\n LAST_MESSAGE_RECEIVED: 'lastMessageReceived',\n\n /**\n * This event will be emitted when the chat delete request is in progress. The payload will contain the chat ID\n * and a boolean indicating if the deletion is in progress.\n */\n DELETING_CHAT: 'deletingChat',\n\n /**\n * This event will be emitted when the delete chat process is triggered but before the chat delete request is sent.\n */\n DELETE_CHAT: 'deleteChat',\n\n /**\n * This event will be emitted when the chat was successfully deleted.\n */\n DELETE_CHAT_SUCCESSFUL: 'chatDeleted',\n\n /**\n * This event will be emitted when the attempt to answer the question fails.\n */\n\n /**\n * This event is emitted when the deletion of a chat fails.\n */\n DELETE_CHAT_FAILURE: 'chatDeletedFailure',\n\n CHAT_EXPORT: 'chatExport',\n CHAT_EXPORT_SUCCESSFUL: 'chatExportSuccess',\n CHAT_EXPORT_FAILURE: 'chatExportFailure',\n CHAT_LIST_UPDATED: 'chatListUpdated',\n\n /**\n * Emitting the \"askQuestion\" event triggers a request to the backend to retrieve an answer to a question.\n */\n ASK_QUESTION: 'askQuestion',\n\n /**\n * This event will be emitted when the attempt to answer the question fails.\n */\n ASK_QUESTION_FAILURE: 'askQuestionFailure',\n\n /**\n * Emitting the \"continueChatRun\" event triggers a request to the backend to retrieve more remaining answers from the same chat run.\n */\n CONTINUE_CHAT_RUN: 'continueChatRun',\n\n /**\n * Emitting the \"cancelPendingQuestion\" event triggers the cancellation of a pending question in a chat.\n */\n CANCEL_PENDING_QUESTION: \"cancelPendingQuestion\",\n\n /**\n * This event is emitted when the cancellation of the pending question succeeds.\n */\n PENDING_QUESTION_CANCELED_SUCCESSFUL: \"pendingQuestionCanceledSuccessful\",\n\n /**\n * This event is emitted when the cancellation of the pending question fails.\n */\n CANCEL_PENDING_QUESTION_FAILURE: \"cancelPendingQuestionFailed\",\n\n /**\n * This event will be fired before a question is sent to BE for processing.\n */\n ASK_QUESTION_STARTING: \"askQuestionStarting\",\n\n /**\n * Emitting the \"loadChats\" event will trigger an action to loads all chats from backend server.\n */\n LOAD_CHATS: 'loadChats',\n LOAD_CHAT_SUCCESSFUL: 'loadChatSuccess',\n LOAD_CHAT_FAILURE: 'loadChatFailure',\n\n AGENT_LIST_UPDATED: 'agentListUpdated',\n\n /**\n * This event will be emitted when the create agent process is triggered through the UI but before the agent create\n * request is sent. This is used to open the agent settings dialog.\n */\n OPEN_AGENT_SETTINGS: 'openAgentSettings',\n\n /**\n * This event will be emitted when an agent needs to be edited.\n */\n EDIT_AGENT: 'editAgent',\n\n /**\n * This event will be emitted when an agent needs to be cloned.\n */\n CLONE_AGENT: 'cloneAgent',\n\n /**\n * This event will be emitted when the delete agent process is triggered but before the agent delete request is sent.\n */\n DELETE_AGENT: 'deleteAgent',\n\n /**\n * This event will be emitted when the agent was successfully deleted.\n */\n AGENT_DELETED: 'agentDeleted',\n\n /**\n * This event will be emitted when the agent delete request is in progress. The payload will contain the agent ID\n * and a boolean indicating if the deletion is in progress.\n */\n DELETING_AGENT: 'deletingAgent',\n\n /**\n * This event will be emitted when an agent is selected by the user through the UI.\n */\n AGENT_SELECTED: 'agentSelected',\n\n /**\n * This event will trigger the opening of the similarity view.\n */\n GO_TO_CREATE_SIMILARITY_VIEW: \"goToCreateSimilarityView\",\n\n /**\n * This event will trigger the opening of the connectors view.\n */\n GO_TO_CONNECTORS_VIEW: \"goToConnectorsView\",\n\n /**\n * This event will trigger the opening of the \"Autocomplete index\" view.\n */\n GO_TO_AUTOCOMPLETE_INDEX_VIEW: \"goToAutocompleteIndexView\",\n\n /**\n * This event will trigger fetching a new explanation of how the answer was generated.\n */\n EXPLAIN_RESPONSE: \"explainResponse\",\n\n /**\n * This event will be emitted when the cache with explain responses changed.\n */\n EXPLAIN_RESPONSE_CACHE_UPDATED: \"explainResponseCacheUpdated\",\n\n /**\n * This event will trigger the opening of the sparql view.\n */\n GO_TO_SPARQL_EDITOR: \"openQueryInSparqlEditor\",\n\n CAN_MODIFY_AGENT_UPDATED: \"canModifyAgentUpdated\",\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"],"names":["AgentListComponent","TTYGContextService","ModalService","$translate","$uibModal","ExternalIntegrationModalService","restrict","templateUrl","scope","agentList","agentListFilterModel","link","$scope","element","attrs","selectedAgent","undefined","selectedAgentsFilter","deletingAgent","onEditAgent","agent","emit","TTYGEventName","EDIT_AGENT","onExternalIntegration","open","onCloneAgent","CLONE_AGENT","onDeleteAgent","title","instant","confirmDeleteMessage","decodeHTML","agentName","name","openConfirmation","DELETE_AGENT","onAgentsFilterChange","selectedFilter","filterByRepository","key","updateSelectedAgentsFilter","find","filter","selected","subscriptions","push","$watch","subscribe","DELETING_AGENT","event","onSelectedAgentChanged","$on","removeAllSubscribers","forEach","subscription","angular","module","directive","$inject","ExternalIntegrationConfigurationModalController","$uibModalInstance","dialogModel","externalIntegrationConfiguration","difyExtension","difyExtensionUrl","queryMethods","queryMethodsUrl","agentId","close","dismiss","onCloseExternalIntegrationConfigurationModal","controller","TTYG_ERROR_MSG_LENGTH","AGENTS_FILTER_ALL_KEY","AGENT_OPERATION","CREATE","EDIT","CLONE","EventEmitterService","_agents","_chats","_selectedChat","_selectedAgent","_defaultAgent","_explainCache","_canModifyAgent","getAgents","cloneDeep","getChats","updateChats","chats","CHAT_LIST_UPDATED","addChat","newChat","appendChat","getSelectedChat","selectChat","selectedChat","id","SELECT_CHAT","getSelectedAgent","_getExplainResponseCache","hasExplainResponse","answerId","getCanModifyAgent","tTYGEventName","payload","emitSync","callback","subscribeSync","resetContext","replaceChat","oldChat","createChat","CREATE_CHAT_SUCCESSFUL","onChatsListChanged","isFunction","deselectChat","deleteChat","chat","onSelectedChatChanged","updateSelectedChat","SELECTED_CHAT_UPDATED","onSelectedChatUpdated","onLastMessageReceived","LAST_MESSAGE_RECEIVED","updateAgents","agents","AGENT_LIST_UPDATED","onAgentsListChanged","getAgent","selectAgent","AGENT_SELECTED","getDefaultAgent","setDefaultAgent","setCanModifyAgent","canModifyAgent","CAN_MODIFY_AGENT_UPDATED","onCanUpdateAgentUpdated","toggleExplainResponse","expanded","EXPLAIN_RESPONSE_CACHE_UPDATED","getExplainResponse","addExplainResponseCache","explainResponse","onExplainResponseCacheUpdated","explainResponses","factory","CREATE_CHAT","CREATE_CHAT_FAILURE","RENAME_CHAT","RENAME_CHAT_SUCCESSFUL","RENAME_CHAT_FAILURE","DELETING_CHAT","DELETE_CHAT","DELETE_CHAT_SUCCESSFUL","DELETE_CHAT_FAILURE","CHAT_EXPORT","CHAT_EXPORT_SUCCESSFUL","CHAT_EXPORT_FAILURE","ASK_QUESTION","ASK_QUESTION_FAILURE","CONTINUE_CHAT_RUN","CANCEL_PENDING_QUESTION","PENDING_QUESTION_CANCELED_SUCCESSFUL","CANCEL_PENDING_QUESTION_FAILURE","ASK_QUESTION_STARTING","LOAD_CHATS","LOAD_CHAT_SUCCESSFUL","LOAD_CHAT_FAILURE","OPEN_AGENT_SETTINGS","AGENT_DELETED","GO_TO_CREATE_SIMILARITY_VIEW","GO_TO_CONNECTORS_VIEW","GO_TO_AUTOCOMPLETE_INDEX_VIEW","EXPLAIN_RESPONSE","GO_TO_SPARQL_EDITOR","LocationsRestService","toastr","getExternalUrl","then","response","baseUrl","buildDialogModel","data","windowClass","backdrop","resolve","result","catch","error","getError"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=31636;export const __webpack_ids__=[31636];export const __webpack_modules__={31636:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});const a='<link href="css/ttyg/agent-select-menu.css?v=3.2.0-
|
|
2
|
-
//# sourceMappingURL=31636.
|
|
1
|
+
export const __webpack_id__=31636;export const __webpack_ids__=[31636];export const __webpack_modules__={31636:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});const a='<link href="css/ttyg/agent-select-menu.css?v=3.2.0-TR3" rel="stylesheet"/> <div class="btn-group agent-select-menu" uib-dropdown guide-selector="select-agent-dropdown"> <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle guide-selector="select-agent-dropdown-toggle" ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + \' · \' + selectedAgent.repositoryId) : null}}"> <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span> <div ng-if="selectedAgent && !selectedAgent.isDeleted" class="selected-agent-option"> <span class="agent-name" guide-selector="selected-agent">{{selectedAgent.name}}</span> · <i ng-if="!selectedAgent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i> <i ng-if="selectedAgent.isRepositoryDeleted" class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository" gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}"> </i> <span class="repository-id">{{selectedAgent.repositoryId}}</span> <span class="model-name">{{selectedAgent.model}}</span> </div> <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning"> <i class="fa fa-triangle-exclamation"></i> {{\'ttyg.agent.agent_select_menu.deleted_agent\' | translate}} </span> <span class="caret"></span> </button> <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="single-button" guide-selector="select-agent-panel"> <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item" ng-class="{\'selected\': agentOption.selected, \'incompatible-agent\': !agentOption.data.agent.isCompatible}" ng-attr-title="{{!agentOption.data.agent.isCompatible ? (\'ttyg.agent.incompatible_agent\' | translate) : agentOption.label + \' · \' + agentOption.data.agent.repositoryId}}"> <a href="#" class="agent-option" ng-click="onAgentSelected($event, agentOption.data.agent)"> <i ng-if="!agentOption.data.agent.isCompatible" class="fa fa-triangle-exclamation text-warning"> </i> <span class="agent-name">{{agentOption.label}}</span> · <i ng-if="!agentOption.data.agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i> <i ng-if="agentOption.data.agent.isRepositoryDeleted" class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository" gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}"> </i> <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span> </a> <span class="model-name">{{agentOption.data.agent.model}}</span> </li> </ul> </div> '}};
|
|
2
|
+
//# sourceMappingURL=31636.95fa5e5c2a521d1effd5.bundle.js.map
|
package/dist/{31636.54e2817f8ae3998a34b3.bundle.js.map → 31636.95fa5e5c2a521d1effd5.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"31636.
|
|
1
|
+
{"version":3,"file":"31636.95fa5e5c2a521d1effd5.bundle.js","mappings":"uJAGA,QAFW,2gF","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/agent-select-menu.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-select-menu.css?v=3.2.0-TR3\" rel=\"stylesheet\"/> <div class=\"btn-group agent-select-menu\" uib-dropdown guide-selector=\"select-agent-dropdown\"> <button type=\"button\" class=\"btn dropdown-toggle-btn\" uib-dropdown-toggle guide-selector=\"select-agent-dropdown-toggle\" ng-attr-title=\"{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + ' · ' + selectedAgent.repositoryId) : null}}\"> <span ng-if=\"!selectedAgent\">{{'ttyg.agent.agent_select_menu.no_selection_label' | translate}}</span> <div ng-if=\"selectedAgent && !selectedAgent.isDeleted\" class=\"selected-agent-option\"> <span class=\"agent-name\" guide-selector=\"selected-agent\">{{selectedAgent.name}}</span> · <i ng-if=\"!selectedAgent.isRepositoryDeleted\" class=\"fa-kit fa-gdb-repo-graphdb\"></i> <i ng-if=\"selectedAgent.isRepositoryDeleted\" class=\"fa fa-triangle-exclamation text-warning agent-with-deleted-repository\" gdb-tooltip=\"{{'ttyg.agent.deleted_repository' | translate}}\"> </i> <span class=\"repository-id\">{{selectedAgent.repositoryId}}</span> <span class=\"model-name\">{{selectedAgent.model}}</span> </div> <span ng-if=\"selectedAgent && selectedAgent.isDeleted\" class=\"text-warning\"> <i class=\"fa fa-triangle-exclamation\"></i> {{'ttyg.agent.agent_select_menu.deleted_agent' | translate}} </span> <span class=\"caret\"></span> </button> <ul class=\"dropdown-menu\" uib-dropdown-menu role=\"menu\" aria-labelledby=\"single-button\" guide-selector=\"select-agent-panel\"> <li ng-repeat=\"agentOption in agentOptionsList\" role=\"menuitem\" class=\"agent-menu-item\" ng-class=\"{'selected': agentOption.selected, 'incompatible-agent': !agentOption.data.agent.isCompatible}\" ng-attr-title=\"{{!agentOption.data.agent.isCompatible ? ('ttyg.agent.incompatible_agent' | translate) : agentOption.label + ' · ' + agentOption.data.agent.repositoryId}}\"> <a href=\"#\" class=\"agent-option\" ng-click=\"onAgentSelected(\\$event, agentOption.data.agent)\"> <i ng-if=\"!agentOption.data.agent.isCompatible\" class=\"fa fa-triangle-exclamation text-warning\"> </i> <span class=\"agent-name\">{{agentOption.label}}</span> · <i ng-if=\"!agentOption.data.agent.isRepositoryDeleted\" class=\"fa-kit fa-gdb-repo-graphdb\"></i> <i ng-if=\"agentOption.data.agent.isRepositoryDeleted\" class=\"fa fa-triangle-exclamation text-warning agent-with-deleted-repository\" gdb-tooltip=\"{{'ttyg.agent.deleted_repository' | translate}}\"> </i> <span class=\"repository-id\">{{agentOption.data.agent.repositoryId}}</span> </a> <span class=\"model-name\">{{agentOption.data.agent.model}}</span> </li> </ul> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=32489;export const __webpack_ids__=[32489];export const __webpack_modules__={32489:(t,n,a)=>{a.r(n),a.d(n,{default:()=>o});const o='<link href="css/operations-statuses-monitor.css?v=3.2.0-
|
|
2
|
-
//# sourceMappingURL=32489.
|
|
1
|
+
export const __webpack_id__=32489;export const __webpack_ids__=[32489];export const __webpack_modules__={32489:(t,n,a)=>{a.r(n),a.d(n,{default:()=>o});const o='<link href="css/operations-statuses-monitor.css?v=3.2.0-TR3" rel="stylesheet"/> <div ng-if="activeOperations && activeOperations.operations && activeOperations.operations.length > 0" class="operations-statuses btn-group"> <button type="button" class="btn btn-secondary operations-statuses-dropdown-toggle dropdown-toggle" data-toggle="dropdown" ng-if="operationsSummary && operationsSummary.length > 0" ng-class="{\n \'btn-fade-danger\': OPERATION_STATUS.CRITICAL === activeOperations.status,\n \'btn-fade-warning\': OPERATION_STATUS.WARNING === activeOperations.status\n }"> <div class="operation-status-header" ng-repeat="operationGroup in operationsSummary"> <div ng-class="{\n \'icon-import\': OPERATION_GROUP_TYPE.IMPORT_OPERATION === operationGroup.type,\n \'icon-exchange\': OPERATION_GROUP_TYPE.QUERIES_OPERATION === operationGroup.type,\n \'fa fa-archive\': OPERATION_GROUP_TYPE.BACKUP_AND_RESTORE_OPERATION === operationGroup.type,\n \'fa fa-sitemap\': OPERATION_GROUP_TYPE.CLUSTER_OPERATION === operationGroup.type,\n \'status-critical\': OPERATION_STATUS.CRITICAL === operationGroup.status,\n \'status-information\': OPERATION_STATUS.INFORMATION === operationGroup.status,\n \'status-warning\': OPERATION_STATUS.WARNING === operationGroup.status}"> </div> <span ng-if="operationGroup.runningOperations" class="running-operation-count"> <sup class="tag-info">{{operationGroup.runningOperations}}</sup> </span> </div> <span class="caret"></span> </button> <ul role="menu" class="dropdown-menu dropdown-menu-right"> <div class="operations-statuses-content"> <li ng-repeat="operationStatus in activeOperations.operations"> <a class="operation-status-content btn btn-secondary row" target="_blank" ng-attr-href="{{operationStatus.monitoringViewUrl}}" ng-class="{\n \'status-critical\': OPERATION_STATUS.CRITICAL === operationStatus.status,\n \'status-information\': OPERATION_STATUS.INFORMATION === operationStatus.status,\n \'status-warning\': OPERATION_STATUS.WARNING === operationStatus.status\n }"> <div class="operation-icon col-sm-1" ng-style="noPadding"> <div ng-class="{\n \'icon-import\': OPERATION_TYPE.IMPORTS === operationStatus.type,\n \'icon-exchange\': OPERATION_TYPE.QUERIES === operationStatus.type || OPERATION_TYPE.UPDATES === operationStatus.type,\n \'fa fa-archive\': OPERATION_TYPE.BACKUP_RESTORE === operationStatus.type,\n \'fa fa-sitemap\': OPERATION_TYPE.CLUSTER_STATUS === operationStatus.type}"> </div> </div> <div class="col-sm-8 operation-status-label"> {{ \'global.operations_statuses.\' + operationStatus.titleLabelKey + \'.title\' | translate }} </div> <div class="operation-number col-sm-3"> <div ng-if="operationStatus.runningOperationCount" class="operation-status-running-operation-count tag-info"> {{operationStatus.runningOperationCount}} </div> </div> </a> </li> </div> </ul> </div> '}};
|
|
2
|
+
//# sourceMappingURL=32489.c5d26d5023f0e0583408.bundle.js.map
|
package/dist/{32489.f7a2dc39cd61c2cd8874.bundle.js.map → 32489.c5d26d5023f0e0583408.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"32489.
|
|
1
|
+
{"version":3,"file":"32489.c5d26d5023f0e0583408.bundle.js","mappings":"uJAqBA,QApBW,8hG","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/operations-statuses-monitor.css?v=3.2.0-TR3\" rel=\"stylesheet\"/> <div ng-if=\"activeOperations && activeOperations.operations && activeOperations.operations.length > 0\" class=\"operations-statuses btn-group\"> <button type=\"button\" class=\"btn btn-secondary operations-statuses-dropdown-toggle dropdown-toggle\" data-toggle=\"dropdown\" ng-if=\"operationsSummary && operationsSummary.length > 0\" ng-class=\"{\n 'btn-fade-danger': OPERATION_STATUS.CRITICAL === activeOperations.status,\n 'btn-fade-warning': OPERATION_STATUS.WARNING === activeOperations.status\n }\"> <div class=\"operation-status-header\" ng-repeat=\"operationGroup in operationsSummary\"> <div ng-class=\"{\n 'icon-import': OPERATION_GROUP_TYPE.IMPORT_OPERATION === operationGroup.type,\n 'icon-exchange': OPERATION_GROUP_TYPE.QUERIES_OPERATION === operationGroup.type,\n 'fa fa-archive': OPERATION_GROUP_TYPE.BACKUP_AND_RESTORE_OPERATION === operationGroup.type,\n 'fa fa-sitemap': OPERATION_GROUP_TYPE.CLUSTER_OPERATION === operationGroup.type,\n 'status-critical': OPERATION_STATUS.CRITICAL === operationGroup.status,\n 'status-information': OPERATION_STATUS.INFORMATION === operationGroup.status,\n 'status-warning': OPERATION_STATUS.WARNING === operationGroup.status}\"> </div> <span ng-if=\"operationGroup.runningOperations\" class=\"running-operation-count\"> <sup class=\"tag-info\">{{operationGroup.runningOperations}}</sup> </span> </div> <span class=\"caret\"></span> </button> <ul role=\"menu\" class=\"dropdown-menu dropdown-menu-right\"> <div class=\"operations-statuses-content\"> <li ng-repeat=\"operationStatus in activeOperations.operations\"> <a class=\"operation-status-content btn btn-secondary row\" target=\"_blank\" ng-attr-href=\"{{operationStatus.monitoringViewUrl}}\" ng-class=\"{\n 'status-critical': OPERATION_STATUS.CRITICAL === operationStatus.status,\n 'status-information': OPERATION_STATUS.INFORMATION === operationStatus.status,\n 'status-warning': OPERATION_STATUS.WARNING === operationStatus.status\n }\"> <div class=\"operation-icon col-sm-1\" ng-style=\"noPadding\"> <div ng-class=\"{\n 'icon-import': OPERATION_TYPE.IMPORTS === operationStatus.type,\n 'icon-exchange': OPERATION_TYPE.QUERIES === operationStatus.type || OPERATION_TYPE.UPDATES === operationStatus.type,\n 'fa fa-archive': OPERATION_TYPE.BACKUP_RESTORE === operationStatus.type,\n 'fa fa-sitemap': OPERATION_TYPE.CLUSTER_STATUS === operationStatus.type}\"> </div> </div> <div class=\"col-sm-8 operation-status-label\"> {{ 'global.operations_statuses.' + operationStatus.titleLabelKey + '.title' | translate }} </div> <div class=\"operation-number col-sm-3\"> <div ng-if=\"operationStatus.runningOperationCount\" class=\"operation-status-running-operation-count tag-info\"> {{operationStatus.runningOperationCount}} </div> </div> </a> </li> </div> </ul> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=34495;export const __webpack_ids__=[34495];export const __webpack_modules__={34495:(t,o,e)=>{e.r(o),e.d(o,{default:()=>a});const a='<link href="css/ttyg/external-integration-configuration-modal.css?v=3.2.0-
|
|
2
|
-
//# sourceMappingURL=34495.
|
|
1
|
+
export const __webpack_id__=34495;export const __webpack_ids__=[34495];export const __webpack_modules__={34495:(t,o,e)=>{e.r(o),e.d(o,{default:()=>a});const a='<link href="css/ttyg/external-integration-configuration-modal.css?v=3.2.0-TR3" rel="stylesheet"/> <div class="modal-header"> <button type="button" class="close" ng-click="close()"></button> <h4 class="modal-title">{{\'ttyg.agent.external_integration_config_modal.title\' | translate}}</h4> </div> <div class="modal-body"> <h6 class="modal-title"> {{ \'ttyg.agent.external_integration_config_modal.label\' | translate:{agentName: agentName} }} </h6> <form class="form-horizontal"> <div class="form-group"> <label for="agentId" class="control-label"> {{ \'ttyg.agent.external_integration_config_modal.agent_id_label\' | translate }} </label> <div class="input-group"> <input type="text" class="form-control" id="agentId" ng-model="agentId" readonly="readonly"> <span class="input-group-addon" gdb-tooltip="{{ \'ttyg.agent.external_integration_config_modal.copy_tooltip\' | translate }}"> <copy-to-clipboard text-to-copy="{{agentId}}" success-message="{{ \'ttyg.agent.external_integration_config_modal.agent_copied_tooltip\' | translate }}"> </copy-to-clipboard> </span> </div> </div> <div class="form-group"> <label for="queryMethods" class="control-label"> {{ \'ttyg.agent.external_integration_config_modal.query_methods\' | translate }} </label> <div class="input-group"> <input type="text" class="form-control" id="queryMethods" ng-model="queryMethods" readonly="readonly"> <span class="input-group-addon" gdb-tooltip="{{ \'ttyg.agent.external_integration_config_modal.copy_tooltip\' | translate }}"> <copy-to-clipboard text-to-copy="{{queryMethods}}" success-message="{{ \'ttyg.agent.external_integration_config_modal.openAPI_copied_tooltip\' | translate }}"> </copy-to-clipboard> </span> </div> </div> <div class="form-group"> <label for="difyExtension" class="control-label"> {{ \'ttyg.agent.external_integration_config_modal.dify_extension\' | translate }} </label> <div class="input-group"> <input type="text" class="form-control" id="difyExtension" ng-model="difyExtension" readonly="readonly"> <span class="input-group-addon" gdb-tooltip="{{ \'ttyg.agent.external_integration_config_modal.copy_tooltip\' | translate }}"> <copy-to-clipboard text-to-copy="{{difyExtension}}" success-message="{{ \'ttyg.agent.external_integration_config_modal.dify_extension_copied_tooltip\' | translate }}"> </copy-to-clipboard> </span> </div> </div> </form> </div> '}};
|
|
2
|
+
//# sourceMappingURL=34495.2a7b45477194d52af3e5.bundle.js.map
|
package/dist/{34495.be67c06c39909114bbe4.bundle.js.map → 34495.2a7b45477194d52af3e5.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"34495.
|
|
1
|
+
{"version":3,"file":"34495.2a7b45477194d52af3e5.bundle.js","mappings":"uJAGA,QAFW,qzE","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/external-integration-configuration-modal.css?v=3.2.0-TR3\" rel=\"stylesheet\"/> <div class=\"modal-header\"> <button type=\"button\" class=\"close\" ng-click=\"close()\"></button> <h4 class=\"modal-title\">{{'ttyg.agent.external_integration_config_modal.title' | translate}}</h4> </div> <div class=\"modal-body\"> <h6 class=\"modal-title\"> {{ 'ttyg.agent.external_integration_config_modal.label' | translate:{agentName: agentName} }} </h6> <form class=\"form-horizontal\"> <div class=\"form-group\"> <label for=\"agentId\" class=\"control-label\"> {{ 'ttyg.agent.external_integration_config_modal.agent_id_label' | translate }} </label> <div class=\"input-group\"> <input type=\"text\" class=\"form-control\" id=\"agentId\" ng-model=\"agentId\" readonly=\"readonly\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{ 'ttyg.agent.external_integration_config_modal.copy_tooltip' | translate }}\"> <copy-to-clipboard text-to-copy=\"{{agentId}}\" success-message=\"{{ 'ttyg.agent.external_integration_config_modal.agent_copied_tooltip' | translate }}\"> </copy-to-clipboard> </span> </div> </div> <div class=\"form-group\"> <label for=\"queryMethods\" class=\"control-label\"> {{ 'ttyg.agent.external_integration_config_modal.query_methods' | translate }} </label> <div class=\"input-group\"> <input type=\"text\" class=\"form-control\" id=\"queryMethods\" ng-model=\"queryMethods\" readonly=\"readonly\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{ 'ttyg.agent.external_integration_config_modal.copy_tooltip' | translate }}\"> <copy-to-clipboard text-to-copy=\"{{queryMethods}}\" success-message=\"{{ 'ttyg.agent.external_integration_config_modal.openAPI_copied_tooltip' | translate }}\"> </copy-to-clipboard> </span> </div> </div> <div class=\"form-group\"> <label for=\"difyExtension\" class=\"control-label\"> {{ 'ttyg.agent.external_integration_config_modal.dify_extension' | translate }} </label> <div class=\"input-group\"> <input type=\"text\" class=\"form-control\" id=\"difyExtension\" ng-model=\"difyExtension\" readonly=\"readonly\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{ 'ttyg.agent.external_integration_config_modal.copy_tooltip' | translate }}\"> <copy-to-clipboard text-to-copy=\"{{difyExtension}}\" success-message=\"{{ 'ttyg.agent.external_integration_config_modal.dify_extension_copied_tooltip' | translate }}\"> </copy-to-clipboard> </span> </div> </div> </form> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_id__=36633;export const __webpack_ids__=[36633];export const __webpack_modules__={36633:(t,s,e)=>{e.r(s),e.d(s,{CHAT_MESSAGE_ROLE:()=>a,ChatMessageModel:()=>i});class i{constructor(t){this._id=t.id,this._role=t.role,this._message=t.message,this._timestamp=1e3*t.timestamp,this.tokenUsageInfo=t.tokenUsageInfo,this._isTerminalState=t.isTerminalState,this._status=t.status}addToChatAnswer(t){t.messages=[this]}get id(){return this._id}set id(t){this._id=t}get role(){return this._role}set role(t){this._role=t}get message(){return this._message}set message(t){this._message=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get isTerminalState(){return this._isTerminalState}set isTerminalState(t){this._isTerminalState=t}get status(){return this._status}set status(t){this._status=t}}const a={USER:"user",ASSISTANT:"assistant"}}};
|
|
2
|
+
//# sourceMappingURL=36633.eba4270db7fdcf1aad4c.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"36633.eba4270db7fdcf1aad4c.bundle.js","mappings":"wLAAO,MAAMA,EACTC,WAAAA,CAAYC,GAKRC,KAAKC,IAAMF,EAAKG,GAKhBF,KAAKG,MAAQJ,EAAKK,KAKlBJ,KAAKK,SAAWN,EAAKO,QAKrBN,KAAKO,WAA8B,IAAjBR,EAAKS,UAQvBR,KAAKS,eAAiBV,EAAKU,eAM3BT,KAAKU,iBAAmBX,EAAKY,gBAM7BX,KAAKY,QAAUb,EAAKc,MACxB,CAMAC,eAAAA,CAAgBC,GACZA,EAAWC,SAAW,CAAChB,KAC3B,CAEA,MAAIE,GACA,OAAOF,KAAKC,GAChB,CAEA,MAAIC,CAAGe,GACHjB,KAAKC,IAAMgB,CACf,CAEA,QAAIb,GACA,OAAOJ,KAAKG,KAChB,CAEA,QAAIC,CAAKa,GACLjB,KAAKG,MAAQc,CACjB,CAEA,WAAIX,GACA,OAAON,KAAKK,QAChB,CAEA,WAAIC,CAAQW,GACRjB,KAAKK,SAAWY,CACpB,CAEA,aAAIT,GACA,OAAOR,KAAKO,UAChB,CAEA,aAAIC,CAAUS,GACVjB,KAAKO,WAAaU,CACtB,CAEA,mBAAIN,GACA,OAAOX,KAAKU,gBAChB,CAEA,mBAAIC,CAAgBM,GAChBjB,KAAKU,iBAAmBO,CAC5B,CAEA,UAAIJ,GACA,OAAOb,KAAKY,OAChB,CAEA,UAAIC,CAAOI,GACPjB,KAAKY,QAAUK,CACnB,EAGG,MAAMC,EAAoB,CAC7BC,KAAM,OACNC,UAAW,Y","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-message.js"],"sourcesContent":["export class ChatMessageModel {\n constructor(data) {\n\n /**\n * @type {string}\n */\n this._id = data.id;\n\n /**\n * @type @type {string} - A value from {@link CHAT_MESSAGE_ROLE}, determining the owner of the message (e.g., user, assistant).\n */\n this._role = data.role;\n\n /**\n * @type {string}\n */\n this._message = data.message;\n\n /**\n * @type {number}\n */\n this._timestamp = data.timestamp * 1000;\n\n /**\n * Holds information about the number of tokens used for this answer, including prompt and completion tokens.\n * It is applicable only to the assistant role ({@link CHAT_MESSAGE_ROLE#ASSISTANT}).\n *\n * @type {TokenUsageInfo}\n */\n this.tokenUsageInfo = data.tokenUsageInfo;\n\n /**\n * If the message was terminated via the Abort button\n * @type {boolean}\n */\n this._isTerminalState = data.isTerminalState;\n\n /**\n * Reason for cancellation.\n * @private {string}\n */\n this._status = data.status\n }\n\n /**\n * Updates the chatAnswer.messages array with this message instance.\n * @param {ChatAnswerModel} chatAnswer - The answer object containing the messages.\n */\n addToChatAnswer(chatAnswer) {\n chatAnswer.messages = [this];\n }\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this._id = value;\n }\n\n get role() {\n return this._role;\n }\n\n set role(value) {\n this._role = value;\n }\n\n get message() {\n return this._message;\n }\n\n set message(value) {\n this._message = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get isTerminalState() {\n return this._isTerminalState;\n }\n\n set isTerminalState(value) {\n this._isTerminalState = value;\n }\n\n get status() {\n return this._status;\n }\n\n set status(value) {\n this._status = value;\n }\n}\n\nexport const CHAT_MESSAGE_ROLE = {\n USER: 'user',\n ASSISTANT: 'assistant'\n};\n"],"names":["ChatMessageModel","constructor","data","this","_id","id","_role","role","_message","message","_timestamp","timestamp","tokenUsageInfo","_isTerminalState","isTerminalState","_status","status","addToChatAnswer","chatAnswer","messages","value","CHAT_MESSAGE_ROLE","USER","ASSISTANT"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_id__=36665;export const __webpack_ids__=[14702,36665,45458,51490,64871,87252,89358,92561,96089];export const __webpack_modules__={14702:(t,e,s)=>{s.r(e),s.d(e,{agentInstructionsExplainMapper:()=>n});var a=s(89358);const n=t=>t?t.map(t=>new a.AgentInstructionsExplain(t)):new a.AgentInstructionsExplainList([])},19402:(t,e,s)=>{s.r(e),s.d(e,{ChatByDayModel:()=>r,ChatModel:()=>i,ChatsListModel:()=>o});var a=s(63415),n=s(93135);class i{static getNewChat(){const t={name:"· · ·",timestamp:Math.floor(Date.now()/1e3),new:!0};return new i(t,(0,n.md5HashGenerator)())}constructor(t,e){this.hashGenerator=e,this._id=t.id,this._name=t.name,this._timestamp=t.timestamp,this._chatHistory=t.chatHistory||new a.ChatItemsListModel,this._new=void 0!==t.new&&t.new,this.hash=this.generateHash()}isNew(){return this._new}set new(t){this._new=t}generateHash(){return this.hashGenerator(JSON.stringify(this))}get id(){return this._id}set id(t){this._id=t}get name(){return this._name}set name(t){this.generateHash(),this._name=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get chatHistory(){return this._chatHistory}set chatHistory(t){this._chatHistory=t||new a.ChatItemsListModel}toRenameRequestPayload(){return{name:this._name}}}class r{constructor(t){this._day=t.day,this._timestamp=t.timestamp,this._chats=t.chats}get day(){return this._day}set day(t){this._day=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get chats(){return this._chats}set chats(t){this._chats=t}}class o{constructor(t){this._chats=t||[],this._chatsByDay=[],this.sortByTime(),this.updateChatsByDay()}containsNewChats(){return this._chats.some(t=>t.isNew())}sortByTime(){this._chats.sort((t,e)=>e.timestamp-t.timestamp)}updateChatTimestamp(t,e){const s=this._chats.find(e=>e.id===t);s&&(s.timestamp=e,this.sortByTime(),this.updateChatsByDay())}setChatAsOld(t){const e=this._chats.find(e=>e.id===t);e&&(e.new=!1)}updateChatName(t,e){const s=this._chats.find(e=>e.id===t);s&&(s.name=e)}deleteChat(t){this._chats=this._chats.filter(e=>e.id!==t.id),this.sortByTime(),this.updateChatsByDay()}updateChatsByDay(){this._chatsByDay=[],this._chats.forEach(t=>{const e=new Date(1e3*t.timestamp).toDateString(),s=this._chatsByDay.find(t=>t.day===e);s?s.chats.push(t):this._chatsByDay.push(new r({day:e,timestamp:1e3*t.timestamp,chats:[t]}))})}appendChat(t){this._chats.push(t),this.sortByTime(),this.updateChatsByDay()}replaceChat(t,e){this._chats=this._chats.map(s=>s.id===e.id?t:s),this.sortByTime(),this.updateChatsByDay()}isEmpty(){return 0===this._chats.length}getFirstChat(){return this._chats[0]}deselectAll(){this._chats.forEach(t=>{t.selected=!1})}selectChat(t){this.deselectAll(),this._chats.forEach(e=>{e.selected=e.id===t.id})}getChat(t){return this._chats.find(e=>e.id===t)}getNonPersistedChat(){return this._chats.find(t=>!t.id)}renameChat(t){const e=this._chats.find(e=>e.id===t.id);e&&(e.name=t.name)}get chats(){return this._chats}set chats(t){this._chats=t}get chatsByDay(){return this._chatsByDay}set chatsByDay(t){this._chatsByDay=t}}},36665:(t,e,s)=>{s.r(e);var a=s(85609),n=(s(96089),s(85788)),i=s(51490),r=s(92561),o=s(14702);function h(t,e){return{createChat:e=>t.createChat(e).then(t=>t.data.conversationId),getConversation:e=>t.getConversation(e).then(t=>(0,a.chatModelMapper)(t.data)),renameConversation:e=>t.renameConversation(e.id,e.toRenameRequestPayload()).then(t=>(0,a.chatModelMapper)(t.data)),exportConversation:e=>t.exportConversation(e).then(function(t){const e=t.data,s=t.headers()["content-disposition"];let a="chat-export";return s&&(a=s.split("filename=")[1],a=a.substring(0,a.length)),{data:e,filename:a}}),askQuestion:e=>t.askQuestion(e.toAskRequestPayload()).then(t=>(0,n.chatAnswerModelMapper)(t.data)),continueChatRun:e=>{const s=e.toContinueRunRequestPayload();return t.continueChatRun(s).then(t=>(0,n.chatAnswerModelMapper)(t.data))},getConversations:(e,s)=>t.getConversations().then(t=>(0,a.chatsListMapper)(t.data)),deleteConversation:e=>t.deleteConversation(e),createConversation:e=>t.createConversation(e.toCreateChatRequestPayload()).then(t=>(0,n.chatAnswerModelMapper)(t.data)),cancelPendingQuestion:e=>t.cancelPendingQuestion(e),getAgents:()=>{const s=e.getLocalReadablGraphdbRepositoryIds();return t.getAgents().then(t=>(0,i.agentListMapper)(t.data,s))},getAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.getAgent(s).then(t=>(0,i.agentModelMapper)(t.data,a))},createAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.createAgent(s).then(t=>(0,i.agentModelMapper)(t.data,a))},editAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.editAgent(s).then(t=>(0,i.agentModelMapper)(t.data,a))},deleteAgent:e=>t.deleteAgent(e),explainResponse:(e,s)=>t.explainResponse(e.toExplainResponsePayload(s)).then(t=>(0,r.explainResponseMapper)(t.data)),getDefaultAgent:()=>{const s=e.getLocalReadablGraphdbRepositoryIds();return t.getAgentDefaultValues().then(t=>(0,i.agentModelMapper)(t.data,s))},explainAgentSettings:e=>t.explainAgentSettings(e).then(t=>(0,o.agentInstructionsExplainMapper)(t.data))}}angular.module("graphdb.framework.core.services.ttyg-service",["graphdb.framework.rest.ttyg.service"]).factory("TTYGService",h),h.$inject=["TTYGRestService","$repositories"]},45458:(t,e,s)=>{s.r(e),s.d(e,{ChatAnswerModel:()=>a,ContinueChatRun:()=>n});class a{constructor(t={}){this._chatId=t.chatId,this._chatName=t.chatName||"",this._timestamp=t.timestamp,this._messages=t.messages||[],this._continueRunId=t.continueRunId,this.tokenUsageInfo=t.tokenUsageInfo}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get chatName(){return this._chatName}set chatName(t){this._chatName=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get messages(){return this._messages}set messages(t){this._messages=t}get continueRunId(){return this._continueRunId}set continueRunId(t){this._continueRunId=t}}class n{constructor(t,e){this._chatItem=t,this._runId=e}get chatId(){return this._chatItem.chatId}toContinueRunRequestPayload(){return{conversationId:this.chatId,runId:this._runId,agentId:this._chatItem.agentId,tzOffset:-(new Date).getTimezoneOffset()}}}},51490:(t,e,s)=>{s.r(e),s.d(e,{agentFormModelMapper:()=>h,agentListMapper:()=>u,agentModelMapper:()=>l});var a=s(28319),n=s(23283),i=s(38940),r=s(93135),o=s(70826);const h=(t,e,s)=>{if(!t)return;const i=new n.AgentFormModel;return i.id=t.id||e.id,i.name=t.name||e.name,i.repositoryId=t.repositoryId||e.repositoryId,i.model=t.model||e.model,i.contextSize=t.contextSize||e.contextSize,i.contextSizeCopy=e.contextSize,i.temperature.value=void 0!==t.temperature?t.temperature:e.temperature,i.topP.value=void 0!==t.topP?t.topP:e.topP,i.seed=t.seed||e.seed,i.instructions=d(t.instructions,e.instructions),c(i,s,e.assistantExtractionMethods,t.assistantExtractionMethods),function(t,e,s){if(!t)return;const i=t.map(s=>{let i={method:s.method||e.method,expanded:s.expanded||e.expanded};return s.method!==a.AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH&&s.method!==a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH||(i.selected=t.some(t=>t.method===s.method)),s.method===a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH&&(i.maxNumberOfResultsPerCall=s._maxNumberOfResultsPerCall||e.maxNumberOfResultsPerCall),new n.AdditionalExtractionMethodFormModel(i)});s.additionalExtractionMethods.setAdditionalExtractionMethod(i)}(t.additionalExtractionMethods,e.additionalExtractionMethods,i),i},d=(t,e)=>{if(!t&&!e)return;const s=t&&t.systemInstruction||e.systemInstruction,a=t&&t.userInstruction||e.userInstruction;return new n.AgentInstructionsFormModel({systemInstruction:s,userInstruction:a,defaultSystemInstruction:e.systemInstruction,defaultUserInstruction:e.userInstruction})},c=(t,e,s,a=[])=>{const r=s.filter(t=>!a.some(e=>e.method===t.method)),h=s.find(t=>"sparql_search"===t.method);[...a,...r].forEach(s=>{const r=a.some(t=>t.method===s.method);let d="";r&&"sparql_search"===s.method&&(o.AGENT_OPERATION.CREATE===e?d="":s.sparqlQuery?d="sparqlQuery":s.ontologyGraph&&(d="ontologyGraph"));const c=e===o.AGENT_OPERATION.EDIT||e===o.AGENT_OPERATION.CLONE,u=new n.ExtractionMethodFormModel({selected:c&&r,method:s.method,sparqlOption:d,ontologyGraph:s.ontologyGraph||h.ontologyGraph,addMissingNamespaces:s.addMissingNamespaces,sparqlQuery:new i.TextFieldModel({value:s.sparqlQuery||h.sparqlQuery,minLength:1,maxLength:2380}),similarityIndex:s.similarityIndex,similarityIndexThreshold:s.similarityIndexThreshold&&new i.NumericRangeModel({value:s.similarityIndexThreshold,minValue:0,maxValue:1,step:.1}),maxNumberOfTriplesPerCall:0===s.maxNumberOfTriplesPerCall?null:s.maxNumberOfTriplesPerCall,queryTemplate:s.queryTemplate&&new i.TextFieldModel({value:s.queryTemplate,minLength:1,maxLength:2380}),retrievalConnectorInstance:s.retrievalConnectorInstance});t.assistantExtractionMethods.setExtractionMethod(u)})},u=(t,e)=>{if(!t)return new a.AgentListModel;const s=t.map(t=>l(t,e));return new a.AgentListModel(s)},l=(t,e)=>{if(!t)return;const s=(0,r.md5HashGenerator)();return new a.AgentModel({id:t.id,name:t.name,repositoryId:t.repositoryId,isRepositoryDeleted:!e.includes(t.repositoryId),model:t.model,contextSize:"openai-assistants"===t.api?null:t.contextSize,temperature:t.temperature,topP:t.topP,seed:t.seed,instructions:y(t.instructions),assistantExtractionMethods:m(t.assistantExtractionMethods),additionalExtractionMethods:g(t.additionalExtractionMethods),compatibility:t.compatibility},s)},m=t=>{if(t)return t.map(t=>p(t))},p=t=>{if(t)return new a.ExtractionMethodModel({method:t.method,ontologyGraph:t.ontologyGraph,addMissingNamespaces:t.addMissingNamespaces,sparqlQuery:t.sparqlQuery,similarityIndex:t.similarityIndex,similarityIndexThreshold:t.similarityIndexThreshold,maxNumberOfTriplesPerCall:t.maxNumberOfTriplesPerCall,queryTemplate:t.queryTemplate,retrievalConnectorInstance:t.retrievalConnectorInstance})},g=t=>{if(t)return t.map(t=>_(t))},_=t=>{if(t)return t.method===a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH?new a.AdditionalExtractionMethodModel({method:t.method,maxNumberOfResultsPerCall:t.limit||0}):t.method===a.AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH?new a.AdditionalExtractionMethodModel({method:t.method}):void 0},y=t=>{if(t)return new a.AgentInstructionsModel({systemInstruction:t.systemInstruction,userInstruction:t.userInstruction})}},63415:(t,e,s)=>{s.r(e),s.d(e,{ChatItemModel:()=>n,ChatItemsListModel:()=>i});var a=s(36633);class n{constructor(t,e){this._chatId=t,this._agentId=void 0,this._question=e,this._answers=[]}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get agentId(){return this._agentId}set agentId(t){this._agentId=t}get question(){return this._question}set question(t){this._question=t}get answers(){return this._answers}set answers(t){this._answers=t}setQuestionMessage(t){this._question||(this._question=new a.ChatMessageModel({role:a.CHAT_MESSAGE_ROLE.USER})),this._question.message=t}getQuestionMessage(){return this._question.message}toCreateChatRequestPayload(){return{agentId:this._agentId,question:this._question.message}}toAskRequestPayload(){return{conversationId:this._chatId,agentId:this._agentId,question:this._question.message,tzOffset:-(new Date).getTimezoneOffset()}}toExplainResponsePayload(t){return{conversationId:this._chatId,answerId:t}}}class i{constructor(t=[]){this._items=t}isEmpty(){return 0===this._items.length}appendItem(t){this._items.push(t)}get items(){return this._items}set items(t){this._items=t||[]}getLast(){if(!this.isEmpty())return this._items[this._items.length-1]}}},85609:(t,e,s)=>{s.r(e),s.d(e,{chatModelMapper:()=>d,chatsListMapper:()=>h});var a=s(19402),n=s(93135),i=s(85788),r=s(63415);const o=(0,n.md5HashGenerator)(),h=t=>{if(!t)return new a.ChatsListModel;const e=t.map(t=>d(t));return new a.ChatsListModel(e)},d=t=>{if(t)return new a.ChatModel({id:t.id,name:t.name,timestamp:t.timestamp,chatHistory:t.messages&&t.messages.length?(0,i.chatItemsModelMapper)(t.messages):new r.ChatItemsListModel},o)}},85788:(t,e,s)=>{s.r(e),s.d(e,{chatAnswerModelMapper:()=>d,chatItemsModelMapper:()=>o,chatMessageModelListMapper:()=>r,chatMessageModelMapper:()=>h});var a=s(36633),n=s(63415),i=s(45458);const r=t=>t?t.map(t=>h(t)):[],o=(t=[])=>{const e=[];let s;return t.forEach(t=>{const i=t.conversationId;a.CHAT_MESSAGE_ROLE.USER===t.role?(s&&e.push(s),s=new n.ChatItemModel(i,h(t))):(s||(s=new n.ChatItemModel(i,null)),s.answers.push(h(t)),s.agentId=t.agentId)}),s&&e.push(s),new n.ChatItemsListModel(e)},h=t=>{if(t)return new a.ChatMessageModel({id:t.id,role:t.role,message:t.message,timestamp:t.timestamp,tokenUsageInfo:t.usage,data:t,isTerminalState:t.isTerminalState,status:t.terminalStatusCode})},d=t=>{if(t)return new i.ChatAnswerModel({chatId:t.id,chatName:t.name,timestamp:t.timestamp,messages:r(t.messages),continueRunId:t.continueRunId,tokenUsageInfo:t.usage})}},87252:(t,e,s)=>{s.r(e),s.d(e,{ExplainQueryMethodModel:()=>i,ExplainQueryMethodsListModel:()=>n,ExplainQueryType:()=>r,ExplainResponseModel:()=>a});class a{constructor(t={}){this._chatId=t.chatId,this._answerId=t.answerId,this._queryMethods=t.queryMethods,this._expanded=void 0===t.expanded||t.expanded}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get answerId(){return this._answerId}set answerId(t){this._answerId=t}get queryMethods(){return this._queryMethods}set queryMethods(t){this._queryMethods=t}get expanded(){return this._expanded}set expanded(t){this._expanded=t}}class n{constructor(t=[]){this._items=t}get items(){return this._items}set items(t){this._items=t}}class i{constructor(t={}){this._name=t.name,this._rawQuery=t.rawQuery,this._query=t.query,this._queryType=t.queryType,this._errorMessage=t.errorOutput}get name(){return this._name}set name(t){this._name=t}get rawQuery(){return this._rawQuery}set rawQuery(t){this._rawQuery=t}get query(){return this._query}set query(t){this._query=t}get queryType(){return this._queryType}set queryType(t){this._queryType=t}get errorMessage(){return this._errorMessage}set errorMessage(t){this._errorMessage=t}}const r={SPARQL:"sparql",JSON:"json",OTHER:"other"}},89358:(t,e,s)=>{s.r(e),s.d(e,{AgentInstructionsExplain:()=>a,AgentInstructionsExplainList:()=>n});class a{constructor(t){this._type=t.type,this._content=t.content,this._size=t.size}get size(){return this._size}set size(t){this._size=t}get content(){return this._content}set content(t){this._content=t}get type(){return this._type}set type(t){this._type=t}}class n{constructor(t){this._instructions=t.instructions}get instructions(){return this._instructions}set instructions(t){this._instructions=t}}},92561:(t,e,s)=>{s.r(e),s.d(e,{explainQueryMethodMapper:()=>r,explainQueryMethodsListMapper:()=>i,explainResponseMapper:()=>n});var a=s(87252);const n=t=>new a.ExplainResponseModel({chatId:t.conversationId,answerId:t.answerId,queryMethods:i(t.queryMethods)}),i=(t=[])=>new a.ExplainQueryMethodsListModel(t.map(r)),r=t=>new a.ExplainQueryMethodModel(t)},96089:(t,e,s)=>{s.r(e);var a=s(73964);angular.module("graphdb.framework.rest.ttyg.service",[]).factory("TTYGRestService",d),d.$inject=["$http"];const n="rest/chat/conversations",i="rest/chat/agents",r=`${n}/explain`,o="rest/chat/chats",h=!1;function d(t){const e=new a.TtygRestServiceFakeBackend;return{createChat:s=>h?e.createChat():t.post(o,s),getConversation:s=>h?e.getConversation(s):t.get(`${n}/${s}`),renameConversation:(s,a)=>h?e.renameConversation(s,a):t.put(`${n}/${s}`,a),exportConversation:s=>h?e.exportConversation(s):t.get(`${n}/export/${s}`,{responseType:"blob"}),askQuestion:s=>h?e.askQuestion(s):t.post(`${o}/question`,s),continueChatRun:s=>h?e.continueChatRun(s):t.post(`${n}/continue`,s),getConversations:()=>h?e.getConversations():t.get(n),deleteConversation:s=>h?e.deleteConversation(s):t.delete(`${n}/${s}`),createConversation:(s={})=>h?e.createConversation(s):t.post(n,s),cancelPendingQuestion:s=>h?e.cancelPendingQuestion(!1):t.post(`${o}/${s}/cancel`),getAgents:()=>h?e.getAgents():t.get(i),getAgent:s=>h?e.getAgent(s):t.get(`${i}/${s}`),createAgent:s=>h?e.createAgent(s):t.post(i,s),editAgent:s=>h?e.editAgent(s):t.put(`${i}`,s),deleteAgent:s=>h?e.deleteAgent(s):t.delete(`${i}/${s}`),explainResponse:(s={})=>h?e.explainResponse(s):t.post(r,s),getAgentDefaultValues:()=>h?e.getAgentDefaultValues():t.get(`${i}/default`),explainAgentSettings:s=>h?e.explainAgentSettings():t.post(`${i}/explain`,s)}}}};
|
|
2
|
+
//# sourceMappingURL=36665.19388ed0db6a1d64ad65.bundle.js.map
|