graphdb-workbench 3.2.0-TR1 → 3.2.0-TR2

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 (345) hide show
  1. package/dist/10142.dae0223e0a1d85ad72fe.bundle.js +2 -0
  2. package/dist/10142.dae0223e0a1d85ad72fe.bundle.js.map +1 -0
  3. package/dist/{10376.e89fa63ff898d45f45fd.bundle.js → 10376.2723c52982b51c64bffb.bundle.js} +2 -2
  4. package/dist/10376.2723c52982b51c64bffb.bundle.js.map +1 -0
  5. package/dist/{12396.4c26c8da50c790b0f39a.bundle.js → 12396.9a7f2862146b6f9adcb1.bundle.js} +2 -2
  6. package/dist/{12396.4c26c8da50c790b0f39a.bundle.js.map → 12396.9a7f2862146b6f9adcb1.bundle.js.map} +1 -1
  7. package/dist/12940.7a45ae43d5f3ba6e7d83.bundle.js +2 -0
  8. package/dist/12940.7a45ae43d5f3ba6e7d83.bundle.js.map +1 -0
  9. package/dist/14824.a3bc164c5bf4313f5276.bundle.js +2 -0
  10. package/dist/14824.a3bc164c5bf4313f5276.bundle.js.map +1 -0
  11. package/dist/{15535.ce8d657c04f3401b9539.bundle.js → 15535.7b170e17ee0a58970ab6.bundle.js} +2 -2
  12. package/dist/{15535.ce8d657c04f3401b9539.bundle.js.map → 15535.7b170e17ee0a58970ab6.bundle.js.map} +1 -1
  13. package/dist/{16162.8f482628d1b34d41d496.bundle.js → 16162.67e7c1f5f313481b1e80.bundle.js} +2 -2
  14. package/dist/{16162.8f482628d1b34d41d496.bundle.js.map → 16162.67e7c1f5f313481b1e80.bundle.js.map} +1 -1
  15. package/dist/18961.5e34171366c281038fe5.bundle.js +2 -0
  16. package/dist/18961.5e34171366c281038fe5.bundle.js.map +1 -0
  17. package/dist/20227.a9333aa1320edea7264b.bundle.js +2 -0
  18. package/dist/20227.a9333aa1320edea7264b.bundle.js.map +1 -0
  19. package/dist/{20287.c42f9d1d913c36e46931.bundle.js → 20287.dd5bc263fe26adf34965.bundle.js} +2 -2
  20. package/dist/{20287.c42f9d1d913c36e46931.bundle.js.map → 20287.dd5bc263fe26adf34965.bundle.js.map} +1 -1
  21. package/dist/{21136.199caea09a1c9ad90393.bundle.js → 21136.b7efcb40fb956ff1109c.bundle.js} +2 -2
  22. package/dist/{21136.199caea09a1c9ad90393.bundle.js.map → 21136.b7efcb40fb956ff1109c.bundle.js.map} +1 -1
  23. package/dist/{21142.b690e00c8884fddb2bb3.bundle.js → 21142.ec45fad4d52b36961d17.bundle.js} +2 -2
  24. package/dist/{21142.b690e00c8884fddb2bb3.bundle.js.map → 21142.ec45fad4d52b36961d17.bundle.js.map} +1 -1
  25. package/dist/{21170.d5e3041241741d21080c.bundle.js → 21170.7832554eab9eaade6ffb.bundle.js} +2 -2
  26. package/dist/{21170.d5e3041241741d21080c.bundle.js.map → 21170.7832554eab9eaade6ffb.bundle.js.map} +1 -1
  27. package/dist/{21195.267abc9d42b711d0f17a.bundle.js → 21195.caae6cc33d755ad52df4.bundle.js} +2 -2
  28. package/dist/{21195.267abc9d42b711d0f17a.bundle.js.map → 21195.caae6cc33d755ad52df4.bundle.js.map} +1 -1
  29. package/dist/{25747.4e00941ec221c4d6ce8f.bundle.js → 25747.c01110e23b922cdd3d9e.bundle.js} +2 -2
  30. package/dist/{25747.4e00941ec221c4d6ce8f.bundle.js.map → 25747.c01110e23b922cdd3d9e.bundle.js.map} +1 -1
  31. package/dist/{27580.f71ebbc69dd1c7785ef3.bundle.js → 27580.5a421770ab66d2dedc37.bundle.js} +2 -2
  32. package/dist/{27580.f71ebbc69dd1c7785ef3.bundle.js.map → 27580.5a421770ab66d2dedc37.bundle.js.map} +1 -1
  33. package/dist/{28050.8ca1fa760c892bfc5466.bundle.js → 28050.6960a4a0961a07a94743.bundle.js} +2 -2
  34. package/dist/28050.6960a4a0961a07a94743.bundle.js.map +1 -0
  35. package/dist/{31636.e34ccc2d6f2dec577446.bundle.js → 31636.54e2817f8ae3998a34b3.bundle.js} +2 -2
  36. package/dist/{31636.e34ccc2d6f2dec577446.bundle.js.map → 31636.54e2817f8ae3998a34b3.bundle.js.map} +1 -1
  37. package/dist/{32489.97fac2c3daa49b143d13.bundle.js → 32489.f7a2dc39cd61c2cd8874.bundle.js} +2 -2
  38. package/dist/{32489.97fac2c3daa49b143d13.bundle.js.map → 32489.f7a2dc39cd61c2cd8874.bundle.js.map} +1 -1
  39. package/dist/33524.79f7e98ef89a46d4aa58.bundle.js +2 -0
  40. package/dist/33524.79f7e98ef89a46d4aa58.bundle.js.map +1 -0
  41. package/dist/{34495.cfa15bda8009fa37c6ff.bundle.js → 34495.be67c06c39909114bbe4.bundle.js} +2 -2
  42. package/dist/{34495.cfa15bda8009fa37c6ff.bundle.js.map → 34495.be67c06c39909114bbe4.bundle.js.map} +1 -1
  43. package/dist/{38360.0a90e77042876c86b279.bundle.js → 38360.efec913bb97c3b8588a4.bundle.js} +2 -2
  44. package/dist/{38360.0a90e77042876c86b279.bundle.js.map → 38360.efec913bb97c3b8588a4.bundle.js.map} +1 -1
  45. package/dist/{38644.3a0954c798ec413a3810.bundle.js → 38644.800252af49cd67310834.bundle.js} +2 -2
  46. package/dist/{38644.3a0954c798ec413a3810.bundle.js.map → 38644.800252af49cd67310834.bundle.js.map} +1 -1
  47. package/dist/{38843.5ef7a063337524ce3bb2.bundle.js → 38843.29e34a5e5293cee51566.bundle.js} +2 -2
  48. package/dist/{38843.5ef7a063337524ce3bb2.bundle.js.map → 38843.29e34a5e5293cee51566.bundle.js.map} +1 -1
  49. package/dist/{39518.4199684f3273d29d9105.bundle.js → 39518.0ca97879b92271d7c5e2.bundle.js} +2 -2
  50. package/dist/{39518.4199684f3273d29d9105.bundle.js.map → 39518.0ca97879b92271d7c5e2.bundle.js.map} +1 -1
  51. package/dist/{39539.c23e4878044d73f2505b.bundle.js → 39539.7cea6717cc3a5ba91617.bundle.js} +2 -2
  52. package/dist/{39539.c23e4878044d73f2505b.bundle.js.map → 39539.7cea6717cc3a5ba91617.bundle.js.map} +1 -1
  53. package/dist/{41453.8bb4c783da2c5077a6e9.bundle.js → 41453.4ae219d972a187c36bfc.bundle.js} +2 -2
  54. package/dist/{41453.8bb4c783da2c5077a6e9.bundle.js.map → 41453.4ae219d972a187c36bfc.bundle.js.map} +1 -1
  55. package/dist/41621.624ba3d867bc05b5c3cc.bundle.js +2 -0
  56. package/dist/41621.624ba3d867bc05b5c3cc.bundle.js.map +1 -0
  57. package/dist/{42129.f44b7b20f9cd376c6e59.bundle.js → 42129.0314e45b4b818b01b71f.bundle.js} +2 -2
  58. package/dist/{42129.f44b7b20f9cd376c6e59.bundle.js.map → 42129.0314e45b4b818b01b71f.bundle.js.map} +1 -1
  59. package/dist/{44444.ad66c8256bc5b653de1a.bundle.js → 44444.02026ff20e2a843dc05b.bundle.js} +2 -2
  60. package/dist/{44444.ad66c8256bc5b653de1a.bundle.js.map → 44444.02026ff20e2a843dc05b.bundle.js.map} +1 -1
  61. package/dist/45069.82993bf600a550fac275.bundle.js +2 -0
  62. package/dist/45069.82993bf600a550fac275.bundle.js.map +1 -0
  63. package/dist/{456.6118cb99d130f4c0410c.bundle.js → 456.634597f220a97bfbeab8.bundle.js} +2 -2
  64. package/dist/456.634597f220a97bfbeab8.bundle.js.map +1 -0
  65. package/dist/45758.9ffd8e7d5f99e2c394a2.bundle.js +2 -0
  66. package/dist/45758.9ffd8e7d5f99e2c394a2.bundle.js.map +1 -0
  67. package/dist/{52264.99261393a7f6e631da3b.bundle.js → 52264.4cf2f1a18d16484f0af1.bundle.js} +2 -2
  68. package/dist/52264.4cf2f1a18d16484f0af1.bundle.js.map +1 -0
  69. package/dist/54419.aec242a64c27ceda6e02.bundle.js +2 -0
  70. package/dist/54419.aec242a64c27ceda6e02.bundle.js.map +1 -0
  71. package/dist/5470.58e107e4c61ae7c22d48.bundle.js +2 -0
  72. package/dist/5470.58e107e4c61ae7c22d48.bundle.js.map +1 -0
  73. package/dist/{55862.1fb5abd075ba11a7e93c.bundle.js → 55862.5e8602827fbf72e60cc2.bundle.js} +2 -2
  74. package/dist/{55862.1fb5abd075ba11a7e93c.bundle.js.map → 55862.5e8602827fbf72e60cc2.bundle.js.map} +1 -1
  75. package/dist/{58306.ba9545cbaee021ebcbce.bundle.js → 58306.94b9336f68d11bdd72f0.bundle.js} +2 -2
  76. package/dist/{58306.ba9545cbaee021ebcbce.bundle.js.map → 58306.94b9336f68d11bdd72f0.bundle.js.map} +1 -1
  77. package/dist/58334.8a2bdb0560e0ce23f792.bundle.js +2 -0
  78. package/dist/58334.8a2bdb0560e0ce23f792.bundle.js.map +1 -0
  79. package/dist/60560.2ef51d3e2d9674450419.bundle.js +2 -0
  80. package/dist/60560.2ef51d3e2d9674450419.bundle.js.map +1 -0
  81. package/dist/64118.fb6952c8ef6fc9117f35.bundle.js +2 -0
  82. package/dist/64118.fb6952c8ef6fc9117f35.bundle.js.map +1 -0
  83. package/dist/66014.d9f7b86d6829ebfe9d0e.bundle.js +2 -0
  84. package/dist/66014.d9f7b86d6829ebfe9d0e.bundle.js.map +1 -0
  85. package/dist/{67888.7d4966e0a22ba655f1b8.bundle.js → 67888.772326168aed83cbad9c.bundle.js} +2 -2
  86. package/dist/67888.772326168aed83cbad9c.bundle.js.map +1 -0
  87. package/dist/69724.56df2d5b2ba312cb8118.bundle.js +2 -0
  88. package/dist/69724.56df2d5b2ba312cb8118.bundle.js.map +1 -0
  89. package/dist/{72379.bac50d0011665a85b6cd.bundle.js → 72379.8a3290df05f18f8c65bd.bundle.js} +2 -2
  90. package/dist/{72379.bac50d0011665a85b6cd.bundle.js.map → 72379.8a3290df05f18f8c65bd.bundle.js.map} +1 -1
  91. package/dist/{73667.3dd4f377e7ef54fd8758.bundle.js → 73667.52fdbdadddafe9e9559b.bundle.js} +2 -2
  92. package/dist/{73667.3dd4f377e7ef54fd8758.bundle.js.map → 73667.52fdbdadddafe9e9559b.bundle.js.map} +1 -1
  93. package/dist/{73793.6d80d47c26ed60a587fd.bundle.js → 73793.7e812bab1754ddd5efb5.bundle.js} +2 -2
  94. package/dist/{73793.6d80d47c26ed60a587fd.bundle.js.map → 73793.7e812bab1754ddd5efb5.bundle.js.map} +1 -1
  95. package/dist/{75282.88819e851ed18720b275.bundle.js → 75282.2f97d3a7d7f3fdd7aebf.bundle.js} +2 -2
  96. package/dist/{75282.88819e851ed18720b275.bundle.js.map → 75282.2f97d3a7d7f3fdd7aebf.bundle.js.map} +1 -1
  97. package/dist/{75849.51ade15bf0074eab76f3.bundle.js → 75849.bd0bdefa903741034a71.bundle.js} +2 -2
  98. package/dist/{75849.51ade15bf0074eab76f3.bundle.js.map → 75849.bd0bdefa903741034a71.bundle.js.map} +1 -1
  99. package/dist/77143.e0cb9ab61d798d7b5e0b.bundle.js +2 -0
  100. package/dist/77143.e0cb9ab61d798d7b5e0b.bundle.js.map +1 -0
  101. package/dist/78070.21b221881c2b49603eb9.bundle.js +2 -0
  102. package/dist/78070.21b221881c2b49603eb9.bundle.js.map +1 -0
  103. package/dist/{78250.6db42146a120459280e4.bundle.js → 78250.73e3013c5b2ebdddbf38.bundle.js} +2 -2
  104. package/dist/{78250.6db42146a120459280e4.bundle.js.map → 78250.73e3013c5b2ebdddbf38.bundle.js.map} +1 -1
  105. package/dist/78681.7b1c9100e03c2346550a.bundle.js +2 -0
  106. package/dist/78681.7b1c9100e03c2346550a.bundle.js.map +1 -0
  107. package/dist/{79329.5a5cbfa466d1c62af915.bundle.js → 79329.3d912887ba7e96090fb4.bundle.js} +2 -2
  108. package/dist/{79329.5a5cbfa466d1c62af915.bundle.js.map → 79329.3d912887ba7e96090fb4.bundle.js.map} +1 -1
  109. package/dist/81837.a989b5e255a0ce6176b2.bundle.js +2 -0
  110. package/dist/81837.a989b5e255a0ce6176b2.bundle.js.map +1 -0
  111. package/dist/82206.fd868720394b9dc2adac.bundle.js +2 -0
  112. package/dist/82206.fd868720394b9dc2adac.bundle.js.map +1 -0
  113. package/dist/82293.5e41c8378272aabf99f6.bundle.js +2 -0
  114. package/dist/82293.5e41c8378272aabf99f6.bundle.js.map +1 -0
  115. package/dist/82896.4787d205b19befaf263a.bundle.js +2 -0
  116. package/dist/82896.4787d205b19befaf263a.bundle.js.map +1 -0
  117. package/dist/{82926.93dbf44f2bcccba34e9b.bundle.js → 82926.93a59d42bf8d49aaac8e.bundle.js} +2 -2
  118. package/dist/{82926.93dbf44f2bcccba34e9b.bundle.js.map → 82926.93a59d42bf8d49aaac8e.bundle.js.map} +1 -1
  119. package/dist/{83136.56d692623cbc60048e03.bundle.js → 83136.4941a19a85eb34ca370a.bundle.js} +2 -2
  120. package/dist/83136.4941a19a85eb34ca370a.bundle.js.map +1 -0
  121. package/dist/{84727.b93b2f9857352d39b241.bundle.js → 84727.2e3214ad60bd59f435e2.bundle.js} +2 -2
  122. package/dist/84727.2e3214ad60bd59f435e2.bundle.js.map +1 -0
  123. package/dist/85281.76d06e1c26137bb4b417.bundle.js +2 -0
  124. package/dist/85281.76d06e1c26137bb4b417.bundle.js.map +1 -0
  125. package/dist/{86639.ab85108411ef0f006e10.bundle.js → 86639.d28da26b8f138f5eb19b.bundle.js} +2 -2
  126. package/dist/86639.d28da26b8f138f5eb19b.bundle.js.map +1 -0
  127. package/dist/89647.219c4eb306757647ae1c.bundle.js +2 -0
  128. package/dist/89647.219c4eb306757647ae1c.bundle.js.map +1 -0
  129. package/dist/{9062.d9049833d076191d3e1a.bundle.js → 9062.3541de664710a36fdac7.bundle.js} +2 -2
  130. package/dist/{9062.d9049833d076191d3e1a.bundle.js.map → 9062.3541de664710a36fdac7.bundle.js.map} +1 -1
  131. package/dist/95953.44049d81dd4879f745f9.bundle.js +2 -0
  132. package/dist/95953.44049d81dd4879f745f9.bundle.js.map +1 -0
  133. package/dist/96248.83e4f0c66a9f58161a66.bundle.js +2 -0
  134. package/dist/96248.83e4f0c66a9f58161a66.bundle.js.map +1 -0
  135. package/dist/98494.969124a68766ebbdee3c.bundle.js +3 -0
  136. package/dist/98494.969124a68766ebbdee3c.bundle.js.map +1 -0
  137. package/dist/99379.1b108abf4421ccee2973.bundle.js +2 -0
  138. package/dist/99379.1b108abf4421ccee2973.bundle.js.map +1 -0
  139. package/dist/{99448.314018d0afb1af150ddf.bundle.js → 99448.384b74c734331e5f8909.bundle.js} +2 -2
  140. package/dist/{99448.314018d0afb1af150ddf.bundle.js.map → 99448.384b74c734331e5f8909.bundle.js.map} +1 -1
  141. package/dist/99893.6ac254ca3f59996b2a52.bundle.js +2 -0
  142. package/dist/99893.6ac254ca3f59996b2a52.bundle.js.map +1 -0
  143. package/dist/api/models/configuration/configuration.d.ts +5 -0
  144. package/dist/api/models/logging/log-level.d.ts +7 -0
  145. package/dist/api/models/logging/logger-config.d.ts +19 -0
  146. package/dist/api/models/logging/logger-definitions.d.ts +7 -0
  147. package/dist/api/models/logging/logger-type.d.ts +3 -0
  148. package/dist/api/models/logging/logger.d.ts +15 -0
  149. package/dist/api/models/storage/storage-data.d.ts +1 -0
  150. package/dist/api/ontotext-workbench-api.d.ts +1 -0
  151. package/dist/api/ontotext-workbench-api.js +1 -1
  152. package/dist/api/ontotext-workbench-api.js.map +1 -1
  153. package/dist/api/services/logging/console/console-logger.service.d.ts +19 -0
  154. package/dist/api/services/logging/index.d.ts +2 -0
  155. package/dist/api/services/logging/logger-provider.d.ts +11 -0
  156. package/dist/api/services/logging/logger-service.d.ts +63 -0
  157. package/dist/api/services/logging/loggers.d.ts +15 -0
  158. package/dist/api/services/logging/test/loggers.spec.d.ts +1 -0
  159. package/dist/api/services/plugins/plugins-rest.service.d.ts +1 -0
  160. package/dist/api/services/plugins/plugins.service.d.ts +1 -0
  161. package/dist/api/services/repository/repository-storage.service.d.ts +1 -0
  162. package/dist/api/services/storage/local-storage-subscription-handler.service.d.ts +1 -0
  163. package/dist/api/services/utils/routing-utils.d.ts +1 -1
  164. package/dist/assets/configuration.default.json +5 -1
  165. package/dist/index.html +10 -8
  166. package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
  167. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  168. package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
  169. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  170. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  171. package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
  172. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  173. package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
  174. package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
  175. package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
  176. package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
  177. package/dist/js/angular/core/templates/search-resource-input.html +1 -1
  178. package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
  179. package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
  180. package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
  181. package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
  182. package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
  183. package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
  184. package/dist/js/angular/security/templates/user.html +2 -2
  185. package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
  186. package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
  187. package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
  188. package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
  189. package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
  190. package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
  191. package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
  192. package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
  193. package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
  194. package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
  195. package/dist/legacyWorkbench.2bd696723af2573e8bb7.js +3 -0
  196. package/dist/{legacyWorkbench.57fc12c172f6350ac4c5.js.map → legacyWorkbench.2bd696723af2573e8bb7.js.map} +1 -1
  197. package/dist/{main.b9a83da68ffc43c91de0.js → main.be51ba05166a17f051a0.js} +3 -3
  198. package/dist/main.be51ba05166a17f051a0.js.map +1 -0
  199. package/dist/pages/aclmanagement.html +2 -2
  200. package/dist/pages/autocomplete.html +1 -1
  201. package/dist/pages/choose-repository-type.html +1 -1
  202. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  203. package/dist/pages/create-index.html +1 -1
  204. package/dist/pages/dependencies.html +1 -1
  205. package/dist/pages/domainRangeInfo.html +2 -2
  206. package/dist/pages/edit.html +1 -1
  207. package/dist/pages/explore.html +1 -1
  208. package/dist/pages/export.html +1 -1
  209. package/dist/pages/find.html +1 -1
  210. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  211. package/dist/pages/graphs-visualizations.html +7 -7
  212. package/dist/pages/guides.html +1 -1
  213. package/dist/pages/import.html +2 -2
  214. package/dist/pages/jdbc-create.html +1 -1
  215. package/dist/pages/login.html +1 -1
  216. package/dist/pages/monitor/backup-and-restore.html +1 -1
  217. package/dist/pages/monitor/queries.html +1 -1
  218. package/dist/pages/monitor/resources.html +1 -1
  219. package/dist/pages/namespaces.html +2 -2
  220. package/dist/pages/plugins.html +1 -1
  221. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  222. package/dist/pages/rdfrank.html +2 -2
  223. package/dist/pages/repositories.html +1 -1
  224. package/dist/pages/repository.html +1 -1
  225. package/dist/pages/similarity-indexes.html +1 -1
  226. package/dist/pages/sparql-editor.html +1 -1
  227. package/dist/pages/sparql-template-create.html +1 -1
  228. package/dist/pages/ux-test1.html +2 -2
  229. package/dist/pages/webapi.html +2 -2
  230. package/dist/plugins.js +1 -1
  231. package/dist/res/swagger5/index.html +11 -11
  232. package/dist/shared-components/cjs/onto-cookie-consent_2.cjs.entry.js +1 -1
  233. package/dist/shared-components/cjs/onto-dialog_2.cjs.entry.js +1 -1
  234. package/dist/shared-components/cjs/onto-dropdown.cjs.entry.js +1 -1
  235. package/dist/shared-components/cjs/onto-footer_6.cjs.entry.js +1 -1
  236. package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js +1 -1
  237. package/dist/shared-components/cjs/translate-label.cjs.entry.js +1 -1
  238. package/dist/shared-components/cjs/translation.service-CC6jY4U-.js +1 -0
  239. package/dist/shared-components/collection/components/dialogs/onto-cookie-policy-dialog/onto-cookie-policy-dialog.js +1 -1
  240. package/dist/shared-components/collection/components/onto-dropdown/onto-dropdown.js +1 -1
  241. package/dist/shared-components/collection/components/onto-navbar/navbar-service.js +1 -1
  242. package/dist/shared-components/collection/services/logger-provider.js +1 -0
  243. package/dist/shared-components/collection/services/translation.service.js +1 -1
  244. package/dist/shared-components/esm/onto-cookie-consent_2.entry.js +1 -1
  245. package/dist/shared-components/esm/onto-dialog_2.entry.js +1 -1
  246. package/dist/shared-components/esm/onto-dropdown.entry.js +1 -1
  247. package/dist/shared-components/esm/onto-footer_6.entry.js +1 -1
  248. package/dist/shared-components/esm/onto-language-selector_9.entry.js +1 -1
  249. package/dist/shared-components/esm/translate-label.entry.js +1 -1
  250. package/dist/shared-components/esm/translation.service-nljGIprK.js +1 -0
  251. package/dist/shared-components/shared-components/p-09a97d11.entry.js +1 -0
  252. package/dist/shared-components/shared-components/p-21b82a97.entry.js +1 -0
  253. package/dist/shared-components/shared-components/p-8d20ae56.entry.js +1 -0
  254. package/dist/shared-components/shared-components/{p-91ad7f7f.entry.js → p-9131b137.entry.js} +1 -1
  255. package/dist/shared-components/shared-components/{p-1bc2ac8e.entry.js → p-e454ffc9.entry.js} +1 -1
  256. package/dist/shared-components/shared-components/{p-17bac1e3.entry.js → p-f9aa2123.entry.js} +1 -1
  257. package/dist/shared-components/shared-components/p-nljGIprK.js +1 -0
  258. package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
  259. package/dist/shared-components/types/components/dialogs/onto-cookie-policy-dialog/onto-cookie-policy-dialog.d.ts +1 -0
  260. package/dist/shared-components/types/components/onto-dropdown/onto-dropdown.d.ts +1 -0
  261. package/dist/shared-components/types/services/logger-provider.d.ts +11 -0
  262. package/dist/shared-components/types/services/translation.service.d.ts +1 -0
  263. package/dist/styleguide.9451f25d197464f4079c.js +2 -0
  264. package/dist/styleguide.9451f25d197464f4079c.js.map +1 -0
  265. package/dist/workbench/workbench/workbenchApp.js +1 -1
  266. package/package.json +1 -1
  267. package/dist/10142.f47cd2aec05492fce7ce.bundle.js +0 -2
  268. package/dist/10142.f47cd2aec05492fce7ce.bundle.js.map +0 -1
  269. package/dist/10376.e89fa63ff898d45f45fd.bundle.js.map +0 -1
  270. package/dist/12940.5b35c2cf5958d8769c0a.bundle.js +0 -2
  271. package/dist/12940.5b35c2cf5958d8769c0a.bundle.js.map +0 -1
  272. package/dist/14824.5d5041c05fca4c0373fa.bundle.js +0 -2
  273. package/dist/14824.5d5041c05fca4c0373fa.bundle.js.map +0 -1
  274. package/dist/18961.c6505525fb0491b48f8b.bundle.js +0 -2
  275. package/dist/18961.c6505525fb0491b48f8b.bundle.js.map +0 -1
  276. package/dist/19968.fdb823f9a12e11a633ec.bundle.js +0 -2
  277. package/dist/19968.fdb823f9a12e11a633ec.bundle.js.map +0 -1
  278. package/dist/20227.ab5dfaab392dbb16ba31.bundle.js +0 -2
  279. package/dist/20227.ab5dfaab392dbb16ba31.bundle.js.map +0 -1
  280. package/dist/28050.8ca1fa760c892bfc5466.bundle.js.map +0 -1
  281. package/dist/33524.35fe079bcb99a78babaf.bundle.js +0 -2
  282. package/dist/33524.35fe079bcb99a78babaf.bundle.js.map +0 -1
  283. package/dist/41621.68c5ebc2104a62e2b41d.bundle.js +0 -2
  284. package/dist/41621.68c5ebc2104a62e2b41d.bundle.js.map +0 -1
  285. package/dist/456.6118cb99d130f4c0410c.bundle.js.map +0 -1
  286. package/dist/45758.6ceb731cbe0576149f31.bundle.js +0 -2
  287. package/dist/45758.6ceb731cbe0576149f31.bundle.js.map +0 -1
  288. package/dist/52264.99261393a7f6e631da3b.bundle.js.map +0 -1
  289. package/dist/54419.f09240da9349be115ab3.bundle.js +0 -2
  290. package/dist/54419.f09240da9349be115ab3.bundle.js.map +0 -1
  291. package/dist/5470.7c17c7d3b58c8c0d0786.bundle.js +0 -2
  292. package/dist/5470.7c17c7d3b58c8c0d0786.bundle.js.map +0 -1
  293. package/dist/58334.6fdc74532b5f755916d8.bundle.js +0 -2
  294. package/dist/58334.6fdc74532b5f755916d8.bundle.js.map +0 -1
  295. package/dist/60560.37740d97b418899a5d21.bundle.js +0 -2
  296. package/dist/60560.37740d97b418899a5d21.bundle.js.map +0 -1
  297. package/dist/64118.9841bd3b9724868b8a63.bundle.js +0 -2
  298. package/dist/64118.9841bd3b9724868b8a63.bundle.js.map +0 -1
  299. package/dist/66014.336bc4291da2fbc96cd1.bundle.js +0 -2
  300. package/dist/66014.336bc4291da2fbc96cd1.bundle.js.map +0 -1
  301. package/dist/67888.7d4966e0a22ba655f1b8.bundle.js.map +0 -1
  302. package/dist/69724.1a97fa707ee1379409e9.bundle.js +0 -2
  303. package/dist/69724.1a97fa707ee1379409e9.bundle.js.map +0 -1
  304. package/dist/77143.f23d8a7fa51df083741c.bundle.js +0 -2
  305. package/dist/77143.f23d8a7fa51df083741c.bundle.js.map +0 -1
  306. package/dist/78070.b5e22ffae27cc3ca7a6f.bundle.js +0 -2
  307. package/dist/78070.b5e22ffae27cc3ca7a6f.bundle.js.map +0 -1
  308. package/dist/78681.39694d37c0f75ea04df6.bundle.js +0 -2
  309. package/dist/78681.39694d37c0f75ea04df6.bundle.js.map +0 -1
  310. package/dist/81837.f10e22eaf72a0642b50e.bundle.js +0 -2
  311. package/dist/81837.f10e22eaf72a0642b50e.bundle.js.map +0 -1
  312. package/dist/82206.8ec983edcf675cfd4531.bundle.js +0 -2
  313. package/dist/82206.8ec983edcf675cfd4531.bundle.js.map +0 -1
  314. package/dist/82293.a9bb9cd640c007cc1e91.bundle.js +0 -2
  315. package/dist/82293.a9bb9cd640c007cc1e91.bundle.js.map +0 -1
  316. package/dist/82896.9aed45baf67510717c6f.bundle.js +0 -2
  317. package/dist/82896.9aed45baf67510717c6f.bundle.js.map +0 -1
  318. package/dist/83136.56d692623cbc60048e03.bundle.js.map +0 -1
  319. package/dist/84727.b93b2f9857352d39b241.bundle.js.map +0 -1
  320. package/dist/85281.27b5a1eb8e7ac2cf8459.bundle.js +0 -2
  321. package/dist/85281.27b5a1eb8e7ac2cf8459.bundle.js.map +0 -1
  322. package/dist/86639.ab85108411ef0f006e10.bundle.js.map +0 -1
  323. package/dist/89647.b1a4e522d685f0b5d60f.bundle.js +0 -2
  324. package/dist/89647.b1a4e522d685f0b5d60f.bundle.js.map +0 -1
  325. package/dist/95953.4ea6a7c68a22779ba299.bundle.js +0 -2
  326. package/dist/95953.4ea6a7c68a22779ba299.bundle.js.map +0 -1
  327. package/dist/96248.1b85f989b0a7852c9b7b.bundle.js +0 -2
  328. package/dist/96248.1b85f989b0a7852c9b7b.bundle.js.map +0 -1
  329. package/dist/98494.a2cdb2a1c5d32d0094f3.bundle.js +0 -3
  330. package/dist/98494.a2cdb2a1c5d32d0094f3.bundle.js.map +0 -1
  331. package/dist/99379.be6c85ef305af6667dc1.bundle.js +0 -2
  332. package/dist/99379.be6c85ef305af6667dc1.bundle.js.map +0 -1
  333. package/dist/99893.2537d77ee1f4df0c846b.bundle.js +0 -2
  334. package/dist/99893.2537d77ee1f4df0c846b.bundle.js.map +0 -1
  335. package/dist/legacyWorkbench.57fc12c172f6350ac4c5.js +0 -3
  336. package/dist/main.b9a83da68ffc43c91de0.js.map +0 -1
  337. package/dist/shared-components/cjs/translation.service-DjdwDpXN.js +0 -1
  338. package/dist/shared-components/esm/translation.service-Hf6024E7.js +0 -1
  339. package/dist/shared-components/shared-components/p-2433b25f.entry.js +0 -1
  340. package/dist/shared-components/shared-components/p-25fa0ee5.entry.js +0 -1
  341. package/dist/shared-components/shared-components/p-6266be98.entry.js +0 -1
  342. package/dist/shared-components/shared-components/p-Hf6024E7.js +0 -1
  343. /package/dist/{98494.a2cdb2a1c5d32d0094f3.bundle.js.LICENSE.txt → 98494.969124a68766ebbdee3c.bundle.js.LICENSE.txt} +0 -0
  344. /package/dist/{legacyWorkbench.57fc12c172f6350ac4c5.js.LICENSE.txt → legacyWorkbench.2bd696723af2573e8bb7.js.LICENSE.txt} +0 -0
  345. /package/dist/{main.b9a83da68ffc43c91de0.js.LICENSE.txt → main.be51ba05166a17f051a0.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"95953.4ea6a7c68a22779ba299.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index-status.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/controllers/agent-instructions-explain-modal.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/connectors/connectors.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/mappers/similarity-index-mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index-type.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/services/similarity.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/mappers/connectors-mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/connectors.rest.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/controllers/external-integration-configuration-modal.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/services/connectors.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/similarity.rest.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/externalIntegrationModal.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/controllers/agent-settings-modal.controller.js"],"sourcesContent":["export const SimilarityIndexStatus = {\n 'CREATING': 'CREATING',\n 'BUILDING': 'BUILDING',\n 'BUILT': 'BUILT',\n 'REBUILDING': 'REBUILDING',\n 'OUTDATED': 'OUTDATED',\n 'INTERRUPTED': 'INTERRUPTED',\n 'OBSOLETE': 'OBSOLETE',\n 'FAILED': 'FAILED',\n\n 'isCreatingStatus': (status) => {\n return SimilarityIndexStatus.CREATING === status;\n },\n\n 'isBuildingStatus': (status) => {\n return SimilarityIndexStatus.BUILDING === status;\n },\n\n 'isBuiltStatus': (status) => {\n return SimilarityIndexStatus.BUILT === status;\n },\n\n 'isRebuildingStatus': (status) => {\n return SimilarityIndexStatus.REBUILDING === status;\n },\n\n 'isOutdatedStatus': (status) => {\n return SimilarityIndexStatus.OUTDATED === status;\n },\n\n 'isInterruptedStatus': (status) => {\n return SimilarityIndexStatus.INTERRUPTED === status;\n },\n\n 'isObsoleteStatus': (status) => {\n return SimilarityIndexStatus.OBSOLETE === status;\n },\n\n 'isFailedStatus': (status) => {\n return SimilarityIndexStatus.FAILED === status;\n }\n};\n","import {SimilarityIndexType} from \"./similarity-index-type\";\nimport {SimilarityIndexStatus} from \"./similarity-index-status\";\n\nexport class SimilarityIndex {\n constructor() {\n this.analyzer = '';\n this.infer = true;\n this.options = '';\n this.sameAs = true;\n this.searchQuery = '';\n this.selectQuery = '';\n this.stopList = undefined;\n this.name = '';\n\n /**\n * The similarity index type.\n *\n * @type {string}\n */\n this.type = SimilarityIndexType.TEXT;\n\n /**\n * The similarity index type.\n *\n * @type {SimilarityIndexStatus}\n */\n this.status = undefined;\n\n this.analogicalQuery = undefined;\n this.inputIndex = undefined;\n this.isLiteralIndex = '';\n }\n\n isTextType() {\n return SimilarityIndexType.isTextType(this.type);\n }\n\n isTextLiteralType() {\n return SimilarityIndexType.isTextLiteralType(this.type);\n }\n\n isPredicationType() {\n return SimilarityIndexType.isPredicationType(this.type);\n }\n\n isCreatingStatus() {\n return SimilarityIndexStatus.isCreatingStatus(this.status);\n }\n\n isBuildingStatus() {\n return SimilarityIndexStatus.isBuildingStatus(this.status);\n }\n\n isBuiltStatus() {\n return SimilarityIndexStatus.isBuiltStatus(this.status);\n }\n\n isRebuildingStatus() {\n return SimilarityIndexStatus.isRebuildingStatus(this.status);\n }\n\n isOutdatedStatus() {\n return SimilarityIndexStatus.isOutdatedStatus(this.status);\n }\n\n isInterruptedStatus() {\n return SimilarityIndexStatus.isInterruptedStatus(this.status);\n }\n\n isObsoleteStatus() {\n return SimilarityIndexStatus.isObsoleteStatus(this.status);\n }\n\n isFailedStatus() {\n return SimilarityIndexStatus.isFailedStatus(this.status);\n }\n}\n","import 'angular/core/services/similarity.service';\nimport 'angular/core/services/connectors.service';\nimport 'angular/core/services/ttyg.service';\nimport 'angular/rest/repositories.rest.service';\n\nangular\n .module('graphdb.framework.ttyg.controllers.agent-instructions-explain-modal', [])\n .controller('AgentInstructionsExplainModalController', AgentInstructionsExplainModalController);\n\nAgentInstructionsExplainModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$translate',\n 'dialogModel'\n];\n\nfunction AgentInstructionsExplainModalController($scope, $uibModalInstance, ModalService, $translate, dialogModel) {\n // =========================\n // Public variables\n // =========================\n\n $scope.agentInstructionsExplain = dialogModel.agentInstructionsExplain;\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n $scope.onCloseAgentInstructionsExplainModal = () => {\n $uibModalInstance.dismiss({});\n };\n\n // =========================\n // Private functions\n // =========================\n\n // =========================\n // Subscriptions\n // =========================\n\n const subscriptions = [];\n\n const onDestroy = () => {\n subscriptions.forEach((subscription) => subscription());\n };\n $scope.$on('$destroy', onDestroy);\n\n // =========================\n // Initialization\n // =========================\n}\n","export class ConnectorTypesListModel {\n constructor(data = {}) {\n /**\n * @type {ConnectorTypeModel[]}\n * @private\n */\n this._connectors = data.connectors || [];\n }\n\n getConnectorByName(name) {\n return this._connectors.find((connector) => connector.name === name);\n }\n\n get connectors() {\n return this._connectors;\n }\n\n set connectors(value) {\n this._connectors = value;\n }\n}\n\nexport class ConnectorTypeModel {\n constructor(data) {\n /**\n * @type {string}\n * @private\n */\n this._name = data.name;\n /**\n * @type {string}\n * @private\n */\n this._prefix = data.prefix;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n\n get prefix() {\n return this._prefix;\n }\n\n set prefix(value) {\n this._prefix = value;\n }\n}\n\nexport class ConnectorListModel {\n constructor(data = []) {\n this._connectors = data.connectors;\n }\n\n get connectors() {\n return this._connectors;\n }\n\n set connectors(value) {\n this._connectors = value;\n }\n}\n\nexport class ConnectorModel {\n constructor(data) {\n this._name = data.name;\n this._settings = new ConnectorSettingsModel(data);\n }\n\n get settings() {\n return this._settings;\n }\n\n set settings(value) {\n this._settings = value;\n }\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n}\n\nexport class ConnectorSettingsModel {\n constructor(data) {\n this._settings = data.values || {};\n }\n\n get settings() {\n return this._settings;\n }\n\n set settings(value) {\n this._settings = value;\n }\n}\n","import {SimilarityIndex} from \"../../models/similarity/similarity-index\";\n\n/**\n * Maps the response data to SimilarityIndex objects.\n * @param {*} responseData\n * @return {SimilarityIndex[]}\n */\nexport const mapIndexesResponseToSimilarityIndex = (responseData) => {\n return responseData.map((index) => {\n const similarityIndex = new SimilarityIndex();\n similarityIndex.type = index.type;\n similarityIndex.stopList = index.stopList;\n similarityIndex.status = index.status;\n similarityIndex.selectQuery = index.selectQuery;\n similarityIndex.searchQuery = index.searchQuery;\n similarityIndex.sameAs = index.sameAs;\n similarityIndex.options = index.options;\n similarityIndex.name = index.name;\n similarityIndex.infer = index.infer;\n similarityIndex.analyzer = index.analyzer;\n similarityIndex.analogicalQuery = index.analogicalQuery;\n return similarityIndex;\n });\n};\n","export const SimilarityIndexType = {\n 'TEXT': 'text',\n 'TEXT_LITERAL': 'textLiteral',\n 'PREDICATION': 'predication',\n\n 'isTextType': (type) => {\n return SimilarityIndexType.TEXT === type;\n },\n\n 'isTextLiteralType': (type) => {\n return SimilarityIndexType.TEXT_LITERAL === type;\n },\n\n 'isPredicationType': (type) => {\n return SimilarityIndexType.PREDICATION === type;\n }\n};\n","import 'angular/rest/similarity.rest.service';\nimport {mapIndexesResponseToSimilarityIndex} from \"../../rest/mappers/similarity-index-mapper\";\nimport {SelectMenuOptionsModel} from \"../../models/form-fields\";\n\nconst modules = ['graphdb.framework.rest.similarity.service'];\n\nangular\n .module('graphdb.framework.core.services.similarity', modules)\n .factory('SimilarityService', SimilarityService);\n\nSimilarityService.$inject = ['SimilarityRestService'];\n\nfunction SimilarityService(SimilarityRestService) {\n\n /**\n * Returns the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SimilarityIndex[]>}\n */\n const getIndexes = (repositoryId, repositoryLocation) => {\n return SimilarityRestService.getIndexes(repositoryId, repositoryLocation)\n .then((response) => mapIndexesResponseToSimilarityIndex(response.data));\n };\n\n /**\n * Returns the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code> as a menu model.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SelectMenuOptionsModel[]>}\n */\n const getIndexesAsMenuModel = (repositoryId, repositoryLocation) => {\n return getIndexes(repositoryId, repositoryLocation)\n .then((indexesModel) => {\n return indexesModel.map((index) => {\n return new SelectMenuOptionsModel({label: index.name, value: index.name});\n });\n });\n };\n\n return {\n getIndexes,\n getIndexesAsMenuModel\n };\n}\n","import {\n ConnectorListModel,\n ConnectorModel,\n ConnectorTypeModel,\n ConnectorTypesListModel\n} from \"../../models/connectors/connectors\";\n\n/**\n * Maps the connectors response data to a ConnectorTypesListModel. These are all available connector types.\n * @param {{}} data\n * @return {ConnectorTypesListModel}\n */\nexport const connectorTypesListMapper = (data) => {\n const connectorListModel = new ConnectorTypesListModel();\n if (!data) {\n return connectorListModel;\n }\n connectorListModel.connectors = Object.keys(data).map((key) => {\n return new ConnectorTypeModel({\n name: key,\n prefix: data[key]\n });\n });\n return connectorListModel;\n};\n\n/**\n * Maps the connectors response data to a ConnectorListModel. These are the connector instances of one specific type.\n * @param {*[]} data\n * @return {ConnectorListModel}\n */\nexport const connectorsMapper = (data) => {\n const connectors = new ConnectorListModel();\n if (!data) {\n return connectors;\n }\n connectors.connectors = data.map((connectorResponse) => {\n return new ConnectorModel(connectorResponse);\n });\n return connectors;\n};\n","angular\n .module('graphdb.framework.rest.connectors.service', [])\n .factory('ConnectorsRestService', ConnectorsRestService);\n\nConnectorsRestService.$inject = ['$http'];\n\nconst CONNECTORS_ENDPOINT = 'rest/connectors';\n\nfunction ConnectorsRestService($http) {\n\n return {\n getConnectors,\n initConnector,\n hasConnector,\n checkConnector\n };\n\n /**\n * Fetches all connectors for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the values persisted in local storage will be used {@see authentication.interceptor.js}.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {*} The similarity indexes for the specified repository.\n */\n function getConnectors(repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(CONNECTORS_ENDPOINT, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(CONNECTORS_ENDPOINT);\n }\n\n function initConnector(prefix) {\n return $http.get(`${CONNECTORS_ENDPOINT}/options?prefix=${prefix}`);\n }\n\n /**\n * Fetches all connectors of a specific type defined by the prefix for the repository with id <code>repositoryId</code>\n * and location <code>repositoryLocation</code>. If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorListModel>}\n */\n function hasConnector(prefix, repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(`${CONNECTORS_ENDPOINT}/existing?prefix=${prefix}`, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(`${CONNECTORS_ENDPOINT}/existing?prefix=${prefix}`);\n }\n\n function checkConnector(data) {\n return $http.post(`${CONNECTORS_ENDPOINT}/check`, data, {\n headers: {\n 'Content-Type': 'text/plain'\n }\n });\n }\n}\n","angular\n .module('graphdb.framework.ttyg.controllers.external-integration-configuration-modal', [])\n .controller('ExternalIntegrationConfigurationModalController', ExternalIntegrationConfigurationModalController);\n\nExternalIntegrationConfigurationModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$translate',\n 'dialogModel'\n];\n\nfunction ExternalIntegrationConfigurationModalController($scope, $uibModalInstance, ModalService, $translate, dialogModel) {\n // =========================\n // Public variables\n // =========================\n\n $scope.externalIntegrationConfiguration = dialogModel.externalIntegrationConfiguration;\n $scope.difyExtension = dialogModel.difyExtensionUrl;\n $scope.queryMethods = dialogModel.queryMethodsUrl;\n $scope.agentId = dialogModel.agentId;\n $scope.agentName = dialogModel.agentName;\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n $scope.onCloseExternalIntegrationConfigurationModal = () => {\n $uibModalInstance.dismiss({});\n };\n}\n","import 'angular/rest/connectors.rest.service';\nimport {connectorsMapper, connectorTypesListMapper} from \"../../rest/mappers/connectors-mapper\";\nimport {SelectMenuOptionsModel} from \"../../models/form-fields\";\n\nconst modules = ['graphdb.framework.rest.connectors.service'];\n\nangular\n .module('graphdb.framework.core.services.connectors', modules)\n .factory('ConnectorsService', ConnectorsService);\n\nConnectorsService.$inject = ['ConnectorsRestService'];\n\nfunction ConnectorsService(ConnectorsRestService) {\n\n /**\n * Fetches all connector types from the server for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorTypesListModel>}\n */\n const getConnectorTypes = (repositoryId, repositoryLocation) => {\n return ConnectorsRestService.getConnectors(repositoryId, repositoryLocation)\n .then((response) => connectorTypesListMapper(response.data));\n };\n\n /**\n * Fetches the connector prefix by its name for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string} name\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<string|null>}\n */\n const getConnectorPrefixByName = (name, repositoryId, repositoryLocation) => {\n return getConnectorTypes(repositoryId, repositoryLocation)\n .then((connectorTypesModel) => {\n const connector = connectorTypesModel.getConnectorByName(name);\n return connector ? connector.prefix : null;\n });\n };\n\n /**\n * Fetches all connectors of a specific type defined by the prefix for the repository with id <code>repositoryId</code>\n * and location <code>repositoryLocation</code>. If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorListModel>}\n */\n const getConnectorsByType = (prefix, repositoryId, repositoryLocation) => {\n return ConnectorsRestService.hasConnector(encodeURIComponent(prefix), repositoryId, repositoryLocation)\n .then((response) => {\n return connectorsMapper(response.data);\n });\n };\n\n /**\n * Fetches all connectors of a specific type defined by the prefix and returns them as SelectMenuOptionsModel\n * for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SelectMenuOptionsModel[]>}\n */\n const getConnectorsByTypeAsSelectMenuOptions = (prefix, repositoryId, repositoryLocation) => {\n return getConnectorsByType(prefix, repositoryId, repositoryLocation)\n .then((connectorsModel) => connectorsModel.connectors.map((connector) => {\n return new SelectMenuOptionsModel({\n value: connector.name,\n label: connector.name\n });\n }));\n };\n\n return {\n getConnectorTypes,\n getConnectorsByType,\n getConnectorPrefixByName,\n getConnectorsByTypeAsSelectMenuOptions\n };\n}\n","angular\n .module('graphdb.framework.rest.similarity.service', [])\n .factory('SimilarityRestService', SimilarityRestService);\n\nSimilarityRestService.$inject = ['$http', '$repositories'];\n\nconst SIMILARITY_ENDPOINT = 'rest/similarity';\n\nfunction SimilarityRestService($http) {\n\n return {\n getIndexes,\n getSearchQueries,\n rebuildIndex,\n deleteIndex,\n createIndex,\n getSamples,\n getQuery,\n saveSearchQuery\n };\n\n /**\n * Fetches the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {*} The similarity indexes for the specified repository.\n */\n function getIndexes(repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(SIMILARITY_ENDPOINT, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(SIMILARITY_ENDPOINT);\n }\n\n function getSamples() {\n return $http.get(`${SIMILARITY_ENDPOINT}/samples`);\n }\n\n function getSearchQueries() {\n return $http.get(`${SIMILARITY_ENDPOINT}/config`);\n }\n\n function createIndex(method, name, options, selectQuery, searchQuery, analogicalQuery, stopList, infer, sameAs, type, analyzer) {\n return $http({\n method,\n url: `${SIMILARITY_ENDPOINT}`,\n noCancelOnRouteChange: true,\n data: {\n name,\n options,\n selectQuery,\n stopList,\n infer,\n sameAs,\n type,\n analyzer,\n searchQuery,\n analogicalQuery\n }\n }\n );\n }\n\n function rebuildIndex(index) {\n return createIndex('PUT', index.name, index.options, index.selectQuery, index.searchQuery, index.analogicalQuery, index.stopList, index.infer, index.sameAs, index.type);\n }\n\n function deleteIndex(index) {\n return $http.delete(`${SIMILARITY_ENDPOINT}?name=${index.name}`);\n }\n\n function getQuery(data) {\n return $http.get('rest/similarity/query',\n {\n params: {\n name: data.indexName,\n options: data.indexOptions,\n stopList: data.indexStopList,\n selectQuery: data.query,\n infer: data.queryInference,\n sameAs: data.querySameAs,\n type: data.viewType,\n analyzer: data.indexAnalyzer\n }\n });\n }\n\n function saveSearchQuery(data) {\n return $http({\n method: 'put',\n url: 'rest/similarity/search-query',\n data\n });\n }\n}\n","import 'angular/ttyg/controllers/external-integration-configuration-modal.controller';\nimport {TTYG_ERROR_MSG_LENGTH} from \"./constants\";\n\nangular\n .module('graphdb.framework.ttyg.services.externalIntegrationModal',\n ['graphdb.framework.ttyg.controllers.external-integration-configuration-modal'])\n .factory('ExternalIntegrationModalService', ExternalIntegrationModalService)\n\nExternalIntegrationModalService.$inject = ['$uibModal', 'LocationsRestService', 'toastr'];\n\nfunction ExternalIntegrationModalService($uibModal, LocationsRestService, toastr) {\n function buildDialogModel(agent, baseUrl) {\n return {\n agentName: agent.name,\n agentId: agent.id,\n queryMethodsUrl: `${baseUrl}/rest/llm/tool/ttyg/${agent.id}`,\n difyExtensionUrl: `${baseUrl}/rest/llm/ttyg/${agent.id}/dify`\n };\n }\n\n function open(agent) {\n return LocationsRestService.getExternalUrl()\n .then((response) => {\n const dialogModel = buildDialogModel(agent, response.data);\n\n return $uibModal.open({\n templateUrl: 'js/angular/ttyg/templates/modal/external-integration-configuration-modal.html',\n controller: 'ExternalIntegrationConfigurationModalController',\n windowClass: 'external-integration-configuration-modal',\n backdrop: 'static',\n resolve: {\n dialogModel: () => dialogModel\n }\n }).result\n .then(() => {\n // Modal was closed with success - do nothing\n })\n .catch(() => {\n // Modal was dismissed — do nothing\n });\n })\n .catch((error) => {\n // Catches API failure\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n }\n\n return {open};\n}\n","import {decodeHTML} from \"../../../../app\";\nimport {AdditionalExtractionMethod, ExtractionMethod} from \"../../models/ttyg/agents\";\nimport 'angular/core/services/similarity.service';\nimport 'angular/core/services/connectors.service';\nimport 'angular/core/services/ttyg.service';\nimport 'angular/rest/repositories.rest.service';\nimport 'angular/ttyg/controllers/agent-instructions-explain-modal.controller';\nimport 'angular/ttyg/services/externalIntegrationModal.service';\nimport {REPOSITORY_PARAMS} from \"../../models/repository/repository\";\nimport {TTYGEventName} from \"../services/ttyg-context.service\";\nimport {AGENT_OPERATION, TTYG_ERROR_MSG_LENGTH} from \"../services/constants\";\nimport {mapUriAsNtripleAutocompleteResponse} from \"../../rest/mappers/autocomplete-mapper\";\nimport {DocumentationUrlResolver} from \"../../utils/documentation-url-resolver\";\n\nangular\n .module('graphdb.framework.ttyg.controllers.agent-settings-modal', [\n 'graphdb.framework.core.services.similarity',\n 'graphdb.framework.core.services.connectors',\n 'graphdb.framework.rest.repositories.service',\n 'graphdb.framework.ttyg.controllers.agent-instructions-explain-modal',\n 'graphdb.framework.ttyg.services.externalIntegrationModal',\n 'ngTagsInput'\n ])\n .constant('ExtractionMethodTemplates', {\n 'iri_discovery_search': 'iri-discovery-search',\n 'autocomplete_iri_discovery_search': 'autocomplete-iri-discovery-search'\n })\n .controller('AgentSettingsModalController', AgentSettingsModalController);\n\nAgentSettingsModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$uibModal',\n 'SimilarityService',\n 'ConnectorsService',\n 'RepositoriesRestService',\n '$sce',\n 'toastr',\n 'UriUtils',\n '$translate',\n 'dialogModel',\n 'TTYGContextService',\n 'TTYGService',\n 'ExtractionMethodTemplates',\n 'AutocompleteService',\n 'AutocompleteRestService',\n 'ExternalIntegrationModalService',\n 'productInfo'];\n\nfunction AgentSettingsModalController(\n $scope,\n $uibModalInstance,\n ModalService,\n $uibModal,\n SimilarityService,\n ConnectorsService,\n RepositoriesRestService,\n $sce,\n toastr,\n UriUtils,\n $translate,\n dialogModel,\n TTYGContextService,\n TTYGService,\n ExtractionMethodTemplates,\n AutocompleteService,\n AutocompleteRestService,\n ExternalIntegrationModalService,\n productInfo) {\n\n // =========================\n // Private variables\n // =========================\n\n const CHAT_GPT_RETRIEVAL_CONNECTOR_NAME = 'ChatGPT Retrieval';\n\n // =========================\n // Public variables\n // =========================\n\n $scope.AGENT_OPERATION = AGENT_OPERATION;\n\n /**\n * The operation type for the modal. This can be one of <code>AGENT_OPERATION</code> constants.\n */\n $scope.operation = dialogModel.operation;\n\n /**\n * Flag to control the visibility of the loader when creating an agent.\n * @type {boolean}\n */\n $scope.savingAgent = false;\n\n /**\n * The model used in the form.\n * @type {AgentFormModel|*}\n */\n $scope.agentFormModel = dialogModel.agentFormModel;\n\n /**\n * The active repository info model.\n * @type {RepositoryInfoModel|*}\n */\n $scope.activeRepositoryInfo = dialogModel.activeRepositoryInfo;\n\n /**\n * Flags used to show/hide the loader for the extraction methods when the user opens a panel and some data needs to\n * be loaded.\n * @type {{[string]: boolean}} - the key is the extraction method types in <code>ExtractionMethod</code>\n */\n $scope.extractionMethodLoaderFlags = {\n [ExtractionMethod.SIMILARITY]: false\n };\n\n /**\n * The repository select menu options model.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.activeRepositoryList = dialogModel.activeRepositoryList;\n\n /**\n * The extraction method types constants.\n * @type {{SPARQL: string, FTS_SEARCH: string, SIMILARITY: string, RETRIEVAL: string}}\n */\n $scope.extractionMethods = ExtractionMethod;\n\n /**\n * The additional extraction method types constants.\n * @type {{IRI_DISCOVERY_SEARCH: string, AUTOCOMPLETE_IRI_DISCOVERY_SEARCH: string}}\n */\n $scope.additionalExtractionMethods = AdditionalExtractionMethod;\n\n /**\n * The names of the template files, containing the Extraction Method Templates.\n * @type {Object<string, string>}\n */\n $scope.ExtractionMethodTemplates = ExtractionMethodTemplates;\n\n /**\n * Flag used to show/hide the advanced settings in the modal.\n * @type {boolean}\n */\n $scope.showAdvancedSettings = false;\n\n /**\n * Flag used to show/hide the high temperature warning in the modal.\n * @type {boolean}\n */\n $scope.showHighTemperatureWarning = false;\n\n /**\n * Flag used to control the visibility of the system instruction warning.\n * @type {boolean}\n */\n $scope.showSystemInstructionWarning = false;\n\n /**\n * The similarity indexes to be used for the similarity extraction method as select menu options.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.similarityIndexes = [];\n\n /**\n * The retrieval connectors to be used for the retrieval extraction method as select menu options.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.retrievalConnectors = [];\n\n /**\n * Flag used to show/hide the FTS enabled state in the modal.\n * @type {boolean}\n */\n $scope.ftsEnabled = false;\n\n /**\n * The autocomplete suggestions source for the 'Autocomplete IRI discovery' extraction method.\n * @type {*[]}\n */\n $scope.autocompleteSuggestions = [];\n\n /**\n * Flag to determine if the context size field should be visible in the form.\n * @type {boolean}\n */\n $scope.showContextSize = ($scope.agentFormModel.contextSize !== null);\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Sets the UI touched state and validation state for the extraction methods property so that the UI can show if\n * the user has selected at least one extraction method and warn him if he hasn't.\n *\n * @param {ExtractionMethodFormModel} extractionMethod\n */\n $scope.toggleExtractionMethod = (extractionMethod) => {\n extractionMethod.expanded = extractionMethod.selected;\n $scope.agentSettingsForm.extractionMethods.$setTouched();\n setExtractionMethodValidityStatus();\n extractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Handles the panel toggle event for the extraction method. This is used to do some initialization when the user\n * opens the panel for a specific extraction method.\n * @param {ExtractionMethodFormModel} extractionMethod\n */\n $scope.onExtractionMethodPanelToggle = (extractionMethod) => {\n extractionMethod.toggleCollapse();\n extractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Sets the UI touched state and validation state for the additional extraction methods property so that the UI can show if\n * the user has selected at least one extraction method.\n *\n * @param {AdditionalExtractionMethodFormModel} extractionMethod\n */\n $scope.toggleAdditionalExtractionMethod = (extractionMethod) => {\n extractionMethod.expanded = extractionMethod.selected;\n $scope.checkAutocompleteIndexEnabled();\n additionalExtractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Handles the panel toggle event for the additional extraction method. This is used to do some initialization when the user\n * opens the panel for a specific extraction method.\n * @param {AdditionalExtractionMethodFormModel} extractionMethod\n */\n $scope.onAdditionalExtractionMethodPanelToggle = (extractionMethod) => {\n extractionMethod.toggleCollapse();\n additionalExtractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n $scope.helpInfoForModel = {\n ttygHelpInfo: getModelHelpMessage(),\n linkText: $translate.instant('ttyg.agent.create_agent_modal.form.model.link_text'),\n documentationUrl: DocumentationUrlResolver.getDocumentationUrl(productInfo.productShortVersion, 'talk-to-graph.html#prerequisites-and-configuration')\n }\n\n /**\n * Resolves the hint for the FTS search missing message. This is needed because the hint contains a html link that\n * should be properly rendered.\n * @return {*}\n */\n $scope.getFTSDisabledHelpMessage = () => {\n // The hint contains a html link which should be properly rendered.\n const message = decodeHTML(\n $translate.instant(\n 'ttyg.agent.create_agent_modal.form.fts_search.fts_disabled_message',\n {repositoryEditPage: 'repository/edit/' + $scope.agentFormModel.repositoryId}\n )\n );\n return $sce.trustAsHtml(message);\n };\n\n /**\n * Opens the 'Autocomplete index' view in a new tab.\n */\n $scope.goToAutocompleteView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_AUTOCOMPLETE_INDEX_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n }\n\n /**\n * Opens the 'Create Similarity' view in a new tab.\n */\n $scope.goToCreateSimilarityView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_CREATE_SIMILARITY_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n };\n\n /**\n * Opens the 'Connectors' view in a new tab.\n */\n $scope.goToConnectorsView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_CONNECTORS_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n };\n\n /**\n * Handles the selected agent operation which can be one of <code>AGENT_OPERATION</code> types. Respective handler\n * is called based on the operation type with the agent payload build based on the form model.\n * @return {Promise<void>}\n */\n $scope.ok = () => {\n const agentPayload = $scope.agentFormModel.toPayload();\n return agentOperationHandlers[$scope.operation](agentPayload);\n };\n\n /**\n * Closes the modal when the user cancels the agent creation.\n */\n $scope.cancel = () => {\n $uibModalInstance.dismiss({});\n };\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n /**\n * Updates the similarity search panel.\n *\n * @param {boolean} clearIndexSelection - If true, the selected index will be cleared.\n */\n $scope.updateSimilaritySearchPanel = (clearIndexSelection = false) => {\n const similaritySearchExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getSimilarityExtractionMethod();\n if (!similaritySearchExtractionMethod.selected) {\n return;\n }\n if (clearIndexSelection) {\n similaritySearchExtractionMethod.similarityIndex = null;\n }\n handleSimilaritySearchExtractionMethodPanelToggle(similaritySearchExtractionMethod);\n };\n\n /**\n * Updates the ChatGPT retrieval connector panel.\n *\n * @param {boolean} clearSelection - If true, the selected connector will be cleared.\n */\n $scope.updateRetrievalConnectorPanel = (clearSelection = false) => {\n const retrievalExtractionExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getRetrievalExtractionMethod();\n if (!retrievalExtractionExtractionMethod.selected) {\n return;\n }\n if (clearSelection) {\n retrievalExtractionExtractionMethod.retrievalConnectorInstance = null;\n }\n handleRetrievalConnectorExtractionMethodPanelToggle(retrievalExtractionExtractionMethod);\n };\n\n $scope.checkIfFTSEnabled = () => {\n if (!$scope.agentFormModel.repositoryId) {\n $scope.agentSettingsForm.$setValidity('FTSDisabled', false);\n return;\n }\n\n const ftsSearchExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getFTSSearchExtractionMethod();\n if (!ftsSearchExtractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('FTSDisabled', true);\n return;\n }\n\n $scope.extractionMethodLoaderFlags[ExtractionMethod.FTS_SEARCH] = true;\n\n // pass a fake repository info object with only an id because we don't care for the location\n RepositoriesRestService.getRepositoryModel({id: $scope.agentFormModel.repositoryId}).then((repositoryModel) => {\n $scope.ftsEnabled = repositoryModel.getParamValue(REPOSITORY_PARAMS.enableFtsIndex);\n })\n .catch((error) => {\n logAndShowError(error, 'ttyg.agent.messages.error_repository_config_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[ExtractionMethod.FTS_SEARCH] = false;\n $scope.agentSettingsForm.$setValidity('FTSDisabled', $scope.ftsEnabled);\n });\n };\n\n /**\n * Opens a modal to copy the external integration for the currently edited agent.\n *\n * @function\n */\n $scope.openExternalIntegrationConfig = () => {\n const agent = $scope.agentFormModel;\n ExternalIntegrationModalService.open(agent);\n };\n\n /**\n * Handles the change in the repository id field. This is needed because\n * the FTS method configuration depends on the selected repository to be\n * able to validate if the FTS is enabled for that selected repository.\n */\n $scope.onRepositoryChange = () => {\n refreshValidations(true, true);\n };\n\n /**\n * Checks the status of the autocomplete index.\n * @param {AdditionalExtractionMethodFormModel|undefined} method - The extraction method to check the autocomplete\n * index for. This function can be called in the visibilitychange handler, so the method might not be defined.\n * If not provided, it will check the 'Autocomplete IRI discovery search' method from the additional extraction\n * methods.\n */\n $scope.checkAutocompleteIndexEnabled = (method) => {\n if (!method) {\n method = $scope.agentFormModel.additionalExtractionMethods.additionalExtractionMethods\n .find((extractionMethod) => extractionMethod.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH);\n }\n // If the method is not selected, we don't need to check the autocomplete index status.\n // Also, if the repository id is not set, we can't check the autocomplete index status.\n if (method && !method.selected || !$scope.agentFormModel.repositoryId) {\n return;\n }\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n AutocompleteService.checkAutocompleteStatus(selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((autocompleteEnabled) => {\n $scope.autocompleteEnabled = autocompleteEnabled;\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', autocompleteEnabled);\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', false);\n toastr.error(getError(error));\n });\n }\n\n /**\n * Restores the default context size.\n */\n $scope.onRestoreDefaultContextSize = () => {\n $scope.agentFormModel.contextSize = $scope.agentFormModel.contextSizeCopy;\n };\n\n /**\n * Restores the default system instructions.\n */\n $scope.onRestoreDefaultSystemInstructions = () => {\n $scope.agentFormModel.instructions.systemInstruction = $scope.agentFormModel.instructions.systemInstructionCopy;\n };\n\n /**\n * Restores the default user instructions.\n */\n $scope.onRestoreDefaultUserInstructions = () => {\n $scope.agentFormModel.instructions.userInstruction = $scope.agentFormModel.instructions.userInstructionCopy;\n };\n\n /**\n * Handles the change in the temperature field. This is needed because the high temperature warning should be shown\n * when the temperature is higher than 1.\n */\n $scope.onTemperatureChange = () => {\n $scope.showHighTemperatureWarning = $scope.agentFormModel.temperature.value > 1;\n };\n\n /**\n * Handles the change in the system instructions field.\n */\n $scope.onSystemInstructionChange = () => {\n if ($scope.agentFormModel.instructions.systemInstruction !== '' && !$scope.showSystemInstructionWarning) {\n $scope.showSystemInstructionWarning = true;\n ModalService.openModalAlert({\n title: $translate.instant('ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.title'),\n message: $translate.instant('ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body')\n }).result\n .then(function () {\n // Do nothing, just warning the user\n });\n }\n if ($scope.agentFormModel.instructions.systemInstruction === '') {\n $scope.showSystemInstructionWarning = false;\n }\n };\n\n /**\n * Opens the agent instructions explain modal.\n */\n $scope.onExplainAgentSettings = () => {\n const agentPayload = $scope.agentFormModel.toPayload();\n TTYGService.explainAgentSettings(agentPayload)\n .then((agentInstructionsExplain) => {\n const options = {\n templateUrl: 'js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html',\n controller: 'AgentInstructionsExplainModalController',\n windowClass: 'agent-instructions-explain-modal',\n backdrop: 'static',\n resolve: {\n dialogModel: function () {\n return {\n agentInstructionsExplain\n };\n }\n },\n size: 'lg'\n };\n $uibModal.open(options).result\n .then(() => {\n // Do nothing\n });\n }).catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n };\n\n $scope.getSuggestions = (event) => {\n const inputText = event.target.value;\n AutocompleteRestService.getAutocompleteSuggestions(inputText)\n .then(mapUriAsNtripleAutocompleteResponse)\n .then((suggestions) => {\n $scope.autocompleteSuggestions = suggestions.map(item => ({text: item.value}));\n }).catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n }\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Resolves the hint message for the agent model property.\n * This is needed because the hint contains a html link that\n * should be properly rendered.\n * @return {*}\n */\n function getModelHelpMessage() {\n // The hint contains a html link which should be properly rendered.\n const message = decodeHTML($translate.instant('ttyg.agent.create_agent_modal.form.model.hint'));\n return $sce.trustAsHtml(message);\n }\n\n /**\n * Mapping of agent operations to their respective handlers.\n * @type {{[AGENT_OPERATION.EDIT]: (function(*): Promise<void>), [AGENT_OPERATION.CLONE]: (function(*): Promise<void>), [AGENT_OPERATION.CREATE]: (function(*): Promise<void>)}}\n */\n const agentOperationHandlers = {\n [AGENT_OPERATION.CREATE]: (payload) => createAgent(payload),\n [AGENT_OPERATION.EDIT]: (payload) => editAgent(payload),\n [AGENT_OPERATION.CLONE]: (payload) => cloneAgent(payload)\n };\n\n /**\n * Creates a new agent with the given payload and closes the modal if no errors occur.\n * @param {*} newAgentPayload - the payload for the new agent.\n * @return {Promise<void>}\n */\n const createAgent = (newAgentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.createAgent(newAgentPayload)\n .then((agentModel) => {\n $uibModalInstance.close(agentModel);\n toastr.success($translate.instant('ttyg.agent.messages.agent_save_successfully', {agentName: agentModel.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n /**\n * Sends the edit agent payload to the server and closes the modal if no errors occur.\n * @param {*} agentPayload - the payload for the agent to be edited.\n * @return {Promise<void>}\n */\n const editAgent = (agentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.editAgent(agentPayload)\n .then((updatedAgent) => {\n $uibModalInstance.close(updatedAgent);\n toastr.success($translate.instant('ttyg.agent.messages.agent_save_successfully', {agentName: updatedAgent.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n /**\n * Clones the agent with the given payload and closes the modal if no errors occur.\n * @param {*} agentPayload\n * @return {Promise<void>}\n */\n const cloneAgent = (agentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.createAgent(agentPayload)\n .then((updatedAgent) => {\n $uibModalInstance.close(updatedAgent);\n toastr.success($translate.instant(\"ttyg.agent.messages.agent_save_successfully\", {agentName: updatedAgent.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n const logAndShowError = (error, errorMessageKey) => {\n console.error(error);\n toastr.error($translate.instant(errorMessageKey));\n };\n\n const setExtractionMethodValidityStatus = () => {\n $scope.agentSettingsForm.extractionMethods.$setValidity('required', $scope.agentFormModel.hasExtractionMethodSelected());\n };\n\n const handleFTSExtractionMethodPanelToggle = (extractionMethod) => {\n $scope.checkIfFTSEnabled();\n };\n\n /**\n * Returns the repository info model for the selected repository in the form.\n *\n * @return {{repositoryLocation: (*|undefined), repositoryId: (*|undefined)}}\n */\n const getSelectedRepositoryInfo = () => {\n const selectRepositoryInfo = $scope.activeRepositoryList.find((repository) => repository.value === $scope.agentFormModel.repositoryId);\n return {\n repositoryId: selectRepositoryInfo ? selectRepositoryInfo.data.repository.id : undefined,\n repositoryLocation: selectRepositoryInfo ? selectRepositoryInfo.data.repository.location : undefined\n };\n };\n\n const handleSimilaritySearchExtractionMethodPanelToggle = (extractionMethod) => {\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('missingIndex', true);\n }\n if (!$scope.agentFormModel.repositoryId) {\n return;\n }\n if (extractionMethod.expanded) {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = true;\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n SimilarityService.getIndexesAsMenuModel(selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((indexes) => {\n $scope.similarityIndexes = indexes;\n $scope.agentSettingsForm.$setValidity('missingIndex', !extractionMethod.selected || !!(indexes && indexes.length));\n updateSelectedSimilarityIndex($scope.similarityIndexes, extractionMethod);\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('missingIndex', false);\n logAndShowError(error, 'ttyg.agent.messages.error_similarity_indexes_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = false;\n });\n }\n };\n\n /**\n * Updates the selected similarity index for the extraction method.\n *\n * @param {SelectMenuOptionsModel[]} indexes - The list of all available similarity indexes.\n * @param {Object} extractionMethod - The extraction method object containing the currently selected similarity index.\n */\n const updateSelectedSimilarityIndex = (indexes, extractionMethod) => {\n if (indexes.length === 0) {\n // If no similarity indexes are available, clear the similarity index.\n extractionMethod.similarityIndex = null;\n return;\n }\n\n // If the selected index is not found in the current list, default to the first index.\n const selectedIndex = indexes.find((index) => index.value === extractionMethod.similarityIndex);\n extractionMethod.similarityIndex = selectedIndex ? selectedIndex.value : indexes[0].value;\n };\n\n const handleRetrievalConnectorExtractionMethodPanelToggle = (extractionMethod) => {\n if (!$scope.agentFormModel.repositoryId) {\n return;\n }\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('missingConnector', true);\n }\n\n if (extractionMethod.expanded) {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = true;\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n ConnectorsService.getConnectorPrefixByName(CHAT_GPT_RETRIEVAL_CONNECTOR_NAME, selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((prefix) => ConnectorsService.getConnectorsByTypeAsSelectMenuOptions(prefix, selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation))\n .then((connectors) => {\n $scope.retrievalConnectors = connectors;\n $scope.agentSettingsForm.$setValidity('missingConnector', !extractionMethod.selected || !!(connectors && connectors.length));\n updateSelectedRetrievalConnector($scope.retrievalConnectors, extractionMethod);\n\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('missingConnector', false);\n logAndShowError(error, 'ttyg.agent.messages.error_retrieval_connectors_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = false;\n });\n }\n };\n\n /**\n * Updates the selected retrieval connector for the extraction method.\n *\n * @param {SelectMenuOptionsModel[]} retrievalConnectors - The list of all available connectors.\n * @param {Object} extractionMethod - The extraction method object containing the currently selected retrieval connector.\n */\n const updateSelectedRetrievalConnector = (retrievalConnectors, extractionMethod) => {\n if (retrievalConnectors.length === 0) {\n // If no connector are available, clear the similarity index.\n extractionMethod.retrievalConnectorInstance = null;\n return;\n }\n const selectedConnector = retrievalConnectors.find((connector) => connector.value === extractionMethod.retrievalConnectorInstance);\n\n // If the selected connector is not found in the current list, default to the first index.\n extractionMethod.retrievalConnectorInstance = selectedConnector\n ? selectedConnector.value\n : retrievalConnectors[0].value;\n };\n\n const extractionPanelToggleHandlers = {\n [ExtractionMethod.FTS_SEARCH]: (extractionMethod) => handleFTSExtractionMethodPanelToggle(extractionMethod),\n [ExtractionMethod.SPARQL]: (extractionMethod) => {\n },\n [ExtractionMethod.SIMILARITY]: (extractionMethod) => handleSimilaritySearchExtractionMethodPanelToggle(extractionMethod),\n [ExtractionMethod.RETRIEVAL]: (extractionMethod) => handleRetrievalConnectorExtractionMethodPanelToggle(extractionMethod)\n };\n\n const additionalExtractionPanelToggleHandlers = {\n [AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH]: (extractionMethod) => handleAutocompleteExtractionMethodPanelToggle(extractionMethod),\n [AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH]: () => {\n },\n };\n\n const handleAutocompleteExtractionMethodPanelToggle = (extractionMethod) => {\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', true);\n }\n $scope.checkAutocompleteIndexEnabled(extractionMethod);\n }\n\n const refreshValidations = (clearIndexSelection = false, clearRetrievalConnectorSelection = false) => {\n $scope.checkIfFTSEnabled();\n $scope.updateSimilaritySearchPanel(clearIndexSelection);\n $scope.updateRetrievalConnectorPanel(clearRetrievalConnectorSelection);\n $scope.checkAutocompleteIndexEnabled();\n };\n\n const onTabVisibilityChanged = () => {\n if (!document.hidden) {\n refreshValidations();\n }\n };\n\n const refreshSliderById = (elementId, value) => {\n const slider = document.getElementById(elementId);\n if (slider) {\n slider.value = value;\n }\n };\n\n // =========================\n // Subscriptions\n // =========================\n\n const removeAllSubscribers = () => {\n document.removeEventListener(\"visibilitychange\", onTabVisibilityChanged);\n };\n\n document.addEventListener(\"visibilitychange\", onTabVisibilityChanged);\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllSubscribers);\n\n\n // =========================\n // Initialization\n // =========================\n\n const init = () => {\n // Set repository id to null if it is missing from the list of active repositories\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n if (!selectedRepositoryInfo.repositoryId) {\n $scope.agentFormModel.repositoryId = null;\n }\n // Delay the validation status setting because angular form ngmodel is not present immediately\n setTimeout(setExtractionMethodValidityStatus, 0);\n $uibModalInstance.rendered.then(() => {\n refreshSliderById('temperatureSlider', $scope.agentFormModel.temperature.value);\n refreshSliderById('topPSlider', $scope.agentFormModel.topP.value);\n });\n };\n init();\n}\n"],"names":["SimilarityIndexStatus","status","CREATING","BUILDING","BUILT","REBUILDING","OUTDATED","INTERRUPTED","OBSOLETE","FAILED","SimilarityIndex","constructor","this","analyzer","infer","options","sameAs","searchQuery","selectQuery","stopList","undefined","name","type","SimilarityIndexType","TEXT","analogicalQuery","inputIndex","isLiteralIndex","isTextType","isTextLiteralType","isPredicationType","isCreatingStatus","isBuildingStatus","isBuiltStatus","isRebuildingStatus","isOutdatedStatus","isInterruptedStatus","isObsoleteStatus","isFailedStatus","AgentInstructionsExplainModalController","$scope","$uibModalInstance","ModalService","$translate","dialogModel","agentInstructionsExplain","close","dismiss","onCloseAgentInstructionsExplainModal","subscriptions","$on","onDestroy","forEach","subscription","angular","module","controller","$inject","ConnectorTypesListModel","data","_connectors","connectors","getConnectorByName","find","connector","value","ConnectorTypeModel","_name","_prefix","prefix","ConnectorListModel","ConnectorModel","_settings","ConnectorSettingsModel","settings","values","mapIndexesResponseToSimilarityIndex","responseData","map","index","similarityIndex","TEXT_LITERAL","PREDICATION","SimilarityService","SimilarityRestService","getIndexes","repositoryId","repositoryLocation","then","response","getIndexesAsMenuModel","indexesModel","SelectMenuOptionsModel","label","factory","connectorTypesListMapper","connectorListModel","Object","keys","key","connectorsMapper","connectorResponse","ConnectorsRestService","CONNECTORS_ENDPOINT","$http","getConnectors","get","headers","initConnector","hasConnector","checkConnector","post","ExternalIntegrationConfigurationModalController","externalIntegrationConfiguration","difyExtension","difyExtensionUrl","queryMethods","queryMethodsUrl","agentId","agentName","onCloseExternalIntegrationConfigurationModal","ConnectorsService","getConnectorTypes","getConnectorsByType","encodeURIComponent","getConnectorPrefixByName","connectorTypesModel","getConnectorsByTypeAsSelectMenuOptions","connectorsModel","SIMILARITY_ENDPOINT","getSearchQueries","rebuildIndex","createIndex","deleteIndex","delete","getSamples","getQuery","params","indexName","indexOptions","indexStopList","query","queryInference","querySameAs","viewType","indexAnalyzer","saveSearchQuery","method","url","noCancelOnRouteChange","ExternalIntegrationModalService","$uibModal","LocationsRestService","toastr","open","agent","getExternalUrl","baseUrl","id","buildDialogModel","templateUrl","windowClass","backdrop","resolve","result","catch","error","getError","TTYG_ERROR_MSG_LENGTH","AgentSettingsModalController","RepositoriesRestService","$sce","UriUtils","TTYGContextService","TTYGService","ExtractionMethodTemplates","AutocompleteService","AutocompleteRestService","productInfo","AGENT_OPERATION","operation","savingAgent","agentFormModel","activeRepositoryInfo","extractionMethodLoaderFlags","ExtractionMethod","SIMILARITY","activeRepositoryList","extractionMethods","additionalExtractionMethods","AdditionalExtractionMethod","showAdvancedSettings","showHighTemperatureWarning","showSystemInstructionWarning","similarityIndexes","retrievalConnectors","ftsEnabled","autocompleteSuggestions","showContextSize","contextSize","toggleExtractionMethod","extractionMethod","expanded","selected","agentSettingsForm","$setTouched","setExtractionMethodValidityStatus","extractionPanelToggleHandlers","onExtractionMethodPanelToggle","toggleCollapse","toggleAdditionalExtractionMethod","checkAutocompleteIndexEnabled","additionalExtractionPanelToggleHandlers","onAdditionalExtractionMethodPanelToggle","helpInfoForModel","ttygHelpInfo","message","decodeHTML","instant","trustAsHtml","getModelHelpMessage","linkText","documentationUrl","DocumentationUrlResolver","getDocumentationUrl","productShortVersion","getFTSDisabledHelpMessage","repositoryEditPage","goToAutocompleteView","event","preventDefault","emit","TTYGEventName","GO_TO_AUTOCOMPLETE_INDEX_VIEW","goToCreateSimilarityView","GO_TO_CREATE_SIMILARITY_VIEW","goToConnectorsView","GO_TO_CONNECTORS_VIEW","ok","agentPayload","toPayload","agentOperationHandlers","cancel","updateSimilaritySearchPanel","clearIndexSelection","similaritySearchExtractionMethod","assistantExtractionMethods","getSimilarityExtractionMethod","handleSimilaritySearchExtractionMethodPanelToggle","updateRetrievalConnectorPanel","clearSelection","retrievalExtractionExtractionMethod","getRetrievalExtractionMethod","retrievalConnectorInstance","handleRetrievalConnectorExtractionMethodPanelToggle","checkIfFTSEnabled","getFTSSearchExtractionMethod","FTS_SEARCH","getRepositoryModel","repositoryModel","getParamValue","REPOSITORY_PARAMS","enableFtsIndex","logAndShowError","finally","$setValidity","openExternalIntegrationConfig","onRepositoryChange","refreshValidations","AUTOCOMPLETE_IRI_DISCOVERY_SEARCH","selectedRepositoryInfo","getSelectedRepositoryInfo","checkAutocompleteStatus","autocompleteEnabled","onRestoreDefaultContextSize","contextSizeCopy","onRestoreDefaultSystemInstructions","instructions","systemInstruction","systemInstructionCopy","onRestoreDefaultUserInstructions","userInstruction","userInstructionCopy","onTemperatureChange","temperature","onSystemInstructionChange","openModalAlert","title","onExplainAgentSettings","explainAgentSettings","size","getSuggestions","inputText","target","getAutocompleteSuggestions","mapUriAsNtripleAutocompleteResponse","suggestions","item","text","CREATE","payload","createAgent","EDIT","editAgent","CLONE","cloneAgent","newAgentPayload","agentModel","success","updatedAgent","errorMessageKey","console","hasExtractionMethodSelected","selectRepositoryInfo","repository","location","indexes","length","updateSelectedSimilarityIndex","selectedIndex","updateSelectedRetrievalConnector","selectedConnector","SPARQL","RETRIEVAL","handleAutocompleteExtractionMethodPanelToggle","IRI_DISCOVERY_SEARCH","clearRetrievalConnectorSelection","onTabVisibilityChanged","document","hidden","refreshSliderById","elementId","slider","getElementById","addEventListener","removeAllSubscribers","removeEventListener","setTimeout","rendered","topP","constant"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=96248;export const __webpack_ids__=[96248];export const __webpack_modules__={96248:()=>{function e(e,o,s,r,t){e.message=t,e.close=()=>{o.dismiss()},e.copyToClipboard=()=>{navigator.clipboard.writeText(e.message).then(()=>{r.success(s.instant("import.help.messages.copied_to_clipboard")),e.close()},e=>{console.error("Could not copy text: ",e)})}}angular.module("graphdb.framework.impex.import.controllers.import-resource-message-dialog",[]).controller("ImportResourceMessageDialogController",e),e.$inject=["$scope","$uibModalInstance","$translate","toastr","message"]}};
2
- //# sourceMappingURL=96248.1b85f989b0a7852c9b7b.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"96248.1b85f989b0a7852c9b7b.bundle.js","mappings":"oHAMA,SAASA,EAAsCC,EAAQC,EAAmBC,EAAYC,EAAQC,GAE1FJ,EAAOI,QAAUA,EAGjBJ,EAAOK,MAAQ,KACXJ,EAAkBK,WAGtBN,EAAOO,gBAAkB,KACrBC,UAAUC,UAAUC,UAAUV,EAAOI,SAChCO,KAAK,KACFR,EAAOS,QAAQV,EAAWW,QAAQ,6CAClCb,EAAOK,SACPS,IACAC,QAAQC,MAAM,wBAAyBF,KAGvD,CAxBAG,QACKC,OAAO,4EAA6E,IACpFC,WAAW,wCAAyCpB,GAEzDA,EAAsCqB,QAAU,CAAC,SAAU,oBAAqB,aAAc,SAAU,U","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/import/controllers/import-resource-message-dialog.controller.js"],"sourcesContent":["angular\n .module('graphdb.framework.impex.import.controllers.import-resource-message-dialog', [])\n .controller('ImportResourceMessageDialogController', ImportResourceMessageDialogController);\n\nImportResourceMessageDialogController.$inject = ['$scope', '$uibModalInstance', '$translate', 'toastr', 'message'];\n\nfunction ImportResourceMessageDialogController($scope, $uibModalInstance, $translate, toastr, message) {\n\n $scope.message = message;\n\n\n $scope.close = () => {\n $uibModalInstance.dismiss();\n };\n\n $scope.copyToClipboard = () => {\n navigator.clipboard.writeText($scope.message)\n .then(() => {\n toastr.success($translate.instant('import.help.messages.copied_to_clipboard'));\n $scope.close();\n }, (err) => {\n console.error('Could not copy text: ', err);\n });\n };\n}\n"],"names":["ImportResourceMessageDialogController","$scope","$uibModalInstance","$translate","toastr","message","close","dismiss","copyToClipboard","navigator","clipboard","writeText","then","success","instant","err","console","error","angular","module","controller","$inject"],"sourceRoot":""}
@@ -1,3 +0,0 @@
1
- /*! For license information please see 98494.a2cdb2a1c5d32d0094f3.bundle.js.LICENSE.txt */
2
- export const __webpack_id__=98494;export const __webpack_ids__=[23686,29428,52264,82293,84727,98494];export const __webpack_modules__={10307:(e,t,n)=>{n.r(t);var o=n(3588);function i(e){return{restrict:"E",scope:{field:"=",form:"=",translationKeyPrefix:"="},templateUrl:"js/angular/core/directives/dynamic-form/templates/form-field-template.html",link:function(e){e.FIELD_TYPE=o.FIELD_TYPE}}}angular.module("graphdb.framework.core.directives.dynamic-form-field",[]).directive("dynamicFormField",i),i.$inject=[]},23686:(e,t,n)=>{n.r(t),n.d(t,{EndpointDefinitionFile:()=>s,EndpointDefinitionFileList:()=>a,ImportStatus:()=>o,ImportStatusLabelKeys:()=>i,ImportStatusToViewMapping:()=>r});const o={PENDING:"PENDING",SUCCESS:"SUCCESS",FAIL:"FAIL",SKIP:"SKIP"},i={[o.PENDING]:"graphql.endpoints_management.import_definition_modal.status.pending",[o.SUCCESS]:"graphql.endpoints_management.import_definition_modal.status.completed",[o.FAIL]:"graphql.endpoints_management.import_definition_modal.status.failed",[o.SKIP]:"graphql.endpoints_management.import_definition_modal.status.not_allowed"},r={[o.PENDING]:"tag-warning",[o.SUCCESS]:"tag-success",[o.FAIL]:"tag-danger",[o.SKIP]:"tag-info"};class a{_list;_size;constructor(e=[]){this._list=e,this._size=e.length}processWith(e){this.list.forEach(e)}findDefinitionFileByName(e){return this.list.find(t=>t.file.name===e)}getFileNames(){return this.list.map(e=>e.file.name)}appendFiles(e){this.list.push(...e),this._size=this.list.length}removeFile(e){this.list=this.list.filter(t=>t.file!==e.file)}get size(){return this._size}set size(e){this._size=e}set list(e){this._list=e,this._size=e.length}get list(){return this._list}}class s{_list;_file;_filename;_status;_viewStatus;_statusMessage;_endpointId;_report;constructor(e,t,n,o){this._file=e,this._status=t,this._viewStatus=r[t],this._statusMessage=n,this._list=o}set file(e){this._file=e}get file(){return this._file}set filename(e){this._filename=e}get filename(){return this._filename}set status(e){this._status=e,this._viewStatus=r[e]}get status(){return this._status}set viewStatus(e){this._viewStatus=e}get viewStatus(){return this._viewStatus}set statusMessage(e){this._statusMessage=e}get statusMessage(){return this._statusMessage}set endpointId(e){this._endpointId=e}get endpointId(){return this._endpointId}set report(e){this._report=e}get report(){return this._report}get list(){return this._list}set list(e){this._list=e}}},24025:(e,t,n)=>{n.r(t),n.d(t,{fileToImportDefinitionMapper:()=>a,fileToImportDefinitionsMapper:()=>r,importEndpointDefinitionListMapper:()=>s});var o=n(23686),i=n(34894);const r=(e,t)=>{const n=e.map(e=>a(e,t));return new o.EndpointDefinitionFileList(n)},a=(e,t)=>new o.EndpointDefinitionFile(e,t,o.ImportStatusLabelKeys[t]),s=(e,t,n)=>{if(!e||!e.length)return new o.EndpointDefinitionFileList;const r=e=>{const a=e.id,s=e.filename,l=e.status.toUpperCase();let d=n.findDefinitionFileByName(s)||new o.EndpointDefinitionFile;if(d.endpointId=a,d.filename=s,d.status=l,d.statusMessage=o.ImportStatusLabelKeys[l],d.report=(0,i.importEndpointDefinitionReportMapper)(e,a,t),e.subFiles){const t=e.subFiles.map(r);d.list=new o.EndpointDefinitionFileList(t)}return d};return e.forEach(r),new o.EndpointDefinitionFileList([...n.list])}},29428:()=>{angular.module("graphdb.framework.core.directives.multiselect-dropdown",[]).directive("multiselectDropdown",["$translate",function(e){return{restrict:"E",require:"ngModel",scope:{options:"=",dropdownLabel:"=?"},templateUrl:"js/angular/core/directives/multiselect-dropdown/templates/multiselect-dropdown.html",link:function(t,n,o,i){t.isOpen=!1;const r=e=>{n[0].contains(e.target)||t.$apply(()=>{t.isOpen=!1})};t.toggleDropdown=function(){t.isOpen=!t.isOpen},t.toggleSelection=function(e){e.selected=!e.selected,(()=>{const e=t.options.filter(function(e){return e.selected});i.$setViewValue(e)})()},t.getSelectedText=function(){const n=t.options.filter(e=>e.selected);return 0===n.length?t.dropdownLabel||e.instant("common.select"):n.map(e=>e.label).join(", ")},i.$render=function(){angular.isArray(i.$viewValue)&&t.options.forEach(function(e){e.selected=i.$viewValue.some(function(t){return t.value===e.value})})},document.addEventListener("click",r),t.$on("$destroy",()=>{document.removeEventListener("click",r)})}}}])},52264:(e,t,n)=>{n.r(t),n(14874);var o=n(23686),i=n(24025),r=n(90275),a=n(74081);function s(e,t,n,s,l,d,p,c){const f=[".zip",".yaml",".yml"];e.allowedFileTypesString=f.join(","),e.ImportStatus=o.ImportStatus,e.repositoryId=d.repositoryId,e.definitionFiles=new o.EndpointDefinitionFileList,e.progress=void 0,e.uploadFinished=!1,e.onFilesChange=(t,n,r,a,s)=>{let l=r||[];const d=l.filter(e=>{const t="."+e.name.split(".").pop().toLowerCase();return!f.includes(t)});if(d.length&&console.error(`The following files have invalid extensions: ${d.map(e=>e.name).join(", ")}`),l=l.filter(e=>{const t="."+e.name.split(".").pop().toLowerCase();return f.includes(t)}),!l||!l.length)return;e.progress=void 0;const p=new Set(e.definitionFiles.getFileNames()),c=l.filter(e=>!p.has(e.name));e.definitionFiles.appendFiles((0,i.fileToImportDefinitionsMapper)(c,o.ImportStatus.PENDING).list)},e.onImport=()=>{e.uploadFinished=!1;const t=u();p.importEndpointDefinition(e.repositoryId,t).progress(t=>{e.uploadFinished||(e.progress=Math.min(100,parseInt(100*t.loaded/t.total)))}).success(t=>{e.progress=void 0,e.uploadFinished=!0,e.definitionFiles=(0,i.importEndpointDefinitionListMapper)(t,e.repositoryId,e.definitionFiles)}).error(t=>{e.progress=void 0,e.uploadFinished=!0,n.error(getError(t))})},e.onRemoveFile=t=>{e.definitionFiles.removeFile(t),0===e.definitionFiles.size&&(e.progress=void 0)},e.onExploreEndpoint=e=>{const t=(0,r.resolvePlaygroundUrlWithEndpoint)(e);c.setSelectedEndpoint(new a.GraphqlEndpointInfo({endpointId:e})),window.open(t,"_blank","noopener,noreferrer")},e.onOpenReport=(e,t)=>(e.preventDefault(),s.open({templateUrl:"js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html",controller:"EndpointGenerationResultFailureModalController",windowClass:"endpoint-generation-failure-result-modal",size:"lg",backdrop:"static",keyboard:!1,resolve:{data:()=>({endpointReport:t})}}).result),e.close=()=>{l.dismiss("cancel")};const u=()=>{let t=new FormData;return e.definitionFiles.processWith(e=>{t.append("importFiles",e.file,e.file.name)}),t}}angular.module("graphdb.framework.graphql.controllers.import-endpoint-definition-modal",["ngFileUpload","graphdb.framework.core.services.graphql-service"]).controller("ImportEndpointDefinitionModalController",s),s.$inject=["$scope","$q","toastr","$uibModal","$uibModalInstance","data","GraphqlService","GraphqlContextService"]},58334:(e,t,n)=>{n.r(t),n(10307);var o=n(3588);function i(){return{restrict:"E",scope:{formModel:"=",showAllFields:"=?",onValidityChange:"&?",formCtrl:"=?",translationKeyPrefix:"@?"},templateUrl:"js/angular/core/directives/dynamic-form/templates/dynamic-form.html",link:function(e,t){e.FIELD_TYPE=o.FIELD_TYPE,e.formCtrl=void 0,e.showAllFields=e.showAllFields||!1,(()=>{const n=t.find("form").controller("form");if(!n)return void console.error("Form controller not found!");e.formCtrl=n;const o=n.$setValidity;e.formCtrl.$setValidity=function(t,i,r){o.call(n,t,i,r),e.onValidityChange&&e.onValidityChange({valid:n.$valid})}})()}}}angular.module("graphdb.framework.core.directives.dynamic-form",["graphdb.framework.core.directives.dynamic-form-field"]).directive("dynamicForm",i),i.$inject=[]},76752:function(e,t,n){var o,i=i||function(e){if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},o=t.createElementNS("http://www.w3.org/1999/xhtml","a"),i=e.webkitRequestFileSystem,r=e.requestFileSystem||i||e.mozRequestFileSystem,a=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},s="application/octet-stream",l=0,d=function(t){var o=function(){"string"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?o():setTimeout(o,500)},p=function(e,t,n){for(var o=(t=[].concat(t)).length;o--;){var i=e["on"+t[o]];if("function"==typeof i)try{i.call(e,n||e)}catch(e){a(e)}}},c=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},f=function(t,a){t=c(t);var f,u,g,m=this,h=t.type,E=!1,v=function(){p(m,"writestart progress write writeend".split(" "))},w=function(){!E&&f||(f=n().createObjectURL(t)),u?u.location.href=f:null==e.open(f,"_blank")&&"undefined"!=typeof safari&&(e.location.href=f),m.readyState=m.DONE,v(),d(f)},_=function(e){return function(){if(m.readyState!==m.DONE)return e.apply(this,arguments)}},I={create:!0,exclusive:!1};if(m.readyState=m.INIT,a||(a="download"),o)return f=n().createObjectURL(t),o.href=f,o.download=a,void setTimeout(function(){var e,t;e=o,t=new MouseEvent("click"),e.dispatchEvent(t),v(),d(f),m.readyState=m.DONE});e.chrome&&h&&h!==s&&(g=t.slice||t.webkitSlice,t=g.call(t,0,t.size,s),E=!0),i&&"download"!==a&&(a+=".download"),(h===s||i)&&(u=e),r?(l+=t.size,r(e.TEMPORARY,l,_(function(e){e.root.getDirectory("saved",I,_(function(e){var n=function(){e.getFile(a,I,_(function(e){e.createWriter(_(function(n){n.onwriteend=function(t){u.location.href=e.toURL(),m.readyState=m.DONE,p(m,"writeend",t),d(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&w()},"writestart progress write abort".split(" ").forEach(function(e){n["on"+e]=m["on"+e]}),n.write(t),m.abort=function(){n.abort(),m.readyState=m.DONE},m.readyState=m.WRITING}),w)}),w)};e.getFile(a,{create:!1},_(function(e){e.remove(),n()}),_(function(e){e.code===e.NOT_FOUND_ERR?n():w()}))}),w)}),w)):w()},u=f.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t){return navigator.msSaveOrOpenBlob(c(e),t)}:(u.abort=function(){var e=this;e.readyState=e.DONE,p(e,"abort")},u.readyState=u.INIT=0,u.WRITING=1,u.DONE=2,u.error=u.onwritestart=u.onprogress=u.onwrite=u.onabort=u.onerror=u.onwriteend=null,function(e,t){return new f(e,t)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);e.exports?e.exports.saveAs=i:null!==n.amdD&&null!=n.amdO&&(void 0===(o=function(){return i}.apply(t,[]))||(e.exports=o))},82293:(e,t,n)=>{function o(e,t,n,o,i,r){e.repositoryId=n.repositoryId,e.endpointConfiguration=n.endpointConfiguration,e.endpointConfigurationSettings=void 0,e.endpointConfigurationSettingsValid=!1,e.loadingEndpointConfigurationSettings=!1,e.savingEndpointSettings=!1,e.showAdvancedSettings=!1,e.ok=()=>{a()},e.cancel=()=>{t.dismiss("cancel")},e.handleValidityChange=t=>{e.endpointConfigurationSettingsValid=t},e.toggleAdvancedSettings=()=>{e.showAdvancedSettings=!e.showAdvancedSettings};const a=()=>{e.savingEndpointSettings=!0;const n=e.endpointConfiguration.toUpdateEndpointRequest(e.endpointConfigurationSettings);r.editEndpointConfiguration(e.repositoryId,e.endpointConfiguration.endpointId,n.getUpdateEndpointSettingsRequest()).then(()=>{t.close(),i.success(o.instant("graphql.endpoints_management.endpoint_configuration_modal.messages.success_saving_configuration"))}).catch(e=>{i.error(getError(e),o.instant("graphql.endpoints_management.endpoint_configuration_modal.messages.error_saving_configuration"))}).finally(()=>{e.savingEndpointSettings=!1})};e.loadingEndpointConfigurationSettings=!0,r.getGraphqlEndpointConfigurationSettings(e.repositoryId,e.endpointConfiguration.endpointId).then(t=>{e.endpointConfigurationSettings=t}).catch(e=>{i.error(getError(e))}).finally(()=>{e.loadingEndpointConfigurationSettings=!1})}n.r(t),n(14874),n(58334),n(29428),angular.module("graphdb.framework.graphql.controllers.graphql-endpoint-configuration-modal",["graphdb.framework.core.services.graphql-service","graphdb.framework.core.directives.dynamic-form","graphdb.framework.core.directives.multiselect-dropdown"]).controller("GraphqlEndpointConfigurationModalController",o),o.$inject=["$scope","$uibModalInstance","data","$translate","toastr","GraphqlService"]},98494:(e,t,n)=>{n.r(t),n(14874);var o=n(32534),i=(n(82293),n(52264),n(77512)),r=n(90275),a=n(76752),s=n(74081);function l(e,t,n,l,d,p,c,f,u,g,m){const h=[];let E,v;e.hasEndpoints=!1,e.expandedRow=-1,e.loadingEndpointsInfo=!1,e.endpointsInfoList=void 0,e.filterTerm="",e.selectedDefaultEndpoint=void 0,e.operationInProgress=!1,e.changingEndpointActiveState=!1,e.setEndpointAsDefault=t=>{let n;e.selectedDefaultEndpoint&&(n=e.selectedDefaultEndpoint,e.selectedDefaultEndpoint.default=!1),e.selectedDefaultEndpoint=t,t.default=!0,e.operationInProgress=!0;const o=t.toUpdateEndpointRequest(e.endpointConfigurationSettings);u.editEndpointConfiguration(l.getActiveRepository(),t.endpointId,o.getUpdateDefaultEndpointRequest()).then(t=>{c.success(f.instant("graphql.endpoints_management.table.actions.set_as_default.success",{endpointId:t.endpointId})),e.endpointsInfoList.updateEndpoint(t)}).catch(o=>{t.default=!0,n?(e.selectedDefaultEndpoint.default=!1,e.selectedDefaultEndpoint=n,e.selectedDefaultEndpoint.default=!0):e.selectedDefaultEndpoint=void 0,c.error(getError(o)),console.error("Error setting default endpoint",o)}).finally(()=>{e.operationInProgress=!1})},e.toggleRow=(t,n)=>{t.preventDefault(),e.expandedRow===n?e.expandedRow=-1:e.expandedRow=n},e.onExploreEndpoint=e=>{const n=(0,r.resolvePlaygroundUrlWithEndpoint)(e.endpointId);t.url(n)},e.onEndpointsFilter=t=>{e.filterTerm=t.toLowerCase(),e.endpointsInfoList.filter(t)},e.startCreateEndpointWizard=()=>{g.startCreateEndpointWizard()},e.toggleEndpointActiveState=t=>{e.changingEndpointActiveState=!0;const n=!t.active,o=t.toUpdateEndpointRequest(e.endpointConfigurationSettings);u.editEndpointConfiguration(l.getActiveRepository(),t.endpointId,o.getUpdateEndpointActiveStateRequest()).then(t=>{const o=n?"activated":"deactivated";c.success(f.instant(`graphql.endpoints_management.table.actions.toggle_active_state.${o}.success`,{endpointId:t.endpointId})),e.endpointsInfoList.updateEndpoint(t)}).catch(e=>{t.active=!n,c.error(getError(e)),console.error("Error updating endpoint active state",e)}).finally(()=>{e.changingEndpointActiveState=!1})},e.importSchema=()=>d.open({templateUrl:"js/angular/graphql/templates/modal/import-endpoint-definition-modal.html",controller:"ImportEndpointDefinitionModalController",windowClass:"import-endpoint-definition-modal",size:"lg",backdrop:"static",keyboard:!1,resolve:{data:()=>({repositoryId:l.getActiveRepository()})}}).result,e.onExportSchema=e=>{u.exportEndpointDefinition(l.getActiveRepository(),e.endpointId).then(({data:e,filename:t})=>{(0,a.saveAs)(e,t)}).catch(e=>{c.error(getError(e)),console.error("Error exporting GraphQL endpoint definition",e)})},e.onConfigureEndpoint=e=>d.open({templateUrl:"js/angular/graphql/templates/modal/endpoint-configuration-modal.html",controller:"GraphqlEndpointConfigurationModalController",windowClass:"graphql-endpoint-configuration-modal",size:"lg",backdrop:"static",keyboard:!1,resolve:{data:()=>({repositoryId:l.getActiveRepository(),endpointConfiguration:e})}}).result,e.onDeleteEndpoint=e=>{p.openConfirmationModal({title:f.instant("graphql.endpoints_management.table.actions.delete_endpoint.confirmation.title"),message:f.instant("graphql.endpoints_management.table.actions.delete_endpoint.confirmation.body",{name:e.endpointId}),confirmButtonKey:"common.confirm"},()=>{_(e)})},e.onShowEndpointReport=e=>{u.getEndpointConfigurationReport(l.getActiveRepository(),e.endpointId).then(t=>{w(t.getReport(e.endpointId))}).catch(e=>{c.error(getError(e)),console.error("Error loading GraphQL endpoint configuration",e)})};const w=e=>d.open({templateUrl:"js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html",controller:"EndpointGenerationResultFailureModalController",windowClass:"endpoint-generation-failure-result-modal",size:"lg",backdrop:"static",keyboard:!1,resolve:{data:()=>({endpointReport:e})}}).result,_=t=>{e.operationInProgress=!0,u.deleteEndpoint(l.getActiveRepository(),t.endpointId).then(()=>(c.success(f.instant("graphql.endpoints_management.table.actions.delete_endpoint.success",{name:t.endpointId})),e.operationInProgress=!1,y(!1))).catch(e=>{c.error(getError(e)),console.error("Error deleting GraphQL endpoint",e)}).finally(()=>{e.operationInProgress=!1})},I=t=>{e.endpointsInfoList=t,e.endpointsInfoList.filter(e.filterTerm),e.endpointsInfoList&&e.endpointsInfoList.endpoints.length>0&&(e.hasEndpoints=!0,e.selectedDefaultEndpoint=e.endpointsInfoList.findDefaultEndpoint()||new s.GraphqlEndpointInfo)},y=t=>(e.loadingEndpointsInfo=!0===t,u.getEndpointsInfo(l.getActiveRepository()).then(I).catch(e=>{c.error(getError(e)),console.error("Error loading GraphQL endpoints info",e)}).finally(()=>{e.loadingEndpointsInfo=!1}));h.push(g.subscribe(o.GraphqlEventName.START_CREATE_ENDPOINT_WIZARD,()=>{t.path(i.endpointUrl.CREATE_ENDPOINT)})),h.push(g.subscribe(o.GraphqlEventName.DELETE_ENDPOINT_REPORT,e=>{u.deleteEndpointGenerationReport(l.getActiveRepository(),e.endpointId).then(()=>(c.success(f.instant("graphql.endpoints_management.generation_failure_report_modal.actions.delete_report.success")),y(!1))).catch(e=>{c.error(getError(e)),console.error("Error deleting endpoint generation report",e)})})),h.push(e.$watch(e.getActiveRepositoryObject,e=>{e&&S()})),e.$on("$destroy",()=>{E&&n.cancel(E),E=void 0,v=void 0,h.forEach(e=>e())});const S=()=>{y(!0).then(()=>{E&&(n.cancel(E),E=void 0),E=n(()=>{v||e.$$destroyed||(v=u.getEndpointsInfo(l.getActiveRepository()).then(I).catch(e=>{c.error(getError(e)),console.error("Error loading GraphQL endpoints info",e)}).finally(()=>{v&&(v=void 0)}))},5e3)})}}angular.module("graphdb.framework.graphql.controllers.graphql-endpoint-management-view",["graphdb.framework.core.services.graphql-service","graphdb.framework.graphql.services.graphql-context","graphdb.framework.graphql.controllers.graphql-endpoint-configuration-modal","graphdb.framework.graphql.controllers.import-endpoint-definition-modal"]).controller("GraphqlEndpointManagementViewCtrl",l),l.$inject=["$scope","$location","$interval","$repositories","$uibModal","ModalService","toastr","$translate","GraphqlService","GraphqlContextService","AuthTokenService"]}};
3
- //# sourceMappingURL=98494.a2cdb2a1c5d32d0094f3.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"98494.a2cdb2a1c5d32d0094f3.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/dynamic-form/dynamic-form-field.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/graphql/endpoint-definition-file.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/services/file-to-import-definition.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/multiselect-dropdown/multiselect-dropdown.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/controllers/import-endpoint-definition-modal.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/dynamic-form/dynamic-form.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/lib/FileSaver-patch.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/controllers/graphql-endpoint-configuration-modal.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/controllers/graphql-endpoint-management-view.controller.js"],"sourcesContent":["import {FIELD_TYPE} from \"./field-type\";\n\nconst modules = [];\nangular\n .module('graphdb.framework.core.directives.dynamic-form-field', modules)\n .directive('dynamicFormField', dynamicFormFieldDirective);\n\ndynamicFormFieldDirective.$inject = [];\n\nfunction dynamicFormFieldDirective($compile) {\n return {\n restrict: 'E',\n scope: {\n field: '=',\n form: '=',\n translationKeyPrefix: '='\n },\n templateUrl: 'js/angular/core/directives/dynamic-form/templates/form-field-template.html',\n link: function($scope) {\n $scope.FIELD_TYPE = FIELD_TYPE;\n }\n };\n}\n","/**\n * The status of an import graphql endpoint definition operation.\n * @type {{PENDING: string, SUCCESS: string, FAIL: string, SKIP: string}}\n */\nexport const ImportStatus = {\n PENDING: 'PENDING',\n SUCCESS: 'SUCCESS',\n FAIL: 'FAIL',\n SKIP: 'SKIP'\n}\n\n/**\n * The keys for the import status labels.\n * @type {{[p: string]: string}}\n */\nexport const ImportStatusLabelKeys = {\n [ImportStatus.PENDING]: 'graphql.endpoints_management.import_definition_modal.status.pending',\n [ImportStatus.SUCCESS]: 'graphql.endpoints_management.import_definition_modal.status.completed',\n [ImportStatus.FAIL]: 'graphql.endpoints_management.import_definition_modal.status.failed',\n [ImportStatus.SKIP]: 'graphql.endpoints_management.import_definition_modal.status.not_allowed'\n};\n\n/**\n * The mapping of import status to view status. This is used to control the css class of the status tag.\n * @type {{[p: string]: string}}\n */\nexport const ImportStatusToViewMapping = {\n [ImportStatus.PENDING]: 'tag-warning',\n [ImportStatus.SUCCESS]: 'tag-success',\n [ImportStatus.FAIL]: 'tag-danger',\n [ImportStatus.SKIP]: 'tag-info'\n};\n\n/**\n * A class that is a wrapper around a list of definition files. This class provides utility methods to work with the\n * definition files list and exposes some precalculated properties for easier access and optimization of the template\n * bindings.\n */\nexport class EndpointDefinitionFileList {\n /**\n * @type {Array<EndpointDefinitionFile>}\n * @private\n */\n _list;\n /**\n * @type {number}\n * @private\n */\n _size;\n\n constructor(definitionFiles = []) {\n this._list = definitionFiles;\n this._size = definitionFiles.length;\n }\n\n /**\n * Processes the list of definition files with the given predicate.\n * @param {function(EndpointDefinitionFile): void} predicate The predicate to process the files with.\n */\n processWith(predicate) {\n this.list.forEach(predicate);\n }\n\n /**\n * Finds a definition file by file name.\n * @param {string} name The name of the file to find.\n * @returns {EndpointDefinitionFile}\n */\n findDefinitionFileByName(name) {\n return this.list.find(definitionFile => definitionFile.file.name === name);\n }\n\n /**\n * Extracts the file names from the list of definition files.\n * @returns {string[]}\n */\n getFileNames() {\n return this.list.map(definitionFile => definitionFile.file.name);\n }\n\n /**\n * Appends the given files to the list of definition files.\n * @param {EndpointDefinitionFile[]} definitionFiles The files to append.\n */\n appendFiles(definitionFiles) {\n this.list.push(...definitionFiles);\n this._size = this.list.length;\n }\n\n /**\n * Removes the given file from the list of definition files.\n * @param {EndpointDefinitionFile} definitionFileToRemove The file to remove.\n */\n removeFile(definitionFileToRemove) {\n this.list = this.list.filter(definitionFile => definitionFile.file !== definitionFileToRemove.file);\n }\n\n get size() {\n return this._size;\n }\n\n set size(size) {\n this._size = size;\n }\n\n set list(definitionFiles) {\n this._list = definitionFiles;\n this._size = definitionFiles.length;\n }\n\n get list() {\n return this._list;\n }\n}\n\n/**\n * A class that represents a single endpoint definition file. This class contains all the information about the file\n * and the status of the import operation. It is needed to keep all related with the definition file import in one place\n * and expose the necessary properties for the template bindings.\n */\nexport class EndpointDefinitionFile {\n /**\n * @type {EndpointDefinitionFileList}\n * @private\n */\n _list;\n /**\n * @type {File}\n * @private\n */\n _file;\n /**\n * The file name of the definition file. This is the name of the file that was uploaded and can also be obtained\n * from the file object. The reason for having it here is that when an archive is uploaded, the file object will\n * contain the name of the archive file, but the definition files are extracted from the archive and each of them\n * has a different name. This property is used to keep track of the original file name.\n * @type {string}\n * @private\n */\n _filename;\n /**\n * @type {'pending'|'success'|'fail'|'not_allowed'}\n * @private\n */\n _status;\n /**\n * This is a string which is a css class name that will be used to display the status as a tag.\n * @type {string}\n * @private\n */\n _viewStatus;\n /**\n * @type {string}\n * @private\n */\n _statusMessage;\n /**\n * @type {string|null}\n * @private\n */\n _endpointId;\n /**\n * @type {EndpointGenerationReport|undefined}\n * @private\n */\n _report;\n\n constructor(file, status, statusMessage, list) {\n this._file = file;\n this._status = status;\n this._viewStatus = ImportStatusToViewMapping[status];\n this._statusMessage = statusMessage;\n this._list = list;\n }\n\n set file(file) {\n this._file = file;\n }\n\n get file() {\n return this._file;\n }\n\n set filename(filename) {\n this._filename = filename;\n }\n\n get filename() {\n return this._filename;\n }\n\n set status(status) {\n this._status = status;\n this._viewStatus = ImportStatusToViewMapping[status];\n }\n\n get status() {\n return this._status;\n }\n\n set viewStatus(viewStatus) {\n this._viewStatus = viewStatus;\n }\n\n get viewStatus() {\n return this._viewStatus;\n }\n\n set statusMessage(statusMessage) {\n this._statusMessage = statusMessage;\n }\n\n get statusMessage() {\n return this._statusMessage;\n }\n\n set endpointId(endpointId) {\n this._endpointId = endpointId;\n }\n\n get endpointId() {\n return this._endpointId;\n }\n\n set report(report) {\n this._report = report;\n }\n\n get report() {\n return this._report;\n }\n\n get list() {\n return this._list;\n }\n\n set list(list) {\n this._list = list;\n }\n}\n","import {\n EndpointDefinitionFile, EndpointDefinitionFileList,\n ImportStatusLabelKeys\n} from \"../../models/graphql/endpoint-definition-file\";\nimport {importEndpointDefinitionReportMapper} from \"./endpoint-generation-report.mapper\";\n\n/**\n * Maps a list of files to a list of import definitions.\n * @param {File[]} files - The list of files to map.\n * @param {string} importStatus - The status of the import.\n * @returns {EndpointDefinitionFileList}\n */\nexport const fileToImportDefinitionsMapper = (files, importStatus) => {\n const definitionFiles = files.map(file => fileToImportDefinitionMapper(file, importStatus));\n return new EndpointDefinitionFileList(definitionFiles);\n};\n\n/**\n * Maps a file to an import definition.\n * @param {File} file - The file to map.\n * @param {string} importStatus - The status of the import.\n * @returns {EndpointDefinitionFile}\n */\nexport const fileToImportDefinitionMapper = (file, importStatus) => {\n return new EndpointDefinitionFile(file, importStatus, ImportStatusLabelKeys[importStatus]);\n};\n\n/**\n * Maps the server response to EndpointDefinitionFileList.\n * @param {*} data The server response data.\n * @param {string} repositoryId The repository ID.\n * @param {EndpointDefinitionFileList} definitionFiles The list of definition files.\n * @returns {EndpointDefinitionFileList}\n */\nexport const importEndpointDefinitionListMapper = (data, repositoryId, definitionFiles) => {\n if (!data || !data.length) {\n return new EndpointDefinitionFileList();\n }\n\n const processEntry = (response) => {\n const endpointId = response.id;\n const filename = response.filename;\n const status = response.status.toUpperCase();\n let definitionFile = definitionFiles.findDefinitionFileByName(filename) || new EndpointDefinitionFile();\n definitionFile.endpointId = endpointId;\n definitionFile.filename = filename;\n definitionFile.status = status;\n definitionFile.statusMessage = ImportStatusLabelKeys[status];\n definitionFile.report = importEndpointDefinitionReportMapper(response, endpointId, repositoryId);\n if (response.subFiles) {\n const subFileDefinitions = response.subFiles.map(processEntry);\n definitionFile.list = new EndpointDefinitionFileList(subFileDefinitions);\n }\n return definitionFile;\n }\n\n data.forEach(processEntry);\n\n return new EndpointDefinitionFileList([...definitionFiles.list]);\n}\n","/**\n * @function multiselectDropdown\n * @description\n * A directive for rendering a multi-select dropdown.\n *\n * This directive displays a list of options with checkboxes that allows users\n * to select multiple items. Each option should be an instance of the\n * SelectOptionsModel, which encapsulates the display label, value,\n * selection state, and any additional data. Clicking the toggle button opens/closes\n * the dropdown; clicking outside the dropdown closes it.\n *\n * @example\n * ### HTML Usage:\n * ```html\n * <multiselect-dropdown\n * ng-model=\"selectedOptions\"\n * options=\"myOptions\"\n * dropdown-label=\"'Choose Items'\">\n * </multiselect-dropdown>\n * ```\n *\n * ### Controller Example:\n * ```javascript\n * angular.module('myApp', [])\n * .controller('ExampleController', function($scope) {\n * $scope.myOptions = [\n * new SelectOptionsModel({ label: 'Option A', value: 'A' }),\n * new SelectOptionsModel({ label: 'Option B', value: 'B' }),\n * new SelectOptionsModel({ label: 'Option C', value: 'C' })\n * ];\n * });\n * ```\n *\n * @param {Array.<SelectOptionsModel>} options - The array of options displayed in the dropdown.\n * @param {string=} [dropdownLabel='Select...'] - (Optional) The placeholder text if no items are selected.\n *\n * @returns {Object} The directive definition object.\n */\nangular.module('graphdb.framework.core.directives.multiselect-dropdown', [])\n .directive('multiselectDropdown', ['$translate', function ($translate) {\n return {\n restrict: 'E',\n require: 'ngModel',\n scope: {\n options: '=',\n dropdownLabel: '=?'\n },\n templateUrl: 'js/angular/core/directives/multiselect-dropdown/templates/multiselect-dropdown.html',\n link: function($scope, element, attrs, ngModel) {\n // =========================\n // Public variables\n // =========================\n $scope.isOpen = false;\n\n // =========================\n // Private methods\n // =========================\n // Close the dropdown if the user clicks outside it.\n const handleDocumentClick = (event) => {\n if (!element[0].contains(event.target)) {\n $scope.$apply(() => {\n $scope.isOpen = false;\n });\n }\n };\n\n const updateModel = () => {\n const selected = $scope.options.filter(function(option) {\n return option.selected;\n });\n ngModel.$setViewValue(selected);\n }\n\n // =========================\n // Public methods\n // =========================\n $scope.toggleDropdown = function () {\n $scope.isOpen = !$scope.isOpen;\n };\n\n /**\n * Toggle the selection state of an option.\n * @param {SelectOptionsModel} option\n */\n $scope.toggleSelection = function (option) {\n option.selected = !option.selected;\n updateModel();\n };\n\n /**\n * Build the display text for the dropdown toggle.\n * Iterates the options and joins the labels of selected options.\n * @returns {string}\n */\n $scope.getSelectedText = function () {\n const selectedOptions = $scope.options.filter((option) => option.selected);\n if (selectedOptions.length === 0) {\n return $scope.dropdownLabel || $translate.instant('common.select');\n }\n return selectedOptions.map((option) => option.label).join(', ');\n };\n\n /**\n * If ngModel provides an initial value, update the corresponding option selections.\n */\n ngModel.$render = function () {\n if (angular.isArray(ngModel.$viewValue)) {\n $scope.options.forEach(function(option) {\n option.selected = ngModel.$viewValue.some(function(selectedOption) {\n return selectedOption.value === option.value;\n });\n });\n }\n };\n\n // =========================\n // Subscriptions\n // =========================\n document.addEventListener('click', handleDocumentClick);\n $scope.$on('$destroy', () => {\n document.removeEventListener('click', handleDocumentClick);\n });\n }\n };\n }]);\n","import '../../core/services/graphql.service';\nimport {\n EndpointDefinitionFile,\n EndpointDefinitionFileList,\n ImportStatus\n} from \"../../models/graphql/endpoint-definition-file\";\nimport {\n fileToImportDefinitionsMapper, importEndpointDefinitionListMapper\n} from \"../services/file-to-import-definition.mapper\";\nimport {resolvePlaygroundUrlWithEndpoint} from \"../services/endpoint-utils\";\nimport {GraphqlEndpointInfo} from \"../../models/graphql/graphql-endpoints-info\";\n\nconst modules = [\n 'ngFileUpload',\n 'graphdb.framework.core.services.graphql-service'\n];\n\nangular\n .module('graphdb.framework.graphql.controllers.import-endpoint-definition-modal', modules)\n .controller('ImportEndpointDefinitionModalController', ImportEndpointDefinitionModalController);\n\nImportEndpointDefinitionModalController.$inject = ['$scope', '$q', 'toastr', '$uibModal', '$uibModalInstance', 'data', 'GraphqlService', 'GraphqlContextService'];\n\nfunction ImportEndpointDefinitionModalController($scope, $q, toastr, $uibModal, $uibModalInstance, data, GraphqlService, GraphqlContextService) {\n // =========================\n // Private variables\n // =========================\n\n const allowedFileTypes = ['.zip', '.yaml', '.yml'];\n\n // =========================\n // Public variables\n // =========================\n\n $scope.allowedFileTypesString = allowedFileTypes.join(',');\n\n /**\n * The import status enum.\n * @type {{PENDING: string, SUCCESS: string, FAIL: string, SKIP: string}}\n */\n $scope.ImportStatus = ImportStatus;\n\n /**\n * Current active repository ID.\n */\n $scope.repositoryId = data.repositoryId;\n\n /**\n * The list of files selected for import.\n * @type {EndpointDefinitionFileList}\n */\n $scope.definitionFiles = new EndpointDefinitionFileList();\n\n /**\n * The progress of the upload.\n * @type {number|undefined}\n */\n $scope.progress = undefined;\n\n /**\n * Flag indicating if the upload has finished. Used to show/hide the progress bar which in some cases might remain\n * because the progress event might come out of sync and a come after the success event. This clearly happens during\n * UI tests, but it might happen in real life as well.\n * @type {boolean}\n */\n $scope.uploadFinished = false;\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Event handler triggered when files are selected in the file input.\n * @param {Array} $files The selected files.\n * @param {File} $file The selected file.\n * @param {Array} $newFiles The new files selected.\n * @param {Array} $duplicateFiles The duplicate files selected.\n * @param {Array} $invalidFiles The invalid files selected.\n */\n $scope.onFilesChange = ($files, $file, $newFiles, $duplicateFiles, $invalidFiles) => {\n let selectedFiles = $newFiles || [];\n\n // find out files with invalid extensions in the list\n const invalidFiles = selectedFiles.filter(file => {\n const extension = '.' + file.name.split('.').pop().toLowerCase();\n return !allowedFileTypes.includes(extension);\n });\n if (invalidFiles.length) {\n console.error(`The following files have invalid extensions: ${invalidFiles.map(file => file.name).join(', ')}`);\n }\n // filter out invalid files\n selectedFiles = selectedFiles.filter(file => {\n const extension = '.' + file.name.split('.').pop().toLowerCase();\n return allowedFileTypes.includes(extension);\n });\n // if no valid files are left, return\n if (!selectedFiles || !selectedFiles.length) {\n return;\n }\n // Reset error state when adding new files\n $scope.progress = undefined;\n // Filter out duplicates by comparing file names\n const existingFileNames = new Set($scope.definitionFiles.getFileNames());\n const filesToAdd = selectedFiles.filter(file => !existingFileNames.has(file.name));\n $scope.definitionFiles.appendFiles(fileToImportDefinitionsMapper(filesToAdd, ImportStatus.PENDING).list)\n };\n\n /**\n * Event handler triggered when the user clicks the upload button. The selected files are uploaded to the server\n * which then processes them and if definitions are valid, graphql endpoints are created for each definition.\n * The server response contains reports for each definition file.\n */\n $scope.onImport = () => {\n $scope.uploadFinished = false;\n const payload = buildUploadPayloadObject();\n GraphqlService.importEndpointDefinition($scope.repositoryId, payload)\n .progress((evt) => {\n if (!$scope.uploadFinished) {\n $scope.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));\n }\n })\n .success((response) => {\n $scope.progress = undefined;\n $scope.uploadFinished = true;\n $scope.definitionFiles = importEndpointDefinitionListMapper(response, $scope.repositoryId, $scope.definitionFiles);\n })\n .error((errors) => {\n $scope.progress = undefined;\n $scope.uploadFinished = true;\n toastr.error(getError(errors));\n });\n };\n\n /**\n * Triggered when the user clicks the remove file button. The file is removed from the list of selected files.\n * @param {EndpointDefinitionFile} definitionFile The file to be removed.\n */\n $scope.onRemoveFile = (definitionFile) => {\n $scope.definitionFiles.removeFile(definitionFile);\n if ($scope.definitionFiles.size === 0) {\n $scope.progress = undefined;\n }\n };\n\n /**\n * Event handler triggered when the user clicks on the generated endpoint link. Opens the GraphQL Playground with\n * the selected endpoint.\n * @param {string} endpointId The ID of the endpoint to explore.\n */\n $scope.onExploreEndpoint = (endpointId) => {\n const url = resolvePlaygroundUrlWithEndpoint(endpointId);\n GraphqlContextService.setSelectedEndpoint(new GraphqlEndpointInfo({\n endpointId\n }));\n window.open(url, '_blank', 'noopener,noreferrer');\n };\n\n /**\n * Event handler triggered when the user clicks the view report link. Opens the report modal with the given\n * definition file.\n * @param {EndpointGenerationReport} endpointGenerationReport The report to display.\n * @returns {Promise} The promise that resolves when the modal is closed.\n */\n $scope.onOpenReport = (event, endpointGenerationReport) => {\n event.preventDefault();\n return $uibModal.open({\n templateUrl: 'js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html',\n controller: 'EndpointGenerationResultFailureModalController',\n windowClass: 'endpoint-generation-failure-result-modal',\n size: 'lg',\n backdrop: 'static',\n keyboard: false,\n resolve: {\n data: () => {\n return {\n endpointReport: endpointGenerationReport\n };\n }\n }\n }).result;\n };\n\n /**\n * Closes the modal.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss('cancel')\n };\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Builds the payload object for the import request. FormData object is created and the files are appended to it.\n * @returns {FormData} The payload object.\n */\n const buildUploadPayloadObject = () => {\n let payload = new FormData();\n $scope.definitionFiles.processWith((definition) => {\n payload.append('importFiles', definition.file, definition.file.name);\n });\n return payload;\n }\n\n const init = () => {\n }\n\n // =========================\n // Initialization\n // =========================\n\n init();\n}\n","import 'angular/core/directives/dynamic-form/dynamic-form-field.directive';\nimport {FIELD_TYPE} from \"./field-type\";\n\n/**\n * @function dynamicFormDirective\n * @description\n * A directive for rendering a dynamic form based on an array of field objects.\n *\n * This directive creates a form where each object in the provided formModel defines the type of input to render\n * (for example, text input, checkbox, dropdown, multi-select, or textarea for JSON data). The directive uses the\n * {@link FIELD_TYPE} enum to determine which input type to display. For select and multi-select fields, the\n * {@link SelectMenuOptionsModel} should be used to model the options.\n *\n * Additionally, the directive supports an optional `onValidityChange` callback that will be called whenever the overall\n * validity of the form changes. This is useful for informing a parent component or controller about the current form validity.\n *\n * @example\n * ### HTML Usage:\n * ```html\n * <dynamic-form formModel=\"myFields\" on-validity-change=\"handleValidityChange(valid)\"></dynamic-form>\n * ```\n *\n * @param {Object[]} field - The array of field objects used to render the form fields.\n * @param {string} field[].label - The label displayed for the input.\n * @param {string} field[].type - The type of field input. Should be one of the values defined in {@link FIELD_TYPE}.\n * @param {*} field[].value - The current value of the field.\n * @param {SelectMenuOptionsModel[]} [field[].values] - The array of possible options for select and multi-select fields.\n * @param {(string|RegExp)} [field[].regex] - A regular expression or its string representation for validating the field value.\n * @param {boolean} [field[].required=false] - Indicates whether the field is required.\n *\n * @returns {Object} The directive definition object.\n */\nconst modules = ['graphdb.framework.core.directives.dynamic-form-field'];\nangular\n .module('graphdb.framework.core.directives.dynamic-form', modules)\n .directive('dynamicForm', dynamicFormDirective);\n\ndynamicFormDirective.$inject = [];\n\nfunction dynamicFormDirective() {\n return {\n restrict: 'E',\n scope: {\n /**\n * @type {DynamicFormModel}\n */\n formModel: '=',\n /**\n * Controls whether to show all fields or only the ones that are not hidden in the model.\n * @type {boolean}\n */\n showAllFields: '=?',\n onValidityChange: '&?',\n formCtrl: '=?',\n translationKeyPrefix: '@?'\n },\n templateUrl: 'js/angular/core/directives/dynamic-form/templates/dynamic-form.html',\n link: function($scope, element) {\n // =========================\n // Public variables\n // =========================\n $scope.FIELD_TYPE = FIELD_TYPE;\n $scope.formCtrl = undefined;\n $scope.showAllFields = $scope.showAllFields || false;\n\n // =========================\n // Private function\n // =========================\n const init = () => {\n const formElement = element.find('form');\n const formCtrl = formElement.controller('form');\n\n if (!formCtrl) {\n console.error('Form controller not found!');\n return;\n }\n\n $scope.formCtrl = formCtrl;\n const originalSetValidity = formCtrl.$setValidity;\n $scope.formCtrl.$setValidity = function (validationToken, isValid, modelCtrl) {\n originalSetValidity.call(formCtrl, validationToken, isValid, modelCtrl);\n if ($scope.onValidityChange) {\n $scope.onValidityChange({valid: formCtrl.$valid});\n }\n };\n };\n\n // =========================\n // Initialization\n // =========================\n init();\n }\n };\n}\n\n\n","/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 2015-05-07.2\n *\n * By Eli Grey, http://eligrey.com\n * License: X11/MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t doc = view.document\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, webkit_req_fs = view.webkitRequestFileSystem\n\t\t, req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t, fs_min_size = 0\n\t\t// See https://code.google.com/p/chromium/issues/detail?id=375297#c7 and\n\t\t// https://github.com/eligrey/FileSaver.js/commit/485930a#commitcomment-8768047\n\t\t// for the reasoning behind the timeout and revocation flow\n\t\t, arbitrary_revoke_timeout = 500 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (view.chrome) {\n\t\t\t\trevoker();\n\t\t\t} else {\n\t\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t\t}\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([\"\\ufeff\", blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name) {\n\t\t\tblob = auto_bom(blob);\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, blob_changed = false\n\t\t\t\t, object_url\n\t\t\t\t, target_view\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (blob_changed || !object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (target_view) {\n\t\t\t\t\t\ttarget_view.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar new_tab = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (new_tab == undefined && typeof safari !== \"undefined\") {\n\t\t\t\t\t\t\t//Apple do not allow window.open, see http://bit.ly/1kZffRI\n\t\t\t\t\t\t\tview.location.href = object_url\n\t\t\t\t\t\t} \n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t\t, abortable = function(func) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif (filesaver.readyState !== filesaver.DONE) {\n\t\t\t\t\t\t\treturn func.apply(this, arguments);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t, create_if_not_found = {create: true, exclusive: false}\n\t\t\t\t, slice\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\tif (!name) {\n\t\t\t\tname = \"download\";\n\t\t\t}\n\t\t\tif (save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t//window.open('data:attachment/csv;charset=utf-8,' + object_url);\n\t\t\t\tsave_link.href = object_url;\n\t\t\t\tsave_link.download = name;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Object and web filesystem URLs have a problem saving in Google Chrome when\n\t\t\t// viewed in a tab, so I force save with application/octet-stream\n\t\t\t// http://code.google.com/p/chromium/issues/detail?id=91158\n\t\t\t// Update: Google errantly closed 91158, I submitted it again:\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=389642\n\t\t\tif (view.chrome && type && type !== force_saveable_type) {\n\t\t\t\tslice = blob.slice || blob.webkitSlice;\n\t\t\t\tblob = slice.call(blob, 0, blob.size, force_saveable_type);\n\t\t\t\tblob_changed = true;\n\t\t\t}\n\t\t\t// Since I can't be sure that the guessed media type will trigger a download\n\t\t\t// in WebKit, I append .download to the filename.\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=65440\n\t\t\tif (webkit_req_fs && name !== \"download\") {\n\t\t\t\tname += \".download\";\n\t\t\t}\n\t\t\tif (type === force_saveable_type || webkit_req_fs) {\n\t\t\t\ttarget_view = view;\n\t\t\t}\n\t\t\tif (!req_fs) {\n\t\t\t\tfs_error();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfs_min_size += blob.size;\n\t\t\treq_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) {\n\t\t\t\tfs.root.getDirectory(\"saved\", create_if_not_found, abortable(function(dir) {\n\t\t\t\t\tvar save = function() {\n\t\t\t\t\t\tdir.getFile(name, create_if_not_found, abortable(function(file) {\n\t\t\t\t\t\t\tfile.createWriter(abortable(function(writer) {\n\t\t\t\t\t\t\t\twriter.onwriteend = function(event) {\n\t\t\t\t\t\t\t\t\ttarget_view.location.href = file.toURL();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t\tdispatch(filesaver, \"writeend\", event);\n\t\t\t\t\t\t\t\t\trevoke(file);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\twriter.onerror = function() {\n\t\t\t\t\t\t\t\t\tvar error = writer.error;\n\t\t\t\t\t\t\t\t\tif (error.code !== error.ABORT_ERR) {\n\t\t\t\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\"writestart progress write abort\".split(\" \").forEach(function(event) {\n\t\t\t\t\t\t\t\t\twriter[\"on\" + event] = filesaver[\"on\" + event];\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\twriter.write(blob);\n\t\t\t\t\t\t\t\tfilesaver.abort = function() {\n\t\t\t\t\t\t\t\t\twriter.abort();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.WRITING;\n\t\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t};\n\t\t\t\t\tdir.getFile(name, {create: false}, abortable(function(file) {\n\t\t\t\t\t\t// delete file if it already exists\n\t\t\t\t\t\tfile.remove();\n\t\t\t\t\t\tsave();\n\t\t\t\t\t}), abortable(function(ex) {\n\t\t\t\t\t\tif (ex.code === ex.NOT_FOUND_ERR) {\n\t\t\t\t\t\t\tsave();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}), fs_error);\n\t\t\t}), fs_error);\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name) {\n\t\t\treturn new FileSaver(blob, name);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name) {\n\t\t\treturn navigator.msSaveOrOpenBlob(auto_bom(blob), name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function() {\n\t\tvar filesaver = this;\n\t\tfilesaver.readyState = filesaver.DONE;\n\t\tdispatch(filesaver, \"abort\");\n\t};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd != null)) {\n define([], function() {\n return saveAs;\n });\n}","import '../../core/services/graphql.service';\nimport 'angular/core/directives/dynamic-form/dynamic-form.directive';\nimport 'angular/core/directives/multiselect-dropdown/multiselect-dropdown.directive';\n\nconst modules = [\n 'graphdb.framework.core.services.graphql-service',\n 'graphdb.framework.core.directives.dynamic-form',\n 'graphdb.framework.core.directives.multiselect-dropdown'\n];\n\nangular\n .module('graphdb.framework.graphql.controllers.graphql-endpoint-configuration-modal', modules)\n .controller('GraphqlEndpointConfigurationModalController', GraphqlEndpointConfigurationModalController);\n\nGraphqlEndpointConfigurationModalController.$inject = ['$scope', '$uibModalInstance', 'data', '$translate', 'toastr', 'GraphqlService'];\n\nfunction GraphqlEndpointConfigurationModalController($scope, $uibModalInstance, data, $translate, toastr, GraphqlService) {\n // =========================\n // Private variables\n // =========================\n\n // =========================\n // Public variables\n // =========================\n\n /**\n * The active repository id.\n * @type {string}\n */\n $scope.repositoryId = data.repositoryId;\n\n /**\n * The selected endpoint configuration for which the settings should be updated.\n * @type {GraphqlEndpointInfo|undefined|*}\n */\n $scope.endpointConfiguration = data.endpointConfiguration;\n\n /**\n * The endpoint configuration settings model.\n * @type {GraphqlEndpointConfigurationSettings|undefined}\n */\n $scope.endpointConfigurationSettings = undefined;\n\n /**\n * Flag indicating if the endpoint configuration settings are valid.\n * @type {boolean}\n */\n $scope.endpointConfigurationSettingsValid = false;\n\n /**\n * Flag indicating if the endpoint configuration settings are being loaded.\n * @type {boolean}\n */\n $scope.loadingEndpointConfigurationSettings = false;\n\n /**\n * Flag indicating if the endpoint configuration settings are being saved.\n * @type {boolean}\n */\n $scope.savingEndpointSettings = false;\n\n /**\n * Flag indicating if the advanced settings are visible.\n * @type {boolean}\n */\n $scope.showAdvancedSettings = false;\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Handles the save button click event in the dialog.\n */\n $scope.ok = () => {\n save();\n };\n\n /**\n * Cancels the operation and dismisses the modal.\n */\n $scope.cancel = () => {\n $uibModalInstance.dismiss('cancel')\n };\n\n /**\n * Handles the validity change of the endpoint configuration settings form\n * @param {boolean} isValid - The validity of the form.\n */\n $scope.handleValidityChange = (isValid) => {\n $scope.endpointConfigurationSettingsValid = isValid;\n };\n\n /**\n * Toggles the visibility of the advanced settings. Advanced settings are hidden by default.\n */\n $scope.toggleAdvancedSettings = () => {\n $scope.showAdvancedSettings = !$scope.showAdvancedSettings;\n };\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Loads the endpoint configuration settings from the server.\n */\n const loadEndpointConfigurationSettings = () => {\n $scope.loadingEndpointConfigurationSettings = true;\n GraphqlService.getGraphqlEndpointConfigurationSettings($scope.repositoryId, $scope.endpointConfiguration.endpointId)\n .then((endpointConfigurationSettings) => {\n $scope.endpointConfigurationSettings = endpointConfigurationSettings;\n })\n .catch((error) => {\n toastr.error(getError(error));\n })\n .finally(() => {\n $scope.loadingEndpointConfigurationSettings = false;\n });\n }\n\n /**\n * Saves the endpoint configuration settings to the server.\n */\n const save = () => {\n $scope.savingEndpointSettings = true;\n const updateEndpointRequest = $scope.endpointConfiguration.toUpdateEndpointRequest($scope.endpointConfigurationSettings);\n GraphqlService.editEndpointConfiguration($scope.repositoryId, $scope.endpointConfiguration.endpointId, updateEndpointRequest.getUpdateEndpointSettingsRequest())\n .then(() => {\n $uibModalInstance.close();\n toastr.success($translate.instant('graphql.endpoints_management.endpoint_configuration_modal.messages.success_saving_configuration'));\n })\n .catch((error) => {\n toastr.error(getError(error), $translate.instant('graphql.endpoints_management.endpoint_configuration_modal.messages.error_saving_configuration'));\n })\n .finally(() => {\n $scope.savingEndpointSettings = false;\n });\n }\n\n const init = () => {\n loadEndpointConfigurationSettings();\n }\n\n // =========================\n // Initialization\n // =========================\n\n init();\n}\n","import '../../core/services/graphql.service';\nimport '../services/graphql-context.service';\nimport './graphql-endpoint-configuration-modal.controller';\nimport './import-endpoint-definition-modal.controller';\nimport {GraphqlEventName} from \"../services/graphql-context.service\";\nimport {endpointUrl} from \"../models/endpoints\";\nimport {resolvePlaygroundUrlWithEndpoint} from \"../services/endpoint-utils\";\nimport {saveAs} from 'lib/FileSaver-patch';\nimport {GraphqlEndpointInfo} from \"../../models/graphql/graphql-endpoints-info\";\n\nconst modules = [\n 'graphdb.framework.core.services.graphql-service',\n 'graphdb.framework.graphql.services.graphql-context',\n 'graphdb.framework.graphql.controllers.graphql-endpoint-configuration-modal',\n 'graphdb.framework.graphql.controllers.import-endpoint-definition-modal'\n];\n\nangular\n .module('graphdb.framework.graphql.controllers.graphql-endpoint-management-view', modules)\n .controller('GraphqlEndpointManagementViewCtrl', GraphqlEndpointManagementViewCtrl);\n\nGraphqlEndpointManagementViewCtrl.$inject = ['$scope', '$location', '$interval', '$repositories', '$uibModal', 'ModalService', 'toastr', '$translate', 'GraphqlService', 'GraphqlContextService', 'AuthTokenService'];\n\nfunction GraphqlEndpointManagementViewCtrl($scope, $location, $interval, $repositories, $uibModal, ModalService, toastr, $translate, GraphqlService, GraphqlContextService, AuthTokenService) {\n\n // =========================\n // Private variables\n // =========================\n\n const subscriptions = [];\n\n /**\n * The interval for polling the endpoints info.\n * @type {number}\n */\n const ENDPOINTS_INFO_POLLING_INTERVAL = 5000;\n\n // =========================\n // Public variables\n // =========================\n\n /**\n * Flag indicating if there are any GraphQL endpoints.\n * @type {boolean}\n */\n $scope.hasEndpoints = false;\n\n /**\n * The currently expanded row index.\n * @type {number}\n */\n $scope.expandedRow = -1;\n\n /**\n * Flag indicating if endpoints info loading is in progress.\n * @type {boolean}\n */\n $scope.loadingEndpointsInfo = false;\n\n /**\n * The list of GraphQL endpoints info.\n * @type {GraphqlEndpointsInfoList|undefined}\n */\n $scope.endpointsInfoList = undefined;\n\n /**\n * The term to filter the endpoints by.\n * @type {string}\n */\n $scope.filterTerm = '';\n\n /**\n * The selected default endpoint. There can be only one default endpoint.\n * @type {GraphqlEndpointInfo|undefined}\n */\n $scope.selectedDefaultEndpoint = undefined;\n\n /**\n * Flag showing if an operation is in progress.\n * @type {boolean}\n */\n $scope.operationInProgress = false;\n\n /**\n * The timer for polling the endpoints info.\n * @type {Promise|undefined}\n */\n let endpointsInfoPollingTimer = undefined;\n\n /**\n * The Promise for loading the endpoints info.\n * @type {Promise|undefined}\n */\n let endpointsInfoLoader = undefined;\n\n /**\n * A flag indicating if the endpoint active state is being changed.\n * @type {boolean}\n */\n $scope.changingEndpointActiveState = false;\n\n // =========================\n // Public methods\n // =========================\n\n /**\n * Sets the given endpoint as the default one for the active repository.\n * @param {GraphqlEndpointInfo} endpointInfo The endpoint to set as default.\n */\n $scope.setEndpointAsDefault = (endpointInfo) => {\n let previousDefaultEndpoint;\n if ($scope.selectedDefaultEndpoint) {\n previousDefaultEndpoint = $scope.selectedDefaultEndpoint;\n $scope.selectedDefaultEndpoint.default = false;\n }\n $scope.selectedDefaultEndpoint = endpointInfo;\n endpointInfo.default = true;\n $scope.operationInProgress = true;\n const updateEndpointRequest = endpointInfo.toUpdateEndpointRequest($scope.endpointConfigurationSettings);\n GraphqlService.editEndpointConfiguration($repositories.getActiveRepository(), endpointInfo.endpointId, updateEndpointRequest.getUpdateDefaultEndpointRequest())\n .then((endpointInfo) => {\n toastr.success(\n $translate.instant('graphql.endpoints_management.table.actions.set_as_default.success',\n {endpointId: endpointInfo.endpointId})\n );\n $scope.endpointsInfoList.updateEndpoint(endpointInfo);\n })\n .catch((error) => {\n // something went wrong while setting the default endpoint so we need to revert the changes\n endpointInfo.default = true;\n if (previousDefaultEndpoint) {\n $scope.selectedDefaultEndpoint.default = false;\n $scope.selectedDefaultEndpoint = previousDefaultEndpoint;\n $scope.selectedDefaultEndpoint.default = true;\n } else {\n $scope.selectedDefaultEndpoint = undefined;\n }\n toastr.error(getError(error));\n console.error('Error setting default endpoint', error);\n })\n .finally(() => {\n $scope.operationInProgress = false;\n });\n };\n\n /**\n * Toggles the expanded state of the row.\n * @param {MouseEvent} event The click event.\n * @param {number} index The index of the row.\n */\n $scope.toggleRow = (event, index) => {\n event.preventDefault();\n if ($scope.expandedRow === index) {\n $scope.expandedRow = -1;\n } else {\n $scope.expandedRow = index;\n }\n };\n\n /**\n * Opens the GraphQL endpoint for exploration in the playground.\n * @param {GraphqlEndpointInfo} endpointInfo The endpoint to explore.\n */\n $scope.onExploreEndpoint = (endpointInfo) => {\n const url = resolvePlaygroundUrlWithEndpoint(endpointInfo.endpointId);\n $location.url(url);\n };\n\n /**\n * Filters the endpoints by the given term.\n * @param {string} filterTerm The term to filter by.\n */\n $scope.onEndpointsFilter = (filterTerm) => {\n $scope.filterTerm = filterTerm.toLowerCase();\n $scope.endpointsInfoList.filter(filterTerm);\n };\n\n /**\n * Starts a new GraphQL endpoint creation process by emitting the create endpoint event.\n */\n $scope.startCreateEndpointWizard = () => {\n GraphqlContextService.startCreateEndpointWizard();\n };\n\n /**\n * Toggles the active state of the given endpoint.\n * @param {GraphqlEndpointInfo} endpointInfo The endpoint to toggle the active state for.\n */\n $scope.toggleEndpointActiveState = (endpointInfo) => {\n $scope.changingEndpointActiveState = true;\n const newActiveState = !endpointInfo.active;\n const updateEndpointRequest = endpointInfo.toUpdateEndpointRequest($scope.endpointConfigurationSettings);\n GraphqlService.editEndpointConfiguration($repositories.getActiveRepository(), endpointInfo.endpointId, updateEndpointRequest.getUpdateEndpointActiveStateRequest())\n .then((updatedEndpoint) => {\n const operationKey = newActiveState ? 'activated' : 'deactivated';\n toastr.success(\n $translate.instant(\n `graphql.endpoints_management.table.actions.toggle_active_state.${operationKey}.success`,\n {endpointId: updatedEndpoint.endpointId}\n )\n );\n // Update the endpoint in place in the list. This will trigger the UI update and the user can see the\n // change immediately, e.g. the updatedAt field will be updated.\n $scope.endpointsInfoList.updateEndpoint(updatedEndpoint);\n })\n .catch((error) => {\n // something went wrong, revert the active state\n endpointInfo.active = !newActiveState;\n toastr.error(getError(error));\n console.error('Error updating endpoint active state', error);\n })\n .finally(() => {\n $scope.changingEndpointActiveState = false;\n });\n }\n\n /**\n * Opens the import endpoint definition modal from where the user can import endpoint definitions.\n * @returns {*} The modal instance.\n */\n $scope.importSchema = () => {\n return $uibModal.open({\n templateUrl: 'js/angular/graphql/templates/modal/import-endpoint-definition-modal.html',\n controller: 'ImportEndpointDefinitionModalController',\n windowClass: 'import-endpoint-definition-modal',\n size: 'lg',\n backdrop: 'static',\n keyboard: false,\n resolve: {\n data: () => {\n return {\n repositoryId: $repositories.getActiveRepository()\n };\n }\n }\n }).result;\n };\n\n /**\n * Exports the GraphQL schema for the given endpoint.\n * @param {GraphqlEndpointInfo} endpointInfo The endpoint to export the schema for.\n */\n $scope.onExportSchema = (endpointInfo) => {\n GraphqlService.exportEndpointDefinition($repositories.getActiveRepository(), endpointInfo.endpointId)\n .then(({data, filename}) => {\n saveAs(data, filename);\n })\n .catch((error) => {\n toastr.error(getError(error));\n console.error('Error exporting GraphQL endpoint definition', error);\n });\n };\n\n /**\n * Handles the configure endpoint event triggered by the endpoint configuration action.\n * @param {GraphqlEndpointInfo} endpointConfiguration The endpoint configuration model.\n * @returns {*} The modal instance.\n */\n $scope.onConfigureEndpoint = (endpointConfiguration) => {\n return $uibModal.open({\n templateUrl: 'js/angular/graphql/templates/modal/endpoint-configuration-modal.html',\n controller: 'GraphqlEndpointConfigurationModalController',\n windowClass: 'graphql-endpoint-configuration-modal',\n size: 'lg',\n backdrop: 'static',\n keyboard: false,\n resolve: {\n data: () => {\n return {\n repositoryId: $repositories.getActiveRepository(),\n endpointConfiguration: endpointConfiguration\n };\n }\n }\n }).result;\n };\n\n /**\n * Handles the delete endpoint event.\n * @param {GraphqlEndpointInfo} endpoint The endpoint to delete.\n */\n $scope.onDeleteEndpoint = (endpoint) => {\n ModalService.openConfirmationModal({\n title: $translate.instant('graphql.endpoints_management.table.actions.delete_endpoint.confirmation.title'),\n message: $translate.instant('graphql.endpoints_management.table.actions.delete_endpoint.confirmation.body', {name: endpoint.endpointId}),\n confirmButtonKey: 'common.confirm'\n },\n () => {\n deleteEndpoint(endpoint);\n });\n };\n\n /**\n * Handles the show endpoint report event triggered by the endpoint report action.\n * @param {GraphqlEndpointInfo} endpointInfo The endpoint info model.\n * @returns {*}\n */\n $scope.onShowEndpointReport = (endpointInfo) => {\n GraphqlService.getEndpointConfigurationReport($repositories.getActiveRepository(), endpointInfo.endpointId)\n .then((endpointConfiguration) => {\n showReportModal(endpointConfiguration.getReport(endpointInfo.endpointId));\n })\n .catch((error) => {\n toastr.error(getError(error));\n console.error('Error loading GraphQL endpoint configuration', error);\n });\n }\n\n // =========================\n // Private methods\n // =========================\n\n /**\n * Handles the change of the active repository.\n * @param {object} repositoryObject\n */\n const getActiveRepositoryObjectHandler = (repositoryObject) => {\n if (repositoryObject) {\n onInit();\n }\n };\n\n /**\n * Shows the endpoint generation failure report.\n * @param {EndpointGenerationReport} endpointGenerationReport The endpoint configuration model.\n * @returns {*}\n */\n const showReportModal = (endpointGenerationReport) => {\n return $uibModal.open({\n templateUrl: 'js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html',\n controller: 'EndpointGenerationResultFailureModalController',\n windowClass: 'endpoint-generation-failure-result-modal',\n size: 'lg',\n backdrop: 'static',\n keyboard: false,\n resolve: {\n data: () => {\n return {\n endpointReport: endpointGenerationReport\n };\n }\n }\n }).result;\n }\n\n /**\n * Deletes the given GraphQL endpoint.\n * @param {GraphqlEndpointInfo} endpoint The endpoint to delete.\n */\n const deleteEndpoint = (endpoint) => {\n $scope.operationInProgress = true;\n GraphqlService.deleteEndpoint($repositories.getActiveRepository(), endpoint.endpointId)\n .then(() => {\n toastr.success(\n $translate.instant('graphql.endpoints_management.table.actions.delete_endpoint.success',\n {name: endpoint.endpointId}));\n $scope.operationInProgress = false;\n return loadEndpointsInfo(false);\n })\n .catch((error) => {\n toastr.error(getError(error));\n console.error('Error deleting GraphQL endpoint', error);\n })\n .finally(() => {\n $scope.operationInProgress = false;\n });\n }\n\n /**\n * Handles the event for deleting endpoint generation report.\n * @param {EndpointGenerationReport} endpointReport The endpoint generation report.\n */\n const onDeleteEndpointReport = (endpointReport) => {\n GraphqlService.deleteEndpointGenerationReport($repositories.getActiveRepository(), endpointReport.endpointId)\n .then(() => {\n toastr.success($translate.instant('graphql.endpoints_management.generation_failure_report_modal.actions.delete_report.success'));\n return loadEndpointsInfo(false);\n })\n .catch((error) => {\n toastr.error(getError(error));\n console.error('Error deleting endpoint generation report', error);\n });\n };\n\n /**\n * Handles the loaded GraphQL endpoints info.\n * @param {GraphqlEndpointsInfoList} endpointsInfoList\n */\n const onEndpointsInfoLoaded = (endpointsInfoList) => {\n $scope.endpointsInfoList = endpointsInfoList;\n $scope.endpointsInfoList.filter($scope.filterTerm);\n if ($scope.endpointsInfoList && $scope.endpointsInfoList.endpoints.length > 0) {\n $scope.hasEndpoints = true;\n // Find out the default endpoint. If there is no default endpoint in the list, then create a new one dummy\n // one to be used for binding the UI.\n $scope.selectedDefaultEndpoint = $scope.endpointsInfoList.findDefaultEndpoint() || new GraphqlEndpointInfo();\n }\n }\n\n /**\n * Loads the GraphQL endpoints info.\n * @param {boolean} showLoader If the global loader should be displayed.\n * @returns {Promise<void>}\n */\n const loadEndpointsInfo = (showLoader) => {\n $scope.loadingEndpointsInfo = showLoader === true;\n return GraphqlService.getEndpointsInfo($repositories.getActiveRepository())\n .then(onEndpointsInfoLoaded)\n .catch((error) => {\n toastr.error(getError(error));\n console.error('Error loading GraphQL endpoints info', error);\n })\n .finally(() => {\n $scope.loadingEndpointsInfo = false;\n });\n };\n\n /**\n * Handles the start create endpoint wizard event.\n */\n const onStartCreateEndpointWizard = () => {\n $location.path(endpointUrl.CREATE_ENDPOINT);\n };\n\n /**\n * Loads the GraphQL endpoints info periodically called by the polling timer.\n * @returns {Promise<void>}\n */\n const reloadEndpointsInfo = () => {\n return GraphqlService.getEndpointsInfo($repositories.getActiveRepository())\n .then(onEndpointsInfoLoaded)\n .catch((error) => {\n toastr.error(getError(error));\n console.error('Error loading GraphQL endpoints info', error);\n })\n .finally(() => {\n if (endpointsInfoLoader) {\n endpointsInfoLoader = undefined;\n }\n });\n }\n\n /**\n * Polls the GraphQL endpoints info.\n */\n const pollEndpointsInfo = () => {\n // Cancel any existing timer first to prevent duplicates\n if (endpointsInfoPollingTimer) {\n $interval.cancel(endpointsInfoPollingTimer);\n endpointsInfoPollingTimer = undefined;\n }\n\n endpointsInfoPollingTimer = $interval(() => {\n // Only start a new request if we're not already loading and if the controller is still active\n if (!endpointsInfoLoader && !$scope.$$destroyed) {\n endpointsInfoLoader = reloadEndpointsInfo();\n }\n }, ENDPOINTS_INFO_POLLING_INTERVAL);\n }\n\n /**\n * Unsubscribes all watchers.\n */\n const unsubscribeAll = () => {\n endpointsInfoPollingTimer && $interval.cancel(endpointsInfoPollingTimer);\n endpointsInfoPollingTimer = undefined;\n endpointsInfoLoader = undefined;\n subscriptions.forEach((subscription) => subscription());\n };\n\n // =========================\n // Subscriptions\n // =========================\n\n subscriptions.push(GraphqlContextService.subscribe(GraphqlEventName.START_CREATE_ENDPOINT_WIZARD, onStartCreateEndpointWizard));\n subscriptions.push(GraphqlContextService.subscribe(GraphqlEventName.DELETE_ENDPOINT_REPORT, onDeleteEndpointReport));\n subscriptions.push($scope.$watch($scope.getActiveRepositoryObject, getActiveRepositoryObjectHandler));\n $scope.$on('$destroy', unsubscribeAll);\n\n // =========================\n // Initialization\n // =========================\n\n const onInit = () => {\n loadEndpointsInfo(true)\n .then(() => {\n pollEndpointsInfo();\n });\n };\n}\n"],"names":["dynamicFormFieldDirective","$compile","restrict","scope","field","form","translationKeyPrefix","templateUrl","link","$scope","FIELD_TYPE","angular","module","directive","$inject","ImportStatus","PENDING","SUCCESS","FAIL","SKIP","ImportStatusLabelKeys","ImportStatusToViewMapping","EndpointDefinitionFileList","_list","_size","constructor","definitionFiles","this","length","processWith","predicate","list","forEach","findDefinitionFileByName","name","find","definitionFile","file","getFileNames","map","appendFiles","push","removeFile","definitionFileToRemove","filter","size","EndpointDefinitionFile","_file","_filename","_status","_viewStatus","_statusMessage","_endpointId","_report","status","statusMessage","filename","viewStatus","endpointId","report","fileToImportDefinitionsMapper","files","importStatus","fileToImportDefinitionMapper","importEndpointDefinitionListMapper","data","repositoryId","processEntry","response","id","toUpperCase","importEndpointDefinitionReportMapper","subFiles","subFileDefinitions","$translate","require","options","dropdownLabel","element","attrs","ngModel","isOpen","handleDocumentClick","event","contains","target","$apply","toggleDropdown","toggleSelection","option","selected","updateModel","$setViewValue","getSelectedText","selectedOptions","instant","label","join","$render","isArray","$viewValue","some","selectedOption","value","document","addEventListener","$on","removeEventListener","ImportEndpointDefinitionModalController","$q","toastr","$uibModal","$uibModalInstance","GraphqlService","GraphqlContextService","allowedFileTypes","allowedFileTypesString","progress","undefined","uploadFinished","onFilesChange","$files","$file","$newFiles","$duplicateFiles","$invalidFiles","selectedFiles","invalidFiles","extension","split","pop","toLowerCase","includes","console","error","existingFileNames","Set","filesToAdd","has","onImport","payload","buildUploadPayloadObject","importEndpointDefinition","evt","Math","min","parseInt","loaded","total","success","errors","getError","onRemoveFile","onExploreEndpoint","url","resolvePlaygroundUrlWithEndpoint","setSelectedEndpoint","GraphqlEndpointInfo","window","open","onOpenReport","endpointGenerationReport","preventDefault","controller","windowClass","backdrop","keyboard","resolve","endpointReport","result","close","dismiss","FormData","definition","append","dynamicFormDirective","formModel","showAllFields","onValidityChange","formCtrl","init","originalSetValidity","$setValidity","validationToken","isValid","modelCtrl","call","valid","$valid","saveAs","view","navigator","test","userAgent","doc","get_URL","URL","webkitURL","save_link","createElementNS","webkit_req_fs","webkitRequestFileSystem","req_fs","requestFileSystem","mozRequestFileSystem","throw_outside","ex","setImmediate","setTimeout","force_saveable_type","fs_min_size","revoke","revoker","revokeObjectURL","remove","chrome","dispatch","filesaver","event_types","i","concat","listener","auto_bom","blob","type","Blob","FileSaver","object_url","target_view","slice","blob_changed","dispatch_all","fs_error","createObjectURL","location","href","safari","readyState","DONE","abortable","func","apply","arguments","create_if_not_found","create","exclusive","INIT","download","node","MouseEvent","dispatchEvent","webkitSlice","TEMPORARY","fs","root","getDirectory","dir","save","getFile","createWriter","writer","onwriteend","toURL","onerror","code","ABORT_ERR","write","abort","WRITING","NOT_FOUND_ERR","FS_proto","prototype","msSaveOrOpenBlob","onwritestart","onprogress","onwrite","onabort","self","content","exports","define","GraphqlEndpointConfigurationModalController","endpointConfiguration","endpointConfigurationSettings","endpointConfigurationSettingsValid","loadingEndpointConfigurationSettings","savingEndpointSettings","showAdvancedSettings","ok","cancel","handleValidityChange","toggleAdvancedSettings","updateEndpointRequest","toUpdateEndpointRequest","editEndpointConfiguration","getUpdateEndpointSettingsRequest","then","catch","finally","getGraphqlEndpointConfigurationSettings","GraphqlEndpointManagementViewCtrl","$location","$interval","$repositories","ModalService","AuthTokenService","subscriptions","endpointsInfoPollingTimer","endpointsInfoLoader","hasEndpoints","expandedRow","loadingEndpointsInfo","endpointsInfoList","filterTerm","selectedDefaultEndpoint","operationInProgress","changingEndpointActiveState","setEndpointAsDefault","endpointInfo","previousDefaultEndpoint","default","getActiveRepository","getUpdateDefaultEndpointRequest","updateEndpoint","toggleRow","index","onEndpointsFilter","startCreateEndpointWizard","toggleEndpointActiveState","newActiveState","active","getUpdateEndpointActiveStateRequest","updatedEndpoint","operationKey","importSchema","onExportSchema","exportEndpointDefinition","onConfigureEndpoint","onDeleteEndpoint","endpoint","openConfirmationModal","title","message","confirmButtonKey","deleteEndpoint","onShowEndpointReport","getEndpointConfigurationReport","showReportModal","getReport","loadEndpointsInfo","onEndpointsInfoLoaded","endpoints","findDefaultEndpoint","showLoader","getEndpointsInfo","subscribe","GraphqlEventName","START_CREATE_ENDPOINT_WIZARD","onStartCreateEndpointWizard","path","endpointUrl","CREATE_ENDPOINT","DELETE_ENDPOINT_REPORT","deleteEndpointGenerationReport","$watch","getActiveRepositoryObject","repositoryObject","onInit","unsubscribeAll","subscription","$$destroyed"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- export const __webpack_id__=99379;export const __webpack_ids__=[3632,85281,99379];export const __webpack_modules__={3632:(e,t,o)=>{o.r(t);var n=o(98980);function r(){return{restrict:"E",scope:{options:"=",selected:"=",labels:"="},templateUrl:"js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html",link:function(e){const t=[];e.searchLeft="",e.availableOptions=[],e.selectedOptions=[],e.selectOption=t=>{e.selectedOptions.push(t),e.availableOptions=e.availableOptions.filter(e=>e!==t),o()},e.selectAll=()=>{e.selectedOptions=e.selectedOptions.concat(e.availableOptions),e.availableOptions=[],o()},e.deselectOption=t=>{e.availableOptions.push(t),e.selectedOptions=e.selectedOptions.filter(e=>e!==t),o()},e.deselectAll=()=>{e.availableOptions=e.availableOptions.concat(e.selectedOptions),e.selectedOptions=[],o()};const o=()=>{e.selected=[...e.selectedOptions]};e.$on("$destroy",()=>{t.forEach(e=>e())}),e.selectedOptions=(0,n.cloneDeep)(e.selected),e.selectedOptions.length?e.availableOptions=e.options.filter(t=>!e.selectedOptions.find(e=>e.id===t.id)):e.availableOptions=(0,n.cloneDeep)(e.options)}}}angular.module("graphdb.framework.core.directives.shuttle-multiselect",[]).directive("shuttleMultiselect",r),r.$inject=[]},28050:(e,t,o)=>{o.r(t);var n=o(32534),r=(o(69724),o(77512));function i(e,t,o,i,a,l){return{restrict:"E",templateUrl:"js/angular/graphql/templates/step-generate-endpoint.html",scope:{stepDefinition:"="},link:t=>{t.endpointConfiguration=void 0,t.endpointsCountToGenerate=0,t.endpointsOverview=void 0,t.activeRepository=i.getActiveRepository(),t.generateFromGraphqlSchemaShapes=!1,t.generatingEndpoint=!1,t.generationReport=void 0,t.endpointUrl=r.endpointUrl,t.back=()=>{l.previousEndpointCreationStep()},t.cancel=()=>{const t=o.instant("graphql.create_endpoint.wizard_steps.actions.cancel.confirmation.title"),n=o.instant("graphql.create_endpoint.wizard_steps.actions.cancel.confirmation.body");e.openConfirmation(t,n,()=>{l.cancelEndpointCreation()})},t.generateEndpoint=()=>{t.generatingEndpoint=!0,t.generationReport=void 0,l.generateEndpoint()},t.finishGenerationWorkflow=()=>{l.finishGenerationWorkflow()},t.showEndpointReport=e=>{l.openEndpointGenerationReport(e)},t.exploreInPlayground=e=>{l.exploreEndpointInPlayground(e)};const s=[];s.push(l.subscribe(n.GraphqlEventName.ENDPOINT_GENERATED,e=>{t.generatingEndpoint=!1,t.generationReport=e})),t.$on("$destroy",()=>{s.forEach(e=>e())}),t.endpointConfiguration=l.getNewEndpoint(),t.generateFromGraphqlSchemaShapes=t.endpointConfiguration.hasSelectedGraphqlSchemaShapes(),t.endpointsCountToGenerate=a.getEndpointsCountToGenerate(t.endpointConfiguration),t.endpointsOverview=a.getGenerateEndpointsOverview(t.endpointConfiguration)}}}angular.module("graphdb.framework.graphql.directives.generate-endpoint",["graphdb.framework.graphql.controllers.endpoint-generation-failure-result-modal"]).directive("generateEndpoint",i),i.$inject=["ModalService","$uibModal","$translate","$repositories","GraphqlService","GraphqlContextService"]},32606:(e,t,o)=>{o.r(t),o(3632);var n=o(82854),r=o(32534),i=o(21388);function a(e,t,o,a,l,s,p,c){return{restrict:"E",templateUrl:"js/angular/graphql/templates/step-select-schema-sources.html",scope:{stepDefinition:"="},link:(l,d)=>{const h=[];l.schemaSourceType=i.SchemaSourceType,l.ontologyShaclShapeSource=i.OntologyShaclShapeSource,l.shapesMultiselectLabels={availableOptionsTitle:"graphql.create_endpoint.wizard_steps.shapes_multiselect.available_options.title",availableOptionsFilter:"graphql.create_endpoint.wizard_steps.shapes_multiselect.available_options.filter_placeholder",selectedOptionsTitle:"graphql.create_endpoint.wizard_steps.shapes_multiselect.selected_options.title",selectedOptionsCount:"graphql.create_endpoint.wizard_steps.shapes_multiselect.selected_options.count",selectTooltip:"graphql.create_endpoint.wizard_steps.shapes_multiselect.actions.add.tooltip",selectAllLabel:"graphql.create_endpoint.wizard_steps.shapes_multiselect.actions.add_all.label",selectAllTooltip:"graphql.create_endpoint.wizard_steps.shapes_multiselect.actions.add_all.tooltip",deselectTooltip:"graphql.create_endpoint.wizard_steps.shapes_multiselect.actions.remove.tooltip",deselectAllLabel:"graphql.create_endpoint.wizard_steps.shapes_multiselect.actions.remove_all.label",deselectAllTooltip:"graphql.create_endpoint.wizard_steps.shapes_multiselect.actions.remove_all.tooltip"},l.graphsMultiselectLabels={availableOptionsTitle:"graphql.create_endpoint.wizard_steps.graphs_multiselect.available_options.title",availableOptionsFilter:"graphql.create_endpoint.wizard_steps.graphs_multiselect.available_options.filter_placeholder",selectedOptionsTitle:"graphql.create_endpoint.wizard_steps.graphs_multiselect.selected_options.title",selectedOptionsCount:"graphql.create_endpoint.wizard_steps.graphs_multiselect.selected_options.count",selectTooltip:"graphql.create_endpoint.wizard_steps.graphs_multiselect.actions.add.tooltip",selectAllLabel:"graphql.create_endpoint.wizard_steps.graphs_multiselect.actions.add_all.label",selectAllTooltip:"graphql.create_endpoint.wizard_steps.graphs_multiselect.actions.add_all.tooltip",deselectTooltip:"graphql.create_endpoint.wizard_steps.graphs_multiselect.actions.remove.tooltip",deselectAllLabel:"graphql.create_endpoint.wizard_steps.graphs_multiselect.actions.remove_all.label",deselectAllTooltip:"graphql.create_endpoint.wizard_steps.graphs_multiselect.actions.remove_all.tooltip"},l.endpointConfiguration=void 0,l.prefixList=[],l.loadingPrefixes=!1,l.graphs=void 0,l.shaclShapeGraphs=void 0,l.graphqlSchemaShapes=void 0,l.allGraphs=void 0,l.loadingGraphs=!1,l.cancel=()=>{const e=o.instant("graphql.create_endpoint.wizard_steps.actions.cancel.confirmation.title"),n=o.instant("graphql.create_endpoint.wizard_steps.actions.cancel.confirmation.body");t.openConfirmation(e,n,()=>{s.cancelEndpointCreation()})},l.next=()=>{s.nextEndpointCreationStep()},l.onSchemaSourceTypeChange=()=>{l.endpointConfiguration.schemaSourceType=l.stepDefinition.schemaSourceType,l.endpointConfiguration.generateFromShaclShapes()&&(l.stepDefinition.ontotlogyShaclShapeSource===i.OntologyShaclShapeSource.USE_ALL_GRAPHS?l.endpointConfiguration.selectedGraphs=l.allGraphs:l.stepDefinition.ontotlogyShaclShapeSource===i.OntologyShaclShapeSource.USE_SHACL_SHAPE_GRAPH?l.endpointConfiguration.selectedGraphs=l.shaclShapeGraphs:l.stepDefinition.ontotlogyShaclShapeSource===i.OntologyShaclShapeSource.PICK_GRAPHS&&(l.endpointConfiguration.selectedGraphs=new n.GraphListOptions))},l.onOntologyShaclShapeSourceChange=()=>{l.endpointConfiguration.owlOrShaclSourceType=l.stepDefinition.ontotlogyShaclShapeSource,l.stepDefinition.ontotlogyShaclShapeSource===i.OntologyShaclShapeSource.USE_ALL_GRAPHS?l.endpointConfiguration.selectedGraphs=l.allGraphs:l.stepDefinition.ontotlogyShaclShapeSource===i.OntologyShaclShapeSource.USE_SHACL_SHAPE_GRAPH?l.endpointConfiguration.selectedGraphs=l.shaclShapeGraphs:l.stepDefinition.ontotlogyShaclShapeSource===i.OntologyShaclShapeSource.PICK_GRAPHS&&(l.endpointConfiguration.selectedGraphs=new n.GraphListOptions)},l.canProceed=()=>{let e=!1;if(l.endpointConfiguration){const t=l.endpointConfiguration.hasSelectedGraphqlSchemaShapes(),o=l.endpointParamsForm.$valid;l.stepDefinition.schemaSourceType===i.SchemaSourceType.GRAPHQL_SCHEMA_SHAPES&&t?e=!0:l.stepDefinition.schemaSourceType===i.SchemaSourceType.SHACL_SHAPES&&o&&(e=l.endpointConfiguration.owlOrShaclSourceType===i.OntologyShaclShapeSource.USE_ALL_GRAPHS||l.endpointConfiguration.hasSelectedGraphs())}return e};const g=t=>{l.loadingData=!0,e.all([(l.loadingPrefixes=!0,p.getPrefixListAsSelectOptions(s.getSourceRepository()).catch(e=>{console.error("Error loading prefixes",e),a.error(getError(e))}).finally(()=>{l.loadingPrefixes=!1})),(l.loadingGraphs=!0,c.getGraphs(s.getSourceRepository()).catch(e=>{console.error("Error loading graphs",e),a.error(getError(e))}).finally(()=>{l.loadingGraphs=!1})),p.getGraphqlSchemaShapes(s.getSourceRepository()).catch(e=>{console.error("Error loading GraphQL schema shapes",e),a.error(getError(e))}),p.getShaclShapeGraphs(s.getSourceRepository()).catch(e=>{console.error("Error loading SHACL shape graphs",e),a.error(getError(e))})]).then(([e,o,r,i])=>{l.graphqlSchemaShapes=r,l.graphs=o,l.shaclShapeGraphs=i,l.allGraphs=new n.GraphListOptions([...o.graphList,...i.graphList]),l.prefixList=e,l.endpointConfiguration=t}).finally(()=>{l.loadingData=!1})},u=()=>{g(s.getNewEndpoint())},S=()=>{h.forEach(e=>e())};(()=>{l.$on("$destroy",S),h.push(s.subscribe(r.GraphqlEventName.SOURCE_REPOSITORY_UPDATED,u));const e=s.getNewEndpoint();e?g(e):h.push(s.onEndpointConfigCreated(g))})()}}}angular.module("graphdb.framework.graphql.directives.select-schema-sources",["graphdb.framework.core.directives.shuttle-multiselect"]).directive("selectSchemaSources",a),a.$inject=["$q","ModalService","$translate","toastr","$repositories","GraphqlContextService","GraphqlService","RDF4JRepositoriesService"]},69724:(e,t,o)=>{function n(e,t,o,n){const r="generation-report.json";e.endpointReport=void 0,e.downloadReport=()=>{const t=JSON.stringify(e.endpointReport.toJSON(),null,2),o=new Blob([t],{type:"application/json"}),n=URL.createObjectURL(o),i=document.createElement("a");i.href=n,i.download=e.endpointReport.endpointId?`${e.endpointReport.endpointId}-${r}`:r,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(n)},e.deleteReport=()=>{n.deleteEndpointGenerationReport(e.endpointReport),e.close()},e.close=()=>{t.dismiss("cancel")},e.endpointReport=o.endpointReport}o.r(t),o(14874),o(58334),o(29428),angular.module("graphdb.framework.graphql.controllers.endpoint-generation-failure-result-modal",["graphdb.framework.core.services.graphql-service"]).controller("EndpointGenerationResultFailureModalController",n),n.$inject=["$scope","$uibModalInstance","data","GraphqlContextService"]},85281:()=>{function e(e,t,o,n,r,i){return{restrict:"E",templateUrl:"js/angular/graphql/templates/step-configure-endpoint.html",scope:{stepDefinition:"=",selectedSourceRepository:"="},link:a=>{a.endpointConfiguration=void 0,a.generationSettings=void 0,a.generationSettingsValid=!1,a.showAdvancedSettings=!1,a.handleValidityChange=e=>{a.endpointConfigurationSettingsValid=e},a.next=()=>{r.nextEndpointCreationStep()},a.back=()=>{r.previousEndpointCreationStep()},a.cancel=()=>{const e=o.instant("graphql.create_endpoint.wizard_steps.actions.cancel.confirmation.title"),n=o.instant("graphql.create_endpoint.wizard_steps.actions.cancel.confirmation.body");t.openConfirmation(e,n,()=>{r.cancelEndpointCreation()})},a.toggleAdvancedSettings=()=>{a.showAdvancedSettings=!a.showAdvancedSettings};const l=[];a.$on("$destroy",()=>{l.forEach(e=>e())}),a.endpointConfiguration=r.getNewEndpoint(),a.endpointConfiguration.settings||(a.endpointConfiguration,a.loadingData=!0,e.all([n.getGraphqlGenerationSettings(a.selectedSourceRepository.id).catch(e=>{console.error("Error loading generation settings",e),i.error(getError(e))})]).then(([e])=>{a.endpointConfiguration.settings=e}).finally(()=>{a.loadingData=!1}))}}}angular.module("graphdb.framework.graphql.directives.configure-endpoint",[]).directive("configureEndpoint",e),e.$inject=["$q","ModalService","$translate","GraphqlService","GraphqlContextService","toastr"]},99379:(e,t,o)=>{o.r(t),o(14874);var n=o(32534),r=o(21388),i=o(77512),a=o(16747),l=(o(32606),o(85281),o(28050),o(90275));function s(e,t,o,s,p,c,d,h,g){const u=[];e.sourceRepositories=[],e.selectedSourceRepository=void 0,e.previousSelectedSourceRepository=void 0,e.wizardModel=void 0,e.currentStep=void 0,e.generatingEndpoint=!1,e.onSelectedSourceRepositoryChange=t=>{c.openConfirmationModal({title:s.instant("graphql.create_endpoint.messages.source_repository_changed.title"),message:s.instant("graphql.create_endpoint.messages.source_repository_changed.body"),confirmButtonKey:"common.confirm"},()=>{e.previousSelectedSourceRepository=e.selectedSourceRepository,g.updateSourceRepository(t.value),g.createEndpointConfig(),_()},()=>{e.selectedSourceRepository=e.previousSelectedSourceRepository})},e.activateStep=t=>{e.wizardModel.setStepActive(t),S(t)},e.onStepClick=t=>{e.wizardModel.isAPreviousStep(t)&&(e.wizardModel.setStepActive(t),S(t))};const S=t=>{e.currentStep=t},_=()=>{e.wizardModel=(new a.Wizard).addStep(new r.SelectSchemaSourceStep).addStep(new r.ConfigureEndpointStep).addStep(new r.GenerateEndpointStep),S(e.wizardModel.getActiveStep())};u.push(g.subscribe(n.GraphqlEventName.GENERATE_ENDPOINT,t=>{const n=t.schemaSourceType===r.SchemaSourceType.GRAPHQL_SCHEMA_SHAPES,i=t.schemaSourceType===r.SchemaSourceType.SHACL_SHAPES;return n?(t=>{e.generatingEndpoint=!0;const n=t.toCreateEndpointFromShapesRequest(e.selectedSourceRepository.value);let r;return h.generateEndpointFromGraphqlShapes(o.getActiveRepository(),n).then(e=>{r=e}).catch(e=>{d.error(getError(e))}).finally(()=>{g.endpointGenerated(r),e.generatingEndpoint=!1})})(t):i?(t=>{e.generatingEndpoint=!0;const n=t.toCreateEndpointFromOwlRequest(e.selectedSourceRepository.value);let r;return h.generateEndpointFromOwl(o.getActiveRepository(),n).then(e=>{r=e}).catch(e=>{d.error(getError(e))}).finally(()=>{e.generatingEndpoint=!1,g.endpointGenerated(r)})})(t):void 0})),u.push(g.subscribe(n.GraphqlEventName.PREVIOUS_ENDPOINT_CREATION_STEP,()=>{S(e.wizardModel.previousStep())})),u.push(g.subscribe(n.GraphqlEventName.NEXT_ENDPOINT_CREATION_STEP,()=>{S(e.wizardModel.nextStep())})),u.push(g.subscribe(n.GraphqlEventName.CANCEL_ENDPOINT_CREATION,()=>{t.path(i.endpointUrl.ENDPOINT_MANAGEMENT)})),u.push(g.subscribe(n.GraphqlEventName.FINISH_GENERATION_WORKFLOW,()=>{t.path(i.endpointUrl.ENDPOINT_MANAGEMENT)})),u.push(g.subscribe(n.GraphqlEventName.EXPLORE_ENDPOINT_IN_PLAYGROUND,e=>{const t=(0,l.resolvePlaygroundUrlWithEndpoint)(e.endpointId);g.setSelectedEndpoint(e),window.open(t,"_blank","noopener,noreferrer")})),u.push(g.subscribe(n.GraphqlEventName.OPEN_ENDPOINT_GENERATION_REPORT,e=>p.open({templateUrl:"js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html",controller:"EndpointGenerationResultFailureModalController",windowClass:"endpoint-generation-failure-result-modal",size:"lg",backdrop:"static",keyboard:!1,resolve:{data:()=>({endpointReport:e})}}).result)),u.push(e.$watch(e.getActiveRepositoryObject,e=>{e&&m()})),e.$on("$destroy",()=>{u.forEach(e=>e())});const m=()=>{e.selectedSourceRepository||(g.createEndpointConfig(),_(),(()=>{e.sourceRepositories=o.getRepositoriesAsSelectMenuOptions(()=>o.getLocalReadableGraphdbRepositories());const t=o.getActiveRepository();e.selectedSourceRepository=e.sourceRepositories.find(e=>e.value===t),g.updateSourceRepository(e.selectedSourceRepository.value),e.previousSelectedSourceRepository=e.selectedSourceRepository})())}}angular.module("graphdb.framework.graphql.controllers.create-graphql-endpoint-view",["graphdb.framework.core.services.graphql-service","graphdb.framework.graphql.services.graphql-context","graphdb.framework.graphql.directives.select-schema-sources","graphdb.framework.graphql.directives.configure-endpoint","graphdb.framework.graphql.directives.generate-endpoint"]).controller("CreateGraphqlEndpointViewCtrl",s),s.$inject=["$scope","$location","$repositories","$translate","$uibModal","ModalService","toastr","GraphqlService","GraphqlContextService"]}};
2
- //# sourceMappingURL=99379.be6c85ef305af6667dc1.bundle.js.map