graphdb-workbench 3.1.0-TR12 → 3.1.0-TR13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/dist/{12396.fcc54d85460017a32ca1.bundle.js → 12396.a4cb05c47cf17cbfd891.bundle.js} +2 -2
  2. package/dist/{12396.fcc54d85460017a32ca1.bundle.js.map → 12396.a4cb05c47cf17cbfd891.bundle.js.map} +1 -1
  3. package/dist/{13486.58f89862c40c0f84cb09.bundle.js → 13486.b4c8bf17c522084e59fb.bundle.js} +2 -2
  4. package/dist/13486.b4c8bf17c522084e59fb.bundle.js.map +1 -0
  5. package/dist/13813.84b8832e83dec53d66b9.bundle.js +2 -0
  6. package/dist/13813.84b8832e83dec53d66b9.bundle.js.map +1 -0
  7. package/dist/{15535.4f5aebf06ef94d0d730c.bundle.js → 15535.aa936791f2b5dd74f7ee.bundle.js} +2 -2
  8. package/dist/{15535.4f5aebf06ef94d0d730c.bundle.js.map → 15535.aa936791f2b5dd74f7ee.bundle.js.map} +1 -1
  9. package/dist/{16162.93e0b5dcd33d9227fd60.bundle.js → 16162.dca58b88b4d145a7fcf7.bundle.js} +2 -2
  10. package/dist/{16162.93e0b5dcd33d9227fd60.bundle.js.map → 16162.dca58b88b4d145a7fcf7.bundle.js.map} +1 -1
  11. package/dist/{20287.c6714e25dfba36a7abff.bundle.js → 20287.22c94209c4a5b0aa569b.bundle.js} +2 -2
  12. package/dist/{20287.c6714e25dfba36a7abff.bundle.js.map → 20287.22c94209c4a5b0aa569b.bundle.js.map} +1 -1
  13. package/dist/{21136.92d89e72506eccad7d06.bundle.js → 21136.b0b60f89d0aecc146390.bundle.js} +2 -2
  14. package/dist/{21136.92d89e72506eccad7d06.bundle.js.map → 21136.b0b60f89d0aecc146390.bundle.js.map} +1 -1
  15. package/dist/{21142.3f3aa7d3ef22074e49a3.bundle.js → 21142.c1026a9490be83c3be64.bundle.js} +2 -2
  16. package/dist/{21142.3f3aa7d3ef22074e49a3.bundle.js.map → 21142.c1026a9490be83c3be64.bundle.js.map} +1 -1
  17. package/dist/{21170.43dc0783a81039cd2eca.bundle.js → 21170.4f1089c6ecb858d32307.bundle.js} +2 -2
  18. package/dist/{21170.43dc0783a81039cd2eca.bundle.js.map → 21170.4f1089c6ecb858d32307.bundle.js.map} +1 -1
  19. package/dist/{21195.e4da0e7735e18c1c24d7.bundle.js → 21195.4025ee868703a7826ae6.bundle.js} +2 -2
  20. package/dist/{21195.e4da0e7735e18c1c24d7.bundle.js.map → 21195.4025ee868703a7826ae6.bundle.js.map} +1 -1
  21. package/dist/24785.ff0689efffa1540e2904.bundle.js +2 -0
  22. package/dist/24785.ff0689efffa1540e2904.bundle.js.map +1 -0
  23. package/dist/25090.a073fc84568f38c40d67.bundle.js +2 -0
  24. package/dist/25090.a073fc84568f38c40d67.bundle.js.map +1 -0
  25. package/dist/{25747.5c8e79ac3088d275e4f6.bundle.js → 25747.d8d9c4a6472dddad834f.bundle.js} +2 -2
  26. package/dist/{25747.5c8e79ac3088d275e4f6.bundle.js.map → 25747.d8d9c4a6472dddad834f.bundle.js.map} +1 -1
  27. package/dist/{27580.70186989dfc08ef0506b.bundle.js → 27580.af47ce7d030e916c7a4e.bundle.js} +2 -2
  28. package/dist/{27580.70186989dfc08ef0506b.bundle.js.map → 27580.af47ce7d030e916c7a4e.bundle.js.map} +1 -1
  29. package/dist/{31636.4e5d6e986e990a12facf.bundle.js → 31636.fbeed6706183663eeee2.bundle.js} +2 -2
  30. package/dist/{31636.4e5d6e986e990a12facf.bundle.js.map → 31636.fbeed6706183663eeee2.bundle.js.map} +1 -1
  31. package/dist/{32489.ca36d6c8822d9a770a8b.bundle.js → 32489.fafc19e8e0eb964a3ec5.bundle.js} +2 -2
  32. package/dist/{32489.ca36d6c8822d9a770a8b.bundle.js.map → 32489.fafc19e8e0eb964a3ec5.bundle.js.map} +1 -1
  33. package/dist/34330.298b3fb714ce7fc0bda1.bundle.js +2 -0
  34. package/dist/34330.298b3fb714ce7fc0bda1.bundle.js.map +1 -0
  35. package/dist/{34495.7b0a4828632863d0fdd4.bundle.js → 34495.bcc635daf309f60ba23b.bundle.js} +2 -2
  36. package/dist/{34495.7b0a4828632863d0fdd4.bundle.js.map → 34495.bcc635daf309f60ba23b.bundle.js.map} +1 -1
  37. package/dist/36737.9d37e743918e6d45c10b.bundle.js +2 -0
  38. package/dist/36737.9d37e743918e6d45c10b.bundle.js.map +1 -0
  39. package/dist/{38360.1361bf281a19ba415d10.bundle.js → 38360.55d84891b7ad65b37108.bundle.js} +2 -2
  40. package/dist/{38360.1361bf281a19ba415d10.bundle.js.map → 38360.55d84891b7ad65b37108.bundle.js.map} +1 -1
  41. package/dist/{38644.d90ed562660e1bfeddd3.bundle.js → 38644.62bda02822616b30f0c7.bundle.js} +2 -2
  42. package/dist/{38644.d90ed562660e1bfeddd3.bundle.js.map → 38644.62bda02822616b30f0c7.bundle.js.map} +1 -1
  43. package/dist/{38843.297cc7a018bd4df634e8.bundle.js → 38843.28a56aadf139c5f83a07.bundle.js} +2 -2
  44. package/dist/{38843.297cc7a018bd4df634e8.bundle.js.map → 38843.28a56aadf139c5f83a07.bundle.js.map} +1 -1
  45. package/dist/39448.10bcf72a104ce8276328.bundle.js +2 -0
  46. package/dist/39448.10bcf72a104ce8276328.bundle.js.map +1 -0
  47. package/dist/{39518.8547d972593f8717ee28.bundle.js → 39518.24cdd6c870b5b026f43b.bundle.js} +2 -2
  48. package/dist/{39518.8547d972593f8717ee28.bundle.js.map → 39518.24cdd6c870b5b026f43b.bundle.js.map} +1 -1
  49. package/dist/{39539.9693149f20106d3b0884.bundle.js → 39539.cb091b6ad5074999b72d.bundle.js} +2 -2
  50. package/dist/{39539.9693149f20106d3b0884.bundle.js.map → 39539.cb091b6ad5074999b72d.bundle.js.map} +1 -1
  51. package/dist/{39874.6ca23ead080b52dc1bc6.bundle.js → 39874.ff510b958fcdbda4db58.bundle.js} +2 -2
  52. package/dist/39874.ff510b958fcdbda4db58.bundle.js.map +1 -0
  53. package/dist/4125.fd7946ca01aa51acba15.bundle.js +2 -0
  54. package/dist/4125.fd7946ca01aa51acba15.bundle.js.map +1 -0
  55. package/dist/{41453.f28b2cc3e8e80afc8871.bundle.js → 41453.b696ac82dcadda585f04.bundle.js} +2 -2
  56. package/dist/{41453.f28b2cc3e8e80afc8871.bundle.js.map → 41453.b696ac82dcadda585f04.bundle.js.map} +1 -1
  57. package/dist/{41621.d1b7d799116c07df17d1.bundle.js → 41621.68c5ebc2104a62e2b41d.bundle.js} +2 -2
  58. package/dist/41621.68c5ebc2104a62e2b41d.bundle.js.map +1 -0
  59. package/dist/{42129.64ead03391752af23325.bundle.js → 42129.f9f2bafc4520aad7f942.bundle.js} +2 -2
  60. package/dist/{42129.64ead03391752af23325.bundle.js.map → 42129.f9f2bafc4520aad7f942.bundle.js.map} +1 -1
  61. package/dist/42143.1483a9470e09485cc4e4.bundle.js +2 -0
  62. package/dist/42143.1483a9470e09485cc4e4.bundle.js.map +1 -0
  63. package/dist/{44444.77a79ddd001ef03216fc.bundle.js → 44444.153ba656276a2f1bfdc3.bundle.js} +2 -2
  64. package/dist/{44444.77a79ddd001ef03216fc.bundle.js.map → 44444.153ba656276a2f1bfdc3.bundle.js.map} +1 -1
  65. package/dist/{45843.49565fdfa9b426eeb208.bundle.js → 45843.2fb1782023f0992f82c1.bundle.js} +2 -2
  66. package/dist/{45843.49565fdfa9b426eeb208.bundle.js.map → 45843.2fb1782023f0992f82c1.bundle.js.map} +1 -1
  67. package/dist/51087.2e79fab6ad7c1282ee52.bundle.js +2 -0
  68. package/dist/51087.2e79fab6ad7c1282ee52.bundle.js.map +1 -0
  69. package/dist/{55862.9f799792bc876532e44f.bundle.js → 55862.88796a9db69e193b8b83.bundle.js} +2 -2
  70. package/dist/{55862.9f799792bc876532e44f.bundle.js.map → 55862.88796a9db69e193b8b83.bundle.js.map} +1 -1
  71. package/dist/57952.b096d19a802e06030ef0.bundle.js +2 -0
  72. package/dist/57952.b096d19a802e06030ef0.bundle.js.map +1 -0
  73. package/dist/{58306.2a9393e91eef386c5162.bundle.js → 58306.f76e839a5a73f4f4e23a.bundle.js} +2 -2
  74. package/dist/{58306.2a9393e91eef386c5162.bundle.js.map → 58306.f76e839a5a73f4f4e23a.bundle.js.map} +1 -1
  75. package/dist/{59718.f1ae3d1480c7179c57f0.bundle.js → 59718.dfd5982de2b39ccaa2ee.bundle.js} +2 -2
  76. package/dist/59718.dfd5982de2b39ccaa2ee.bundle.js.map +1 -0
  77. package/dist/67232.5a23ef1e641a2ca030c6.bundle.js +2 -0
  78. package/dist/67232.5a23ef1e641a2ca030c6.bundle.js.map +1 -0
  79. package/dist/{67888.da842e9221435c4ce47f.bundle.js → 67888.1537da0fa115fd7a2f06.bundle.js} +2 -2
  80. package/dist/{67888.da842e9221435c4ce47f.bundle.js.map → 67888.1537da0fa115fd7a2f06.bundle.js.map} +1 -1
  81. package/dist/68685.3ec66ceae3e494eba19b.bundle.js +2 -0
  82. package/dist/68685.3ec66ceae3e494eba19b.bundle.js.map +1 -0
  83. package/dist/{69112.817cf7b4d2911108c736.bundle.js → 69112.82e4d57df53e40b54050.bundle.js} +2 -2
  84. package/dist/69112.82e4d57df53e40b54050.bundle.js.map +1 -0
  85. package/dist/{70938.aee60e09777981a03d4c.bundle.js → 70938.fd6dd4e05b512128a074.bundle.js} +2 -2
  86. package/dist/{70938.aee60e09777981a03d4c.bundle.js.map → 70938.fd6dd4e05b512128a074.bundle.js.map} +1 -1
  87. package/dist/{72379.6eecf9bfd4bd4c65b659.bundle.js → 72379.207930bac55b212354ae.bundle.js} +2 -2
  88. package/dist/{72379.6eecf9bfd4bd4c65b659.bundle.js.map → 72379.207930bac55b212354ae.bundle.js.map} +1 -1
  89. package/dist/{73667.942b41c1d4ad078e2a6a.bundle.js → 73667.f42971a7477d6744c54c.bundle.js} +2 -2
  90. package/dist/{73667.942b41c1d4ad078e2a6a.bundle.js.map → 73667.f42971a7477d6744c54c.bundle.js.map} +1 -1
  91. package/dist/{73793.67628222a731868e5ddc.bundle.js → 73793.adf7b10d53a8ee7fa07c.bundle.js} +2 -2
  92. package/dist/{73793.67628222a731868e5ddc.bundle.js.map → 73793.adf7b10d53a8ee7fa07c.bundle.js.map} +1 -1
  93. package/dist/74106.f94ca66e9fc021789d6a.bundle.js +2 -0
  94. package/dist/74106.f94ca66e9fc021789d6a.bundle.js.map +1 -0
  95. package/dist/{75282.eae2387932c55dc997e3.bundle.js → 75282.f097da30576bae97c906.bundle.js} +2 -2
  96. package/dist/{75282.eae2387932c55dc997e3.bundle.js.map → 75282.f097da30576bae97c906.bundle.js.map} +1 -1
  97. package/dist/{75849.f5d1a50a8b03fb10008f.bundle.js → 75849.9c78b9889eccbaee7ae0.bundle.js} +2 -2
  98. package/dist/{75849.f5d1a50a8b03fb10008f.bundle.js.map → 75849.9c78b9889eccbaee7ae0.bundle.js.map} +1 -1
  99. package/dist/{78250.52061302438b3c0323d3.bundle.js → 78250.9f4b0c688bdb06967ed6.bundle.js} +2 -2
  100. package/dist/{78250.52061302438b3c0323d3.bundle.js.map → 78250.9f4b0c688bdb06967ed6.bundle.js.map} +1 -1
  101. package/dist/79329.69815208f7a0b1678dc2.bundle.js +2 -0
  102. package/dist/79329.69815208f7a0b1678dc2.bundle.js.map +1 -0
  103. package/dist/{82926.32c69a801c99f029c69f.bundle.js → 82926.ce06c4bb3d76b9fe5fa9.bundle.js} +2 -2
  104. package/dist/{82926.32c69a801c99f029c69f.bundle.js.map → 82926.ce06c4bb3d76b9fe5fa9.bundle.js.map} +1 -1
  105. package/dist/86142.3f4acbd124c99af11e48.bundle.js +2 -0
  106. package/dist/86142.3f4acbd124c99af11e48.bundle.js.map +1 -0
  107. package/dist/86639.5584db5b403656b75ad4.bundle.js +2 -0
  108. package/dist/86639.5584db5b403656b75ad4.bundle.js.map +1 -0
  109. package/dist/89695.9a36bd7b51d76634b902.bundle.js +2 -0
  110. package/dist/89695.9a36bd7b51d76634b902.bundle.js.map +1 -0
  111. package/dist/{9062.8a9659bd978a5ac7a1e2.bundle.js → 9062.91ba683ec5a6cb53c23f.bundle.js} +2 -2
  112. package/dist/{9062.8a9659bd978a5ac7a1e2.bundle.js.map → 9062.91ba683ec5a6cb53c23f.bundle.js.map} +1 -1
  113. package/dist/94519.1b7b699d10f1278380c3.bundle.js +2 -0
  114. package/dist/94519.1b7b699d10f1278380c3.bundle.js.map +1 -0
  115. package/dist/{95953.f930b9ba889a452ca771.bundle.js → 95953.4ea6a7c68a22779ba299.bundle.js} +2 -2
  116. package/dist/95953.4ea6a7c68a22779ba299.bundle.js.map +1 -0
  117. package/dist/98860.5ade579c8f05a0df416b.bundle.js +2 -0
  118. package/dist/98860.5ade579c8f05a0df416b.bundle.js.map +1 -0
  119. package/dist/{99448.66df63e0704114d6127a.bundle.js → 99448.b2524aa8fdf2f3aee82a.bundle.js} +2 -2
  120. package/dist/{99448.66df63e0704114d6127a.bundle.js.map → 99448.b2524aa8fdf2f3aee82a.bundle.js.map} +1 -1
  121. package/dist/api/ontotext-workbench-api.js +1 -1
  122. package/dist/api/ontotext-workbench-api.js.map +1 -1
  123. package/dist/css/ttyg/agent-settings-modal.css +1 -1
  124. package/dist/i18n/locale-en.json +1 -0
  125. package/dist/i18n/locale-fr.json +1 -0
  126. package/dist/index.html +8 -8
  127. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  128. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  129. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  130. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  131. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  132. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  133. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  134. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  135. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  136. package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
  137. package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
  138. package/dist/js/angular/core/templates/search-resource-input.html +1 -1
  139. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
  140. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  141. package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
  142. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  143. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  144. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  145. package/dist/js/angular/security/templates/user.html +2 -2
  146. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  147. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  148. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  149. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  150. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  151. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  152. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +4 -3
  153. package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
  154. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  155. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  156. package/dist/{legacyWorkbench.a918490fca19fd205bef.js → legacyWorkbench.c5245455051fd0bab730.js} +3 -3
  157. package/dist/{legacyWorkbench.a918490fca19fd205bef.js.map → legacyWorkbench.c5245455051fd0bab730.js.map} +1 -1
  158. package/dist/{main.5a06ce3271fcd9cb93e7.js → main.fa0b99f721588e894d1d.js} +3 -3
  159. package/dist/{main.5a06ce3271fcd9cb93e7.js.map → main.fa0b99f721588e894d1d.js.map} +1 -1
  160. package/dist/pages/aclmanagement.html +2 -2
  161. package/dist/pages/autocomplete.html +1 -1
  162. package/dist/pages/choose-repository-type.html +1 -1
  163. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  164. package/dist/pages/create-index.html +1 -1
  165. package/dist/pages/dependencies.html +1 -1
  166. package/dist/pages/domainRangeInfo.html +2 -2
  167. package/dist/pages/edit.html +1 -1
  168. package/dist/pages/explore.html +1 -1
  169. package/dist/pages/export.html +1 -1
  170. package/dist/pages/find.html +1 -1
  171. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  172. package/dist/pages/graphs-visualizations.html +7 -7
  173. package/dist/pages/guides.html +1 -1
  174. package/dist/pages/import.html +2 -2
  175. package/dist/pages/jdbc-create.html +1 -1
  176. package/dist/pages/login.html +1 -1
  177. package/dist/pages/monitor/backup-and-restore.html +1 -1
  178. package/dist/pages/monitor/queries.html +1 -1
  179. package/dist/pages/monitor/resources.html +1 -1
  180. package/dist/pages/namespaces.html +2 -2
  181. package/dist/pages/plugins.html +1 -1
  182. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  183. package/dist/pages/rdfrank.html +2 -2
  184. package/dist/pages/repositories.html +1 -1
  185. package/dist/pages/repository.html +1 -1
  186. package/dist/pages/similarity-indexes.html +1 -1
  187. package/dist/pages/sparql-editor.html +1 -1
  188. package/dist/pages/sparql-template-create.html +1 -1
  189. package/dist/pages/ux-test1.html +2 -2
  190. package/dist/pages/webapi.html +2 -2
  191. package/dist/plugins.js +1 -1
  192. package/dist/res/swagger5/index.html +11 -11
  193. package/dist/shared-components/cjs/onto-layout.cjs.entry.js +1 -1
  194. package/dist/shared-components/cjs/onto-layout.cjs.entry.js.map +1 -1
  195. package/dist/shared-components/cjs/onto-layout.entry.cjs.js.map +1 -1
  196. package/dist/shared-components/collection/components/onto-layout/onto-layout.js +1 -1
  197. package/dist/shared-components/collection/components/onto-layout/onto-layout.js.map +1 -1
  198. package/dist/shared-components/esm/onto-layout.entry.js +1 -1
  199. package/dist/shared-components/esm/onto-layout.entry.js.map +1 -1
  200. package/dist/shared-components/shared-components/onto-layout.entry.esm.js.map +1 -1
  201. package/dist/shared-components/shared-components/p-504c7e8e.entry.js +1 -0
  202. package/dist/shared-components/shared-components/p-504c7e8e.entry.js.map +1 -0
  203. package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
  204. package/package.json +1 -1
  205. package/dist/13486.58f89862c40c0f84cb09.bundle.js.map +0 -1
  206. package/dist/13813.a49f3fcf17ecd10c738e.bundle.js +0 -2
  207. package/dist/13813.a49f3fcf17ecd10c738e.bundle.js.map +0 -1
  208. package/dist/24785.07db24a70db7d20d268a.bundle.js +0 -2
  209. package/dist/24785.07db24a70db7d20d268a.bundle.js.map +0 -1
  210. package/dist/25090.8336e69433235ea3dfc6.bundle.js +0 -2
  211. package/dist/25090.8336e69433235ea3dfc6.bundle.js.map +0 -1
  212. package/dist/34330.a2a4211b14d118bd4c03.bundle.js +0 -2
  213. package/dist/34330.a2a4211b14d118bd4c03.bundle.js.map +0 -1
  214. package/dist/36737.0f3e0ff6942f79d49804.bundle.js +0 -2
  215. package/dist/36737.0f3e0ff6942f79d49804.bundle.js.map +0 -1
  216. package/dist/39448.a6ec42f0d72642fe9ee9.bundle.js +0 -2
  217. package/dist/39448.a6ec42f0d72642fe9ee9.bundle.js.map +0 -1
  218. package/dist/39874.6ca23ead080b52dc1bc6.bundle.js.map +0 -1
  219. package/dist/4125.28d3c85c122f270c9b2c.bundle.js +0 -2
  220. package/dist/4125.28d3c85c122f270c9b2c.bundle.js.map +0 -1
  221. package/dist/41621.d1b7d799116c07df17d1.bundle.js.map +0 -1
  222. package/dist/42143.87a6b0a089da7a2318dd.bundle.js +0 -2
  223. package/dist/42143.87a6b0a089da7a2318dd.bundle.js.map +0 -1
  224. package/dist/51087.8bc01b7861b40bc7082d.bundle.js +0 -2
  225. package/dist/51087.8bc01b7861b40bc7082d.bundle.js.map +0 -1
  226. package/dist/57952.afa9e0608388e5bae876.bundle.js +0 -2
  227. package/dist/57952.afa9e0608388e5bae876.bundle.js.map +0 -1
  228. package/dist/59718.f1ae3d1480c7179c57f0.bundle.js.map +0 -1
  229. package/dist/67232.ca7667a39c74efdb90e1.bundle.js +0 -2
  230. package/dist/67232.ca7667a39c74efdb90e1.bundle.js.map +0 -1
  231. package/dist/68685.314faeaa55a342568c0b.bundle.js +0 -2
  232. package/dist/68685.314faeaa55a342568c0b.bundle.js.map +0 -1
  233. package/dist/69112.817cf7b4d2911108c736.bundle.js.map +0 -1
  234. package/dist/74106.82ee18377b0ae14c6a7f.bundle.js +0 -2
  235. package/dist/74106.82ee18377b0ae14c6a7f.bundle.js.map +0 -1
  236. package/dist/79329.d966e9755b8abe0219dc.bundle.js +0 -2
  237. package/dist/79329.d966e9755b8abe0219dc.bundle.js.map +0 -1
  238. package/dist/86142.ed366f6953d750eb99b8.bundle.js +0 -2
  239. package/dist/86142.ed366f6953d750eb99b8.bundle.js.map +0 -1
  240. package/dist/86639.6cf8f34680ceacc7298d.bundle.js +0 -2
  241. package/dist/86639.6cf8f34680ceacc7298d.bundle.js.map +0 -1
  242. package/dist/89695.2d49f93862aee2cf23af.bundle.js +0 -2
  243. package/dist/89695.2d49f93862aee2cf23af.bundle.js.map +0 -1
  244. package/dist/94519.f41b6f4fb1b1bb6e3bf5.bundle.js +0 -2
  245. package/dist/94519.f41b6f4fb1b1bb6e3bf5.bundle.js.map +0 -1
  246. package/dist/95953.f930b9ba889a452ca771.bundle.js.map +0 -1
  247. package/dist/98860.30ea9a212cf6e622ec36.bundle.js +0 -2
  248. package/dist/98860.30ea9a212cf6e622ec36.bundle.js.map +0 -1
  249. package/dist/shared-components/shared-components/p-28a4ce8f.entry.js +0 -1
  250. package/dist/shared-components/shared-components/p-28a4ce8f.entry.js.map +0 -1
  251. /package/dist/{legacyWorkbench.a918490fca19fd205bef.js.LICENSE.txt → legacyWorkbench.c5245455051fd0bab730.js.LICENSE.txt} +0 -0
  252. /package/dist/{main.5a06ce3271fcd9cb93e7.js.LICENSE.txt → main.fa0b99f721588e894d1d.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ export const __webpack_id__=79329;export const __webpack_ids__=[79329];export const __webpack_modules__={79329:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});const o='<link href="css/ttyg/agent-settings-modal.css?v=3.1.0-TR13" rel="stylesheet"/> <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.1.0-TR13" rel="stylesheet"/> <div class="modal-header"> <button type="button" class="close" ng-click="close()"></button> <h4 class="modal-title">{{( operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.title.edit \' : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.title.clone\' : \'ttyg.agent.create_agent_modal.title.create\') | translate}}</h4> </div> <div class="modal-body"> <form novalidate name="agentSettingsForm" id="agentSettingsForm" class="agent-settings-form" guide-selector="agent-form"> <div class="form-group agent-name-label"> <label for="name" uib-popover="{{\'ttyg.agent.create_agent_modal.form.agent_name.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.agent_name.label\' | translate}}</label> <input type="text" class="form-control" id="name" name="name" ng-model="agentFormModel.name" required autocomplete="off" guide-selector="agent-name" placeholder="{{\'ttyg.agent.create_agent_modal.form.agent_name.placeholder\' | translate}}"> <div class="alert alert-danger" ng-if="agentSettingsForm.name.$touched && agentSettingsForm.name.$invalid"> {{\'required.field\' | translate}} </div> </div> <div> <button class="external-config-btn" ng-click="openExternalIntegrationConfig()" ng-if="operation !== AGENT_OPERATION.CREATE" uib-popover="{{\'ttyg.agent.create_agent_modal.form.external_config.tooltip\' | translate}}" popover-trigger="mouseenter"> <i class="fa-regular fa-plug-circle-plus"></i> {{\'ttyg.agent.create_agent_modal.form.external_config.label\' | translate}} </button> </div> <div class="form-group repository-id"> <label for="repositoryId" uib-popover="{{\'ttyg.agent.create_agent_modal.form.repository.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.repository.label\' | translate}}</label> <select class="form-control" id="repositoryId" name="repositoryId" ng-model="agentFormModel.repositoryId" required ng-change="onRepositoryChange()" guide-selector="repository-id" ng-options="repository.value as repository.label for repository in activeRepositoryList"> </select> <div class="alert alert-danger" ng-if="agentSettingsForm.repositoryId.$touched && agentSettingsForm.repositoryId.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-row clearfix"> <div class="form-group llm-model" ng-class="{\'col-md-3\': showContextSize, \'col-md-4\': !showContextSize}"> <label for="model">{{\'ttyg.agent.create_agent_modal.form.model.label\' | translate}}</label> <help-info-popover help-info="helpInfoForModel"></help-info-popover> <input type="text" class="form-control" id="model" name="model" ng-model="agentFormModel.model" guide-selector="model" required autocomplete="off"> <div class="alert alert-danger" ng-if="agentSettingsForm.model.$touched && agentSettingsForm.model.$invalid"> {{\'required.field\' | translate}} </div> </div> <div ng-if="showContextSize" class="form-group context-size col-md-3"> <div class="context-size-wrapper"> <label for="contextSize"> <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.context_size.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.context_size.label\' | translate}}</span> </label> <button type="button" class="btn btn-link btn-sm reset-context-size-btn" ng-click="onRestoreDefaultContextSize()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.context_size.restore_default_btn.tooltip\' | translate}}"> <i class="fa fa-arrow-rotate-left"></i> </button> <div class="input-with-unit"> <input type="number" id="contextSize" name="contextSize" class="form-control" min="1" ng-model="agentFormModel.contextSize" required autocomplete="off"> <span class="token-unit-label"> {{\'ttyg.agent.create_agent_modal.form.context_size.field_addon\' | translate}} </span> </div> </div> <div class="alert alert-danger" ng-if="agentSettingsForm.contextSize.$touched && agentSettingsForm.contextSize.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group temperature" ng-class="{\'col-md-3\': showContextSize, \'col-md-4\': !showContextSize}"> <label for="temperature"> <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.temperature.label\' | translate}}</span> <i class="fa fa-triangle-exclamation text-warning high-temperature-warning" ng-if="showHighTemperatureWarning" uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning\' | translate}}" popover-trigger="mouseenter"></i> </label> <input type="text" id="temperature" name="temperature" readonly="readonly" class="form-control" ng-class="{\'has-warning\': showHighTemperatureWarning}" ng-model="agentFormModel.temperature.value"> <input id="temperatureSlider" name="temperature" type="range" min="{{agentFormModel.temperature.minValue}}" max="{{agentFormModel.temperature.maxValue}}" step="{{agentFormModel.temperature.step}}" ng-change="onTemperatureChange()" ng-model="agentFormModel.temperature.value"/> </div> <div class="form-group top-p" ng-class="{\'col-md-3\': showContextSize, \'col-md-4\': !showContextSize}"> <label for="topP" uib-popover="{{\'ttyg.agent.create_agent_modal.form.top_p.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.top_p.label\' | translate}}</label> <input type="text" class="form-control" id="topP" name="topP" readonly="readonly" ng-model="agentFormModel.topP.value"> <input id="topPSlider" name="topP" type="range" min="{{agentFormModel.topP.minValue}}" max="{{agentFormModel.topP.maxValue}}" step="{{agentFormModel.topP.step}}" ng-model="agentFormModel.topP.value"/> </div> </div> <div class="form-group extraction-methods-group"> <label for="extractionMethods" uib-popover="{{\'ttyg.agent.create_agent_modal.form.extraction_method.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.extraction_method.label\' | translate}}</label> <div id="extractionMethods" name="extractionMethods" ng-model="agentFormModel.assistantExtractionMethods.extractionMethods" required class="accordion extraction-methods" ng-class="{\'has-error\': agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid}"> <div ng-repeat="extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods" class="extraction-method"> <div id="{{extractionMethod.method + \'_method_heading\'}}" class="extraction-method-heading" ng-class="{\'selected\': extractionMethod.selected}" guide-selector="query-method-{{extractionMethod.method}}"> <div class="mr-0 extraction-method-toggle"> <input type="checkbox" id="{{extractionMethod.method + \'_checkbox\'}}" guide-selector="query-method-{{extractionMethod.method}}-input" name="{{extractionMethod.method}}" class="switch" ng-click="toggleExtractionMethod(extractionMethod, $event)" ng-model="extractionMethod.selected"/> <label for="{{extractionMethod.method + \'_checkbox\'}}"></label> </div> <a class="btn btn-link panel-toggle-link" aria-expanded="false" aria-controls="{{extractionMethod.method + \'_method_content\'}}" ng-click="onExtractionMethodPanelToggle(extractionMethod)"> <span class="mr-1" uib-popover="{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.label\' | translate}}</span> <i class="fa fa-chevron-down toggle-icon" ng-class="{\'expanded\': extractionMethod.expanded}"> </i> </a> </div> <div id="{{extractionMethod.method + \'_method_content\'}}" class="show extraction-method-content" aria-labelledby="{{extractionMethod.method + \'_method_heading\'}}" data-parent="#extractionMethods"> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL" class="extraction-method-options" ng-class="{\'has-error\': extractionMethod.selected && !extractionMethod.sparqlOption}"> <div class="sparql-option ontology-graph-option" guide-selector="sparql-ontology-graph-option"> <label class="radio-inline" uib-popover="{{\'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip\' | translate}}" popover-trigger="mouseenter"> <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected" guide-selector="sparql-ontology-graph-option-input" ng-model="extractionMethod.sparqlOption" value="ontologyGraph"> {{\'ttyg.agent.create_agent_modal.form.ontology_graph.label\' | translate}} </label> <div class="panel" ng-show="extractionMethod.sparqlOption === \'ontologyGraph\'"> <div class="form-group"> <input type="text" class="form-control" id="ontologyGraph" guide-selector="sparql-ontology-graph-input" name="ontologyGraph" ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'ontologyGraph\'" ng-model="extractionMethod.ontologyGraph"> </div> </div> </div> <div class="sparql-option sparql-query-option"> <label class="radio-inline" uib-popover="{{\'ttyg.agent.create_agent_modal.form.construct_query.tooltip\' | translate}}" popover-trigger="mouseenter"> <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected" ng-model="extractionMethod.sparqlOption" value="sparqlQuery"> {{\'ttyg.agent.create_agent_modal.form.construct_query.label\' | translate}} </label> <div class="panel" ng-show="extractionMethod.sparqlOption === \'sparqlQuery\'"> <div class="form-group"> <textarea type="text" class="form-control" id="sparqlQuery" name="sparqlQuery" rows="10" ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'sparqlQuery\'" ng-minlength="extractionMethod.sparqlQuery.minLength" ng-maxlength="extractionMethod.sparqlQuery.maxLength" ng-model="extractionMethod.sparqlQuery.value">\n </textarea> </div> </div> </div> <div class="alert alert-danger sparql-method-option-required-error mb-0" ng-if="extractionMethod.selected && !extractionMethod.sparqlOption"> {{\'ttyg.agent.create_agent_modal.form.sparql_search.required_option\' | translate}} </div> <div class="add-missing-namespaces-option mt-1" guide-selector="add-missing-namespaces-option"> <input id="addMissingNamespaces" name="addMissingNamespaces" type="checkbox" guide-selector="add-missing-namespaces" ng-model="extractionMethod.addMissingNamespaces"> <label for="addMissingNamespaces" uib-popover="{{\'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip\' | translate}}" popover-trigger="mouseenter">{{ \'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label\' | translate }}</label> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH" ng-class="{\'has-error\': agentSettingsForm.$error.FTSDisabled || agentSettingsForm.repositoryId.$invalid}" class="extraction-method-options"> <button ng-if="agentFormModel.repositoryId" class="btn btn-link btn-sm pull-right" ng-click="checkIfFTSEnabled()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div class="alert alert-danger missing-repositoryid-error mb-0" ng-if="agentSettingsForm.repositoryId.$invalid"> {{\'ttyg.agent.create_agent_modal.form.missing_repository_id\' | translate}} </div> <div ng-if="!ftsEnabled && agentFormModel.repositoryId" class="fts-disabled-message" ng-bind-html="getFTSDisabledHelpMessage()"> </div> <div class="form-group max-triples" ng-show="ftsEnabled && agentFormModel.repositoryId"> <label for="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label\' | translate}} </label> <input type="number" class="form-control" id="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY" ng-class="{\'has-error\': agentSettingsForm.$error.missingIndex || agentSettingsForm.repositoryId.$invalid}" class="extraction-method-options"> <button ng-if="agentFormModel.repositoryId" class="btn btn-link btn-sm pull-right" ng-click="updateSimilaritySearchPanel()" ng-disabled="disabled" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div class="alert alert-danger missing-repositoryid-error mb-0" ng-if="agentSettingsForm.repositoryId.$invalid"> {{\'ttyg.agent.create_agent_modal.form.missing_repository_id\' | translate}} </div> <div ng-if="agentFormModel.repositoryId && !similarityIndexes.length" class="no-similarity-index-message"> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1\' | translate}} <a href="" ng-click="goToCreateSimilarityView($event)"> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2\' | translate}} </a> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3\' | translate}}. </div> <div ng-show="similarityIndexes.length"> <div class="form-group similarity-index"> <label for="similarityIndex" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_index.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_index.label\' | translate}}</label> <span ng-if="extractionMethodLoaderFlags.similarity_search" onto-loader-fancy size="16"></span> <select class="form-control" id="similarityIndex" name="similarityIndex" guide-selector="similarity-index-select" ng-required="extractionMethod.selected" ng-if="!extractionMethodLoaderFlags.similarity_search" ng-model="extractionMethod.similarityIndex" ng-options="similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes"> </select> <div class="alert alert-danger" ng-if="extractionMethod.similarityIndex.$touched && extractionMethod.similarityIndex.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group similarity-index-threshold"> <label for="similarityIndexThreshold" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.label\' | translate}}</label> <input type="text" class="form-control" id="similarityIndexThreshold" name="similarityIndexThreshold" readonly="readonly" ng-model="extractionMethod.similarityIndexThreshold.value"> <input id="similarityIndexThresholdSlider" name="similarityIndexThreshold" type="range" ng-required="extractionMethod.selected" min="{{extractionMethod.similarityIndexThreshold.minValue}}" max="{{extractionMethod.similarityIndexThreshold.maxValue}}" step="0.1" ng-model="extractionMethod.similarityIndexThreshold.value"/> </div> <div class="form-group similarity-max-triples"> <label for="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label\' | translate}}</label> <input type="number" class="form-control" id="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL" ng-class="{\'has-error\': agentSettingsForm.$error.missingConnector || agentSettingsForm.repositoryId.$invalid}" class="extraction-method-options"> <button ng-if="agentFormModel.repositoryId" class="btn btn-link btn-sm pull-right" ng-click="updateRetrievalConnectorPanel()" ng-disabled="disabled" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div class="alert alert-danger missing-repositoryid-error mb-0" ng-if="agentSettingsForm.repositoryId.$invalid"> {{\'ttyg.agent.create_agent_modal.form.missing_repository_id\' | translate}} </div> <div ng-if="agentFormModel.repositoryId && !retrievalConnectors.length" class="no-retrieval-connector-message"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1\' | translate}} <a href="" ng-click="goToConnectorsView($event)"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2\' | translate}} </a> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3\' | translate}}. </div> <div ng-show="retrievalConnectors.length"> <div class="form-group retrieval-connector"> <label for="retrievalConnectorInstance" uib-popover="{{\'ttyg.agent.create_agent_modal.form.connector_id.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.connector_id.label\' | translate}}</label> <span ng-if="extractionMethodLoaderFlags.retrieval_search" onto-loader-fancy size="16"></span> <select class="form-control" id="retrievalConnectorInstance" name="retrievalConnectorInstance" ng-required="extractionMethod.selected" ng-if="!extractionMethodLoaderFlags.retrieval_search" ng-model="extractionMethod.retrievalConnectorInstance" ng-options="retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors"> </select> <div class="alert alert-danger" ng-if="extractionMethod.retrievalConnectorInstance.$touched && extractionMethod.retrievalConnectorInstance.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group query-template"> <label for="queryTemplate" uib-popover="{{\'ttyg.agent.create_agent_modal.form.query_template.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.query_template.label\' | translate}}</label> <textarea type="text" class="form-control" id="queryTemplate" name="queryTemplate" rows="10" ng-required="extractionMethod.selected" ng-minlength="extractionMethod.queryTemplate.minLength" ng-maxlength="extractionMethod.queryTemplate.maxLength" ng-model="extractionMethod.queryTemplate.value">\n </textarea> <div class="alert alert-danger" ng-if="extractionMethod.name.$touched && extractionMethod.name.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group retrieval-connector-max-triples"> <label for="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label\' | translate}}</label> <input type="number" class="form-control" id="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> </div> </div> </div> </div> <div class="alert alert-danger extraction-method-required-error" ng-if="agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid"> {{\'ttyg.agent.create_agent_modal.form.extraction_method.required\' | translate}} </div> </div> <div id="additionalExtractionMethods" class="form-group additional-extraction-methods"> <label uib-popover="{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.additional_query_methods.label\' | translate}} </label> <div ng-repeat="extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods" class="additional-extraction-method"> <div ng-if="ExtractionMethodTemplates[extractionMethod.method]"> <div ng-include="\'js/angular/ttyg/templates/\' + ExtractionMethodTemplates[extractionMethod.method] + \'.html\'"></div> </div> </div> </div> <div class="form-group user-instructions"> <div class="toolbar"> <label for="userInstruction" uib-popover="{{\'ttyg.agent.create_agent_modal.form.user_instruction.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.user_instruction.label\' | translate}}</label> <div class="actions"> <copy-to-clipboard tooltip-text="ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip" text-to-copy="{{agentFormModel.instructions.userInstruction}}"></copy-to-clipboard> <button class="btn btn-link btn-sm create-chat-btn" ng-click="onRestoreDefaultUserInstructions()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip\' | translate}}"> <i class="fa fa-arrow-rotate-left"></i> </button> </div> </div> <textarea type="text" class="form-control" id="userInstruction" name="userInstruction" rows="5" guide-selector="user-instructions" ng-model="agentFormModel.instructions.userInstruction" placeholder="{{\'ttyg.agent.create_agent_modal.form.user_instruction.placeholder\' | translate}}">\n </textarea> </div> <div class="text-xs-center"> <button type="button" ng-click="showAdvancedSettings = !showAdvancedSettings" class="btn btn-link btn-sm toggle-advanced-settings"> <span ng-hide="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.show\' | translate}}<em class="icon-caret-down"></em></span> <span ng-show="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.hide\' | translate}}<em class="icon-caret-up"></em></span> </button> </div> <div ng-show="showAdvancedSettings" class="advanced-settings"> <div class="form-group system-instructions"> <div class="toolbar"> <label for="systemInstruction"> <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.system_instruction.label\' | translate}}</span> <i class="fa fa-triangle-exclamation text-warning overriding-system-instructions-warning" ng-if="showSystemInstructionWarning" uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body\' | translate}}" popover-trigger="mouseenter"></i> </label> <div class="actions"> <copy-to-clipboard tooltip-text="ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip" text-to-copy="{{agentFormModel.instructions.systemInstruction}}"></copy-to-clipboard> <button class="btn btn-link btn-sm create-chat-btn" ng-click="onRestoreDefaultSystemInstructions()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip\' | translate}}"> <i class="fa fa-arrow-rotate-left"></i> </button> </div> </div> <textarea type="text" class="form-control" id="systemInstruction" name="systemInstruction" rows="5" placeholder="{{\'ttyg.agent.create_agent_modal.form.system_instruction.placeholder\' | translate}}" ng-class="{\'has-warning\': showSystemInstructionWarning}" ng-model="agentFormModel.instructions.systemInstruction" ng-change="onSystemInstructionChange()">\n </textarea> </div> </div> </form> </div> <div class="modal-footer"> <button type="button" ng-click="onExplainAgentSettings()" class="btn explain-agent-settings-btn"> {{\'ttyg.agent.create_agent_modal.btn.explain_settings.label\' | translate}} </button> <div> <button type="button" ng-click="cancel()" class="btn cancel-btn"> {{\'ttyg.agent.create_agent_modal.btn.cancel.label\' | translate}} </button> <button type="button" ng-click="ok()" ng-disabled="agentSettingsForm.$invalid || savingAgent" guide-selector="save-agent-settings" class="btn btn-primary save-agent-settings-btn"> <span>{{(operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.btn.save.label\' : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.btn.save.label\' : \'ttyg.agent.create_agent_modal.btn.create.label\') | translate}}</span> <span class="saving-agent-loader" ng-if="savingAgent" onto-loader-fancy hide-message="true" size="15"></span> </button> </div> </div> '}};
2
+ //# sourceMappingURL=79329.69815208f7a0b1678dc2.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"79329.69815208f7a0b1678dc2.bundle.js","mappings":"uJAOA,QANW,89wB","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/modal/agent-settings-modal.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-settings-modal.css?v=3.1.0-TR13\" rel=\"stylesheet\"/> <link href=\"css/lib/ng-tags-input/ng-tags-input.min.css?v=3.1.0-TR13\" rel=\"stylesheet\"/> <div class=\"modal-header\"> <button type=\"button\" class=\"close\" ng-click=\"close()\"></button> <h4 class=\"modal-title\">{{( operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.title.edit ' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.title.clone' : 'ttyg.agent.create_agent_modal.title.create') | translate}}</h4> </div> <div class=\"modal-body\"> <form novalidate name=\"agentSettingsForm\" id=\"agentSettingsForm\" class=\"agent-settings-form\" guide-selector=\"agent-form\"> <div class=\"form-group agent-name-label\"> <label for=\"name\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.agent_name.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.agent_name.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"name\" name=\"name\" ng-model=\"agentFormModel.name\" required autocomplete=\"off\" guide-selector=\"agent-name\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.agent_name.placeholder' | translate}}\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.name.\\$touched && agentSettingsForm.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div> <button class=\"external-config-btn\" ng-click=\"openExternalIntegrationConfig()\" ng-if=\"operation !== AGENT_OPERATION.CREATE\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.external_config.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> {{'ttyg.agent.create_agent_modal.form.external_config.label' | translate}} </button> </div> <div class=\"form-group repository-id\"> <label for=\"repositoryId\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.repository.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.repository.label' | translate}}</label> <select class=\"form-control\" id=\"repositoryId\" name=\"repositoryId\" ng-model=\"agentFormModel.repositoryId\" required ng-change=\"onRepositoryChange()\" guide-selector=\"repository-id\" ng-options=\"repository.value as repository.label for repository in activeRepositoryList\"> </select> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.repositoryId.\\$touched && agentSettingsForm.repositoryId.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-row clearfix\"> <div class=\"form-group llm-model\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\"> <label for=\"model\">{{'ttyg.agent.create_agent_modal.form.model.label' | translate}}</label> <help-info-popover help-info=\"helpInfoForModel\"></help-info-popover> <input type=\"text\" class=\"form-control\" id=\"model\" name=\"model\" ng-model=\"agentFormModel.model\" guide-selector=\"model\" required autocomplete=\"off\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.model.\\$touched && agentSettingsForm.model.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div ng-if=\"showContextSize\" class=\"form-group context-size col-md-3\"> <div class=\"context-size-wrapper\"> <label for=\"contextSize\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.context_size.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.context_size.label' | translate}}</span> </label> <button type=\"button\" class=\"btn btn-link btn-sm reset-context-size-btn\" ng-click=\"onRestoreDefaultContextSize()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.context_size.restore_default_btn.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> <div class=\"input-with-unit\"> <input type=\"number\" id=\"contextSize\" name=\"contextSize\" class=\"form-control\" min=\"1\" ng-model=\"agentFormModel.contextSize\" required autocomplete=\"off\"> <span class=\"token-unit-label\"> {{'ttyg.agent.create_agent_modal.form.context_size.field_addon' | translate}} </span> </div> </div> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.contextSize.\\$touched && agentSettingsForm.contextSize.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group temperature\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\"> <label for=\"temperature\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.temperature.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning high-temperature-warning\" ng-if=\"showHighTemperatureWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <input type=\"text\" id=\"temperature\" name=\"temperature\" readonly=\"readonly\" class=\"form-control\" ng-class=\"{'has-warning': showHighTemperatureWarning}\" ng-model=\"agentFormModel.temperature.value\"> <input id=\"temperatureSlider\" name=\"temperature\" type=\"range\" min=\"{{agentFormModel.temperature.minValue}}\" max=\"{{agentFormModel.temperature.maxValue}}\" step=\"{{agentFormModel.temperature.step}}\" ng-change=\"onTemperatureChange()\" ng-model=\"agentFormModel.temperature.value\"/> </div> <div class=\"form-group top-p\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\"> <label for=\"topP\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.top_p.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.top_p.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"topP\" name=\"topP\" readonly=\"readonly\" ng-model=\"agentFormModel.topP.value\"> <input id=\"topPSlider\" name=\"topP\" type=\"range\" min=\"{{agentFormModel.topP.minValue}}\" max=\"{{agentFormModel.topP.maxValue}}\" step=\"{{agentFormModel.topP.step}}\" ng-model=\"agentFormModel.topP.value\"/> </div> </div> <div class=\"form-group extraction-methods-group\"> <label for=\"extractionMethods\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.extraction_method.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.extraction_method.label' | translate}}</label> <div id=\"extractionMethods\" name=\"extractionMethods\" ng-model=\"agentFormModel.assistantExtractionMethods.extractionMethods\" required class=\"accordion extraction-methods\" ng-class=\"{'has-error': agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid}\"> <div ng-repeat=\"extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods\" class=\"extraction-method\"> <div id=\"{{extractionMethod.method + '_method_heading'}}\" class=\"extraction-method-heading\" ng-class=\"{'selected': extractionMethod.selected}\" guide-selector=\"query-method-{{extractionMethod.method}}\"> <div class=\"mr-0 extraction-method-toggle\"> <input type=\"checkbox\" id=\"{{extractionMethod.method + '_checkbox'}}\" guide-selector=\"query-method-{{extractionMethod.method}}-input\" name=\"{{extractionMethod.method}}\" class=\"switch\" ng-click=\"toggleExtractionMethod(extractionMethod, \\$event)\" ng-model=\"extractionMethod.selected\"/> <label for=\"{{extractionMethod.method + '_checkbox'}}\"></label> </div> <a class=\"btn btn-link panel-toggle-link\" aria-expanded=\"false\" aria-controls=\"{{extractionMethod.method + '_method_content'}}\" ng-click=\"onExtractionMethodPanelToggle(extractionMethod)\"> <span class=\"mr-1\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.label' | translate}}</span> <i class=\"fa fa-chevron-down toggle-icon\" ng-class=\"{'expanded': extractionMethod.expanded}\"> </i> </a> </div> <div id=\"{{extractionMethod.method + '_method_content'}}\" class=\"show extraction-method-content\" aria-labelledby=\"{{extractionMethod.method + '_method_heading'}}\" data-parent=\"#extractionMethods\"> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL\" class=\"extraction-method-options\" ng-class=\"{'has-error': extractionMethod.selected && !extractionMethod.sparqlOption}\"> <div class=\"sparql-option ontology-graph-option\" guide-selector=\"sparql-ontology-graph-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" guide-selector=\"sparql-ontology-graph-option-input\" ng-model=\"extractionMethod.sparqlOption\" value=\"ontologyGraph\"> {{'ttyg.agent.create_agent_modal.form.ontology_graph.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'ontologyGraph'\"> <div class=\"form-group\"> <input type=\"text\" class=\"form-control\" id=\"ontologyGraph\" guide-selector=\"sparql-ontology-graph-input\" name=\"ontologyGraph\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'ontologyGraph'\" ng-model=\"extractionMethod.ontologyGraph\"> </div> </div> </div> <div class=\"sparql-option sparql-query-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.construct_query.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" ng-model=\"extractionMethod.sparqlOption\" value=\"sparqlQuery\"> {{'ttyg.agent.create_agent_modal.form.construct_query.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'sparqlQuery'\"> <div class=\"form-group\"> <textarea type=\"text\" class=\"form-control\" id=\"sparqlQuery\" name=\"sparqlQuery\" rows=\"10\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'sparqlQuery'\" ng-minlength=\"extractionMethod.sparqlQuery.minLength\" ng-maxlength=\"extractionMethod.sparqlQuery.maxLength\" ng-model=\"extractionMethod.sparqlQuery.value\">\n </textarea> </div> </div> </div> <div class=\"alert alert-danger sparql-method-option-required-error mb-0\" ng-if=\"extractionMethod.selected && !extractionMethod.sparqlOption\"> {{'ttyg.agent.create_agent_modal.form.sparql_search.required_option' | translate}} </div> <div class=\"add-missing-namespaces-option mt-1\" guide-selector=\"add-missing-namespaces-option\"> <input id=\"addMissingNamespaces\" name=\"addMissingNamespaces\" type=\"checkbox\" guide-selector=\"add-missing-namespaces\" ng-model=\"extractionMethod.addMissingNamespaces\"> <label for=\"addMissingNamespaces\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{ 'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label' | translate }}</label> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH\" ng-class=\"{'has-error': agentSettingsForm.\\$error.FTSDisabled || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"checkIfFTSEnabled()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"!ftsEnabled && agentFormModel.repositoryId\" class=\"fts-disabled-message\" ng-bind-html=\"getFTSDisabledHelpMessage()\"> </div> <div class=\"form-group max-triples\" ng-show=\"ftsEnabled && agentFormModel.repositoryId\"> <label for=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label' | translate}} </label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingIndex || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateSimilaritySearchPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"agentFormModel.repositoryId && !similarityIndexes.length\" class=\"no-similarity-index-message\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1' | translate}} <a href=\"\" ng-click=\"goToCreateSimilarityView(\\$event)\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3' | translate}}. </div> <div ng-show=\"similarityIndexes.length\"> <div class=\"form-group similarity-index\"> <label for=\"similarityIndex\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_index.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.similarity_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"similarityIndex\" name=\"similarityIndex\" guide-selector=\"similarity-index-select\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.similarity_search\" ng-model=\"extractionMethod.similarityIndex\" ng-options=\"similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.similarityIndex.\\$touched && extractionMethod.similarityIndex.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group similarity-index-threshold\"> <label for=\"similarityIndexThreshold\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_threshold.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"similarityIndexThreshold\" name=\"similarityIndexThreshold\" readonly=\"readonly\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"> <input id=\"similarityIndexThresholdSlider\" name=\"similarityIndexThreshold\" type=\"range\" ng-required=\"extractionMethod.selected\" min=\"{{extractionMethod.similarityIndexThreshold.minValue}}\" max=\"{{extractionMethod.similarityIndexThreshold.maxValue}}\" step=\"0.1\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"/> </div> <div class=\"form-group similarity-max-triples\"> <label for=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingConnector || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateRetrievalConnectorPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"agentFormModel.repositoryId && !retrievalConnectors.length\" class=\"no-retrieval-connector-message\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1' | translate}} <a href=\"\" ng-click=\"goToConnectorsView(\\$event)\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3' | translate}}. </div> <div ng-show=\"retrievalConnectors.length\"> <div class=\"form-group retrieval-connector\"> <label for=\"retrievalConnectorInstance\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.connector_id.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.connector_id.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.retrieval_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"retrievalConnectorInstance\" name=\"retrievalConnectorInstance\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.retrieval_search\" ng-model=\"extractionMethod.retrievalConnectorInstance\" ng-options=\"retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.retrievalConnectorInstance.\\$touched && extractionMethod.retrievalConnectorInstance.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group query-template\"> <label for=\"queryTemplate\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.query_template.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.query_template.label' | translate}}</label> <textarea type=\"text\" class=\"form-control\" id=\"queryTemplate\" name=\"queryTemplate\" rows=\"10\" ng-required=\"extractionMethod.selected\" ng-minlength=\"extractionMethod.queryTemplate.minLength\" ng-maxlength=\"extractionMethod.queryTemplate.maxLength\" ng-model=\"extractionMethod.queryTemplate.value\">\n </textarea> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.name.\\$touched && extractionMethod.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group retrieval-connector-max-triples\"> <label for=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> </div> </div> </div> <div class=\"alert alert-danger extraction-method-required-error\" ng-if=\"agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.extraction_method.required' | translate}} </div> </div> <div id=\"additionalExtractionMethods\" class=\"form-group additional-extraction-methods\"> <label uib-popover=\"{{'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.additional_query_methods.label' | translate}} </label> <div ng-repeat=\"extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods\" class=\"additional-extraction-method\"> <div ng-if=\"ExtractionMethodTemplates[extractionMethod.method]\"> <div ng-include=\"'js/angular/ttyg/templates/' + ExtractionMethodTemplates[extractionMethod.method] + '.html'\"></div> </div> </div> </div> <div class=\"form-group user-instructions\"> <div class=\"toolbar\"> <label for=\"userInstruction\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.user_instruction.label' | translate}}</label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.userInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultUserInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"userInstruction\" name=\"userInstruction\" rows=\"5\" guide-selector=\"user-instructions\" ng-model=\"agentFormModel.instructions.userInstruction\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.placeholder' | translate}}\">\n </textarea> </div> <div class=\"text-xs-center\"> <button type=\"button\" ng-click=\"showAdvancedSettings = !showAdvancedSettings\" class=\"btn btn-link btn-sm toggle-advanced-settings\"> <span ng-hide=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.show' | translate}}<em class=\"icon-caret-down\"></em></span> <span ng-show=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.hide' | translate}}<em class=\"icon-caret-up\"></em></span> </button> </div> <div ng-show=\"showAdvancedSettings\" class=\"advanced-settings\"> <div class=\"form-group system-instructions\"> <div class=\"toolbar\"> <label for=\"systemInstruction\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.system_instruction.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning overriding-system-instructions-warning\" ng-if=\"showSystemInstructionWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.systemInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultSystemInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"systemInstruction\" name=\"systemInstruction\" rows=\"5\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.placeholder' | translate}}\" ng-class=\"{'has-warning': showSystemInstructionWarning}\" ng-model=\"agentFormModel.instructions.systemInstruction\" ng-change=\"onSystemInstructionChange()\">\n </textarea> </div> </div> </form> </div> <div class=\"modal-footer\"> <button type=\"button\" ng-click=\"onExplainAgentSettings()\" class=\"btn explain-agent-settings-btn\"> {{'ttyg.agent.create_agent_modal.btn.explain_settings.label' | translate}} </button> <div> <button type=\"button\" ng-click=\"cancel()\" class=\"btn cancel-btn\"> {{'ttyg.agent.create_agent_modal.btn.cancel.label' | translate}} </button> <button type=\"button\" ng-click=\"ok()\" ng-disabled=\"agentSettingsForm.\\$invalid || savingAgent\" guide-selector=\"save-agent-settings\" class=\"btn btn-primary save-agent-settings-btn\"> <span>{{(operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.btn.save.label' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.btn.save.label' : 'ttyg.agent.create_agent_modal.btn.create.label') | translate}}</span> <span class=\"saving-agent-loader\" ng-if=\"savingAgent\" onto-loader-fancy hide-message=\"true\" size=\"15\"></span> </button> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- export const __webpack_id__=82926;export const __webpack_ids__=[82926];export const __webpack_modules__={82926:()=>{function t(){return{link:function(t,e,o){t.$watch("file.status",function(){"IMPORTING"!==t.file.status&&"UPLOADING"!==t.file.status||!$(e).has("object").length>0&&$(e).append('<object width="'+o.size+'" height="'+o.size+'" data="js/angular/templates/loader/ot-loader.svg?v=3.1.0-TR12">{{\'common.loading\' | translate}}</object>')})}}}angular.module("graphdb.framework.import.directives.import-progress-indicator",[]).directive("ImportProgressIndicator",t),t.$inject=[]}};
2
- //# sourceMappingURL=82926.32c69a801c99f029c69f.bundle.js.map
1
+ export const __webpack_id__=82926;export const __webpack_ids__=[82926];export const __webpack_modules__={82926:()=>{function t(){return{link:function(t,e,o){t.$watch("file.status",function(){"IMPORTING"!==t.file.status&&"UPLOADING"!==t.file.status||!$(e).has("object").length>0&&$(e).append('<object width="'+o.size+'" height="'+o.size+'" data="js/angular/templates/loader/ot-loader.svg?v=3.1.0-TR13">{{\'common.loading\' | translate}}</object>')})}}}angular.module("graphdb.framework.import.directives.import-progress-indicator",[]).directive("ImportProgressIndicator",t),t.$inject=[]}};
2
+ //# sourceMappingURL=82926.ce06c4bb3d76b9fe5fa9.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"82926.32c69a801c99f029c69f.bundle.js","mappings":"oHASA,SAASA,IACL,MAAO,CACHC,KAAM,SAAUC,EAAOC,EAASC,GAC5BF,EAAMG,OAAO,cAAe,WACE,cAAtBH,EAAMI,KAAKC,QAAgD,cAAtBL,EAAMI,KAAKC,SAC3CC,EAAEL,GAASM,IAAI,UAAUC,OAAS,GACnCF,EAAEL,GAASQ,OAAO,kBAAoBP,EAAKQ,KAAO,aAAeR,EAAKQ,KAAO,8GAGzF,EACJ,EAER,CAnBAC,QACKC,OAAO,gEAHI,IAIXC,UAAU,0BAA2Bf,GAE1CA,EAAwBgB,QAAU,E","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/import/directives/import-progress-indicator.directive.js"],"sourcesContent":["const modules = [];\n\nangular\n .module('graphdb.framework.import.directives.import-progress-indicator', modules)\n .directive('ImportProgressIndicator', ImportProgressIndicator);\n\nImportProgressIndicator.$inject = [];\n\n// importDirectives.directive('filesOntoLoader',\nfunction ImportProgressIndicator() {\n return {\n link: function (scope, element, attr) {\n scope.$watch('file.status', function () {\n if (scope.file.status === 'IMPORTING' || scope.file.status === 'UPLOADING') {\n if (!$(element).has('object').length > 0) {\n $(element).append('<object width=\"' + attr.size + '\" height=\"' + attr.size + '\" data=\"js/angular/templates/loader/ot-loader.svg?v=3.1.0-TR12\">{{\\'common.loading\\' | translate}}</object>');\n }\n }\n });\n }\n };\n}\n"],"names":["ImportProgressIndicator","link","scope","element","attr","$watch","file","status","$","has","length","append","size","angular","module","directive","$inject"],"sourceRoot":""}
1
+ {"version":3,"file":"82926.ce06c4bb3d76b9fe5fa9.bundle.js","mappings":"oHASA,SAASA,IACL,MAAO,CACHC,KAAM,SAAUC,EAAOC,EAASC,GAC5BF,EAAMG,OAAO,cAAe,WACE,cAAtBH,EAAMI,KAAKC,QAAgD,cAAtBL,EAAMI,KAAKC,SAC3CC,EAAEL,GAASM,IAAI,UAAUC,OAAS,GACnCF,EAAEL,GAASQ,OAAO,kBAAoBP,EAAKQ,KAAO,aAAeR,EAAKQ,KAAO,8GAGzF,EACJ,EAER,CAnBAC,QACKC,OAAO,gEAHI,IAIXC,UAAU,0BAA2Bf,GAE1CA,EAAwBgB,QAAU,E","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/import/directives/import-progress-indicator.directive.js"],"sourcesContent":["const modules = [];\n\nangular\n .module('graphdb.framework.import.directives.import-progress-indicator', modules)\n .directive('ImportProgressIndicator', ImportProgressIndicator);\n\nImportProgressIndicator.$inject = [];\n\n// importDirectives.directive('filesOntoLoader',\nfunction ImportProgressIndicator() {\n return {\n link: function (scope, element, attr) {\n scope.$watch('file.status', function () {\n if (scope.file.status === 'IMPORTING' || scope.file.status === 'UPLOADING') {\n if (!$(element).has('object').length > 0) {\n $(element).append('<object width=\"' + attr.size + '\" height=\"' + attr.size + '\" data=\"js/angular/templates/loader/ot-loader.svg?v=3.1.0-TR13\">{{\\'common.loading\\' | translate}}</object>');\n }\n }\n });\n }\n };\n}\n"],"names":["ImportProgressIndicator","link","scope","element","attr","$watch","file","status","$","has","length","append","size","angular","module","directive","$inject"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ export const __webpack_id__=86142;export const __webpack_ids__=[86142];export const __webpack_modules__={86142:()=>{PluginRegistry.add("guide.step",[{guideBlockName:"select-ttyg-agent",getSteps:(e,t)=>{const n=t.GuideUtils;return e.mainAction="select-ttyg-agent",[{guideBlockName:"info-message",options:angular.extend({},{content:"guide.step_plugin.select-ttyg-agent.info.content",url:"ttyg",class:"select-ttyg-agent-guide-dialog",skipPoint:!0,disablePreviousFlow:!0},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.select-ttyg-agent.open-agent-dropdown",class:"open-agent-dropdown-guide-dialog",url:"ttyg",elementSelector:n.getGuideElementSelector("select-agent-dropdown"),disableNextFlow:!0},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.select-ttyg-agent.select-agent",elementSelector:n.getGuideElementSelector("select-agent-panel"),class:"select-your-agent-guide-dialog",show:()=>()=>{const t=document.querySelector(n.getGuideElementSelector("select-agent-dropdown")),o=document.querySelector(n.getGuideElementSelector("select-agent-dropdown-toggle"));e.observer=new MutationObserver(function(e){for(const t of e)"attributes"===t.type&&(t.target.classList.contains("open")||o.click())}),e.observer.observe(t,{attributes:!0})},disableNextFlow:!0,hide:()=>()=>{e.observer.disconnect()}},e)},{guideBlockName:"info-message",options:angular.extend({},{beforeShowPromise:(e,t)=>n.getOrWaitFor(n.getElementSelector(".confirm-dialog .cancel-btn"),1).then(()=>{setTimeout(()=>e.next())}).catch(()=>{const n=t.id;setTimeout(()=>e.show(n+2))})},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.select-ttyg-agent.missing-repository",elementSelector:n.getElementSelector(".confirm-dialog .cancel-btn"),showOn:()=>n.isVisible(".confirm-dialog .cancel-btn"),onNextClick:()=>{n.clickOnElement(".confirm-dialog .cancel-btn")()},show:(e,t)=>()=>{const n=t.id;$(t.elementSelector).on("click",()=>{e.show(n-3)})},hide:(e,t)=>()=>{$(t.elementSelector).off("click")}},e)}]}}])}};
2
+ //# sourceMappingURL=86142.3f4acbd124c99af11e48.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"86142.3f4acbd124c99af11e48.bundle.js","mappings":"oHAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,oBAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAG5B,OAFAF,EAAQG,WAAa,oBAEd,CACH,CACIL,eAAgB,eAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,mDACTC,IAAK,OACLC,MAAO,iCACPC,WAAW,EACXC,qBAAqB,GACtBV,IAEP,CACIF,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,0DACTE,MAAO,mCACPD,IAAK,OACLI,gBAAiBT,EAAWU,wBAAwB,yBACpDC,iBAAiB,GAClBb,IAEP,CACIF,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,mDACTK,gBAAiBT,EAAWU,wBAAwB,sBACpDJ,MAAO,iCACPM,KAAMA,IAAM,KACR,MAAMC,EAAmBC,SAASC,cAAcf,EAAWU,wBAAwB,0BAC7EM,EAAwBF,SAASC,cAAcf,EAAWU,wBAAwB,iCAExFZ,EAAQmB,SAAW,IAAIC,iBAGvB,SAAkCC,GAC9B,IAAK,MAAMC,KAAYD,EACG,eAAlBC,EAASC,OACQD,EAASE,OAAOC,UAAUC,SAAS,SAKhDR,EAAsBS,QAItC,GAdA3B,EAAQmB,SAASS,QAAQb,EAAkB,CAACc,YAAY,KAgB5DhB,iBAAiB,EACjBiB,KAAMA,IAAM,KACR9B,EAAQmB,SAASY,eAEtB/B,IAEP,CAEIF,eAAgB,eAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxB2B,kBAAmBA,CAACC,EAAOC,IAChBhC,EAAWiC,aAAajC,EAAWkC,mBAAmB,+BAAgC,GACxFC,KAAK,KAEFC,WAAW,IAAML,EAAMM,UAE1BC,MAAM,KACH,MAAMC,EAASP,EAAYQ,GAE3BJ,WAAW,IAAML,EAAMnB,KAAK2B,EAAS,OAGlDzC,IAEP,CACIF,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,yDACTK,gBAAiBT,EAAWkC,mBAAmB,+BAC/CO,OAAQA,IAAMzC,EAAW0C,UAAU,+BACnCC,YAAaA,KAET3C,EAAW4C,eAAe,8BAA1B5C,IAEJY,KAAMA,CAACmB,EAAOC,IAAgB,KAC1B,MAAMa,EAAgBb,EAAYQ,GAElCM,EAAEd,EAAYvB,iBAAiBsC,GAAG,QAAS,KACvChB,EAAMnB,KAAKiC,EAAgB,MAGnCjB,KAAMA,CAACG,EAAOC,IAAgB,KAE1Bc,EAAEd,EAAYvB,iBAAiBuC,IAAI,WAExClD,Q","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/ttyg/select-ttyg-agent/plugin.js"],"sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'select-ttyg-agent',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'select-ttyg-agent';\n\n return [\n {\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n content: 'guide.step_plugin.select-ttyg-agent.info.content',\n url: 'ttyg',\n class: 'select-ttyg-agent-guide-dialog',\n skipPoint: true,\n disablePreviousFlow: true,\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.select-ttyg-agent.open-agent-dropdown',\n class: 'open-agent-dropdown-guide-dialog',\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('select-agent-dropdown'),\n disableNextFlow: true\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.select-ttyg-agent.select-agent',\n elementSelector: GuideUtils.getGuideElementSelector('select-agent-panel'),\n class: 'select-your-agent-guide-dialog',\n show: () => () => {\n const elementToObserve = document.querySelector(GuideUtils.getGuideElementSelector('select-agent-dropdown'));\n const dropdownToggleElement = document.querySelector(GuideUtils.getGuideElementSelector('select-agent-dropdown-toggle'));\n\n options.observer = new MutationObserver(attributesChangeCallback);\n options.observer.observe(elementToObserve, {attributes: true});\n\n function attributesChangeCallback(mutationList) {\n for (const mutation of mutationList) {\n if (mutation.type === 'attributes') {\n const isOpened = mutation.target.classList.contains('open');\n\n // The component we use for selecting the agent automatically closes\n // after the user clicks on the view, which is why we have to open it.\n if (!(isOpened)) {\n dropdownToggleElement.click();\n }\n }\n }\n }\n },\n disableNextFlow: true,\n hide: () => () => {\n options.observer.disconnect();\n }\n }, options)\n },\n {\n // If missing repository modal is visible go to next step, otherwise skip it\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n beforeShowPromise: (guide, currentStep) => {\n return GuideUtils.getOrWaitFor(GuideUtils.getElementSelector('.confirm-dialog .cancel-btn'), 1)\n .then(() => {\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.next())\n })\n .catch(() => {\n const stepId = currentStep.id;\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.show(stepId + 2))\n })\n }\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.select-ttyg-agent.missing-repository',\n elementSelector: GuideUtils.getElementSelector('.confirm-dialog .cancel-btn'),\n showOn: () => GuideUtils.isVisible('.confirm-dialog .cancel-btn'),\n onNextClick: () => {\n // Close the modal by clicking on cancel button\n GuideUtils.clickOnElement('.confirm-dialog .cancel-btn')();\n },\n show: (guide, currentStep) => () => {\n const currentStepId = currentStep.id;\n // Add \"click\" listener to the element. Upon clicking the element the guide is set back 3 steps to open dropdown step\n $(currentStep.elementSelector).on('click', () => {\n guide.show(currentStepId - 3)\n });\n },\n hide: (guide, currentStep) => () => {\n // Remove the \"click\" listener of element. It is important when step is hidden.\n $(currentStep.elementSelector).off('click');\n }\n }, options)\n },\n ];\n }\n }\n]);\n"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","mainAction","angular","extend","content","url","class","skipPoint","disablePreviousFlow","elementSelector","getGuideElementSelector","disableNextFlow","show","elementToObserve","document","querySelector","dropdownToggleElement","observer","MutationObserver","mutationList","mutation","type","target","classList","contains","click","observe","attributes","hide","disconnect","beforeShowPromise","guide","currentStep","getOrWaitFor","getElementSelector","then","setTimeout","next","catch","stepId","id","showOn","isVisible","onNextClick","clickOnElement","currentStepId","$","on","off"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ export const __webpack_id__=86639;export const __webpack_ids__=[86639];export const __webpack_modules__={86639:()=>{PluginRegistry.add("guide.step",[{guideBlockName:"create-similarity-index",getSteps:(e,i)=>{const t=i.GuideUtils;return e.mainAction="create-similarity-index",[{guideBlockName:"click-main-menu",options:angular.extend({},{menu:"similarity",showIntro:!0},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.create-similarity-index.create-similarity-index",class:"similarity-index-guide-dialog",url:"similarity",elementSelector:t.getGuideElementSelector("create-similarity-index"),disableNextFlow:!0,onNextClick:()=>{}},e)},{guideBlockName:"input-element",options:angular.extend({},{content:"guide.step_plugin.create-similarity-index.input-index-name",class:"similarity-index-name-input-guide-dialog",url:"similarity/index/create",elementSelector:t.getGuideElementSelector("similarity-index-name"),onNextValidate:()=>Promise.resolve(t.validateTextInputNotEmpty(t.getGuideElementSelector("similarity-index-name")))},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.create-similarity-index.create-index",class:"create-similarity-index-guide-dialog",url:"similarity/index/create",elementSelector:t.getGuideElementSelector("create-similarity-index-btn"),disablePreviousFlow:!1,disableNextFlow:!0,onNextClick:()=>{}},e)},{guideBlockName:"info-message",options:angular.extend({},{beforeShowPromise:(e,i)=>t.getOrWaitFor(t.getGuideElementSelector("error"),1).then(()=>{const t=i.id;setTimeout(()=>e.show(t-2))}).catch(()=>{setTimeout(()=>e.next())})},e)},{guideBlockName:"hold-and-wait-until-shown",options:angular.extend({},{content:"guide.step_plugin.create-similarity-index.wait",class:"wait-for-index-guide-dialog",elementSelectorToWait:t.getGuideElementSelector("similarity-indexes-table")},e)}]}}])}};
2
+ //# sourceMappingURL=86639.5584db5b403656b75ad4.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"86639.5584db5b403656b75ad4.bundle.js","mappings":"oHAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,0BAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAG5B,OAFAF,EAAQG,WAAa,0BAEd,CACH,CACIL,eAAgB,kBAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBC,KAAM,aACNC,WAAW,GACZP,IACJ,CACCF,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBG,QAAS,oEACTC,MAAO,gCACPC,IAAK,aACLC,gBAAiBT,EAAWU,wBAAwB,2BACpDC,iBAAiB,EACjBC,YAAaA,QAEdd,IACJ,CACCF,eAAgB,gBAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBG,QAAS,6DACTC,MAAO,2CACPC,IAAK,0BACLC,gBAAiBT,EAAWU,wBAAwB,yBACpDG,eAAgBA,IAAMC,QAAQC,QAAQf,EAAWgB,0BAA0BhB,EAAWU,wBAAwB,4BAC/GZ,IACJ,CACCF,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBG,QAAS,yDACTC,MAAO,uCACPC,IAAK,0BACLC,gBAAiBT,EAAWU,wBAAwB,+BACpDO,qBAAqB,EACrBN,iBAAiB,EACjBC,YAAaA,QAEdd,IACJ,CAECF,eAAgB,eAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBe,kBAAmBA,CAACC,EAAOC,IAAgBpB,EAAWqB,aAAarB,EAAWU,wBAAwB,SAAU,GAC3GY,KAAK,KACF,MAAMC,EAASH,EAAYI,GAE3BC,WAAW,IAAMN,EAAMO,KAAKH,EAAS,MAExCI,MAAM,KAEHF,WAAW,IAAMN,EAAMS,WAEhC9B,IAEP,CACIF,eAAgB,4BAChBE,QAASI,QAAQC,OAAO,CAAC,EAAG,CACxBG,QAAS,iDACTC,MAAO,8BACPsB,sBAAuB7B,EAAWU,wBAAwB,6BAC3DZ,Q","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/create-similarity-index/plugin.js"],"sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'create-similarity-index',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'create-similarity-index';\n\n return [\n {\n guideBlockName: 'click-main-menu',\n options: angular.extend({}, {\n menu: 'similarity',\n showIntro: true\n }, options)\n }, {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.create-similarity-index.create-similarity-index',\n class: 'similarity-index-guide-dialog',\n url: 'similarity',\n elementSelector: GuideUtils.getGuideElementSelector('create-similarity-index'),\n disableNextFlow: true,\n onNextClick: () => {\n }\n }, options)\n }, {\n guideBlockName: 'input-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.create-similarity-index.input-index-name',\n class: 'similarity-index-name-input-guide-dialog',\n url: 'similarity/index/create',\n elementSelector: GuideUtils.getGuideElementSelector('similarity-index-name'),\n onNextValidate: () => Promise.resolve(GuideUtils.validateTextInputNotEmpty(GuideUtils.getGuideElementSelector('similarity-index-name')))\n }, options)\n }, {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.create-similarity-index.create-index',\n class: 'create-similarity-index-guide-dialog',\n url: 'similarity/index/create',\n elementSelector: GuideUtils.getGuideElementSelector('create-similarity-index-btn'),\n disablePreviousFlow: false,\n disableNextFlow: true,\n onNextClick: () => {\n }\n }, options)\n }, {\n // check if error block is shown and go back 2 steps or proceed\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n beforeShowPromise: (guide, currentStep) => GuideUtils.getOrWaitFor(GuideUtils.getGuideElementSelector('error'), 1)\n .then(() => {\n const stepId = currentStep.id;\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.show(stepId - 2))\n })\n .catch(() => {\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.next())\n }),\n }, options)\n },\n {\n guideBlockName: 'hold-and-wait-until-shown',\n options: angular.extend({}, {\n content: 'guide.step_plugin.create-similarity-index.wait',\n class: 'wait-for-index-guide-dialog',\n elementSelectorToWait: GuideUtils.getGuideElementSelector('similarity-indexes-table'),\n }, options)\n }\n ];\n }\n }\n]);\n"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","mainAction","angular","extend","menu","showIntro","content","class","url","elementSelector","getGuideElementSelector","disableNextFlow","onNextClick","onNextValidate","Promise","resolve","validateTextInputNotEmpty","disablePreviousFlow","beforeShowPromise","guide","currentStep","getOrWaitFor","then","stepId","id","setTimeout","show","catch","next","elementSelectorToWait"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ export const __webpack_id__=89695;export const __webpack_ids__=[89695];export const __webpack_modules__={89695:()=>{PluginRegistry.add("guide.step",[{guideBlockName:"sparql-search-method",getSteps:(e,t)=>{const l=t.GuideUtils;e.mainAction="sparql-search-method";const o=e.disable,a=l.getGuideElementSelector("query-method-sparql_search-input");return o?[{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.sparql-search-method.disable-toggle",class:"toggle-sparql-search-guide-dialog",url:"ttyg",showOn:()=>l.isChecked(a),elementSelector:l.getGuideElementSelector("query-method-sparql_search"),clickableElementSelector:a,onNextValidate:()=>Promise.resolve(!l.isChecked(a))},e)}]:[{guideBlockName:"info-message",options:angular.extend({},{content:"guide.step_plugin.sparql-search-method.content",class:"info-sparql-search-guide-dialog",url:"ttyg"},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.sparql-search-method.enable-toggle",class:"toggle-sparql-search-guide-dialog",url:"ttyg",elementSelector:l.getGuideElementSelector("query-method-sparql_search"),clickableElementSelector:a,onNextValidate:()=>Promise.resolve(l.isChecked(a))},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.sparql-search-method.enable-ontology-from-graph",class:"enable-ontology-from-graph-guide-dialog",url:"ttyg",elementSelector:l.getGuideElementSelector("sparql-ontology-graph-option"),clickableElementSelector:l.getGuideElementSelector("sparql-ontology-graph-option-input"),onNextValidate:()=>Promise.resolve(l.isChecked(l.getGuideElementSelector("sparql-ontology-graph-option-input")))},e)},{guideBlockName:"input-element",options:angular.extend({},{content:"guide.step_plugin.sparql-search-method.type-ontology-graph-name",class:"input-ontology-graph-name-guide-dialog",url:"ttyg",elementSelector:l.getGuideElementSelector("sparql-ontology-graph-input"),onNextValidate:()=>Promise.resolve(l.validateTextInput(l.getGuideElementSelector("sparql-ontology-graph-input"),e.ontologyGraph,!1))},e)}]}}])}};
2
+ //# sourceMappingURL=89695.9a36bd7b51d76634b902.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"89695.9a36bd7b51d76634b902.bundle.js","mappings":"oHAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,uBAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAC5BF,EAAQG,WAAa,uBAErB,MAAMC,EAAkBJ,EAAQK,QAC1BC,EAAiBJ,EAAWK,wBAAwB,oCAE1D,OAAIH,EACO,CAAC,CACJN,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,wDACTC,MAAO,oCACPC,IAAK,OACLC,OAAQA,IAAMX,EAAWY,UAAUR,GACnCS,gBAAiBb,EAAWK,wBAAwB,8BACpDS,yBAA0BV,EAC1BW,eAAgBA,IAAMC,QAAQC,SAASjB,EAAWY,UAAUR,KAC7DN,KAIJ,CACH,CACIF,eAAgB,eAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,iDACTC,MAAO,kCACPC,IAAK,QACNZ,IAEP,CACIF,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,uDACTC,MAAO,oCACPC,IAAK,OACLG,gBAAiBb,EAAWK,wBAAwB,8BACpDS,yBAA0BV,EAC1BW,eAAgBA,IAAMC,QAAQC,QAAQjB,EAAWY,UAAUR,KAC5DN,IAEP,CACIF,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,oEACTC,MAAO,0CACPC,IAAK,OACLG,gBAAiBb,EAAWK,wBAAwB,gCACpDS,yBAA0Bd,EAAWK,wBAAwB,sCAC7DU,eAAgBA,IAAMC,QAAQC,QAAQjB,EAAWY,UAAUZ,EAAWK,wBAAwB,yCAC/FP,IAEP,CACIF,eAAgB,gBAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBC,QAAS,kEACTC,MAAO,yCACPC,IAAK,OACLG,gBAAiBb,EAAWK,wBAAwB,+BACpDU,eAAgBA,IAAMC,QAAQC,QAAQjB,EAAWkB,kBAAkBlB,EAAWK,wBAAwB,+BAAgCP,EAAQqB,eAAe,KAC9JrB,Q","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/ttyg/common/sparql-search-method/plugin.js"],"sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'sparql-search-method',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'sparql-search-method';\n\n const shouldToggleOff = options.disable;\n const toggleSelector = GuideUtils.getGuideElementSelector('query-method-sparql_search-input');\n\n if (shouldToggleOff) {\n return [{\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.sparql-search-method.disable-toggle',\n class: 'toggle-sparql-search-guide-dialog',\n url: 'ttyg',\n showOn: () => GuideUtils.isChecked(toggleSelector),\n elementSelector: GuideUtils.getGuideElementSelector('query-method-sparql_search'),\n clickableElementSelector: toggleSelector,\n onNextValidate: () => Promise.resolve(!GuideUtils.isChecked(toggleSelector))\n }, options)\n }]\n }\n\n return [\n {\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n content: `guide.step_plugin.sparql-search-method.content`,\n class: 'info-sparql-search-guide-dialog',\n url: 'ttyg'\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.sparql-search-method.enable-toggle',\n class: 'toggle-sparql-search-guide-dialog',\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('query-method-sparql_search'),\n clickableElementSelector: toggleSelector,\n onNextValidate: () => Promise.resolve(GuideUtils.isChecked(toggleSelector))\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.sparql-search-method.enable-ontology-from-graph',\n class: 'enable-ontology-from-graph-guide-dialog',\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('sparql-ontology-graph-option'),\n clickableElementSelector: GuideUtils.getGuideElementSelector('sparql-ontology-graph-option-input'),\n onNextValidate: () => Promise.resolve(GuideUtils.isChecked(GuideUtils.getGuideElementSelector('sparql-ontology-graph-option-input')))\n }, options)\n },\n {\n guideBlockName: 'input-element',\n options: angular.extend({}, {\n content: `guide.step_plugin.sparql-search-method.type-ontology-graph-name`,\n class: 'input-ontology-graph-name-guide-dialog',\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('sparql-ontology-graph-input'),\n onNextValidate: () => Promise.resolve(GuideUtils.validateTextInput(GuideUtils.getGuideElementSelector('sparql-ontology-graph-input'), options.ontologyGraph, false))\n }, options)\n }\n ];\n }\n }\n]);\n"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","mainAction","shouldToggleOff","disable","toggleSelector","getGuideElementSelector","angular","extend","content","class","url","showOn","isChecked","elementSelector","clickableElementSelector","onNextValidate","Promise","resolve","validateTextInput","ontologyGraph"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- export const __webpack_id__=9062;export const __webpack_ids__=[9062];export const __webpack_modules__={9062:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a});const a='<link href="css/ttyg/agent-list.css?v=3.1.0-TR12" rel="stylesheet"/> <div class="agent-list-component"> <div class="agents-filter-dropdown btn-group" uib-dropdown> <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle"> <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i> <span class="selected-filter">{{selectedAgentsFilter.label}}</span> <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i> </button> <ul class="dropdown-menu" role="menu"> <li ng-repeat="filterModel in agentListFilterModel"> <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)" data-value="{{filterModel.label}}"> {{filterModel.label}} </button> </li> </ul> </div> <div class="agent-list"> <div ng-if="!agentList.agents.length" class="alert alert-warning"> {{\'ttyg.agent.messages.no_agents\' | translate}} </div> <div ng-repeat="agent in agentList.filterableAgents"> <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item" ng-class="{\'selected\': agent.id === selectedAgent.id}"> <div class="agent-info" ng-attr-gdb-tooltip="{{!agent.isCompatible ? (\'ttyg.agent.incompatible_agent\' | translate) : undefined}}"> <div class="agent-name" ng-class="{\'incompatible-agent\': !agent.isCompatible}"> <i ng-if="!agent.isCompatible" class="fa fa-triangle-exclamation text-warning"> </i> {{agent.name}} </div> <div class="btn-group"> <button class="btn btn-link secondary btn-sm open-agent-actions-btn" data-toggle="dropdown" aria-expanded="false" ng-if="true" ng-click="openAgentActionMenu()" ng-disabled="false"> <i class="fa fa-ellipsis"></i> </button> <div class="dropdown-menu dropdown-menu-right agent-actions-menu"> <button ng-if="agent.isCompatible" class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)"> <i class="fa fa-gear"></i> <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item ext-integration-agent-btn" type="button" ng-click="onExternalIntegration(agent)"> <i class="fa-regular fa-plug-circle-plus"></i> <span>{{\'ttyg.agent.btn.external_integration\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)"> <i class="fa fa-clone"></i> <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span> </button> <div ng-if="agent.isCompatible" class="dropdown-divider"></div> <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)"> <i class="fa fa-trash-can"></i> <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span> </button> </div> </div> </div> <div class="repository-model-group"> <div class="related-repository"> <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i> <i ng-if="agent.isRepositoryDeleted" class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository" gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}"> </i> {{agent.repositoryId}} </div> <div class="model-name">{{agent.model}}</div> </div> </div> <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress" onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}" size="25"></div> </div> </div> </div> '}};
2
- //# sourceMappingURL=9062.8a9659bd978a5ac7a1e2.bundle.js.map
1
+ export const __webpack_id__=9062;export const __webpack_ids__=[9062];export const __webpack_modules__={9062:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a});const a='<link href="css/ttyg/agent-list.css?v=3.1.0-TR13" rel="stylesheet"/> <div class="agent-list-component"> <div class="agents-filter-dropdown btn-group" uib-dropdown> <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle"> <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i> <span class="selected-filter">{{selectedAgentsFilter.label}}</span> <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i> </button> <ul class="dropdown-menu" role="menu"> <li ng-repeat="filterModel in agentListFilterModel"> <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)" data-value="{{filterModel.label}}"> {{filterModel.label}} </button> </li> </ul> </div> <div class="agent-list"> <div ng-if="!agentList.agents.length" class="alert alert-warning"> {{\'ttyg.agent.messages.no_agents\' | translate}} </div> <div ng-repeat="agent in agentList.filterableAgents"> <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item" ng-class="{\'selected\': agent.id === selectedAgent.id}"> <div class="agent-info" ng-attr-gdb-tooltip="{{!agent.isCompatible ? (\'ttyg.agent.incompatible_agent\' | translate) : undefined}}"> <div class="agent-name" ng-class="{\'incompatible-agent\': !agent.isCompatible}"> <i ng-if="!agent.isCompatible" class="fa fa-triangle-exclamation text-warning"> </i> {{agent.name}} </div> <div class="btn-group"> <button class="btn btn-link secondary btn-sm open-agent-actions-btn" data-toggle="dropdown" aria-expanded="false" ng-if="true" ng-click="openAgentActionMenu()" ng-disabled="false"> <i class="fa fa-ellipsis"></i> </button> <div class="dropdown-menu dropdown-menu-right agent-actions-menu"> <button ng-if="agent.isCompatible" class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)"> <i class="fa fa-gear"></i> <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item ext-integration-agent-btn" type="button" ng-click="onExternalIntegration(agent)"> <i class="fa-regular fa-plug-circle-plus"></i> <span>{{\'ttyg.agent.btn.external_integration\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)"> <i class="fa fa-clone"></i> <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span> </button> <div ng-if="agent.isCompatible" class="dropdown-divider"></div> <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)"> <i class="fa fa-trash-can"></i> <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span> </button> </div> </div> </div> <div class="repository-model-group"> <div class="related-repository"> <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i> <i ng-if="agent.isRepositoryDeleted" class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository" gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}"> </i> {{agent.repositoryId}} </div> <div class="model-name">{{agent.model}}</div> </div> </div> <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress" onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}" size="25"></div> </div> </div> </div> '}};
2
+ //# sourceMappingURL=9062.91ba683ec5a6cb53c23f.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"9062.8a9659bd978a5ac7a1e2.bundle.js","mappings":"oJAGA,QAFW,gyG","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/agent-list.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-list.css?v=3.1.0-TR12\" rel=\"stylesheet\"/> <div class=\"agent-list-component\"> <div class=\"agents-filter-dropdown btn-group\" uib-dropdown> <button type=\"button\" uib-dropdown-toggle class=\"btn btn-outline-primary dropdown-toggle\"> <i class=\"fa-kit fa-gdb-repo-graphdb mr-1\"></i> <span class=\"selected-filter\">{{selectedAgentsFilter.label}}</span> <i class=\"fa fa-filter\" gdb-tooltip=\"{{'ttyg.agent.btn.filter.tooltip' | translate}}\"></i> </button> <ul class=\"dropdown-menu\" role=\"menu\"> <li ng-repeat=\"filterModel in agentListFilterModel\"> <button type=\"button\" class=\"dropdown-item\" ng-click=\"onAgentsFilterChange(filterModel)\" data-value=\"{{filterModel.label}}\"> {{filterModel.label}} </button> </li> </ul> </div> <div class=\"agent-list\"> <div ng-if=\"!agentList.agents.length\" class=\"alert alert-warning\"> {{'ttyg.agent.messages.no_agents' | translate}} </div> <div ng-repeat=\"agent in agentList.filterableAgents\"> <div ng-if=\"!deletingAgent || deletingAgent.agentId !== agent.id\" class=\"agent-item\" ng-class=\"{'selected': agent.id === selectedAgent.id}\"> <div class=\"agent-info\" ng-attr-gdb-tooltip=\"{{!agent.isCompatible ? ('ttyg.agent.incompatible_agent' | translate) : undefined}}\"> <div class=\"agent-name\" ng-class=\"{'incompatible-agent': !agent.isCompatible}\"> <i ng-if=\"!agent.isCompatible\" class=\"fa fa-triangle-exclamation text-warning\"> </i> {{agent.name}} </div> <div class=\"btn-group\"> <button class=\"btn btn-link secondary btn-sm open-agent-actions-btn\" data-toggle=\"dropdown\" aria-expanded=\"false\" ng-if=\"true\" ng-click=\"openAgentActionMenu()\" ng-disabled=\"false\"> <i class=\"fa fa-ellipsis\"></i> </button> <div class=\"dropdown-menu dropdown-menu-right agent-actions-menu\"> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item edit-agent-btn\" type=\"button\" ng-click=\"onEditAgent(agent)\"> <i class=\"fa fa-gear\"></i> <span>{{'ttyg.agent.btn.edit_agent.label' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item ext-integration-agent-btn\" type=\"button\" ng-click=\"onExternalIntegration(agent)\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> <span>{{'ttyg.agent.btn.external_integration' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item clone-agent-btn\" type=\"button\" ng-click=\"onCloneAgent(agent)\"> <i class=\"fa fa-clone\"></i> <span>{{'ttyg.agent.btn.clone_agent.label' | translate}}</span> </button> <div ng-if=\"agent.isCompatible\" class=\"dropdown-divider\"></div> <button class=\"dropdown-item delete-agent-btn\" type=\"button\" ng-click=\"onDeleteAgent(agent)\"> <i class=\"fa fa-trash-can\"></i> <span>{{'ttyg.agent.btn.delete_agent.label' | translate}}</span> </button> </div> </div> </div> <div class=\"repository-model-group\"> <div class=\"related-repository\"> <i ng-if=\"!agent.isRepositoryDeleted\" class=\"fa-kit fa-gdb-repo-graphdb\"></i> <i ng-if=\"agent.isRepositoryDeleted\" class=\"fa fa-triangle-exclamation text-warning agent-with-deleted-repository\" gdb-tooltip=\"{{'ttyg.agent.deleted_repository' | translate}}\"> </i> {{agent.repositoryId}} </div> <div class=\"model-name\">{{agent.model}}</div> </div> </div> <div class=\"deleting-agent-loader\" ng-if=\"deletingAgent.agentId === agent.id && deletingAgent.inProgress\" onto-loader-fancy message=\"{{'ttyg.agent.deleting_agent' | translate}}\" size=\"25\"></div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"9062.91ba683ec5a6cb53c23f.bundle.js","mappings":"oJAGA,QAFW,gyG","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/agent-list.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-list.css?v=3.1.0-TR13\" rel=\"stylesheet\"/> <div class=\"agent-list-component\"> <div class=\"agents-filter-dropdown btn-group\" uib-dropdown> <button type=\"button\" uib-dropdown-toggle class=\"btn btn-outline-primary dropdown-toggle\"> <i class=\"fa-kit fa-gdb-repo-graphdb mr-1\"></i> <span class=\"selected-filter\">{{selectedAgentsFilter.label}}</span> <i class=\"fa fa-filter\" gdb-tooltip=\"{{'ttyg.agent.btn.filter.tooltip' | translate}}\"></i> </button> <ul class=\"dropdown-menu\" role=\"menu\"> <li ng-repeat=\"filterModel in agentListFilterModel\"> <button type=\"button\" class=\"dropdown-item\" ng-click=\"onAgentsFilterChange(filterModel)\" data-value=\"{{filterModel.label}}\"> {{filterModel.label}} </button> </li> </ul> </div> <div class=\"agent-list\"> <div ng-if=\"!agentList.agents.length\" class=\"alert alert-warning\"> {{'ttyg.agent.messages.no_agents' | translate}} </div> <div ng-repeat=\"agent in agentList.filterableAgents\"> <div ng-if=\"!deletingAgent || deletingAgent.agentId !== agent.id\" class=\"agent-item\" ng-class=\"{'selected': agent.id === selectedAgent.id}\"> <div class=\"agent-info\" ng-attr-gdb-tooltip=\"{{!agent.isCompatible ? ('ttyg.agent.incompatible_agent' | translate) : undefined}}\"> <div class=\"agent-name\" ng-class=\"{'incompatible-agent': !agent.isCompatible}\"> <i ng-if=\"!agent.isCompatible\" class=\"fa fa-triangle-exclamation text-warning\"> </i> {{agent.name}} </div> <div class=\"btn-group\"> <button class=\"btn btn-link secondary btn-sm open-agent-actions-btn\" data-toggle=\"dropdown\" aria-expanded=\"false\" ng-if=\"true\" ng-click=\"openAgentActionMenu()\" ng-disabled=\"false\"> <i class=\"fa fa-ellipsis\"></i> </button> <div class=\"dropdown-menu dropdown-menu-right agent-actions-menu\"> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item edit-agent-btn\" type=\"button\" ng-click=\"onEditAgent(agent)\"> <i class=\"fa fa-gear\"></i> <span>{{'ttyg.agent.btn.edit_agent.label' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item ext-integration-agent-btn\" type=\"button\" ng-click=\"onExternalIntegration(agent)\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> <span>{{'ttyg.agent.btn.external_integration' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item clone-agent-btn\" type=\"button\" ng-click=\"onCloneAgent(agent)\"> <i class=\"fa fa-clone\"></i> <span>{{'ttyg.agent.btn.clone_agent.label' | translate}}</span> </button> <div ng-if=\"agent.isCompatible\" class=\"dropdown-divider\"></div> <button class=\"dropdown-item delete-agent-btn\" type=\"button\" ng-click=\"onDeleteAgent(agent)\"> <i class=\"fa fa-trash-can\"></i> <span>{{'ttyg.agent.btn.delete_agent.label' | translate}}</span> </button> </div> </div> </div> <div class=\"repository-model-group\"> <div class=\"related-repository\"> <i ng-if=\"!agent.isRepositoryDeleted\" class=\"fa-kit fa-gdb-repo-graphdb\"></i> <i ng-if=\"agent.isRepositoryDeleted\" class=\"fa fa-triangle-exclamation text-warning agent-with-deleted-repository\" gdb-tooltip=\"{{'ttyg.agent.deleted_repository' | translate}}\"> </i> {{agent.repositoryId}} </div> <div class=\"model-name\">{{agent.model}}</div> </div> </div> <div class=\"deleting-agent-loader\" ng-if=\"deletingAgent.agentId === agent.id && deletingAgent.inProgress\" onto-loader-fancy message=\"{{'ttyg.agent.deleting_agent' | translate}}\" size=\"25\"></div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ export const __webpack_id__=94519;export const __webpack_ids__=[48184,48581,53174,57952,70962,94519];export const __webpack_modules__={48184:(t,e,n)=>{n.r(e),n.d(e,{NodeState:()=>s});const s={LEADER:"LEADER",FOLLOWER:"FOLLOWER",CANDIDATE:"CANDIDATE",OUT_OF_SYNC_BLANK:"OUT_OF_SYNC_BLANK"}},53174:(t,e,n)=>{n.r(e),n.d(e,{CLUSTER_MANAGEMENT_CONSTANTS:()=>o});var s=n(48184),a=n(70962);const o={getLegendNodes:function(){const t=[];return t.push({nodeState:s.NodeState.LEADER,customText:"node_state_leader"}),t.push({nodeState:s.NodeState.FOLLOWER,customText:"node_state_follower"}),t.push({nodeState:s.NodeState.OUT_OF_SYNC_BLANK,customText:"node_state_out_of_sync"}),t.forEach((t,e)=>t.id=e),t},getSyncStatuses:()=>[{labelKey:"node_state_candidate",classes:"icon-any",icon:""},{labelKey:"node_state_no_cluster",classes:"close",icon:"X"},{labelKey:"link_state_out_of_sync",classes:"icon-any",icon:""},{labelKey:"node_state_no_connection",classes:"icon-any",icon:""},{labelKey:"node_state_read_only",classes:"icon-any",icon:""},{labelKey:"node_state_restricted",classes:"icon-any",icon:""},{labelKey:"recovery_state.searching_for_node",classes:"fa-d3",icon:""},{labelKey:"recovery_state.waiting_for_snapshot",classes:"fa-d3",icon:""},{labelKey:"recovery_state.building_snapshot",classes:"fa-d3 fa-solid",icon:""},{labelKey:"recovery_state.sending_snapshot",classes:"fa-d3 fa-solid",icon:""},{labelKey:"recovery_state.receiving_snapshot",classes:"fa-d3 fa-solid",icon:""},{labelKey:"recovery_state.applying_snapshot",classes:"fa-d3 fa-solid",icon:""}],getLegendLinks:function(){const t=[];return t.push({status:a.LinkState.IN_SYNC,linkTypeKey:"link_state_in_sync"}),t.push({status:a.LinkState.SYNCING,linkTypeKey:"link_state_syncing"}),t.push({status:a.LinkState.OUT_OF_SYNC,linkTypeKey:"link_state_out_of_sync"}),t.push({status:a.LinkState.RECEIVING_SNAPSHOT,linkTypeKey:"link_state_receiving_snapshot"}),t.forEach((t,e)=>t.id=e),t},SVG_NODE_WIDTH:15,PADDING_LEFT:12,PADDING_TOP:12,TITLE_PADDING_TOP:15,TITLE_FONT_SIZE:13,TITLE_FONT_WEIGHT:700,TITLE_COLOR:"#000000",TITLE_LINE_HEIGHT:18,LEGEND_ITEM_FONT_SIZE:11,LEGEND_ITEM_ICON_FONT_SIZE:15,LEGEND_ITEM_FONT_WEIGHT:400,LEGEND_ITEM_COLOR:"#000000",LEGEND_ITEM_LINE_HEIGHT:13,LEGEND_ITEM_PADDING_LEFT:27,LEGEND_ITEMS_PADDING_TOP:40,LEGEND_ITEM_PADDING_TOP:8,BACKGROUND_PADDING:24}},57952:(t,e,n)=>{n.r(e),n.d(e,{ARROW_CONFIG:()=>p,addArrowHead:()=>G,createClusterSvgElement:()=>l,createClusterZone:()=>T,createHexagon:()=>m,createLinks:()=>g,createNodes:()=>O,moveElement:()=>u,positionNodesOnClusterZone:()=>R,removeEventListeners:()=>x,setArrowLink:()=>f,setCreateClusterZone:()=>d,setLinkColor:()=>M,setLinkStyle:()=>D,updateClusterZoneLabels:()=>S,updateLinks:()=>y,updateNodes:()=>A});var s=n(70962),a=n(98980),o=n(93462);const r={line:o.line,select:o.select},N={ontoOrange:"var(--primary-color)",ontoBlue:"var(--secondary-color)",ontoGreen:"var(--tertiary-color)",ontoGrey:"var(--gray-color)"},_={[s.LinkState.IN_SYNC]:N.ontoBlue,[s.LinkState.SYNCING]:N.ontoBlue,[s.LinkState.OUT_OF_SYNC]:N.ontoGrey,[s.LinkState.RECEIVING_SNAPSHOT]:N.ontoBlue},c={[s.LinkState.IN_SYNC]:"none",[s.LinkState.SYNCING]:"10 10",[s.LinkState.OUT_OF_SYNC]:"10 10",[s.LinkState.RECEIVING_SNAPSHOT]:"10 10"},E={FONT_AWESOME:"FONT_AWESOME",ICOMOON:"ICOMOON"},i=40;function l(t){return r.select(t).append("svg").classed("cluster-diagram",!0)}function T(t){const e=t.append("g");return e.append("circle").classed("cluster-zone",!0).style("fill","transparent").style("stroke-width","4"),e}function d(t,e,n,s=!1){if(e.select(".cluster-zone").classed("no-cluster",!t).classed("has-access",s),t)e.selectAll("#no-cluster-zone").remove();else{const t=e.append("g").attr("id","no-cluster-zone");t.append("text").attr("id","no-cluster-label").text(n.no_cluster_configured).attr("y",-50).classed("h2",!0).style("text-anchor","middle"),s&&t.append("text").attr("id","create-cluster-label").classed("h3",!0).text(n.create_cluster_btn).style("text-anchor","middle"),t.append("text").attr("y",130).attr("class","icon-any repo").attr("fill",N.ontoOrange).style("text-anchor","middle").classed("settings-icon",!0).text("")}}function S(t,e,n){t||(e.select("#no-cluster-zone #no-cluster-label").text(n.no_cluster_configured),e.select("#no-cluster-zone #create-cluster-label").text(n.create_cluster_btn))}function u(t,e,n){t.attr("transform",()=>`translate(${e}, ${n})`)}function O(t,e,n){const s=t.enter().append("g").attr("id","node-group").classed("legend",n),a=s.merge(t).attr("id","node-group").classed("legend",n);return m(s,e),t.exit().remove(),s.append("text").attr("class","icon-any node-icon"),n||function(t,e){const n=t.append("g");n.append("rect").attr("class","id-host-background").attr("rx",6),n.append("rect").attr("class","node-info-background").attr("rx",6),n.append("text").attr("y",e+25).attr("class","id id-host"),n.append("text").attr("y",e+55).attr("class","node-info-text")}(s,e),a}function A(t){!function(t){t.select(".node-icon").each(function(t){const e=(n=t,(0,a.isEmpty)(n.recoveryStatus)?function(t){return I[t.nodeState]||{icon:"",font:""}}(t):function(t){const e=t.recoveryStatus;return e&&e.state&&L[e.state]||{icon:"",font:""}}(t));var n;r.select(this).classed("icon-any",e.font===E.ICOMOON).classed("fa-d3",e.font===E.FONT_AWESOME).text(e.icon)})}(t),function(t){t.select(".node.member").classed("leader",t=>t.nodeState===s.NodeState.LEADER).classed("follower",t=>t.nodeState===s.NodeState.FOLLOWER).classed("candidate",t=>t.nodeState===s.NodeState.CANDIDATE).classed("other",t=>t.nodeState!==s.NodeState.LEADER&&t.nodeState!==s.NodeState.FOLLOWER&&t.nodeState!==s.NodeState.CANDIDATE)}(t),function(t){t.select(".id.id-host").each(function(t){t.labelNode=this}).text(function(t){return t.hostname}),t.select(".id-host-background").attr("width",function(t){return r.select(t.labelNode).node().getBBox().width+10}).attr("height",function(t){return r.select(t.labelNode).node().getBBox().height+10}).attr("x",function(t){return r.select(t.labelNode).node().getBBox().x-5}).attr("y",function(t){return r.select(t.labelNode).node().getBBox().y-5})}(t),function(t){let e,n;t.select(".node-info-text").each(function(t){t.infoNode=this}).select(function(){return this.parentNode}).append("foreignObject").attr("width",function(t){let s="";(0,a.isEmpty)(t.recoveryStatus)||(s=C(t));const o=h(s);return e=o.height,n=o.width,n}).attr("height",function(t){return e}).attr("x",function(t){return-n/2}).attr("y",function(t){return 78}).classed("hidden",function(t){return(0,a.isEmpty)(t.recoveryStatus)}).style("font-size","12px").style("font-weight","400").style("text-align","center").style("padding","4px").style("background","#EEEEEE").style("border-radius","6px").attr("class","node-info-fo").append("xhtml:div").html(function(t){return C(t)}),t.select(".node-info-text").remove(),function(t){t.select(".node-info-fo").each(function(t){const e=r.select(this);if((0,a.isEmpty)(t.recoveryStatus))return void e.attr("width",0);const n=C(t),s=t.recoveryStatus.message&&t.recoveryStatus.message.length>i&&n!==t.recoveryStatus.message,o=s?n:t.recoveryStatus.message,N=h(n),_=h(t.recoveryStatus.message);e.on(".tooltip",null),s&&function(t,e,n,s,a){t.on("mouseover.tooltip",()=>{t.attr("width",a.width).attr("height",a.height).attr("x",-a.width/2).html(`<div>${e}</div>`)}),t.on("mouseout.tooltip",()=>{t.attr("width",n.width).attr("height",n.height).attr("x",-n.width/2).html(`<div>${s}</div>`)})}(e,t.recoveryStatus.message,N,o,_),e.attr("width",N.width).attr("height",N.height).attr("x",-N.width/2).html(`<div>${o}</div>`)})}(t)}(t)}const L={[s.RecoveryState.SEARCHING_FOR_NODE]:{icon:"",font:E.FONT_AWESOME},[s.RecoveryState.WAITING_FOR_SNAPSHOT]:{icon:"",font:E.FONT_AWESOME},[s.RecoveryState.RECEIVING_SNAPSHOT]:{icon:"",font:E.FONT_AWESOME},[s.RecoveryState.APPLYING_SNAPSHOT]:{icon:"",font:E.FONT_AWESOME},[s.RecoveryState.BUILDING_SNAPSHOT]:{icon:"",font:E.FONT_AWESOME},[s.RecoveryState.SENDING_SNAPSHOT]:{icon:"",font:E.FONT_AWESOME},[s.RecoveryState.RECOVERY_OPERATION_FAILURE_WARNING]:{icon:"",font:E.ICOMOON}},I={[s.NodeState.CANDIDATE]:{icon:"",font:E.ICOMOON},[s.NodeState.NO_CONNECTION]:{icon:"",font:E.ICOMOON},[s.NodeState.OUT_OF_SYNC]:{icon:"",font:E.ICOMOON},[s.NodeState.READ_ONLY]:{icon:"",font:E.ICOMOON},[s.NodeState.RESTRICTED]:{icon:"",font:E.ICOMOON}};function C(t){return t.recoveryStatus.message&&t.recoveryStatus.message.length>i?t.recoveryStatus.message.substring(0,i)+"...":t.recoveryStatus.message||""}function h(t){const e=document.createElement("div");e.innerHTML=t,e.style.padding="4px",e.style.position="absolute",e.style.visibility="hidden",e.style.fontSize="12px",e.style.fontWeight="400",e.style.textAlign="center",e.style.height="auto",e.style.width="auto",e.style.whiteSpace="nowrap",document.body.appendChild(e);const n=e.getBoundingClientRect(),s=n.height,a=n.width;return document.body.removeChild(e),{height:s,width:a}}function g(t){t.enter().append("path").classed("link",!0),t.exit().remove()}function y(t,e){t.attr("class",t=>`link ${t.id.replaceAll(":","-")}`).attr("stroke",M).style("stroke-dasharray",D).style("marker-mid",t=>f(t,p.BIG)).attr("d",t=>function(t,e){const n=e.find(e=>e.address===t.source),s=e.find(e=>e.address===t.target),a=s.x-n.x,o=s.y-n.y,r=Math.sqrt(a*a+o*o),N=a/r,_=o/r,c=n.x+55*N,E=n.y+55*_,i=s.x-55*N,l=s.y-55*_;return"M"+c+","+E+"L"+(c+i)/2+","+(E+l)/2+"L"+i+","+l}(t,e))}const p={SMALL:{name:"small",size:3},BIG:{name:"big",size:5}};function G(t,e){t.append("svg:defs").append("svg:marker").attr("id",`arrowhead_${e.name}`).attr("viewBox",`0 0 ${2*e.size} ${2*e.size}`).attr("refX",e.size).attr("refY",e.size).attr("markerWidth",e.size).attr("markerHeight",e.size).attr("orient","auto-start-reverse").append("path").attr("d",`M 0 0 L ${2*e.size} ${e.size} L 0 ${2*e.size} z`).style("fill","var(--secondary-color)")}function f(t,e){if(t.status===s.LinkState.RECEIVING_SNAPSHOT)return`url(#arrowhead_${e.name})`}function M(t){return _[t.status]||"none"}function D(t){return c[t.status]||"none"}function R(t,e,n,s){t.attr("transform",(a,o)=>{const r=2*Math.PI*o/t.size(),N=e+Math.cos(r)*s,_=n+Math.sin(r)*s;return a.x=N,a.y=_,`translate(${N}, ${_})`})}function m(t,e){const n=Math.sqrt(3)/2,s=[[e+0,0],[e/2+0,e*n+0],[-e/2+0,e*n+0],[0-e,0],[-e/2+0,-e*n+0],[e/2+0,-e*n+0],[e+0,0],[e/2+0,e*n+0]];return t.selectAll("path.area").data([s]).enter().append("path").attr("class","node member").attr("stroke-width","10").attr("stroke-linejoin","round").attr("d",r.line())}function x(){r.select(document).selectAll(".node-info-fo").on(".tooltip",null)}},70962:(t,e,n)=>{n.r(e),n.d(e,{LinkState:()=>o,NodeState:()=>s,RecoveryState:()=>a,TopologyState:()=>r});const s={LEADER:"LEADER",FOLLOWER:"FOLLOWER",CANDIDATE:"CANDIDATE",OUT_OF_SYNC:"OUT_OF_SYNC",NO_CONNECTION:"NO_CONNECTION",READ_ONLY:"READ_ONLY",RESTRICTED:"RESTRICTED",NO_CLUSTER:"NO_CLUSTER"},a={SEARCHING_FOR_NODE:"SEARCHING_FOR_NODE",WAITING_FOR_SNAPSHOT:"WAITING_FOR_SNAPSHOT",RECEIVING_SNAPSHOT:"RECEIVING_SNAPSHOT",APPLYING_SNAPSHOT:"APPLYING_SNAPSHOT",BUILDING_SNAPSHOT:"BUILDING_SNAPSHOT",SENDING_SNAPSHOT:"SENDING_SNAPSHOT",RECOVERY_OPERATION_FAILURE_WARNING:"RECOVERY_OPERATION_FAILURE_WARNING"},o={IN_SYNC:"IN_SYNC",OUT_OF_SYNC:"OUT_OF_SYNC",SYNCING:"SYNCING",NO_CONNECTION:"NO_CONNECTION",RECEIVING_SNAPSHOT:"RECEIVING_SNAPSHOT"},r={PRIMARY_NODE:"PRIMARY_NODE",SECONDARY_NODE:"SECONDARY_NODE"}},94519:(t,e,n)=>{n.r(e);var s=n(53174),a=n(57952),o=n(70962);const r={select:n(93462).select};function N(t,e,n,N){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-legend.html",scope:{},link:_=>{_.hideLegend=!0;const c=[];let E,i,l;_.toggleLegend=()=>{_.hideLegend=!_.hideLegend,E.classed("hidden-legend",_.hideLegend)};const T=()=>{const t=e.getClusterViewD3Container();O(t),A(),d(E),S(),u(),L(),I()},d=t=>{h(t,"cluster_management.cluster_graphical_view.legend_title_node_state");const e=t.selectAll(".node-group").data(s.CLUSTER_MANAGEMENT_CONSTANTS.getLegendNodes()),n=a.createNodes(e,s.CLUSTER_MANAGEMENT_CONSTANTS.SVG_NODE_WIDTH,!0);a.updateNodes(n),n.attr("transform",function(t,e){return L(),`translate(${s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT}, ${i+s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP})`}).append("text").classed("links-statuses",!0).style("font-weight",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT).style("fill",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR).attr("x",s.CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT+s.CLUSTER_MANAGEMENT_CONSTANTS.SVG_NODE_WIDTH).attr("y",3).text(function(t){return g(this,"cluster_management.cluster_graphical_view."+t.customText)})},S=()=>{h(E,"cluster_management.cluster_graphical_view.legend_title_sync_status");const t=E.selectAll(".sync-statuses-group").data(s.CLUSTER_MANAGEMENT_CONSTANTS.getSyncStatuses()).enter().append("g").attr("class","sync-statuses-group"),e=new Map;t.append("text").attr("class",t=>`sync-status ${t.classes}`).attr("x",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT-10).attr("y",function(t,n){const a=n*(20+s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP)+i+s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEMS_PADDING_TOP;return e.set(n,a),a}).text(function(t){return t.icon});const n=(s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_ICON_FONT_SIZE-s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE)/2;t.append("text").style("font-weight",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT).style("fill",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR).text(function(t){return g(this,"cluster_management.cluster_graphical_view."+t.labelKey)}).attr("x",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT+s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE).attr("y",function(t,s){return e.get(s)-n}).classed("links-statuses",!0)},u=()=>{h(E,"cluster_management.cluster_graphical_view.legend_title_link_states");const t=E.selectAll(".link-states-group").data(s.CLUSTER_MANAGEMENT_CONSTANTS.getLegendLinks()).enter().append("g").attr("class","link-state"),e=new Map;t.append("path").classed("link",!0).attr("stroke-dasharray",a.setLinkStyle).attr("stroke",a.setLinkColor).attr("d",(t,n)=>{const a=n*(s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE+s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP)+i+s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEMS_PADDING_TOP,r=l/2;let N;if(e.set(n,a),t.status===o.LinkState.RECEIVING_SNAPSHOT){const t=r/2;N=`M${s.CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT} ${a} L${t} ${a} L${r} ${a}`}else N=`M${s.CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT} ${a} ${r} ${a}`;return N}).style("marker-mid",t=>a.setArrowLink(t,a.ARROW_CONFIG.SMALL)),t.append("text").style("font-size",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE).style("line-height",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_LINE_HEIGHT).style("font-weight",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT).style("fill",s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR).text(function(t){return g(this,"cluster_management.cluster_graphical_view."+t.linkTypeKey)}).attr("x",l/2+s.CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT).attr("y",function(t,n){return e.get(n)+4}).classed("links-statuses",!0)},O=t=>{E=t.append("g").classed("hidden-legend",_.hideLegend).classed("cluster-legend-group",!0)},A=()=>{E.append("rect").attr("class","legend-background").attr("fill","#EEEEEE")},L=()=>{E.call(t=>{i=t.node().getBBox().height}),l=C(E)+30},I=()=>{const t=C(E);E.select(".legend-background").attr("height",i+3*s.CLUSTER_MANAGEMENT_CONSTANTS.PADDING_TOP).attr("width",t+s.CLUSTER_MANAGEMENT_CONSTANTS.BACKGROUND_PADDING).attr("rx","6")},C=t=>{let e=0;return t.selectAll(":not(.legend-background)").each(function(){const t=this.getBBox();e=Math.max(e,t.width)}),e},h=(t,e)=>t.append("text").attr("class","legend-title").attr("x",s.CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT).style("font-size",s.CLUSTER_MANAGEMENT_CONSTANTS.TITLE_FONT_SIZE).style("font-weight",s.CLUSTER_MANAGEMENT_CONSTANTS.TITLE_FONT_WEIGHT).style("line-height",s.CLUSTER_MANAGEMENT_CONSTANTS.TITLE_LINE_HEIGHT).style("fill",s.CLUSTER_MANAGEMENT_CONSTANTS.TITLE_COLOR).text(function(){return g(this,e)}).attr("y",()=>(L(),i+s.CLUSTER_MANAGEMENT_CONSTANTS.TITLE_PADDING_TOP)),g=(e,s)=>(c.push(t.$on("$translateChangeSuccess",()=>{r.select(e).text(n.instant(s)),I()})),n.instant(s)),y=()=>{_.hideLegend=!0,E.classed("hidden-legend",_.hideLegend)};N.on("keydown",t=>{"Escape"===t.key&&y()}),c.push(e.onClusterViewD3ContainerUpdated(T)),_.$on("$destroy",()=>{N.off("keydown",y),c.forEach(t=>t())}),T()}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-legend",[]).directive("clusterLegend",N),N.$inject=["$rootScope","ClusterViewContextService","$translate","$document"]}};
2
+ //# sourceMappingURL=94519.1b7b699d10f1278380c3.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"94519.1b7b699d10f1278380c3.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/node-state.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/cluster-management-constants.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/clustermanagement/services/cluster-drawing.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/clustermanagement/states.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/clustermanagement/directives/cluster-legend.directive.js"],"sourcesContent":["export const NodeState = {\n LEADER: 'LEADER',\n FOLLOWER: 'FOLLOWER',\n CANDIDATE: 'CANDIDATE',\n // node without icon\n OUT_OF_SYNC_BLANK: 'OUT_OF_SYNC_BLANK'\n};\n","import {NodeState} from \"./node-state\";\nimport {LinkState} from \"./states\";\n\nconst CLUSTER_MANAGEMENT_CONSTANTS = (function () {\n const SVG_NODE_WIDTH = 15;\n\n const PADDING_LEFT = 12;\n const PADDING_TOP = 12;\n\n const TITLE_PADDING_TOP = 15;\n const TITLE_FONT_SIZE = 13;\n const TITLE_FONT_WEIGHT = 700;\n const TITLE_LINE_HEIGHT = 18;\n const TITLE_COLOR = '#000000';\n\n const LEGEND_ITEMS_PADDING_TOP = 40;\n const LEGEND_ITEM_PADDING_TOP = 8;\n const LEGEND_ITEM_ICON_FONT_SIZE = 15;\n const LEGEND_ITEM_FONT_SIZE = 11;\n const LEGEND_ITEM_FONT_WEIGHT = 400;\n const LEGEND_ITEM_COLOR = '#000000';\n const LEGEND_ITEM_LINE_HEIGHT = 13;\n const LEGEND_ITEM_PADDING_LEFT = PADDING_LEFT + SVG_NODE_WIDTH;\n\n const BACKGROUND_PADDING = PADDING_LEFT * 2;\n\n const getLegendNodes = function () {\n const legendNodes = [];\n legendNodes.push({nodeState: NodeState.LEADER, customText: 'node_state_leader'});\n legendNodes.push({nodeState: NodeState.FOLLOWER, customText: 'node_state_follower'});\n // the out of sync node in the leged should not have an icon\n legendNodes.push({nodeState: NodeState.OUT_OF_SYNC_BLANK, customText: 'node_state_out_of_sync'});\n legendNodes.forEach((node, index) => node.id = index);\n return legendNodes;\n };\n\n const getLegendLinks = function () {\n const links = [];\n links.push({status: LinkState.IN_SYNC, linkTypeKey: 'link_state_in_sync'});\n links.push({status: LinkState.SYNCING, linkTypeKey: 'link_state_syncing'});\n links.push({status: LinkState.OUT_OF_SYNC, linkTypeKey: 'link_state_out_of_sync'});\n links.push({status: LinkState.RECEIVING_SNAPSHOT, linkTypeKey: 'link_state_receiving_snapshot'});\n links.forEach((link, index) => link.id = index);\n return links;\n };\n\n const getSyncStatuses = () => {\n return [\n {\n labelKey: 'node_state_candidate',\n classes: 'icon-any',\n icon: '\\ue914'\n }, {\n labelKey: 'node_state_no_cluster',\n classes: 'close',\n icon: 'X'\n }, {\n labelKey: 'link_state_out_of_sync',\n classes: 'icon-any',\n icon: '\\ue920'\n }, {\n labelKey: 'node_state_no_connection',\n classes: 'icon-any',\n icon: '\\ue931'\n }, {\n labelKey: 'node_state_read_only',\n classes: 'icon-any',\n icon: '\\ue95c'\n }, {\n labelKey: 'node_state_restricted',\n classes: 'icon-any',\n icon: '\\ue933'\n }, {\n labelKey: 'recovery_state.searching_for_node',\n classes: 'fa-d3',\n icon: '\\uf29c'\n }, {\n labelKey: 'recovery_state.waiting_for_snapshot',\n classes: 'fa-d3',\n icon: '\\uf017'\n }, {\n labelKey: 'recovery_state.building_snapshot',\n classes: 'fa-d3 fa-solid',\n icon: '\\uf187'\n }, {\n labelKey: 'recovery_state.sending_snapshot',\n classes: 'fa-d3 fa-solid',\n icon: '\\uf0ee'\n }, {\n labelKey: 'recovery_state.receiving_snapshot',\n classes: 'fa-d3 fa-solid',\n icon: '\\uf0ed'\n }, {\n labelKey: 'recovery_state.applying_snapshot',\n classes: 'fa-d3 fa-solid',\n icon: '\\uf050'\n }\n ];\n };\n\n return {\n getLegendNodes,\n getSyncStatuses,\n getLegendLinks,\n SVG_NODE_WIDTH,\n PADDING_LEFT,\n PADDING_TOP,\n TITLE_PADDING_TOP,\n TITLE_FONT_SIZE,\n TITLE_FONT_WEIGHT,\n TITLE_COLOR,\n TITLE_LINE_HEIGHT,\n LEGEND_ITEM_FONT_SIZE,\n LEGEND_ITEM_ICON_FONT_SIZE,\n LEGEND_ITEM_FONT_WEIGHT,\n LEGEND_ITEM_COLOR,\n LEGEND_ITEM_LINE_HEIGHT,\n LEGEND_ITEM_PADDING_LEFT,\n LEGEND_ITEMS_PADDING_TOP,\n LEGEND_ITEM_PADDING_TOP,\n BACKGROUND_PADDING\n };\n})();\n\nexport {\n CLUSTER_MANAGEMENT_CONSTANTS\n};\n","import {LinkState, NodeState, RecoveryState} from \"../../models/clustermanagement/states\";\nimport {isEmpty} from \"lodash\";\nimport {select, line} from 'd3';\n\nconst d3 = {\n line,\n select\n};\n\nconst clusterColors = {\n ontoOrange: 'var(--primary-color)',\n ontoBlue: 'var(--secondary-color)',\n ontoGreen: 'var(--tertiary-color)',\n ontoGrey: 'var(--gray-color)'\n};\n\nconst linkStateColors = {\n [LinkState.IN_SYNC]: clusterColors.ontoBlue,\n [LinkState.SYNCING]: clusterColors.ontoBlue,\n [LinkState.OUT_OF_SYNC]: clusterColors.ontoGrey,\n [LinkState.RECEIVING_SNAPSHOT]: clusterColors.ontoBlue\n};\n\nconst linkStateStyle = {\n // solid line\n [LinkState.IN_SYNC]: 'none',\n // dashed line\n [LinkState.SYNCING]: '10 10',\n // dashed line\n [LinkState.OUT_OF_SYNC]: '10 10',\n // dashed line\n [LinkState.RECEIVING_SNAPSHOT]: '10 10'\n};\n\nconst font = {\n FONT_AWESOME: 'FONT_AWESOME',\n ICOMOON: 'ICOMOON'\n};\n\nconst shortMessageLimit = 40;\n\nexport function createClusterSvgElement(element) {\n return d3.select(element)\n .append('svg')\n .classed('cluster-diagram', true);\n}\n\nexport function createClusterZone(parent) {\n const clusterZone = parent.append('g');\n clusterZone\n .append(\"circle\")\n .classed('cluster-zone', true)\n .style('fill', 'transparent')\n .style('stroke-width', '4');\n return clusterZone;\n}\n\nexport function setCreateClusterZone(hasCluster, clusterZone, translationsMap, hasAccess = false) {\n clusterZone\n .select('.cluster-zone')\n .classed('no-cluster', !hasCluster)\n .classed('has-access', hasAccess);\n\n if (hasCluster) {\n clusterZone.selectAll('#no-cluster-zone').remove();\n } else {\n const textGroup = clusterZone\n .append('g')\n .attr(\"id\", \"no-cluster-zone\");\n textGroup\n .append('text')\n .attr('id', 'no-cluster-label')\n .text(translationsMap.no_cluster_configured)\n .attr('y', -50)\n .classed('h2', true)\n .style('text-anchor', \"middle\");\n if (hasAccess) {\n textGroup.append('text')\n .attr('id', 'create-cluster-label')\n .classed('h3', true)\n .text(translationsMap.create_cluster_btn)\n .style('text-anchor', \"middle\");\n }\n textGroup.append('text')\n .attr('y', 130)\n .attr('class', 'icon-any repo')\n .attr('fill', clusterColors.ontoOrange)\n .style('text-anchor', \"middle\")\n .classed('settings-icon', true)\n .text(\"\\ue92b\");\n }\n}\n\nexport function updateClusterZoneLabels(hasCluster, clusterZone, translationsMap) {\n if (hasCluster) {\n return;\n }\n clusterZone.select('#no-cluster-zone #no-cluster-label')\n .text(translationsMap.no_cluster_configured);\n clusterZone.select('#no-cluster-zone #create-cluster-label')\n .text(translationsMap.create_cluster_btn);\n}\n\nexport function moveElement(element, x, y) {\n element.attr('transform', () => {\n return `translate(${x}, ${y})`;\n });\n}\n\nexport function createNodes(nodesDataBinding, nodeRadius, isLegend) {\n const nodeGroup = nodesDataBinding.enter()\n .append('g')\n .attr('id', 'node-group')\n .classed('legend', isLegend);\n\n const nodeUpdateElements = nodeGroup\n .merge(nodesDataBinding)\n .attr('id', 'node-group')\n .classed('legend', isLegend);\n\n createHexagon(nodeGroup, nodeRadius);\n nodesDataBinding.exit().remove();\n\n nodeGroup\n .append('text')\n .attr('class', 'icon-any node-icon');\n\n if (!isLegend) {\n addHostnameToNodes(nodeGroup, nodeRadius, isLegend);\n }\n return nodeUpdateElements;\n}\n\nfunction addHostnameToNodes(nodeElements, nodeRadius) {\n const nodeTextHost = nodeElements.append('g');\n\n nodeTextHost\n .append('rect')\n .attr('class', 'id-host-background')\n .attr('rx', 6);\n\n nodeTextHost\n .append('rect')\n .attr('class', 'node-info-background')\n .attr('rx', 6);\n\n nodeTextHost\n .append('text')\n .attr('y', nodeRadius + 25)\n .attr('class', 'id id-host');\n\n nodeTextHost\n .append('text')\n .attr('y', nodeRadius + 55)\n .attr('class', 'node-info-text');\n}\n\nexport function updateNodes(nodes) {\n updateNodesIcon(nodes);\n updateNodesClasses(nodes);\n updateNodesHostnameText(nodes);\n updateNodesInfoText(nodes);\n}\n\nfunction updateNodesClasses(nodes) {\n nodes\n .select('.node.member')\n .classed('leader', (node) => node.nodeState === NodeState.LEADER)\n .classed('follower', (node) => node.nodeState === NodeState.FOLLOWER)\n .classed('candidate', (node) => node.nodeState === NodeState.CANDIDATE)\n .classed('other', (node) => {\n return node.nodeState !== NodeState.LEADER &&\n node.nodeState !== NodeState.FOLLOWER &&\n node.nodeState !== NodeState.CANDIDATE;\n });\n}\n\nfunction updateNodesIcon(nodes) {\n nodes.select('.node-icon')\n .each(function (d) {\n const iconType = hasRecoveryState(d) ? getNodeInfoIconType(d) : getNodeIconType(d);\n d3.select(this)\n .classed('icon-any', iconType.font === font.ICOMOON)\n .classed('fa-d3', iconType.font === font.FONT_AWESOME)\n .text(iconType.icon);\n });\n}\n\nfunction hasRecoveryState(node) {\n return !isEmpty(node.recoveryStatus);\n}\n\nconst iconMap = {\n [RecoveryState.SEARCHING_FOR_NODE]: {icon: '\\uf29c', font: font.FONT_AWESOME},\n [RecoveryState.WAITING_FOR_SNAPSHOT]: {icon: '\\uf017', font: font.FONT_AWESOME},\n [RecoveryState.RECEIVING_SNAPSHOT]: {icon: '\\uf0ed', font: font.FONT_AWESOME},\n [RecoveryState.APPLYING_SNAPSHOT]: {icon: '\\uf050', font: font.FONT_AWESOME},\n [RecoveryState.BUILDING_SNAPSHOT]: {icon: '\\uf187', font: font.FONT_AWESOME},\n [RecoveryState.SENDING_SNAPSHOT]: {icon: '\\uf0ee', font: font.FONT_AWESOME},\n [RecoveryState.RECOVERY_OPERATION_FAILURE_WARNING]: {icon: '\\ue920', font: font.ICOMOON}\n};\n\nconst nodeStateIcons = {\n [NodeState.CANDIDATE]: {icon: '\\ue914', font: font.ICOMOON},\n [NodeState.NO_CONNECTION]: {icon: '\\ue931', font: font.ICOMOON},\n [NodeState.OUT_OF_SYNC]: {icon: '\\ue920', font: font.ICOMOON},\n [NodeState.READ_ONLY]: {icon: '\\ue95c', font: font.ICOMOON},\n [NodeState.RESTRICTED]: {icon: '\\ue933', font: font.ICOMOON}\n};\n\nfunction getNodeInfoIconType(node) {\n const status = node.recoveryStatus;\n\n if (!status || !status.state) {\n return {icon: '', font: ''};\n }\n\n return iconMap[status.state] || {icon: '', font: ''};\n}\n\nfunction getNodeIconType(node) {\n const iconType = nodeStateIcons[node.nodeState];\n return iconType ? iconType : {icon: '', font: ''};\n}\n\nfunction updateNodesInfoText(nodes) {\n let objectHeight;\n let objectWidth;\n // Set initial text element\n nodes.select('.node-info-text')\n .each(function (d) {\n d.infoNode = this;\n })\n .select(function () {\n return this.parentNode;\n })\n .append('foreignObject')\n .attr('width', function (d) {\n let shortMessage = '';\n if (!isEmpty(d.recoveryStatus)) {\n shortMessage = extractShortMessageFromNode(d);\n }\n const rect = calculateElementSizeByText(shortMessage);\n objectHeight = rect.height;\n objectWidth = rect.width;\n return objectWidth;\n })\n .attr('height', function (d) {\n return objectHeight;\n })\n .attr('x', function (d) {\n return -(objectWidth / 2);\n })\n .attr('y', function (d) {\n return 78;\n })\n .classed('hidden', function (d) {\n return isEmpty(d.recoveryStatus);\n })\n .style('font-size', '12px')\n .style('font-weight', '400')\n .style('text-align', 'center')\n .style('padding', '4px')\n .style('background', '#EEEEEE')\n .style('border-radius', '6px')\n .attr('class', 'node-info-fo')\n .append('xhtml:div')\n .html(function (d) {\n return extractShortMessageFromNode(d);\n });\n\n // Remove the original text elements, as they are now replaced by foreignObjects\n nodes.select('.node-info-text').remove();\n\n resizeLabelDynamic(nodes);\n}\n\nfunction extractShortMessageFromNode(node) {\n return node.recoveryStatus.message && node.recoveryStatus.message.length > shortMessageLimit ?\n node.recoveryStatus.message.substring(0, shortMessageLimit) + '...' : node.recoveryStatus.message || '';\n}\n\nfunction calculateElementSizeByText(text) {\n const tmp = document.createElement('div');\n tmp.innerHTML = text;\n tmp.style.padding = '4px';\n tmp.style.position = 'absolute';\n tmp.style.visibility = 'hidden';\n tmp.style.fontSize = '12px';\n tmp.style.fontWeight = '400';\n tmp.style.textAlign = 'center';\n tmp.style.height = 'auto';\n tmp.style.width = 'auto';\n tmp.style.whiteSpace = 'nowrap';\n\n document.body.appendChild(tmp);\n const rect = tmp.getBoundingClientRect();\n const height = rect.height;\n const width = rect.width;\n document.body.removeChild(tmp);\n\n return {height, width};\n}\n\nfunction addRecoveryLabelListeners(object, message, truncatedSize, displayMessage, fullSize) {\n object.on('mouseover.tooltip', () => {\n object\n .attr('width', fullSize.width)\n .attr('height', fullSize.height)\n .attr('x', -fullSize.width / 2)\n .html(`<div>${message}</div>`);\n });\n object.on('mouseout.tooltip', () => {\n object\n .attr('width', truncatedSize.width)\n .attr('height', truncatedSize.height)\n .attr('x', -truncatedSize.width / 2)\n .html(`<div>${displayMessage}</div>`);\n });\n}\n\nfunction resizeLabelDynamic(nodes) {\n nodes.select('.node-info-fo')\n .each(function (d) {\n const object = d3.select(this);\n if (isEmpty(d.recoveryStatus)) {\n object.attr('width', 0);\n return;\n }\n const shortMessage = extractShortMessageFromNode(d);\n const isShorten = d.recoveryStatus.message && d.recoveryStatus.message.length > shortMessageLimit && shortMessage !== d.recoveryStatus.message;\n const displayMessage = isShorten ? shortMessage : d.recoveryStatus.message;\n const truncatedSize = calculateElementSizeByText(shortMessage);\n const fullSize = calculateElementSizeByText(d.recoveryStatus.message);\n object.on('.tooltip', null);\n\n if (isShorten) {\n addRecoveryLabelListeners(object, d.recoveryStatus.message, truncatedSize, displayMessage, fullSize);\n }\n\n // Set initial size and text\n object\n .attr('width', truncatedSize.width)\n .attr('height', truncatedSize.height)\n .attr('x', -truncatedSize.width / 2)\n .html(`<div>${displayMessage}</div>`);\n });\n}\n\nfunction updateNodesHostnameText(nodes) {\n nodes\n .select('.id.id-host')\n .each(function (d) {\n d.labelNode = this;\n })\n .text(function (d) {\n return d.hostname;\n });\n\n // Add padding styling to text background. left/right/top/bottom +5\n nodes\n .select('.id-host-background')\n .attr('width', function (d) {\n return d3.select(d.labelNode).node().getBBox().width + 10;\n })\n .attr('height', function (d) {\n return d3.select(d.labelNode).node().getBBox().height + 10;\n })\n .attr('x', function (d) {\n return d3.select(d.labelNode).node().getBBox().x - 5;\n })\n .attr('y', function (d) {\n return d3.select(d.labelNode).node().getBBox().y - 5;\n });\n}\n\nexport function createLinks(linksDataBinding) {\n linksDataBinding.enter()\n .append('path')\n .classed('link', true);\n\n linksDataBinding.exit().remove();\n}\n\nexport function updateLinks(linksDataBinding, nodes) {\n linksDataBinding\n .attr('class', (link) => {\n // add the link id as a css class for testing purposes\n const idClass = link.id.replaceAll(':', '-');\n return `link ${idClass}`;\n })\n .attr('stroke', setLinkColor)\n .style('stroke-dasharray', setLinkStyle)\n .style(\"marker-mid\", (link) => setArrowLink(link, ARROW_CONFIG.BIG))\n .attr('d', (link) => getLinkCoordinates(link, nodes));\n}\n\nexport const ARROW_CONFIG = {\n SMALL: {name: 'small', size: 3},\n BIG: {name: 'big', size: 5}\n};\n\nexport function addArrowHead(svg, config) {\n svg.append(\"svg:defs\").append(\"svg:marker\")\n .attr(\"id\", `arrowhead_${config.name}`)\n .attr(\"viewBox\", `0 0 ${config.size * 2} ${config.size * 2}`)\n .attr(\"refX\", config.size)\n .attr(\"refY\", config.size)\n .attr(\"markerWidth\", config.size)\n .attr(\"markerHeight\", config.size)\n .attr(\"orient\", \"auto-start-reverse\")\n .append(\"path\")\n .attr(\"d\", `M 0 0 L ${config.size * 2} ${config.size} L 0 ${config.size * 2} z`)\n .style(\"fill\", \"var(--secondary-color)\");\n}\n\nexport function setArrowLink(link, config) {\n if (link.status === LinkState.RECEIVING_SNAPSHOT) {\n return `url(#arrowhead_${config.name})`;\n }\n}\n\nexport function setLinkColor(link) {\n const linkColor = linkStateColors[link.status];\n return linkColor || 'none';\n}\n\nexport function setLinkStyle(link) {\n const linkStyle = linkStateStyle[link.status];\n return linkStyle || 'none';\n}\n\nfunction getLinkCoordinates(link, nodes) {\n const source = nodes.find((node) => node.address === link.source);\n const target = nodes.find((node) => node.address === link.target);\n const deltaX = target.x - source.x;\n const deltaY = target.y - source.y;\n const dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const normX = deltaX / dist;\n const normY = deltaY / dist;\n // Padding from node center point\n const sourcePadding = 55;\n const targetPadding = 55;\n const sourceX = source.x + (sourcePadding * normX);\n const sourceY = source.y + (sourcePadding * normY);\n const targetX = target.x - (targetPadding * normX);\n const targetY = target.y - (targetPadding * normY);\n // Calculate midpoint\n const midpointX = (sourceX + targetX) / 2;\n const midpointY = (sourceY + targetY) / 2;\n // In order to draw an arrowhead in the middle of a line, the line needs to be composed by\n // two segments, otherwise the arrowhead won't show up.\n return 'M' + sourceX + ',' + sourceY + 'L' + midpointX + ',' + midpointY +\n 'L' + targetX + ',' + targetY;\n}\n\nexport function positionNodesOnClusterZone(nodeElements, clusterZoneX, clusterZoneY, clusterZoneRadius) {\n nodeElements\n .attr('transform', (node, index) => {\n // Calculate initial positions for the new nodes based on\n // spreading them evenly on a circle around the center of the page.\n const theta = 2 * Math.PI * index / nodeElements.size();\n const x = clusterZoneX + Math.cos(theta) * clusterZoneRadius;\n const y = clusterZoneY + Math.sin(theta) * clusterZoneRadius;\n node.x = x;\n node.y = y;\n return `translate(${x}, ${y})`;\n });\n}\n\nexport function createHexagon(nodeGroup, radius) {\n const _s32 = (Math.sqrt(3) / 2);\n const xDiff = 0;\n const yDiff = 0;\n const points = [[radius + xDiff, yDiff], [radius / 2 + xDiff, radius * _s32 + yDiff], [-radius / 2 + xDiff, radius * _s32 + yDiff],\n [-radius + xDiff, yDiff],\n [-radius / 2 + xDiff, -radius * _s32 + yDiff], [radius / 2 + xDiff, -radius * _s32 + yDiff], [radius + xDiff, yDiff],\n [radius / 2 + xDiff, radius * _s32 + yDiff]];\n return nodeGroup\n .selectAll(\"path.area\")\n .data([points])\n .enter()\n .append(\"path\")\n .attr('class', 'node member')\n .attr(\"stroke-width\", \"10\")\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"d\", d3.line());\n}\n\nexport function removeEventListeners() {\n d3.select(document).selectAll('.node-info-fo').on('.tooltip', null);\n}\n","export const NodeState = {\n LEADER: 'LEADER',\n FOLLOWER: 'FOLLOWER',\n CANDIDATE: 'CANDIDATE',\n OUT_OF_SYNC: 'OUT_OF_SYNC',\n NO_CONNECTION: 'NO_CONNECTION',\n READ_ONLY: 'READ_ONLY',\n RESTRICTED: 'RESTRICTED',\n NO_CLUSTER: 'NO_CLUSTER'\n};\n\nexport const RecoveryState = {\n SEARCHING_FOR_NODE: 'SEARCHING_FOR_NODE',\n WAITING_FOR_SNAPSHOT: 'WAITING_FOR_SNAPSHOT',\n RECEIVING_SNAPSHOT: 'RECEIVING_SNAPSHOT',\n APPLYING_SNAPSHOT: 'APPLYING_SNAPSHOT',\n BUILDING_SNAPSHOT: 'BUILDING_SNAPSHOT',\n SENDING_SNAPSHOT: 'SENDING_SNAPSHOT',\n RECOVERY_OPERATION_FAILURE_WARNING: 'RECOVERY_OPERATION_FAILURE_WARNING'\n};\n\nexport const LinkState = {\n IN_SYNC: 'IN_SYNC',\n OUT_OF_SYNC: 'OUT_OF_SYNC',\n SYNCING: 'SYNCING',\n NO_CONNECTION: 'NO_CONNECTION',\n // complimentary state, built based on the recovery state of two nodes when one is receiving snapshot to the other\n RECEIVING_SNAPSHOT: 'RECEIVING_SNAPSHOT'\n};\n\nexport const TopologyState = {\n PRIMARY_NODE: 'PRIMARY_NODE',\n SECONDARY_NODE: 'SECONDARY_NODE'\n};\n","import {CLUSTER_MANAGEMENT_CONSTANTS} from \"../../models/clustermanagement/cluster-management-constants\";\nimport * as CDS from \"../services/cluster-drawing.service\";\nimport {LinkState} from \"../../models/clustermanagement/states\";\nimport {ARROW_CONFIG} from \"../services/cluster-drawing.service\";\nimport {select} from 'd3';\n\nconst d3 = {select};\nconst modules = [];\nangular.module('graphdb.framework.clustermanagement.directives.cluster-legend', modules)\n .directive('clusterLegend', clusterLegend);\n\nclusterLegend.$inject = ['$rootScope', 'ClusterViewContextService', '$translate', '$document'];\n\nfunction clusterLegend($rootScope, ClusterViewContextService, $translate, $document) {\n return {\n restrict: 'E',\n templateUrl: 'js/angular/clustermanagement/templates/cluster-legend.html',\n scope: {},\n link: ($scope) => {\n\n // =========================\n // Public variables\n // =========================\n\n $scope.hideLegend = true;\n\n // =========================\n // Private variables\n // =========================\n\n const subscriptions = [];\n let legendGroup;\n let legendHeight;\n let legendWidth;\n\n // =========================\n // Public functions\n // =========================\n\n $scope.toggleLegend = () => {\n $scope.hideLegend = !$scope.hideLegend;\n legendGroup.classed('hidden-legend', $scope.hideLegend);\n };\n\n // =========================\n // Private functions\n // =========================\n\n const init = () => {\n const clusterViewD3Container = ClusterViewContextService.getClusterViewD3Container();\n createLegendGroup(clusterViewD3Container);\n createLegendBackground();\n addNodeStates(legendGroup);\n addSyncStatus();\n addLinks();\n updateLegendDimensions();\n updateLegendBackground();\n };\n\n const addNodeStates = (legendGroup) => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_node_state');\n const legendNodeData = legendGroup\n .selectAll('.node-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getLegendNodes());\n const legendNodesElements = CDS.createNodes(legendNodeData, CLUSTER_MANAGEMENT_CONSTANTS.SVG_NODE_WIDTH, true);\n CDS.updateNodes(legendNodesElements);\n const LABEL_Y_POSITION = 3;\n legendNodesElements\n .attr('transform', function (d, i) {\n updateLegendDimensions();\n return `translate(${CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT}, ${legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP})`;\n })\n .append('text')\n .classed('links-statuses', true)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .style('fill', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR)\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT + CLUSTER_MANAGEMENT_CONSTANTS.SVG_NODE_WIDTH)\n .attr('y', LABEL_Y_POSITION)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.customText);\n });\n };\n\n const addSyncStatus = () => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_sync_status');\n const syncStatusesGroups = legendGroup.selectAll('.sync-statuses-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getSyncStatuses())\n .enter()\n .append('g')\n .attr('class', 'sync-statuses-group');\n\n const rowY = new Map();\n\n syncStatusesGroups\n .append('text')\n .attr('class', (d) => `sync-status ${d.classes}`)\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT - 10)\n .attr('y', function (d, index) {\n const rowTop = index * (20 + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP) + legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEMS_PADDING_TOP;\n rowY.set(index, rowTop);\n return rowTop;\n })\n .text(function (d) {\n return d.icon;\n });\n\n const labelOffsetY = (CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_ICON_FONT_SIZE - CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE) / 2;\n syncStatusesGroups\n .append('text')\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .style('fill', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.labelKey);\n })\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE)\n .attr('y', function (d, index) {\n return rowY.get(index) - labelOffsetY;\n })\n .classed('links-statuses', true);\n };\n\n const addLinks = () => {\n addTitle(legendGroup, 'cluster_management.cluster_graphical_view.legend_title_link_states');\n const linkStatesGroup = legendGroup.selectAll('.link-states-group')\n .data(CLUSTER_MANAGEMENT_CONSTANTS.getLegendLinks())\n .enter()\n .append('g')\n .attr('class', 'link-state');\n\n // map vertical positions of each link in order to be able to draw labels next to the links\n const rowY = new Map();\n\n linkStatesGroup\n .append('path')\n .classed('link', true)\n .attr('stroke-dasharray', CDS.setLinkStyle)\n .attr('stroke', CDS.setLinkColor)\n .attr('d', (link, index) => {\n const y = index * (CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_TOP) + legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEMS_PADDING_TOP;\n const lineWidth = legendWidth / 2;\n rowY.set(index, y);\n let line;\n if (link.status === LinkState.RECEIVING_SNAPSHOT) {\n const lineMidPoint = lineWidth / 2;\n // In order to draw an arrowhead in the middle of a line, the line needs to be composed by\n // two segments, otherwise the arrowhead won't show up.\n line = `M${CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT} ${y} L${lineMidPoint} ${y} L${lineWidth} ${y}`;\n } else {\n line = `M${CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT} ${y} ${lineWidth} ${y}`;\n }\n return line;\n })\n .style(\"marker-mid\", (link) => CDS.setArrowLink(link, ARROW_CONFIG.SMALL));\n\n linkStatesGroup\n .append('text')\n .style('font-size', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_SIZE)\n .style('line-height', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_LINE_HEIGHT)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_FONT_WEIGHT)\n .style('fill', CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_COLOR)\n .text(function (d) {\n return translateAndSubscribe(this, 'cluster_management.cluster_graphical_view.' + d.linkTypeKey);\n })\n .attr('x', legendWidth/2 + CLUSTER_MANAGEMENT_CONSTANTS.LEGEND_ITEM_PADDING_LEFT)\n .attr('y', function (d, index) {\n return rowY.get(index) + 4;\n })\n .classed('links-statuses', true);\n };\n\n /**\n * Creates main legend container with rectangle that defines width, height and corner radius of legend.\n * @param {*} clusterViewD3Container - main container where legend have to live.\n */\n const createLegendGroup = (clusterViewD3Container) => {\n legendGroup = clusterViewD3Container.append('g')\n .classed('hidden-legend', $scope.hideLegend)\n .classed('cluster-legend-group', true);\n };\n\n const createLegendBackground = () => {\n legendGroup.append('rect')\n .attr('class', 'legend-background')\n .attr('fill', '#EEEEEE');\n };\n\n const updateLegendDimensions = () => {\n legendGroup\n .call((d) => {\n legendHeight = d.node().getBBox().height;\n });\n legendWidth = getMaxWidthOfChildren(legendGroup) + 30;\n };\n\n const updateLegendBackground = () => {\n const maxWidth = getMaxWidthOfChildren(legendGroup);\n legendGroup.select('.legend-background')\n .attr('height', legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.PADDING_TOP * 3)\n .attr('width', maxWidth + CLUSTER_MANAGEMENT_CONSTANTS.BACKGROUND_PADDING)\n .attr('rx', '6');\n };\n\n const getMaxWidthOfChildren = (parent) => {\n let maxWidth = 0;\n\n parent.selectAll(':not(.legend-background)').each(function () {\n const bbox = this.getBBox();\n maxWidth = Math.max(maxWidth, bbox.width);\n });\n\n return maxWidth;\n };\n\n /**\n * Adds title to <code>legendGroup</code>.\n * @param {*} legendGroup - the root group tag (<g>) of legend.\n * @param {string} labelKey\n *\n * @return {*}\n */\n const addTitle = (legendGroup, labelKey) => {\n return legendGroup\n .append('text')\n .attr('class', 'legend-title')\n .attr('x', CLUSTER_MANAGEMENT_CONSTANTS.PADDING_LEFT)\n .style('font-size', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_FONT_SIZE)\n .style('font-weight', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_FONT_WEIGHT)\n .style('line-height', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_LINE_HEIGHT)\n .style('fill', CLUSTER_MANAGEMENT_CONSTANTS.TITLE_COLOR)\n .text(function () {\n return translateAndSubscribe(this, labelKey);\n })\n .attr('y', () => {\n updateLegendDimensions();\n return legendHeight + CLUSTER_MANAGEMENT_CONSTANTS.TITLE_PADDING_TOP;\n });\n };\n\n const translateAndSubscribe = (domElement, labelKey) => {\n subscriptions.push($rootScope.$on('$translateChangeSuccess', () => {\n d3.select(domElement).text($translate.instant(labelKey));\n updateLegendBackground();\n }));\n\n return $translate.instant(labelKey);\n };\n\n const removeAllListeners = () => {\n $document.off('keydown', closeDialog);\n subscriptions.forEach((subscription) => subscription());\n };\n\n const closeDialog = () => {\n $scope.hideLegend = true;\n legendGroup.classed('hidden-legend', $scope.hideLegend);\n };\n\n const onKeyDown = (event) => {\n if (event.key === 'Escape') {\n closeDialog();\n }\n };\n\n // =========================\n // Subscriptions functions\n // =========================\n $document.on('keydown', onKeyDown);\n subscriptions.push(ClusterViewContextService.onClusterViewD3ContainerUpdated(init));\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllListeners);\n\n init();\n }\n };\n}\n"],"names":["NodeState","LEADER","FOLLOWER","CANDIDATE","OUT_OF_SYNC_BLANK","CLUSTER_MANAGEMENT_CONSTANTS","getLegendNodes","legendNodes","push","nodeState","customText","forEach","node","index","id","getSyncStatuses","labelKey","classes","icon","getLegendLinks","links","status","LinkState","IN_SYNC","linkTypeKey","SYNCING","OUT_OF_SYNC","RECEIVING_SNAPSHOT","link","SVG_NODE_WIDTH","PADDING_LEFT","PADDING_TOP","TITLE_PADDING_TOP","TITLE_FONT_SIZE","TITLE_FONT_WEIGHT","TITLE_COLOR","TITLE_LINE_HEIGHT","LEGEND_ITEM_FONT_SIZE","LEGEND_ITEM_ICON_FONT_SIZE","LEGEND_ITEM_FONT_WEIGHT","LEGEND_ITEM_COLOR","LEGEND_ITEM_LINE_HEIGHT","LEGEND_ITEM_PADDING_LEFT","LEGEND_ITEMS_PADDING_TOP","LEGEND_ITEM_PADDING_TOP","BACKGROUND_PADDING","d3","line","select","clusterColors","ontoOrange","ontoBlue","ontoGreen","ontoGrey","linkStateColors","linkStateStyle","font","FONT_AWESOME","ICOMOON","shortMessageLimit","createClusterSvgElement","element","append","classed","createClusterZone","parent","clusterZone","style","setCreateClusterZone","hasCluster","translationsMap","hasAccess","selectAll","remove","textGroup","attr","text","no_cluster_configured","create_cluster_btn","updateClusterZoneLabels","moveElement","x","y","createNodes","nodesDataBinding","nodeRadius","isLegend","nodeGroup","enter","nodeUpdateElements","merge","createHexagon","exit","nodeElements","nodeTextHost","addHostnameToNodes","updateNodes","nodes","each","d","iconType","isEmpty","recoveryStatus","nodeStateIcons","getNodeIconType","state","iconMap","getNodeInfoIconType","this","updateNodesIcon","updateNodesClasses","labelNode","hostname","getBBox","width","height","updateNodesHostnameText","objectHeight","objectWidth","infoNode","parentNode","shortMessage","extractShortMessageFromNode","rect","calculateElementSizeByText","html","object","isShorten","message","length","displayMessage","truncatedSize","fullSize","on","addRecoveryLabelListeners","resizeLabelDynamic","updateNodesInfoText","RecoveryState","SEARCHING_FOR_NODE","WAITING_FOR_SNAPSHOT","APPLYING_SNAPSHOT","BUILDING_SNAPSHOT","SENDING_SNAPSHOT","RECOVERY_OPERATION_FAILURE_WARNING","NO_CONNECTION","READ_ONLY","RESTRICTED","substring","tmp","document","createElement","innerHTML","padding","position","visibility","fontSize","fontWeight","textAlign","whiteSpace","body","appendChild","getBoundingClientRect","removeChild","createLinks","linksDataBinding","updateLinks","replaceAll","setLinkColor","setLinkStyle","setArrowLink","ARROW_CONFIG","BIG","source","find","address","target","deltaX","deltaY","dist","Math","sqrt","normX","normY","sourceX","sourceY","targetX","targetY","getLinkCoordinates","SMALL","name","size","addArrowHead","svg","config","positionNodesOnClusterZone","clusterZoneX","clusterZoneY","clusterZoneRadius","theta","PI","cos","sin","radius","_s32","points","data","removeEventListeners","NO_CLUSTER","TopologyState","PRIMARY_NODE","SECONDARY_NODE","clusterLegend","$rootScope","ClusterViewContextService","$translate","$document","restrict","templateUrl","scope","$scope","hideLegend","subscriptions","legendGroup","legendHeight","legendWidth","toggleLegend","init","clusterViewD3Container","getClusterViewD3Container","createLegendGroup","createLegendBackground","addNodeStates","addSyncStatus","addLinks","updateLegendDimensions","updateLegendBackground","addTitle","legendNodeData","legendNodesElements","CDS","i","translateAndSubscribe","syncStatusesGroups","rowY","Map","rowTop","set","labelOffsetY","get","linkStatesGroup","lineWidth","lineMidPoint","call","getMaxWidthOfChildren","maxWidth","bbox","max","domElement","$on","instant","closeDialog","event","key","onClusterViewD3ContainerUpdated","removeAllListeners","off","subscription","angular","module","directive","$inject"],"sourceRoot":""}