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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"14824.a3bc164c5bf4313f5276.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/jdbc-driver-type.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/repositories/ontop-repo.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-file-info.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-driver-data.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-connection-information.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-file-type.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-repository-error.js"],"sourcesContent":["export const JdbcDriverType = {\n 'GENERIC': 'generic',\n 'MY_SQL': 'mySQL',\n 'POSTGRESS': 'postgreSQL',\n 'ORACLE': 'oracle',\n 'MS_SQL': 'msSQL',\n 'DB2': 'DB2',\n 'DREMIO': 'dremio',\n 'DATABRICKS': 'databricks',\n 'SNOWFLAKE': 'snowflake'\n};\n","import {getFileName} from \"./controllers\";\nimport {OntopFileType} from \"../models/ontop/ontop-file-type\";\nimport {OntopConnectionInformation} from \"../models/ontop/ontop-connection-information\";\nimport {OntopFileInfo} from \"../models/ontop/ontop-file-info\";\nimport {OntopRepositoryError} from \"../models/ontop/ontop-repository-error\";\nimport {OntopDriverData} from \"../models/ontop/ontop-driver-data\";\nimport {JdbcDriverType} from \"../models/ontop/jdbc-driver-type\";\nimport {LoggerProvider} from \"../core/services/logger-provider\";\n\nconst logger = LoggerProvider.logger;\n// A link to Ontop's website with all Ontop configuration keys\nconst ONTOP_PROPERTIES_LINK = 'https://ontop-vkg.org/guide/advanced/configuration.html';\n\nangular\n .module('graphdb.framework.repositories.ontop-repo.directive', [])\n .directive('ontopRepo', ontopRepoDirective);\n\nontopRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', 'Upload', '$translate'];\n\nfunction ontopRepoDirective($uibModal, RepositoriesRestService, toastr, Upload, $translate) {\n return {\n restrict: 'E',\n scope: false,\n templateUrl: 'js/angular/repositories/templates/ontop-repo.html',\n\n link: linkFunc,\n };\n\n function linkFunc($scope) {\n const HOME_KEY = 36;\n const END_KEY = 35;\n const LEFT_ARROW = 37;\n const RIGHT_ARROW = 39;\n const BACKSPACE = 8;\n const KEY_C = 67;\n const KEY_A = 65;\n $scope.isGenericDriver = true;\n $scope.defaultUrlTemplate = 'jdbc:database://localhost:port/database_name';\n $scope.ontopProperiesLink = ONTOP_PROPERTIES_LINK;\n $scope.ontopFileType = OntopFileType;\n\n /**\n * Holds reference to selected driver.\n *\n * @type {OntopDriverData}\n */\n $scope.selectedDriver = new OntopDriverData();\n\n /**\n * Holds all supported jdbc drivers.\n * @type {OntopDriverData[]}\n */\n $scope.supportedDriversData = [];\n $scope.formData = {\n connectionInformation: new OntopConnectionInformation(),\n settings: {\n additionalProperties: '',\n /**\n * Holds information about repository files.\n */\n ontopFiles: [],\n },\n };\n\n // =========================\n\n /**\n * Changes selected driver and updates url field.\n * @param {string} driverType - the type of driver.\n */\n $scope.selectDriver = (driverType) => {\n $scope.selectedDriver = $scope.supportedDriversData.find((driver) => driver.driverType === driverType);\n $scope.isGenericDriver = OntopDriverData.isGenericDriver($scope.selectedDriver.driverType);\n if ($scope.editRepoPage && $scope.currentOntopRepoInfo && $scope.currentOntopRepoInfo.connectionInformation.driverType === driverType) {\n $scope.formData = _.cloneDeep($scope.currentOntopRepoInfo);\n } else {\n clearFormData();\n $scope.formData.connectionInformation.driverType = $scope.selectedDriver.driverType;\n }\n $scope.formData.connectionInformation.driverClass = $scope.selectedDriver.driverClass;\n $scope.updateUrl();\n };\n\n /**\n * Finds ontop file depends on file type <code>ontopFileType</code>\n * @param {OntopFileType} ontopFileType - the type of searched ontop file.\n * @return {OntopFileInfo} found ontop file.\n */\n $scope.getOntopFileInfo = (ontopFileType) => {\n return $scope.formData.settings.ontopFiles.find((ontopFileInfo) => ontopFileType === ontopFileInfo.type);\n };\n\n $scope.getHostNameLabel = () => {\n const hostNameLabel = OntopDriverData.isSnowflakeDriver($scope.selectedDriver.driverType) ? 'ontop.repo.database.snowflake.host_name' : 'ontop.repo.database.host_name';\n return $translate.instant(hostNameLabel) + '*';\n };\n\n $scope.getDatabaseNameLabel = () => {\n let dataBaseNameLabelKey = '';\n switch ($scope.selectedDriver.driverType) {\n case JdbcDriverType.SNOWFLAKE:\n dataBaseNameLabelKey = 'ontop.repo.database.warehouse.database_name';\n break;\n case JdbcDriverType.DATABRICKS:\n dataBaseNameLabelKey = 'ontop.repo.database.http_path.database_name';\n break;\n case JdbcDriverType.DREMIO:\n dataBaseNameLabelKey = 'ontop.repo.database.schema.database_name';\n break;\n default:\n dataBaseNameLabelKey = 'ontop.repo.database.database_name';\n }\n return $translate.instant(dataBaseNameLabelKey);\n };\n\n /**\n * Updates value of <code>$scope.formData.connectionInformation.url</code> depends on other connection information: Host name, Port...\n */\n $scope.updateUrl = () => {\n const templateUrl = calculateTemplateUrl() || '';\n $scope.formData.connectionInformation.url = templateUrl + $scope.formData.connectionInformation.urlUserInput;\n };\n\n /**\n * Checks if test connection can be executed.\n * @return {boolean} true if all needed data is filled by the user.\n */\n $scope.isTestConnectionDisabled = () => {\n const connectionInformation = $scope.formData.connectionInformation;\n const selectedDriver = $scope.selectedDriver;\n if (!connectionInformation.driverClass || !connectionInformation.url || selectedDriver.portRequired && !connectionInformation.port) {\n return true;\n }\n return !OntopDriverData.isGenericDriver(selectedDriver.driverType) && (!connectionInformation.hostName || !connectionInformation.databaseName);\n };\n\n /**\n * Performs a test connection.\n */\n $scope.testConnection = () => {\n validateHostName()\n .then(validatePort)\n .then(validateDatabaseName)\n .then(validateDriverClass)\n .then(validateUrl)\n .then(updatePropertiesFile)\n .then(() => RepositoriesRestService.validateOntopPropertiesConnection($scope.repositoryInfo))\n .then(() => toastr.success($translate.instant('ontop.repo.successful.connection.msg')))\n .catch((error) => {\n if (error instanceof OntopRepositoryError) {\n toastr.error(error.message);\n } else {\n showErrorMsg($translate.instant('ontop.repo.failed.to.connect'), error);\n }\n });\n };\n\n /**\n * Updates the file with type <code>ontopFileType</code>.\n *\n * @param {OntopFileInfo} ontopFileInfo\n */\n $scope.editFile = (ontopFileInfo) => {\n const fileName = $scope.repositoryInfo.params[ontopFileInfo.type].label;\n const title = $translate.instant('update.file.edit.content.header', {fileName});\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/editRepoFile.html',\n controller: 'EditRepositoryFileCtrl',\n windowClass: 'update-ontop-repo-dialog',\n resolve: {\n file: () => {\n const ontopFile = $scope.repositoryInfo.params[ontopFileInfo.type];\n return ontopFile ? ontopFile.value : '';\n },\n dialogTitle: () => {\n return title;\n },\n location: () => {\n return $scope.repositoryInfo.location;\n },\n },\n });\n\n modalInstance.result.then((data) => {\n // send data to backend\n RepositoriesRestService.updateRepositoryFileContent(data.fileLocation, data.content, $scope.repositoryInfo.location)\n .success((result) => {\n ontopFileInfo.fileName = getFileName(result.fileLocation);\n $scope.repositoryInfo.params[ontopFileInfo.type].value = result.fileLocation;\n }).error((error) => {\n showErrorMsg($translate.instant('common.error'), error);\n });\n });\n };\n\n $scope.uploadOntopFile = (files, ontopFileInfo) => {\n if (files && files.length) {\n const uploadFile = files[0];\n ontopFileInfo.loading = true;\n const uploadData = {\n url: 'rest/repositories/file/upload',\n data: {file: uploadFile, location: $scope.repositoryInfo.location},\n };\n Upload.upload(uploadData)\n .success((data) => {\n if (!data.success) {\n toastr.error(data.errorMessage);\n } else {\n ontopFileInfo.fileName = uploadFile.name;\n $scope.repositoryInfo.params[ontopFileInfo.type].value = data.fileLocation;\n }\n })\n .error((data) => {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFile = '';\n })\n .finally(() => {\n ontopFileInfo.loading = false;\n });\n }\n };\n\n $scope.updateOntopRepo = () => {\n const createOrUpdate = $scope.editRepoPage ? $scope.editRepository : $scope.createRepo;\n validateRepositoryId()\n .then(validateHostName)\n .then(validatePort)\n .then(validateDatabaseName)\n .then(validateDriverClass)\n .then(validateUrl)\n .then(validateOntopFiles)\n .then(updatePropertiesFile)\n .then(createOrUpdate)\n .catch((error) => {\n if (error instanceof OntopRepositoryError) {\n toastr.error(error.message);\n } else {\n logger.info(error);\n }\n });\n };\n\n /**\n * Some databases expect additional properties than hostname, port, database name in order to establish the connection.\n * So url is not readonly and user can modify it. Every driver instead generic one has template tha can't be changed by the user, it\n * is filled automatically when user writes hostname, port, and database name.\n *\n * This function prevent modification of driver template.\n *\n * @param {*} event - event fired by key down.\n */\n $scope.onKeyDownInUrlInput = (event) => {\n const keyCode = event.keyCode;\n // We don't prevent event if user clicked on left, right arrow, home or end key,\n // the client can move cursor without matter where the cursor is.\n if (keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW || keyCode === HOME_KEY || keyCode === END_KEY) {\n return;\n }\n\n const templateUrl = calculateTemplateUrl();\n // If templateUrl is empty this means that chosen driver is generic or user is not filled hostname, port, or database name.\n // So user can type any characters into url input.\n if (!templateUrl) {\n return;\n }\n\n // Allows user to select all and copy the url value regardless that cursor position is in url template area.\n // event.metaKey -> Mac support\n const ctrlDown = event.ctrlKey || event.metaKey;\n if (ctrlDown && KEY_A === keyCode || ctrlDown && KEY_C === keyCode) {\n return;\n }\n\n const cursorPosition = event.target.selectionStart;\n\n if (keyCode === BACKSPACE && cursorPosition - 1 < templateUrl.length) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (cursorPosition < templateUrl.length) {\n // If templateUrl is not empty and cursor is in the middle of it, we will prevent the event and not allow to modify the url.\n event.preventDefault();\n event.stopPropagation();\n }\n\n // If templateUrl is not empty and cursor is after it, the user can write any character into the url input.\n };\n\n $scope.onKeyUpInUrlInput = () => {\n extractExtraUrl();\n };\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Extracts manual user input from url input element.\n */\n const extractExtraUrl = () => {\n const templateUrl = calculateTemplateUrl();\n if (templateUrl) {\n if ($scope.formData.connectionInformation.url.startsWith(templateUrl)) {\n // If templateUrl is not empty and url input value starts with the templateUrl, the text entered by user is part after the templateUrl.\n $scope.formData.connectionInformation.urlUserInput = $scope.formData.connectionInformation.url.substring(templateUrl.length);\n } else {\n // If templateUrl is not empty and url input value don't start with the templateUrl, all url is entered by the user.\n $scope.formData.connectionInformation.urlUserInput = $scope.formData.connectionInformation.url;\n }\n } else {\n // If templateUrl is empty this means that chosen driver is generic or user is not filled hostname, port, or database name.\n // So all characters in url input are entered by user.\n $scope.formData.connectionInformation.urlUserInput = $scope.formData.connectionInformation.url;\n }\n };\n\n const calculateTemplateUrl = () => {\n if (OntopDriverData.isSnowflakeDriver($scope.selectedDriver.driverType)) {\n return calculateSnowflakeTemplateUrl();\n }\n return calculateDefaultTemplateUrl();\n };\n\n const calculateSnowflakeTemplateUrl = () => {\n let url = $scope.selectedDriver.urlTemplate;\n const connectionInformation = $scope.formData.connectionInformation;\n\n if (connectionInformation.hostName) {\n url = url.replace('{identifier}', connectionInformation.hostName);\n }\n\n if (connectionInformation.port) {\n url = url.replace('.snowflakecomputing.com/?', `.snowflakecomputing.com:${connectionInformation.port}/?`);\n }\n\n if (connectionInformation.databaseName) {\n url = url.replace('{database}', connectionInformation.databaseName);\n }\n return url;\n };\n\n const calculateDefaultTemplateUrl = () => {\n let url = $scope.selectedDriver.urlTemplate;\n const connectionInformation = $scope.formData.connectionInformation;\n if (connectionInformation.hostName) {\n if (connectionInformation.port) {\n url = url.replace('{hostport}', `${connectionInformation.hostName}:${connectionInformation.port}`);\n } else {\n url = url.replace('{hostport}', `${connectionInformation.hostName}`);\n }\n }\n if (connectionInformation.databaseName) {\n url = url.replace('{database}', connectionInformation.databaseName);\n }\n return url;\n };\n\n const loadSupportedDriversData = () => {\n return RepositoriesRestService.getSupportedDriversData($scope.repositoryInfo)\n .success((response) => {\n $scope.supportedDriversData = response;\n }).error((response) => {\n showErrorMsg($translate.instant('common.error'), response);\n });\n };\n\n const setLoading = (loading) => {\n $scope.formData.settings.ontopFiles.forEach((ontopFile) => {\n ontopFile.loading = loading;\n });\n };\n\n const loadPropertiesFile = () => {\n setLoading(true);\n RepositoriesRestService.loadPropertiesFile($scope.repositoryInfo.params.propertiesFile.value, $scope.repositoryInfo.location, $scope.selectedDriver.driverType)\n .success((driverData) => {\n let driver = $scope.supportedDriversData.find((driver) => driver.driverClass === driverData.driverClass);\n // If driver not found this means that driver is generic.\n // If the driver is found, but the data returned by the server does not contain a hostname,\n // it means that the driver class (which we support) is filled in as the driver class of a generic type.\n if (!driver || !driverData.hostName) {\n driver = $scope.supportedDriversData.find((driver) => OntopDriverData.isGenericDriver(driver.driverType));\n }\n $scope.selectDriver(driver.driverType);\n $scope.formData.connectionInformation.driverType = driver.driverType;\n $scope.formData.connectionInformation.driverClass = driverData.driverClass;\n $scope.formData.connectionInformation.password = driverData.password;\n $scope.formData.connectionInformation.username = driverData.userName;\n $scope.formData.connectionInformation.url = driverData.url;\n $scope.formData.settings.additionalProperties = driverData.additionalProperties;\n\n if (!OntopDriverData.isGenericDriver(driver.driverType)) {\n $scope.formData.connectionInformation.hostName = driverData.hostName;\n $scope.formData.connectionInformation.databaseName = driverData.databaseName;\n $scope.formData.connectionInformation.port = driverData.port ? parseInt(driverData.port, 10) : undefined;\n }\n\n extractExtraUrl();\n $scope.updateUrl();\n\n Object.values(OntopFileType)\n .forEach((ontopFileType) => {\n const ontopFileInfo = $scope.repositoryInfo.params[ontopFileType];\n const ontopFile = $scope.getOntopFileInfo(ontopFileType);\n if (ontopFileInfo) {\n ontopFile.fileName = getFileName(ontopFileInfo.value);\n }\n });\n $scope.currentOntopRepoInfo = _.cloneDeep($scope.formData);\n })\n .error((data) => {\n showErrorMsg($translate.instant('common.error'), data);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const updatePropertiesFile = () => {\n setLoading(true);\n const connectionInformation = $scope.formData.connectionInformation;\n\n const jdbc = {\n hostName: connectionInformation.hostName,\n port: connectionInformation.port,\n databaseName: connectionInformation.databaseName,\n userName: connectionInformation.username,\n password: connectionInformation.password,\n driverClass: connectionInformation.driverClass,\n url: connectionInformation.url,\n additionalProperties: $scope.formData.settings.additionalProperties,\n };\n\n return RepositoriesRestService\n .updatePropertiesFile($scope.repositoryInfo.params.propertiesFile.value, jdbc, $scope.repositoryInfo.location, $scope.selectedDriver.driverType)\n .success((data) => {\n $scope.repositoryInfo.params.propertiesFile.value = data.fileLocation;\n }).error((data) => {\n showErrorMsg($translate.instant('common.error'), data);\n })\n .finally(() => setLoading(false));\n };\n\n const showErrorMsg = (title, data) => {\n const msg = getError(data);\n toastr.error(msg, title);\n };\n\n const validateHostName = () => {\n if (!OntopDriverData.isGenericDriver($scope.selectedDriver.driverType)) {\n if (!$scope.formData.connectionInformation.hostName) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.host_name')})));\n }\n }\n return Promise.resolve();\n };\n\n const validateDatabaseName = () => {\n if (!OntopDriverData.isGenericDriver($scope.selectedDriver.driverType)) {\n if (!$scope.formData.connectionInformation.databaseName) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.database_name')})));\n }\n }\n return Promise.resolve();\n };\n\n const validateDriverClass = () => {\n if (!$scope.formData.connectionInformation.driverClass) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.driver_class')})));\n }\n return Promise.resolve();\n };\n\n const validateUrl = () => {\n if (!$scope.formData.connectionInformation.url) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.url')})));\n }\n return Promise.resolve();\n };\n\n const validateRepositoryId = () => {\n if (!$scope.repositoryInfo.id) {\n return Promise.reject(new OntopRepositoryError($translate.instant('empty.repoid.warning')));\n }\n return Promise.resolve();\n };\n\n const validateOntopFiles = () => {\n if (!$scope.getOntopFileInfo(OntopFileType.OBDA).fileName) {\n return Promise.reject(new OntopRepositoryError($translate.instant('ontop.repo.missing.required.file', {fileName: $scope.repositoryInfo.params[OntopFileType.OBDA].label})));\n }\n return Promise.resolve();\n };\n\n const validatePort = () => {\n if ($scope.selectedDriver.portRequired && !$scope.formData.connectionInformation.port) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.port')})));\n }\n return Promise.resolve();\n };\n\n const clearFormData = () => {\n $scope.formData = {\n connectionInformation: new OntopConnectionInformation(),\n settings: {\n additionalProperties: '',\n ontopFiles: [],\n },\n };\n\n Object.values(OntopFileType)\n .forEach((ontopFileType) => {\n const ontopFileInfo = new OntopFileInfo(ontopFileType);\n $scope.formData.settings.ontopFiles.push(ontopFileInfo);\n });\n\n $scope.getOntopFileInfo(OntopFileType.OBDA).required = true;\n };\n\n // =========================\n // Initialize component data\n // =========================\n loadSupportedDriversData()\n .then(() => {\n if ($scope.editRepoPage) {\n loadPropertiesFile();\n } else {\n $scope.selectDriver(JdbcDriverType.GENERIC);\n }\n });\n }\n}\n","export class OntopFileInfo {\n\n /**\n * Initializes ontop file info object.\n * @param {string} type - the type of ontop file. It's value have to be one of {@link OntopFileType};\n * @param {boolean} required - true if file is required.\n */\n constructor(type, required = false) {\n this.type = type;\n this.fileName = '';\n this.loading = false;\n this.required = required;\n }\n}\n","import {JdbcDriverType} from \"./jdbc-driver-type\";\n\nexport class OntopDriverData {\n constructor() {\n this.classAvailable = false;\n this.downloadDriverUrl = '';\n this.driverClass = '';\n this.driverName = '';\n this.driverType = '';\n this.portRequired = false;\n this.urlTemplate = '';\n }\n\n static isGenericDriver(type) {\n return type === JdbcDriverType.GENERIC;\n }\n\n static isSnowflakeDriver(type) {\n return type === JdbcDriverType.SNOWFLAKE;\n }\n}\n","export class OntopConnectionInformation {\n constructor(driverType = 'generic') {\n this.driverType = driverType;\n this.hostName = '';\n this.port = undefined;\n this.databaseName = '';\n this.username = '';\n this.password = '';\n this.driverClass = '';\n this.url = '';\n this.urlUserInput = '';\n }\n}\n","export const OntopFileType = {\n 'OBDA': 'obdaFile',\n 'OWL': 'owlFile',\n 'CONSTRAINT': 'constraintFile',\n 'LENSES': 'lensesFile',\n 'DB_METADATA': 'dbMetadataFile'\n};\n","export class OntopRepositoryError extends Error {\n}\n"],"names":["JdbcDriverType","logger","LoggerProvider","ontopRepoDirective","$uibModal","RepositoriesRestService","toastr","Upload","$translate","restrict","scope","templateUrl","link","$scope","isGenericDriver","defaultUrlTemplate","ontopProperiesLink","ontopFileType","OntopFileType","selectedDriver","OntopDriverData","supportedDriversData","formData","connectionInformation","OntopConnectionInformation","settings","additionalProperties","ontopFiles","selectDriver","driverType","find","driver","editRepoPage","currentOntopRepoInfo","_","cloneDeep","clearFormData","driverClass","updateUrl","getOntopFileInfo","ontopFileInfo","type","getHostNameLabel","hostNameLabel","isSnowflakeDriver","instant","getDatabaseNameLabel","dataBaseNameLabelKey","SNOWFLAKE","DATABRICKS","DREMIO","calculateTemplateUrl","url","urlUserInput","isTestConnectionDisabled","portRequired","port","hostName","databaseName","testConnection","validateHostName","then","validatePort","validateDatabaseName","validateDriverClass","validateUrl","updatePropertiesFile","validateOntopPropertiesConnection","repositoryInfo","success","catch","error","OntopRepositoryError","message","showErrorMsg","editFile","fileName","params","label","title","open","controller","windowClass","resolve","file","ontopFile","value","dialogTitle","location","result","data","updateRepositoryFileContent","fileLocation","content","getFileName","uploadOntopFile","files","length","uploadFile","loading","uploadData","upload","name","errorMessage","finally","updateOntopRepo","createOrUpdate","editRepository","createRepo","validateRepositoryId","validateOntopFiles","info","onKeyDownInUrlInput","event","keyCode","ctrlDown","ctrlKey","metaKey","cursorPosition","target","selectionStart","preventDefault","stopPropagation","onKeyUpInUrlInput","extractExtraUrl","startsWith","substring","calculateSnowflakeTemplateUrl","calculateDefaultTemplateUrl","urlTemplate","replace","setLoading","forEach","jdbc","userName","username","password","propertiesFile","msg","getError","Promise","reject","fieldName","id","OBDA","Object","values","OntopFileInfo","push","required","getSupportedDriversData","response","loadPropertiesFile","driverData","parseInt","undefined","GENERIC","angular","module","directive","$inject","constructor","this","classAvailable","downloadDriverUrl","driverName","Error"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- export const __webpack_id__=15535;export const __webpack_ids__=[15535];export const __webpack_modules__={15535:(e,t,s)=>{s.r(t),s.d(t,{default:()=>a});const a='<script type="text/ng-template" id="popover-content-user.html"> <h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul> <\/script> <script type="text/ng-template" id="popover-content-repo-manager.html"> <h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul> <\/script> <script type="text/ng-template" id="popover-content-admin.html"> <h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul> <\/script> <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.2.0-TR1" rel="stylesheet"/> <link href="css/user.css?v=3.2.0-TR1" rel="stylesheet"/> <h1> {{pageTitle}} <page-info-tooltip></page-info-tooltip> </h1> <div id="wb-user" class="wb-user" ng-hide="loader"> <form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate> <div class="row"> <div class="col-md-6 us-left-col"> <div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()"> <div class="card-block"> <h3>{{\'view.login.title\' | translate}}</h3> <div class="form-group" ng-class="{\'has-danger\': usernameError}"> <div class="input-group"> <span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><i class="fa-solid fa-user text-muted"></i></span> <input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'"> </div> <div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div> </div> <div class="form-group" ng-class="{\'has-danger\': passwordError}"> <div class="input-group"> <span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span> <input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password" ng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword"> <span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span> </div> <div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div> </div> <div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()"> <div class="input-group"> <span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span> <input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword"> </div> <div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div> </div> <div> <label class="d-block"> <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()"> <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span> <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span> </label> </div> </div> </div> <div class="card sparql-editor-settings" id="user-settings"> <div class="card-block"> <h3>{{\'security.user.settings\' | translate}}</h3> <div id="sameas-on" class="mb-1"> <span class="sameas-label"> {{\'security.expand.sameAs.is\' | translate}} <span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}"> {{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}} </span> </span> <span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top" ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS" class="switch mr-0"> <input id="sameAsCheck" type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_SAMEAS" ng-disabled="shouldDisableSameAs()"/> <label for="sameas-on"></label> </span> {{\'security.default.editor.graph\' | translate}} </div> <div id="inference-on" class="mb-1"> <span class="inference-label"> {{\'security.inference.is\' | translate}} <span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}"> {{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}} </span> </span> <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top" ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE" class="switch mr-0"> <input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/> <label for="inference-on"></label> </span> {{\'security.default.editor.graph\' | translate}} </div> <div id="schema-on" class="mb-1"> <span class="schema-label"> {{\'security.show.schema\' | translate}} <span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}"> {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}} </span> <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top" ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA" class="switch mr-0"> <input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/> <label for="schema-on"></label> </span> {{\'security.default.visual.graph\' | translate}} </span> </div> <label class="d-block"> <input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT"> {{\'security.count.total.results\' | translate}} </label> <label class="d-block"> <input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES"> {{\'security.ignore.shared.queries\' | translate}} </label> <label class="d-block" ng-if="showCookiePolicyLink"> <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button> </label> </div> </div> <div class="card" id="workbench-settings" ng-if="showWorkbenchSettings"> <div class="card-block"> <h3>{{\'security.workbench.settings.title\' | translate}} <em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3> <div> <div class="form-group"> <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label> <div class="btn-group theme-selector-dropdown" uib-dropdown> <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle> {{selectedTheme.label}} </button> <ul class="dropdown-menu" role="menu"> <li ng-repeat="theme in themes"> <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a> </li> </ul> </div> </div> <div class="form-group"> <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label> <div class="radio"> <label class="px-1"> <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/> {{\'security.workbench.settings.theme.mode.light\' | translate}} </label> <label class="px-1"> <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/> {{\'security.workbench.settings.theme.mode.dark\' | translate}} </label> </div> </div> </div> </div> </div> </div> <div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()"> <div class="card user-role" id="user-roles"> <div class="card-block"> <h3>{{\'security.user.role\' | translate}}</h3> <label class="mr-1" uib-popover-template="\'popover-content-user.html\'" popover-trigger="mouseenter" popover-placement="bottom"> <input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()"> {{\'security.user.label\' | translate}} </label> <label class="mr-1" uib-popover-template="\'popover-content-repo-manager.html\'" popover-trigger="mouseenter" popover-placement="bottom"> <input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()"> {{\'security.repo.manager.label\' | translate}} </label> <label uib-popover-template="\'popover-content-admin.html\'" popover-trigger="mouseenter" popover-placement="bottom"> <input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()"> {{\'security.admin.label\' | translate}} </label> </div> </div> <div class="card user-custom-roles" id="user-custom-roles"> <div class="card-block"> <h3>{{\'security.user.custom_role\' | translate}}</h3> <div class="input-group"> <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1" ng-disabled="!isUser() || mode === \'settings\'" use-strings="true" add-on-space="true" add-on-comma="true" add-on-paste="true" replace-spaces-with-dashes="false" paste-split-pattern="[\\s+]" on-tag-adding="isCustomRoleValid($tag)" on-tag-added="addCustomRole($tag)" ng-keydown="checkUserInput($event)" ng-cut="removeErrorOnCut()" placeholder="{{\'security.user.add.custom_role.msg\' | translate}}" custom-prefix-tags-input></tags-input> <div class="small" ng-hide="isRoleValid"> <small>{{\'security.user.role.too.short\' | translate}}</small> </div> <div class="small prefix-warning" ng-if="form.customRoleTag.$warning"> <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small> </div> </div> </div> </div> <div id="user-repos" class="card user-repositories"> <div class="card-block"> <h3>{{\'security.repo.rights\' | translate}}</h3> <div class="has-danger"> <p ng-show="repositoryCheckError" class="form-control-feedback"> {{\'security.user.rights\' | translate}} </p> </div> <div class="scrollable-table"> <table class="table table-hover table-sm table-fixed bordered-table" aria-describedby="User rights table"> <thead> <tr> <th id="repositoryIdColumn" class="repository-column auth-column">{{\'security.repository.title\' | translate}}</th> <th id="readRightsColumn" class="text-xs-center read-column auth-column"><span class="auth-column-label">{{\'security.label.read\' | translate}}</span><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th> <th id="writeRightColumn" class="text-xs-center write-column auth-column"><span class="auth-column-label">{{\'security.label.write\' | translate}}</span><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th> <th id="graphql" class="text-xs-center auth-column graphql-column"><span class="auth-column-label">{{\'security.label.graphql\' | translate}}</span></th> </tr> <tr> <th>{{\'security.any.data.repo\' | translate}} <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em> </th> <th class="text-xs-center"> <span ng-click="setGrantedAuthorities()"> <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')"> </span> </th> <th class="text-xs-center write-any"> <span ng-click="setGrantedAuthorities()"> <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')"> </span> </th> <th class="text-xs-center"> <span ng-click="setGrantedAuthorities()"> <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[\'*\']" ng-checked="hasGraphqlPermission(\'*\')" ng-disabled="graphqlCheckDisabled(\'*\')"> </span> </th> </tr> </thead> <tbody> <div> <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']"> <td class="repository-name">{{repository.id}}<small><em ng-if="(hasGraphqlPermission(repository) || hasGraphqlPermission(\'*\')) && (hasReadPermission(repository) || hasReadPermission(\'*\') || hasWritePermission(repository) || hasWritePermission(\'*\'))" class="fa-kit fa-gdb-graphql graphql-icon text-info" gdb-tooltip="{{\'security.tooltip.graphql\' | translate}}"></em> &middot; {{repository.location ? repository.location : \'repo.local\' | translate}}</small></td> <td class="text-xs-center read-rights"> <span ng-click="setGrantedAuthorities()"> <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)"> </span> </td> <td class="text-xs-center write-rights"> <span ng-click="setGrantedAuthorities()"> <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)"> </span> </td> <td class="text-xs-center graphql-rights"> <span ng-click="setGrantedAuthorities()"> <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[createUniqueKey(repository)]" ng-checked="hasGraphqlPermission(repository)" ng-disabled="graphqlCheckDisabled(repository)"> </span> </td> </tr> </div> </tbody> </table> </div> </div> </div> </div> </div> <div class="text-right"> <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button> <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button> </div> </form> </div> <div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div> '}};
2
- //# sourceMappingURL=15535.ce8d657c04f3401b9539.bundle.js.map
1
+ export const __webpack_id__=15535;export const __webpack_ids__=[15535];export const __webpack_modules__={15535:(e,t,s)=>{s.r(t),s.d(t,{default:()=>a});const a='<script type="text/ng-template" id="popover-content-user.html"> <h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul> <\/script> <script type="text/ng-template" id="popover-content-repo-manager.html"> <h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul> <\/script> <script type="text/ng-template" id="popover-content-admin.html"> <h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul> <\/script> <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.2.0-TR2" rel="stylesheet"/> <link href="css/user.css?v=3.2.0-TR2" rel="stylesheet"/> <h1> {{pageTitle}} <page-info-tooltip></page-info-tooltip> </h1> <div id="wb-user" class="wb-user" ng-hide="loader"> <form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate> <div class="row"> <div class="col-md-6 us-left-col"> <div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()"> <div class="card-block"> <h3>{{\'view.login.title\' | translate}}</h3> <div class="form-group" ng-class="{\'has-danger\': usernameError}"> <div class="input-group"> <span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><i class="fa-solid fa-user text-muted"></i></span> <input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'"> </div> <div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div> </div> <div class="form-group" ng-class="{\'has-danger\': passwordError}"> <div class="input-group"> <span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span> <input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password" ng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword"> <span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span> </div> <div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div> </div> <div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()"> <div class="input-group"> <span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span> <input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword"> </div> <div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div> </div> <div> <label class="d-block"> <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()"> <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span> <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span> </label> </div> </div> </div> <div class="card sparql-editor-settings" id="user-settings"> <div class="card-block"> <h3>{{\'security.user.settings\' | translate}}</h3> <div id="sameas-on" class="mb-1"> <span class="sameas-label"> {{\'security.expand.sameAs.is\' | translate}} <span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}"> {{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}} </span> </span> <span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top" ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS" class="switch mr-0"> <input id="sameAsCheck" type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_SAMEAS" ng-disabled="shouldDisableSameAs()"/> <label for="sameas-on"></label> </span> {{\'security.default.editor.graph\' | translate}} </div> <div id="inference-on" class="mb-1"> <span class="inference-label"> {{\'security.inference.is\' | translate}} <span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}"> {{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}} </span> </span> <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top" ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE" class="switch mr-0"> <input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/> <label for="inference-on"></label> </span> {{\'security.default.editor.graph\' | translate}} </div> <div id="schema-on" class="mb-1"> <span class="schema-label"> {{\'security.show.schema\' | translate}} <span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}"> {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}} </span> <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top" ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA" class="switch mr-0"> <input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/> <label for="schema-on"></label> </span> {{\'security.default.visual.graph\' | translate}} </span> </div> <label class="d-block"> <input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT"> {{\'security.count.total.results\' | translate}} </label> <label class="d-block"> <input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES"> {{\'security.ignore.shared.queries\' | translate}} </label> <label class="d-block" ng-if="showCookiePolicyLink"> <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button> </label> </div> </div> <div class="card" id="workbench-settings" ng-if="showWorkbenchSettings"> <div class="card-block"> <h3>{{\'security.workbench.settings.title\' | translate}} <em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3> <div> <div class="form-group"> <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label> <div class="btn-group theme-selector-dropdown" uib-dropdown> <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle> {{selectedTheme.label}} </button> <ul class="dropdown-menu" role="menu"> <li ng-repeat="theme in themes"> <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a> </li> </ul> </div> </div> <div class="form-group"> <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label> <div class="radio"> <label class="px-1"> <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/> {{\'security.workbench.settings.theme.mode.light\' | translate}} </label> <label class="px-1"> <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/> {{\'security.workbench.settings.theme.mode.dark\' | translate}} </label> </div> </div> </div> </div> </div> </div> <div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()"> <div class="card user-role" id="user-roles"> <div class="card-block"> <h3>{{\'security.user.role\' | translate}}</h3> <label class="mr-1" uib-popover-template="\'popover-content-user.html\'" popover-trigger="mouseenter" popover-placement="bottom"> <input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()"> {{\'security.user.label\' | translate}} </label> <label class="mr-1" uib-popover-template="\'popover-content-repo-manager.html\'" popover-trigger="mouseenter" popover-placement="bottom"> <input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()"> {{\'security.repo.manager.label\' | translate}} </label> <label uib-popover-template="\'popover-content-admin.html\'" popover-trigger="mouseenter" popover-placement="bottom"> <input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()"> {{\'security.admin.label\' | translate}} </label> </div> </div> <div class="card user-custom-roles" id="user-custom-roles"> <div class="card-block"> <h3>{{\'security.user.custom_role\' | translate}}</h3> <div class="input-group"> <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1" ng-disabled="!isUser() || mode === \'settings\'" use-strings="true" add-on-space="true" add-on-comma="true" add-on-paste="true" replace-spaces-with-dashes="false" paste-split-pattern="[\\s+]" on-tag-adding="isCustomRoleValid($tag)" on-tag-added="addCustomRole($tag)" ng-keydown="checkUserInput($event)" ng-cut="removeErrorOnCut()" placeholder="{{\'security.user.add.custom_role.msg\' | translate}}" custom-prefix-tags-input></tags-input> <div class="small" ng-hide="isRoleValid"> <small>{{\'security.user.role.too.short\' | translate}}</small> </div> <div class="small prefix-warning" ng-if="form.customRoleTag.$warning"> <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small> </div> </div> </div> </div> <div id="user-repos" class="card user-repositories"> <div class="card-block"> <h3>{{\'security.repo.rights\' | translate}}</h3> <div class="has-danger"> <p ng-show="repositoryCheckError" class="form-control-feedback"> {{\'security.user.rights\' | translate}} </p> </div> <div class="scrollable-table"> <table class="table table-hover table-sm table-fixed bordered-table" aria-describedby="User rights table"> <thead> <tr> <th id="repositoryIdColumn" class="repository-column auth-column">{{\'security.repository.title\' | translate}}</th> <th id="readRightsColumn" class="text-xs-center read-column auth-column"><span class="auth-column-label">{{\'security.label.read\' | translate}}</span><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th> <th id="writeRightColumn" class="text-xs-center write-column auth-column"><span class="auth-column-label">{{\'security.label.write\' | translate}}</span><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th> <th id="graphql" class="text-xs-center auth-column graphql-column"><span class="auth-column-label">{{\'security.label.graphql\' | translate}}</span></th> </tr> <tr> <th>{{\'security.any.data.repo\' | translate}} <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em> </th> <th class="text-xs-center"> <span ng-click="setGrantedAuthorities()"> <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')"> </span> </th> <th class="text-xs-center write-any"> <span ng-click="setGrantedAuthorities()"> <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')"> </span> </th> <th class="text-xs-center"> <span ng-click="setGrantedAuthorities()"> <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[\'*\']" ng-checked="hasGraphqlPermission(\'*\')" ng-disabled="graphqlCheckDisabled(\'*\')"> </span> </th> </tr> </thead> <tbody> <div> <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']"> <td class="repository-name">{{repository.id}}<small><em ng-if="(hasGraphqlPermission(repository) || hasGraphqlPermission(\'*\')) && (hasReadPermission(repository) || hasReadPermission(\'*\') || hasWritePermission(repository) || hasWritePermission(\'*\'))" class="fa-kit fa-gdb-graphql graphql-icon text-info" gdb-tooltip="{{\'security.tooltip.graphql\' | translate}}"></em> &middot; {{repository.location ? repository.location : \'repo.local\' | translate}}</small></td> <td class="text-xs-center read-rights"> <span ng-click="setGrantedAuthorities()"> <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)"> </span> </td> <td class="text-xs-center write-rights"> <span ng-click="setGrantedAuthorities()"> <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)"> </span> </td> <td class="text-xs-center graphql-rights"> <span ng-click="setGrantedAuthorities()"> <input class="graphql" type="checkbox" ng-model="grantedAuthorities.GRAPHQL[createUniqueKey(repository)]" ng-checked="hasGraphqlPermission(repository)" ng-disabled="graphqlCheckDisabled(repository)"> </span> </td> </tr> </div> </tbody> </table> </div> </div> </div> </div> </div> <div class="text-right"> <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button> <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button> </div> </form> </div> <div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div> '}};
2
+ //# sourceMappingURL=15535.7b170e17ee0a58970ab6.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"15535.ce8d657c04f3401b9539.bundle.js","mappings":"uJAwBA,QAvBW,+vc","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/security/templates/user.html"],"sourcesContent":["// Module\nvar code = `${\"<\" + \"script\"} type=\"text/ng-template\" id=\"popover-content-user.html\"> <h5>{{'security.user.may' | translate}}</h5>\n\t<ul>\n <li>{{'security.use.gdb' | translate}}</li>\n\t <li>{{'security.grant.read.access' | translate}}</li>\n\t\t<li>{{'security.grant.read.write.access' | translate}}</li>\n </ul> ${\"<\" + \"/script\"}> ${\"<\" + \"script\"} type=\"text/ng-template\" id=\"popover-content-repo-manager.html\"> <h5>{{'security.repo.manager.may' | translate}}</h5>\n\t<ul>\n\t\t<li>{{'security.use.gdb' | translate}}</li>\n\t\t<li>{{'security.read.write.all.repos' | translate}}</li>\n\t\t<li>{{'security.create.edit.delete.repos' | translate}}</li>\n\t\t<li>{{'security.access.monitoring' | translate}}</li>\n\t</ul> ${\"<\" + \"/script\"}> ${\"<\" + \"script\"} type=\"text/ng-template\" id=\"popover-content-admin.html\"> <h5>{{'security.admin.may' | translate}}</h5>\n\t<ul>\n\t\t<li>{{'security.use.gdb' | translate}}</li>\n\t\t<li>{{'security.read.write.all.repos' | translate}}</li>\n\t\t<li>{{'security.create.edit.delete.repos' | translate}}</li>\n\t\t<li>{{'security.access.monitoring' | translate}}</li>\n\t\t<li>{{'security.attach.remote.locations' | translate}}</li>\n\t\t<li>{{'security.manage.users.access' | translate}}</li>\n\t\t<li>{{'security.manage.cluster' | translate}}</li>\n\t\t<li>{{'security.view.sys.info' | translate}}</li>\n\t</ul> ${\"<\" + \"/script\"}> <link href=\"css/lib/ng-tags-input/ng-tags-input.min.css?v=3.2.0-TR1\" rel=\"stylesheet\"/> <link href=\"css/user.css?v=3.2.0-TR1\" rel=\"stylesheet\"/> <h1> {{pageTitle}} <page-info-tooltip></page-info-tooltip> </h1> <div id=\"wb-user\" class=\"wb-user\" ng-hide=\"loader\"> <form name=\"form\" class=\"form newUserForm userForm editUserContainer\" ng-submit=\"submit()\" novalidate> <div class=\"row\"> <div class=\"col-md-6 us-left-col\"> <div class=\"card login-credentials\" ng-hide=\"isOverrideAuth() || !isLocalAuthentication()\"> <div class=\"card-block\"> <h3>{{'view.login.title' | translate}}</h3> <div class=\"form-group\" ng-class=\"{'has-danger': usernameError}\"> <div class=\"input-group\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{'security.table.username' | translate}}\"><i class=\"fa-solid fa-user text-muted\"></i></span> <input id=\"wb-user-username\" placeholder=\"{{'security.table.username' | translate}}\" name=\"username\" class=\"form-control form-control-lg\" type=\"text\" ng-model=\"user.username\" ng-readonly=\"mode !== 'add'\"> </div> <div ng-show=\"usernameError\" class=\"form-control-feedback\">{{usernameError}}</div> </div> <div class=\"form-group\" ng-class=\"{'has-danger': passwordError}\"> <div class=\"input-group\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{'security.password.placeholder' | translate}}\"><em class=\"icon-lock icon-2x text-muted\"></em></span> <input id=\"wb-user-password\" placeholder=\"{{passwordPlaceholder | translate}}\" name=\"password\" class=\"form-control form-control-lg\" type=\"password\" ng-model=\"user.password\" ng-hide=\"user.external || hasExternalAuthUser()\" ng-readonly=\"noPassword\"> <span ng-show=\"user.external || hasExternalAuthUser()\">{{'security.auth.from.external.module' | translate}}</span> </div> <div ng-show=\"passwordError\" class=\"form-control-feedback\">{{passwordError}}</div> </div> <div class=\"form-group\" ng-class=\"{'has-danger': confirmPasswordError}\" ng-hide=\"user.external || hasExternalAuthUser()\"> <div class=\"input-group\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{'security.password.confirm' | translate}}\"><em class=\"icon-lock icon-2x text-muted\"></em></span> <input id=\"wb-user-confirmpassword\" placeholder=\"{{'security.password.confirm' | translate}}\" name=\"password_confirm\" class=\"form-control form-control-lg\" type=\"password\" ng-model=\"user.confirmpassword\" ng-readonly=\"noPassword\"> </div> <div ng-show=\"confirmPasswordError\" class=\"form-control-feedback\">{{confirmPasswordError}}</div> </div> <div> <label class=\"d-block\"> <input type=\"checkbox\" id=\"noPassword\" ng-model=\"noPassword\" ng-change=\"setNoPassword()\"> <span ng-show=\"mode === 'add'\">{{'security.dont.set.password' | translate}} </span> <span ng-show=\"mode !== 'add'\">{{'security.unset.password' | translate}} </span> </label> </div> </div> </div> <div class=\"card sparql-editor-settings\" id=\"user-settings\"> <div class=\"card-block\"> <h3>{{'security.user.settings' | translate}}</h3> <div id=\"sameas-on\" class=\"mb-1\"> <span class=\"sameas-label\"> {{'security.expand.sameAs.is' | translate}} <span class=\"tag {{user.appSettings.DEFAULT_SAMEAS ? 'tag-primary' : 'tag-default'}}\"> {{user.appSettings.DEFAULT_SAMEAS ? 'common.on.btn' : 'common.off.btn' | translate}} </span> </span> <span gdb-tooltip=\"{{shouldDisableSameAs() ? 'core.require.inferred' : 'security.tooltip.click.me' | translate}}\" tooltip-placement=\"top\" ng-click=\"user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS\" class=\"switch mr-0\"> <input id=\"sameAsCheck\" type=\"checkbox\" class=\"switch\" ng-checked=\"user.appSettings.DEFAULT_SAMEAS\" ng-disabled=\"shouldDisableSameAs()\"/> <label for=\"sameas-on\"></label> </span> {{'security.default.editor.graph' | translate}} </div> <div id=\"inference-on\" class=\"mb-1\"> <span class=\"inference-label\"> {{'security.inference.is' | translate}} <span class=\"tag {{user.appSettings.DEFAULT_INFERENCE ? 'tag-primary' : 'tag-default'}}\"> {{user.appSettings.DEFAULT_INFERENCE ? 'common.on.btn' : 'common.off.btn' | translate}} </span> </span> <span gdb-tooltip=\"{{'security.tooltip.click.me' | translate}}\" tooltip-placement=\"top\" ng-click=\"user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE\" class=\"switch mr-0\"> <input type=\"checkbox\" class=\"switch\" ng-checked=\"user.appSettings.DEFAULT_INFERENCE\"/> <label for=\"inference-on\"></label> </span> {{'security.default.editor.graph' | translate}} </div> <div id=\"schema-on\" class=\"mb-1\"> <span class=\"schema-label\"> {{'security.show.schema' | translate}} <span class=\"tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? 'tag-primary' : 'tag-default'}}\"> {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? 'common.on.btn' : 'common.off.btn' | translate}} </span> <span gdb-tooltip=\"{{'security.tooltip.click.me' | translate}}\" tooltip-placement=\"top\" ng-click=\"user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA\" class=\"switch mr-0\"> <input type=\"checkbox\" class=\"switch\" ng-checked=\"user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA\"/> <label for=\"schema-on\"></label> </span> {{'security.default.visual.graph' | translate}} </span> </div> <label class=\"d-block\"> <input type=\"checkbox\" ng-model=\"user.appSettings.EXECUTE_COUNT\" id=\"defaultCount\" checked=\"appSettings.EXECUTE_COUNT\"> {{'security.count.total.results' | translate}} </label> <label class=\"d-block\"> <input type=\"checkbox\" ng-model=\"user.appSettings.IGNORE_SHARED_QUERIES\" id=\"ignore-shared\" checked=\"appSettings.IGNORE_SHARED_QUERIES\"> {{'security.ignore.shared.queries' | translate}} </label> <label class=\"d-block\" ng-if=\"showCookiePolicyLink\"> <button class=\"btn btn-secondary show-cookie-policy-btn\" ng-click=\"showCookiePolicy(\\$event)\">{{'cookie.cookie_policy_url_label' | translate}}</button> </label> </div> </div> <div class=\"card\" id=\"workbench-settings\" ng-if=\"showWorkbenchSettings\"> <div class=\"card-block\"> <h3>{{'security.workbench.settings.title' | translate}} <em class=\"icon-info text-tertiary small\" gdb-tooltip=\"{{'security.workbench.settings.theme.tooltip' | translate}}\"></em></h3> <div> <div class=\"form-group\"> <label class=\"col-lg-2\">{{'security.workbench.settings.theme.label' | translate}}</label> <div class=\"btn-group theme-selector-dropdown\" uib-dropdown> <button type=\"button\" class=\"btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn\" uib-dropdown-toggle> {{selectedTheme.label}} </button> <ul class=\"dropdown-menu\" role=\"menu\"> <li ng-repeat=\"theme in themes\"> <a ng-click=\"setTheme(theme)\" class=\"dropdown-item\">{{theme.label}}</a> </li> </ul> </div> </div> <div class=\"form-group\"> <label class=\"col-lg-2\">{{'security.workbench.settings.theme.mode.label' | translate}}</label> <div class=\"radio\"> <label class=\"px-1\"> <input type=\"radio\" value=\"light\" ng-model=\"workbenchSettings.mode\" ng-change=\"setThemeMode()\"/> {{'security.workbench.settings.theme.mode.light' | translate}} </label> <label class=\"px-1\"> <input type=\"radio\" value=\"dark\" ng-model=\"workbenchSettings.mode\" ng-change=\"setThemeMode()\"/> {{'security.workbench.settings.theme.mode.dark' | translate}} </label> </div> </div> </div> </div> </div> </div> <div class=\"col-md-6 us-right-col\" ng-hide=\"!isLocalAuthentication()\"> <div class=\"card user-role\" id=\"user-roles\"> <div class=\"card-block\"> <h3>{{'security.user.role' | translate}}</h3> <label class=\"mr-1\" uib-popover-template=\"'popover-content-user.html'\" popover-trigger=\"mouseenter\" popover-placement=\"bottom\"> <input type=\"radio\" ng-model=\"userType\" id=\"roleUser\" value=\"user\" ng-disabled=\"hasEditRestrictions()\"> {{'security.user.label' | translate}} </label> <label class=\"mr-1\" uib-popover-template=\"'popover-content-repo-manager.html'\" popover-trigger=\"mouseenter\" popover-placement=\"bottom\"> <input type=\"radio\" ng-model=\"userType\" id=\"roleRepoAdmin\" value=\"repoManager\" ng-disabled=\"hasEditRestrictions()\"> {{'security.repo.manager.label' | translate}} </label> <label uib-popover-template=\"'popover-content-admin.html'\" popover-trigger=\"mouseenter\" popover-placement=\"bottom\"> <input type=\"radio\" ng-model=\"userType\" id=\"roleAdmin\" value=\"admin\" ng-disabled=\"hasEditRestrictions()\"> {{'security.admin.label' | translate}} </label> </div> </div> <div class=\"card user-custom-roles\" id=\"user-custom-roles\"> <div class=\"card-block\"> <h3>{{'security.user.custom_role' | translate}}</h3> <div class=\"input-group\"> <tags-input name=\"customRoleTag\" class=\"wb-tags-input\" ng-model=\"customRoles\" min-length=\"1\" ng-disabled=\"!isUser() || mode === 'settings'\" use-strings=\"true\" add-on-space=\"true\" add-on-comma=\"true\" add-on-paste=\"true\" replace-spaces-with-dashes=\"false\" paste-split-pattern=\"[\\\\s+]\" on-tag-adding=\"isCustomRoleValid(\\$tag)\" on-tag-added=\"addCustomRole(\\$tag)\" ng-keydown=\"checkUserInput(\\$event)\" ng-cut=\"removeErrorOnCut()\" placeholder=\"{{'security.user.add.custom_role.msg' | translate}}\" custom-prefix-tags-input></tags-input> <div class=\"small\" ng-hide=\"isRoleValid\"> <small>{{'security.user.role.too.short' | translate}}</small> </div> <div class=\"small prefix-warning\" ng-if=\"form.customRoleTag.\\$warning\"> <small>{{'acl_management.rulestable.custom_prefix_warning.text' | translate}}</small> </div> </div> </div> </div> <div id=\"user-repos\" class=\"card user-repositories\"> <div class=\"card-block\"> <h3>{{'security.repo.rights' | translate}}</h3> <div class=\"has-danger\"> <p ng-show=\"repositoryCheckError\" class=\"form-control-feedback\"> {{'security.user.rights' | translate}} </p> </div> <div class=\"scrollable-table\"> <table class=\"table table-hover table-sm table-fixed bordered-table\" aria-describedby=\"User rights table\"> <thead> <tr> <th id=\"repositoryIdColumn\" class=\"repository-column auth-column\">{{'security.repository.title' | translate}}</th> <th id=\"readRightsColumn\" class=\"text-xs-center read-column auth-column\"><span class=\"auth-column-label\">{{'security.label.read' | translate}}</span><em class=\"icon-eye icon-lg\" gdb-tooltip=\"{{'security.tooltip.read' | translate}}\"></em></th> <th id=\"writeRightColumn\" class=\"text-xs-center write-column auth-column\"><span class=\"auth-column-label\">{{'security.label.write' | translate}}</span><em class=\"icon-edit icon-lg\" gdb-tooltip=\"{{'security.tooltip.write' | translate}}\"></em></th> <th id=\"graphql\" class=\"text-xs-center auth-column graphql-column\"><span class=\"auth-column-label\">{{'security.label.graphql' | translate}}</span></th> </tr> <tr> <th>{{'security.any.data.repo' | translate}} <em class=\"icon-info text-tertiary\" gdb-tooltip=\"{{'security.data.repos' | translate}}\"></em> </th> <th class=\"text-xs-center\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"read\" type=\"checkbox\" ng-model=\"grantedAuthorities.READ_REPO['*']\" ng-checked=\"hasReadPermission('*')\" ng-disabled=\"readCheckDisabled('*')\"> </span> </th> <th class=\"text-xs-center write-any\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"write\" type=\"checkbox\" ng-model=\"grantedAuthorities.WRITE_REPO['*']\" ng-checked=\"hasWritePermission('*')\" ng-disabled=\"writeCheckDisabled('*')\"> </span> </th> <th class=\"text-xs-center\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"graphql\" type=\"checkbox\" ng-model=\"grantedAuthorities.GRAPHQL['*']\" ng-checked=\"hasGraphqlPermission('*')\" ng-disabled=\"graphqlCheckDisabled('*')\"> </span> </th> </tr> </thead> <tbody> <div> <tr ng-repeat=\"repository in getReadableRepositories() | orderBy: ['location', 'id']\"> <td class=\"repository-name\">{{repository.id}}<small><em ng-if=\"(hasGraphqlPermission(repository) || hasGraphqlPermission('*')) && (hasReadPermission(repository) || hasReadPermission('*') || hasWritePermission(repository) || hasWritePermission('*'))\" class=\"fa-kit fa-gdb-graphql graphql-icon text-info\" gdb-tooltip=\"{{'security.tooltip.graphql' | translate}}\"></em> &middot; {{repository.location ? repository.location : 'repo.local' | translate}}</small></td> <td class=\"text-xs-center read-rights\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"read\" type=\"checkbox\" ng-model=\"grantedAuthorities.READ_REPO[createUniqueKey(repository)]\" ng-checked=\"hasReadPermission(repository)\" ng-disabled=\"readCheckDisabled(repository)\"> </span> </td> <td class=\"text-xs-center write-rights\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"write\" type=\"checkbox\" ng-model=\"grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]\" ng-checked=\"hasWritePermission(repository)\" ng-disabled=\"writeCheckDisabled(repository)\"> </span> </td> <td class=\"text-xs-center graphql-rights\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"graphql\" type=\"checkbox\" ng-model=\"grantedAuthorities.GRAPHQL[createUniqueKey(repository)]\" ng-checked=\"hasGraphqlPermission(repository)\" ng-disabled=\"graphqlCheckDisabled(repository)\"> </span> </td> </tr> </div> </tbody> </table> </div> </div> </div> </div> </div> <div class=\"text-right\"> <button id=\"wb-user-goBack\" class=\"btn btn-secondary\" type=\"button\" ng-click=\"goBack()\">{{'common.cancel.btn' | translate}}</button> <button id=\"wb-user-submit\" class=\"btn btn-primary\" type=\"submit\" ng-disabled=\"!isRoleValid\">{{saveButtonText}}</button> </div> </form> </div> <div class=\"ot-loader ot-main-loader\" onto-loader size=\"50\" ng-show=\"loader\"></div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"15535.7b170e17ee0a58970ab6.bundle.js","mappings":"uJAwBA,QAvBW,+vc","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/security/templates/user.html"],"sourcesContent":["// Module\nvar code = `${\"<\" + \"script\"} type=\"text/ng-template\" id=\"popover-content-user.html\"> <h5>{{'security.user.may' | translate}}</h5>\n\t<ul>\n <li>{{'security.use.gdb' | translate}}</li>\n\t <li>{{'security.grant.read.access' | translate}}</li>\n\t\t<li>{{'security.grant.read.write.access' | translate}}</li>\n </ul> ${\"<\" + \"/script\"}> ${\"<\" + \"script\"} type=\"text/ng-template\" id=\"popover-content-repo-manager.html\"> <h5>{{'security.repo.manager.may' | translate}}</h5>\n\t<ul>\n\t\t<li>{{'security.use.gdb' | translate}}</li>\n\t\t<li>{{'security.read.write.all.repos' | translate}}</li>\n\t\t<li>{{'security.create.edit.delete.repos' | translate}}</li>\n\t\t<li>{{'security.access.monitoring' | translate}}</li>\n\t</ul> ${\"<\" + \"/script\"}> ${\"<\" + \"script\"} type=\"text/ng-template\" id=\"popover-content-admin.html\"> <h5>{{'security.admin.may' | translate}}</h5>\n\t<ul>\n\t\t<li>{{'security.use.gdb' | translate}}</li>\n\t\t<li>{{'security.read.write.all.repos' | translate}}</li>\n\t\t<li>{{'security.create.edit.delete.repos' | translate}}</li>\n\t\t<li>{{'security.access.monitoring' | translate}}</li>\n\t\t<li>{{'security.attach.remote.locations' | translate}}</li>\n\t\t<li>{{'security.manage.users.access' | translate}}</li>\n\t\t<li>{{'security.manage.cluster' | translate}}</li>\n\t\t<li>{{'security.view.sys.info' | translate}}</li>\n\t</ul> ${\"<\" + \"/script\"}> <link href=\"css/lib/ng-tags-input/ng-tags-input.min.css?v=3.2.0-TR2\" rel=\"stylesheet\"/> <link href=\"css/user.css?v=3.2.0-TR2\" rel=\"stylesheet\"/> <h1> {{pageTitle}} <page-info-tooltip></page-info-tooltip> </h1> <div id=\"wb-user\" class=\"wb-user\" ng-hide=\"loader\"> <form name=\"form\" class=\"form newUserForm userForm editUserContainer\" ng-submit=\"submit()\" novalidate> <div class=\"row\"> <div class=\"col-md-6 us-left-col\"> <div class=\"card login-credentials\" ng-hide=\"isOverrideAuth() || !isLocalAuthentication()\"> <div class=\"card-block\"> <h3>{{'view.login.title' | translate}}</h3> <div class=\"form-group\" ng-class=\"{'has-danger': usernameError}\"> <div class=\"input-group\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{'security.table.username' | translate}}\"><i class=\"fa-solid fa-user text-muted\"></i></span> <input id=\"wb-user-username\" placeholder=\"{{'security.table.username' | translate}}\" name=\"username\" class=\"form-control form-control-lg\" type=\"text\" ng-model=\"user.username\" ng-readonly=\"mode !== 'add'\"> </div> <div ng-show=\"usernameError\" class=\"form-control-feedback\">{{usernameError}}</div> </div> <div class=\"form-group\" ng-class=\"{'has-danger': passwordError}\"> <div class=\"input-group\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{'security.password.placeholder' | translate}}\"><em class=\"icon-lock icon-2x text-muted\"></em></span> <input id=\"wb-user-password\" placeholder=\"{{passwordPlaceholder | translate}}\" name=\"password\" class=\"form-control form-control-lg\" type=\"password\" ng-model=\"user.password\" ng-hide=\"user.external || hasExternalAuthUser()\" ng-readonly=\"noPassword\"> <span ng-show=\"user.external || hasExternalAuthUser()\">{{'security.auth.from.external.module' | translate}}</span> </div> <div ng-show=\"passwordError\" class=\"form-control-feedback\">{{passwordError}}</div> </div> <div class=\"form-group\" ng-class=\"{'has-danger': confirmPasswordError}\" ng-hide=\"user.external || hasExternalAuthUser()\"> <div class=\"input-group\"> <span class=\"input-group-addon\" gdb-tooltip=\"{{'security.password.confirm' | translate}}\"><em class=\"icon-lock icon-2x text-muted\"></em></span> <input id=\"wb-user-confirmpassword\" placeholder=\"{{'security.password.confirm' | translate}}\" name=\"password_confirm\" class=\"form-control form-control-lg\" type=\"password\" ng-model=\"user.confirmpassword\" ng-readonly=\"noPassword\"> </div> <div ng-show=\"confirmPasswordError\" class=\"form-control-feedback\">{{confirmPasswordError}}</div> </div> <div> <label class=\"d-block\"> <input type=\"checkbox\" id=\"noPassword\" ng-model=\"noPassword\" ng-change=\"setNoPassword()\"> <span ng-show=\"mode === 'add'\">{{'security.dont.set.password' | translate}} </span> <span ng-show=\"mode !== 'add'\">{{'security.unset.password' | translate}} </span> </label> </div> </div> </div> <div class=\"card sparql-editor-settings\" id=\"user-settings\"> <div class=\"card-block\"> <h3>{{'security.user.settings' | translate}}</h3> <div id=\"sameas-on\" class=\"mb-1\"> <span class=\"sameas-label\"> {{'security.expand.sameAs.is' | translate}} <span class=\"tag {{user.appSettings.DEFAULT_SAMEAS ? 'tag-primary' : 'tag-default'}}\"> {{user.appSettings.DEFAULT_SAMEAS ? 'common.on.btn' : 'common.off.btn' | translate}} </span> </span> <span gdb-tooltip=\"{{shouldDisableSameAs() ? 'core.require.inferred' : 'security.tooltip.click.me' | translate}}\" tooltip-placement=\"top\" ng-click=\"user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS\" class=\"switch mr-0\"> <input id=\"sameAsCheck\" type=\"checkbox\" class=\"switch\" ng-checked=\"user.appSettings.DEFAULT_SAMEAS\" ng-disabled=\"shouldDisableSameAs()\"/> <label for=\"sameas-on\"></label> </span> {{'security.default.editor.graph' | translate}} </div> <div id=\"inference-on\" class=\"mb-1\"> <span class=\"inference-label\"> {{'security.inference.is' | translate}} <span class=\"tag {{user.appSettings.DEFAULT_INFERENCE ? 'tag-primary' : 'tag-default'}}\"> {{user.appSettings.DEFAULT_INFERENCE ? 'common.on.btn' : 'common.off.btn' | translate}} </span> </span> <span gdb-tooltip=\"{{'security.tooltip.click.me' | translate}}\" tooltip-placement=\"top\" ng-click=\"user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE\" class=\"switch mr-0\"> <input type=\"checkbox\" class=\"switch\" ng-checked=\"user.appSettings.DEFAULT_INFERENCE\"/> <label for=\"inference-on\"></label> </span> {{'security.default.editor.graph' | translate}} </div> <div id=\"schema-on\" class=\"mb-1\"> <span class=\"schema-label\"> {{'security.show.schema' | translate}} <span class=\"tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? 'tag-primary' : 'tag-default'}}\"> {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? 'common.on.btn' : 'common.off.btn' | translate}} </span> <span gdb-tooltip=\"{{'security.tooltip.click.me' | translate}}\" tooltip-placement=\"top\" ng-click=\"user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA\" class=\"switch mr-0\"> <input type=\"checkbox\" class=\"switch\" ng-checked=\"user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA\"/> <label for=\"schema-on\"></label> </span> {{'security.default.visual.graph' | translate}} </span> </div> <label class=\"d-block\"> <input type=\"checkbox\" ng-model=\"user.appSettings.EXECUTE_COUNT\" id=\"defaultCount\" checked=\"appSettings.EXECUTE_COUNT\"> {{'security.count.total.results' | translate}} </label> <label class=\"d-block\"> <input type=\"checkbox\" ng-model=\"user.appSettings.IGNORE_SHARED_QUERIES\" id=\"ignore-shared\" checked=\"appSettings.IGNORE_SHARED_QUERIES\"> {{'security.ignore.shared.queries' | translate}} </label> <label class=\"d-block\" ng-if=\"showCookiePolicyLink\"> <button class=\"btn btn-secondary show-cookie-policy-btn\" ng-click=\"showCookiePolicy(\\$event)\">{{'cookie.cookie_policy_url_label' | translate}}</button> </label> </div> </div> <div class=\"card\" id=\"workbench-settings\" ng-if=\"showWorkbenchSettings\"> <div class=\"card-block\"> <h3>{{'security.workbench.settings.title' | translate}} <em class=\"icon-info text-tertiary small\" gdb-tooltip=\"{{'security.workbench.settings.theme.tooltip' | translate}}\"></em></h3> <div> <div class=\"form-group\"> <label class=\"col-lg-2\">{{'security.workbench.settings.theme.label' | translate}}</label> <div class=\"btn-group theme-selector-dropdown\" uib-dropdown> <button type=\"button\" class=\"btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn\" uib-dropdown-toggle> {{selectedTheme.label}} </button> <ul class=\"dropdown-menu\" role=\"menu\"> <li ng-repeat=\"theme in themes\"> <a ng-click=\"setTheme(theme)\" class=\"dropdown-item\">{{theme.label}}</a> </li> </ul> </div> </div> <div class=\"form-group\"> <label class=\"col-lg-2\">{{'security.workbench.settings.theme.mode.label' | translate}}</label> <div class=\"radio\"> <label class=\"px-1\"> <input type=\"radio\" value=\"light\" ng-model=\"workbenchSettings.mode\" ng-change=\"setThemeMode()\"/> {{'security.workbench.settings.theme.mode.light' | translate}} </label> <label class=\"px-1\"> <input type=\"radio\" value=\"dark\" ng-model=\"workbenchSettings.mode\" ng-change=\"setThemeMode()\"/> {{'security.workbench.settings.theme.mode.dark' | translate}} </label> </div> </div> </div> </div> </div> </div> <div class=\"col-md-6 us-right-col\" ng-hide=\"!isLocalAuthentication()\"> <div class=\"card user-role\" id=\"user-roles\"> <div class=\"card-block\"> <h3>{{'security.user.role' | translate}}</h3> <label class=\"mr-1\" uib-popover-template=\"'popover-content-user.html'\" popover-trigger=\"mouseenter\" popover-placement=\"bottom\"> <input type=\"radio\" ng-model=\"userType\" id=\"roleUser\" value=\"user\" ng-disabled=\"hasEditRestrictions()\"> {{'security.user.label' | translate}} </label> <label class=\"mr-1\" uib-popover-template=\"'popover-content-repo-manager.html'\" popover-trigger=\"mouseenter\" popover-placement=\"bottom\"> <input type=\"radio\" ng-model=\"userType\" id=\"roleRepoAdmin\" value=\"repoManager\" ng-disabled=\"hasEditRestrictions()\"> {{'security.repo.manager.label' | translate}} </label> <label uib-popover-template=\"'popover-content-admin.html'\" popover-trigger=\"mouseenter\" popover-placement=\"bottom\"> <input type=\"radio\" ng-model=\"userType\" id=\"roleAdmin\" value=\"admin\" ng-disabled=\"hasEditRestrictions()\"> {{'security.admin.label' | translate}} </label> </div> </div> <div class=\"card user-custom-roles\" id=\"user-custom-roles\"> <div class=\"card-block\"> <h3>{{'security.user.custom_role' | translate}}</h3> <div class=\"input-group\"> <tags-input name=\"customRoleTag\" class=\"wb-tags-input\" ng-model=\"customRoles\" min-length=\"1\" ng-disabled=\"!isUser() || mode === 'settings'\" use-strings=\"true\" add-on-space=\"true\" add-on-comma=\"true\" add-on-paste=\"true\" replace-spaces-with-dashes=\"false\" paste-split-pattern=\"[\\\\s+]\" on-tag-adding=\"isCustomRoleValid(\\$tag)\" on-tag-added=\"addCustomRole(\\$tag)\" ng-keydown=\"checkUserInput(\\$event)\" ng-cut=\"removeErrorOnCut()\" placeholder=\"{{'security.user.add.custom_role.msg' | translate}}\" custom-prefix-tags-input></tags-input> <div class=\"small\" ng-hide=\"isRoleValid\"> <small>{{'security.user.role.too.short' | translate}}</small> </div> <div class=\"small prefix-warning\" ng-if=\"form.customRoleTag.\\$warning\"> <small>{{'acl_management.rulestable.custom_prefix_warning.text' | translate}}</small> </div> </div> </div> </div> <div id=\"user-repos\" class=\"card user-repositories\"> <div class=\"card-block\"> <h3>{{'security.repo.rights' | translate}}</h3> <div class=\"has-danger\"> <p ng-show=\"repositoryCheckError\" class=\"form-control-feedback\"> {{'security.user.rights' | translate}} </p> </div> <div class=\"scrollable-table\"> <table class=\"table table-hover table-sm table-fixed bordered-table\" aria-describedby=\"User rights table\"> <thead> <tr> <th id=\"repositoryIdColumn\" class=\"repository-column auth-column\">{{'security.repository.title' | translate}}</th> <th id=\"readRightsColumn\" class=\"text-xs-center read-column auth-column\"><span class=\"auth-column-label\">{{'security.label.read' | translate}}</span><em class=\"icon-eye icon-lg\" gdb-tooltip=\"{{'security.tooltip.read' | translate}}\"></em></th> <th id=\"writeRightColumn\" class=\"text-xs-center write-column auth-column\"><span class=\"auth-column-label\">{{'security.label.write' | translate}}</span><em class=\"icon-edit icon-lg\" gdb-tooltip=\"{{'security.tooltip.write' | translate}}\"></em></th> <th id=\"graphql\" class=\"text-xs-center auth-column graphql-column\"><span class=\"auth-column-label\">{{'security.label.graphql' | translate}}</span></th> </tr> <tr> <th>{{'security.any.data.repo' | translate}} <em class=\"icon-info text-tertiary\" gdb-tooltip=\"{{'security.data.repos' | translate}}\"></em> </th> <th class=\"text-xs-center\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"read\" type=\"checkbox\" ng-model=\"grantedAuthorities.READ_REPO['*']\" ng-checked=\"hasReadPermission('*')\" ng-disabled=\"readCheckDisabled('*')\"> </span> </th> <th class=\"text-xs-center write-any\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"write\" type=\"checkbox\" ng-model=\"grantedAuthorities.WRITE_REPO['*']\" ng-checked=\"hasWritePermission('*')\" ng-disabled=\"writeCheckDisabled('*')\"> </span> </th> <th class=\"text-xs-center\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"graphql\" type=\"checkbox\" ng-model=\"grantedAuthorities.GRAPHQL['*']\" ng-checked=\"hasGraphqlPermission('*')\" ng-disabled=\"graphqlCheckDisabled('*')\"> </span> </th> </tr> </thead> <tbody> <div> <tr ng-repeat=\"repository in getReadableRepositories() | orderBy: ['location', 'id']\"> <td class=\"repository-name\">{{repository.id}}<small><em ng-if=\"(hasGraphqlPermission(repository) || hasGraphqlPermission('*')) && (hasReadPermission(repository) || hasReadPermission('*') || hasWritePermission(repository) || hasWritePermission('*'))\" class=\"fa-kit fa-gdb-graphql graphql-icon text-info\" gdb-tooltip=\"{{'security.tooltip.graphql' | translate}}\"></em> &middot; {{repository.location ? repository.location : 'repo.local' | translate}}</small></td> <td class=\"text-xs-center read-rights\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"read\" type=\"checkbox\" ng-model=\"grantedAuthorities.READ_REPO[createUniqueKey(repository)]\" ng-checked=\"hasReadPermission(repository)\" ng-disabled=\"readCheckDisabled(repository)\"> </span> </td> <td class=\"text-xs-center write-rights\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"write\" type=\"checkbox\" ng-model=\"grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]\" ng-checked=\"hasWritePermission(repository)\" ng-disabled=\"writeCheckDisabled(repository)\"> </span> </td> <td class=\"text-xs-center graphql-rights\"> <span ng-click=\"setGrantedAuthorities()\"> <input class=\"graphql\" type=\"checkbox\" ng-model=\"grantedAuthorities.GRAPHQL[createUniqueKey(repository)]\" ng-checked=\"hasGraphqlPermission(repository)\" ng-disabled=\"graphqlCheckDisabled(repository)\"> </span> </td> </tr> </div> </tbody> </table> </div> </div> </div> </div> </div> <div class=\"text-right\"> <button id=\"wb-user-goBack\" class=\"btn btn-secondary\" type=\"button\" ng-click=\"goBack()\">{{'common.cancel.btn' | translate}}</button> <button id=\"wb-user-submit\" class=\"btn btn-primary\" type=\"submit\" ng-disabled=\"!isRoleValid\">{{saveButtonText}}</button> </div> </form> </div> <div class=\"ot-loader ot-main-loader\" onto-loader size=\"50\" ng-show=\"loader\"></div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- export const __webpack_id__=16162;export const __webpack_ids__=[16162];export const __webpack_modules__={16162:(t,n,e)=>{e.r(n),e.d(n,{default:()=>a});const a='<link href="css/graphql/graphql-endpoint-management.css?v=3.2.0-TR1" rel="stylesheet"/> <div class="graphql-endpoint-management-view"> <h1 id="title-container"> <span id="graphql-endpoint-management-title-label">{{title}}</span> <page-info-tooltip></page-info-tooltip> </h1> <div core-errors></div> <div onto-loader-new ng-show="loadingEndpointsInfo" class="graphql-endpoint-management-page-loader" size="100"> </div> <div ng-if="getActiveRepository() && !loadingEndpointsInfo" class="endpoint-management-container"> <div class="toolbar"> <div class="endpoints-filter"> <input type="text" ng-if="hasEndpoints" class="form-control endpoints-filter-field" placeholder="{{\'graphql.endpoints_management.toolbar.endpoints_filter.placeholder\' | translate}}" ng-model="filterTerm" ng-change="onEndpointsFilter(filterTerm)" aria-label="Filter endpoints" autocomplete="off"> </div> <div class="actions"> <button class="btn btn-primary create-endpoint-btn" ng-click="startCreateEndpointWizard()" gdb-tooltip="{{\'graphql.endpoints_management.toolbar.create_endpoint.tooltip\' | translate}}"> <span class="fa-kit fa-gdb-graphql"></span>&nbsp; <span>{{\'graphql.endpoints_management.toolbar.create_endpoint.label\' | translate}}</span> </button> <button class="btn btn-secondary import-schema-definition-btn ml-1" ng-click="importSchema()" gdb-tooltip="{{\'graphql.endpoints_management.toolbar.import_schema.tooltip\' | translate}}"> <span class="fa fa-upload"></span>&nbsp; <span>{{\'graphql.endpoints_management.toolbar.import_schema.label\' | translate}}</span> </button> </div> </div> <div ng-if="!hasEndpoints" class="alert alert-info no-endpoints mt-2"> <span>{{\'graphql.endpoints_management.table.messages.no_endpoints_in_repository\' | translate}}</span> </div> <table ng-if="hasEndpoints" class="endpoints-info-table table mt-1" aria-describedby="GraphQL endpoints info table"> <thead> <tr> <th scope="col" class="toggle-col"></th> <th scope="col" class="status-col"></th> <th scope="col" class="endpoint-id-col"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.id.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.id.label\' | translate}} </span> </th> <th scope="col" class="endpoint-label-col"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.label.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.label.label\' | translate}} </span> </th> <th scope="col" class="endpoint-is-default-col text-center"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_default.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.is_default.label\' | translate}} </span> </th> <th scope="col" class="endpoint-is-active-col text-center"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_active.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.is_active.label\' | translate}} </span> </th> <th scope="col" class="endpoint-modified-on-col"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.modified_on.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.modified_on.label\' | translate}} </span> </th> <th scope="col" class="endpoint-types-count-col numeric"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.types_count.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.types_count.label\' | translate}} </span> </th> <th scope="col" class="endpoint-props-count-col numeric"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.props_count.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.props_count.label\' | translate}} </span> </th> <th scope="col" class="endpoint-actions-col"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.actions.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.actions.label\' | translate}} </span> </th> </tr> </thead> <tr ng-if="operationInProgress" class="overlay-row"> <td colspan="9"> <div class="endpoint-operation-progress" onto-loader-fancy size="100" hide-message="true"></div> </td> </tr> <tbody> <tr ng-repeat-start="endpoint in endpointsInfoList.endpoints track by endpoint.endpointId"> <td class="toggle-row"> <a href="#" ng-click="toggleRow($event, $index)"> <i class="fa fa-chevron-right" ng-if="expandedRow !== $index"></i> <i class="fa fa-chevron-down" ng-if="expandedRow === $index"></i> </a> </td> <td class="status-cell"> <a href="#" ng-if="endpoint.errors > 0 || endpoint.warnings > 0" ng-click="onShowEndpointReport(endpoint)" gdb-tooltip="{{\'graphql.endpoints_management.table.actions.view_report.tooltip\' | translate}}" class="endpoint-report-link btn btn-link"> <i ng-if="!endpoint.createdSuccessfully" class="fa-regular fa-circle-xmark status-failed"></i> <i ng-if="endpoint.createdSuccessfully" class="fa-regular fa-circle-check status-success"></i> </a> </td> <td> <span ng-if="!endpoint.active" gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.inactive.tooltip\' | translate}}" class="endpoint-id">{{endpoint.endpointId}}</span> <a ng-if="endpoint.active" href="#" ng-click="onExploreEndpoint(endpoint)" gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.active.tooltip\' | translate}}" class="endpoint-link">{{endpoint.endpointId}}</a> </td> <td>{{endpoint.label}}</td> <td class="default-endpoint-selector"> <label class="endpoint-default-state"> <input type="radio" ng-model="selectedDefaultEndpoint.default" ng-value="endpoint.default" ng-disabled="!endpoint.createdSuccessfully" ng-change="setEndpointAsDefault(endpoint)"/> </label> </td> <td class="active-endpoint-selector"> <span ng-click="!endpoint.createdSuccessfully || toggleEndpointActiveState(endpoint)" class="toggle-active-state"> <input type="checkbox" class="switch" ng-checked="endpoint.active" ng-disabled="!endpoint.createdSuccessfully"/> <label></label> </span> </td> <td title="{{endpoint.lastModified}}">{{endpoint.lastModified | date: \'yyyy-MM-dd\'}}</td> <td class="objects-count numeric">{{endpoint.objectsCount}}</td> <td class="properties-count numeric">{{endpoint.propertiesCount}}</td> <td class="endpoint-actions"> <div class="btn-group"> <button class="btn btn-link secondary btn-sm open-endpoint-actions-btn" data-toggle="dropdown" aria-expanded="false" ng-if="true" ng-disabled="false"> <i class="fa fa-ellipsis"></i> </button> <div class="dropdown-menu dropdown-menu-right endpoint-actions-menu"> <button class="dropdown-item export-schema-btn" type="button" ng-click="onExportSchema(endpoint)"> <i class="fa fa-arrow-down-to-line"></i>&nbsp; <span>{{\'graphql.endpoints_management.table.actions.export_schema.label\' | translate}}</span> </button> <button class="dropdown-item configure-endpoint-btn" type="button" ng-click="onConfigureEndpoint(endpoint)"> <i class="fa fa-gear"></i>&nbsp; <span>{{\'graphql.endpoints_management.table.actions.configure_endpoint.label\' | translate}}</span> </button> <div class="dropdown-divider"></div> <button class="dropdown-item delete-endpoint-btn" type="button" ng-click="onDeleteEndpoint(endpoint)"> <i class="fa fa-trash-can"></i>&nbsp; <span>{{\'graphql.endpoints_management.table.actions.delete_endpoint.label\' | translate}}</span> </button> </div> </div> </td> </tr> <tr ng-repeat-end ng-if="expandedRow === $index" class="endpoint-description-row"> <td></td> <td colspan="8"> <strong>{{\'graphql.endpoints_management.table.labels.description\' | translate}}</strong> <div class="endpoint-description">{{endpoint.description}}</div> </td> </tr> <tr ng-if="endpointsInfoList.endpoints.length === 0" class="no-results"> <td colspan="9"> <div class="alert alert-info"> <span>{{\'graphql.endpoints_management.table.messages.endpoints_filter_no_result\' | translate}}</span> </div> </td></tr> </tbody> </table> </div> </div> '}};
2
- //# sourceMappingURL=16162.8f482628d1b34d41d496.bundle.js.map
1
+ export const __webpack_id__=16162;export const __webpack_ids__=[16162];export const __webpack_modules__={16162:(t,n,e)=>{e.r(n),e.d(n,{default:()=>a});const a='<link href="css/graphql/graphql-endpoint-management.css?v=3.2.0-TR2" rel="stylesheet"/> <div class="graphql-endpoint-management-view"> <h1 id="title-container"> <span id="graphql-endpoint-management-title-label">{{title}}</span> <page-info-tooltip></page-info-tooltip> </h1> <div core-errors></div> <div onto-loader-new ng-show="loadingEndpointsInfo" class="graphql-endpoint-management-page-loader" size="100"> </div> <div ng-if="getActiveRepository() && !loadingEndpointsInfo" class="endpoint-management-container"> <div class="toolbar"> <div class="endpoints-filter"> <input type="text" ng-if="hasEndpoints" class="form-control endpoints-filter-field" placeholder="{{\'graphql.endpoints_management.toolbar.endpoints_filter.placeholder\' | translate}}" ng-model="filterTerm" ng-change="onEndpointsFilter(filterTerm)" aria-label="Filter endpoints" autocomplete="off"> </div> <div class="actions"> <button class="btn btn-primary create-endpoint-btn" ng-click="startCreateEndpointWizard()" gdb-tooltip="{{\'graphql.endpoints_management.toolbar.create_endpoint.tooltip\' | translate}}"> <span class="fa-kit fa-gdb-graphql"></span>&nbsp; <span>{{\'graphql.endpoints_management.toolbar.create_endpoint.label\' | translate}}</span> </button> <button class="btn btn-secondary import-schema-definition-btn ml-1" ng-click="importSchema()" gdb-tooltip="{{\'graphql.endpoints_management.toolbar.import_schema.tooltip\' | translate}}"> <span class="fa fa-upload"></span>&nbsp; <span>{{\'graphql.endpoints_management.toolbar.import_schema.label\' | translate}}</span> </button> </div> </div> <div ng-if="!hasEndpoints" class="alert alert-info no-endpoints mt-2"> <span>{{\'graphql.endpoints_management.table.messages.no_endpoints_in_repository\' | translate}}</span> </div> <table ng-if="hasEndpoints" class="endpoints-info-table table mt-1" aria-describedby="GraphQL endpoints info table"> <thead> <tr> <th scope="col" class="toggle-col"></th> <th scope="col" class="status-col"></th> <th scope="col" class="endpoint-id-col"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.id.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.id.label\' | translate}} </span> </th> <th scope="col" class="endpoint-label-col"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.label.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.label.label\' | translate}} </span> </th> <th scope="col" class="endpoint-is-default-col text-center"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_default.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.is_default.label\' | translate}} </span> </th> <th scope="col" class="endpoint-is-active-col text-center"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_active.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.is_active.label\' | translate}} </span> </th> <th scope="col" class="endpoint-modified-on-col"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.modified_on.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.modified_on.label\' | translate}} </span> </th> <th scope="col" class="endpoint-types-count-col numeric"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.types_count.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.types_count.label\' | translate}} </span> </th> <th scope="col" class="endpoint-props-count-col numeric"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.props_count.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.props_count.label\' | translate}} </span> </th> <th scope="col" class="endpoint-actions-col"> <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.actions.tooltip\' | translate}}"> {{\'graphql.endpoints_management.table.column.actions.label\' | translate}} </span> </th> </tr> </thead> <tr ng-if="operationInProgress" class="overlay-row"> <td colspan="9"> <div class="endpoint-operation-progress" onto-loader-fancy size="100" hide-message="true"></div> </td> </tr> <tbody> <tr ng-repeat-start="endpoint in endpointsInfoList.endpoints track by endpoint.endpointId"> <td class="toggle-row"> <a href="#" ng-click="toggleRow($event, $index)"> <i class="fa fa-chevron-right" ng-if="expandedRow !== $index"></i> <i class="fa fa-chevron-down" ng-if="expandedRow === $index"></i> </a> </td> <td class="status-cell"> <a href="#" ng-if="endpoint.errors > 0 || endpoint.warnings > 0" ng-click="onShowEndpointReport(endpoint)" gdb-tooltip="{{\'graphql.endpoints_management.table.actions.view_report.tooltip\' | translate}}" class="endpoint-report-link btn btn-link"> <i ng-if="!endpoint.createdSuccessfully" class="fa-regular fa-circle-xmark status-failed"></i> <i ng-if="endpoint.createdSuccessfully" class="fa-regular fa-circle-check status-success"></i> </a> </td> <td> <span ng-if="!endpoint.active" gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.inactive.tooltip\' | translate}}" class="endpoint-id">{{endpoint.endpointId}}</span> <a ng-if="endpoint.active" href="#" ng-click="onExploreEndpoint(endpoint)" gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.active.tooltip\' | translate}}" class="endpoint-link">{{endpoint.endpointId}}</a> </td> <td>{{endpoint.label}}</td> <td class="default-endpoint-selector"> <label class="endpoint-default-state"> <input type="radio" ng-model="selectedDefaultEndpoint.default" ng-value="endpoint.default" ng-disabled="!endpoint.createdSuccessfully" ng-change="setEndpointAsDefault(endpoint)"/> </label> </td> <td class="active-endpoint-selector"> <span ng-click="!endpoint.createdSuccessfully || toggleEndpointActiveState(endpoint)" class="toggle-active-state"> <input type="checkbox" class="switch" ng-checked="endpoint.active" ng-disabled="!endpoint.createdSuccessfully"/> <label></label> </span> </td> <td title="{{endpoint.lastModified}}">{{endpoint.lastModified | date: \'yyyy-MM-dd\'}}</td> <td class="objects-count numeric">{{endpoint.objectsCount}}</td> <td class="properties-count numeric">{{endpoint.propertiesCount}}</td> <td class="endpoint-actions"> <div class="btn-group"> <button class="btn btn-link secondary btn-sm open-endpoint-actions-btn" data-toggle="dropdown" aria-expanded="false" ng-if="true" ng-disabled="false"> <i class="fa fa-ellipsis"></i> </button> <div class="dropdown-menu dropdown-menu-right endpoint-actions-menu"> <button class="dropdown-item export-schema-btn" type="button" ng-click="onExportSchema(endpoint)"> <i class="fa fa-arrow-down-to-line"></i>&nbsp; <span>{{\'graphql.endpoints_management.table.actions.export_schema.label\' | translate}}</span> </button> <button class="dropdown-item configure-endpoint-btn" type="button" ng-click="onConfigureEndpoint(endpoint)"> <i class="fa fa-gear"></i>&nbsp; <span>{{\'graphql.endpoints_management.table.actions.configure_endpoint.label\' | translate}}</span> </button> <div class="dropdown-divider"></div> <button class="dropdown-item delete-endpoint-btn" type="button" ng-click="onDeleteEndpoint(endpoint)"> <i class="fa fa-trash-can"></i>&nbsp; <span>{{\'graphql.endpoints_management.table.actions.delete_endpoint.label\' | translate}}</span> </button> </div> </div> </td> </tr> <tr ng-repeat-end ng-if="expandedRow === $index" class="endpoint-description-row"> <td></td> <td colspan="8"> <strong>{{\'graphql.endpoints_management.table.labels.description\' | translate}}</strong> <div class="endpoint-description">{{endpoint.description}}</div> </td> </tr> <tr ng-if="endpointsInfoList.endpoints.length === 0" class="no-results"> <td colspan="9"> <div class="alert alert-info"> <span>{{\'graphql.endpoints_management.table.messages.endpoints_filter_no_result\' | translate}}</span> </div> </td></tr> </tbody> </table> </div> </div> '}};
2
+ //# sourceMappingURL=16162.67e7c1f5f313481b1e80.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"16162.8f482628d1b34d41d496.bundle.js","mappings":"uJAGA,QAFW,mrP","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/templates/graphql-endpoint-management.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/graphql/graphql-endpoint-management.css?v=3.2.0-TR1\" rel=\"stylesheet\"/> <div class=\"graphql-endpoint-management-view\"> <h1 id=\"title-container\"> <span id=\"graphql-endpoint-management-title-label\">{{title}}</span> <page-info-tooltip></page-info-tooltip> </h1> <div core-errors></div> <div onto-loader-new ng-show=\"loadingEndpointsInfo\" class=\"graphql-endpoint-management-page-loader\" size=\"100\"> </div> <div ng-if=\"getActiveRepository() && !loadingEndpointsInfo\" class=\"endpoint-management-container\"> <div class=\"toolbar\"> <div class=\"endpoints-filter\"> <input type=\"text\" ng-if=\"hasEndpoints\" class=\"form-control endpoints-filter-field\" placeholder=\"{{'graphql.endpoints_management.toolbar.endpoints_filter.placeholder' | translate}}\" ng-model=\"filterTerm\" ng-change=\"onEndpointsFilter(filterTerm)\" aria-label=\"Filter endpoints\" autocomplete=\"off\"> </div> <div class=\"actions\"> <button class=\"btn btn-primary create-endpoint-btn\" ng-click=\"startCreateEndpointWizard()\" gdb-tooltip=\"{{'graphql.endpoints_management.toolbar.create_endpoint.tooltip' | translate}}\"> <span class=\"fa-kit fa-gdb-graphql\"></span>&nbsp; <span>{{'graphql.endpoints_management.toolbar.create_endpoint.label' | translate}}</span> </button> <button class=\"btn btn-secondary import-schema-definition-btn ml-1\" ng-click=\"importSchema()\" gdb-tooltip=\"{{'graphql.endpoints_management.toolbar.import_schema.tooltip' | translate}}\"> <span class=\"fa fa-upload\"></span>&nbsp; <span>{{'graphql.endpoints_management.toolbar.import_schema.label' | translate}}</span> </button> </div> </div> <div ng-if=\"!hasEndpoints\" class=\"alert alert-info no-endpoints mt-2\"> <span>{{'graphql.endpoints_management.table.messages.no_endpoints_in_repository' | translate}}</span> </div> <table ng-if=\"hasEndpoints\" class=\"endpoints-info-table table mt-1\" aria-describedby=\"GraphQL endpoints info table\"> <thead> <tr> <th scope=\"col\" class=\"toggle-col\"></th> <th scope=\"col\" class=\"status-col\"></th> <th scope=\"col\" class=\"endpoint-id-col\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.id.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.id.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-label-col\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.label.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.label.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-is-default-col text-center\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.is_default.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.is_default.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-is-active-col text-center\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.is_active.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.is_active.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-modified-on-col\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.modified_on.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.modified_on.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-types-count-col numeric\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.types_count.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.types_count.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-props-count-col numeric\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.props_count.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.props_count.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-actions-col\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.actions.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.actions.label' | translate}} </span> </th> </tr> </thead> <tr ng-if=\"operationInProgress\" class=\"overlay-row\"> <td colspan=\"9\"> <div class=\"endpoint-operation-progress\" onto-loader-fancy size=\"100\" hide-message=\"true\"></div> </td> </tr> <tbody> <tr ng-repeat-start=\"endpoint in endpointsInfoList.endpoints track by endpoint.endpointId\"> <td class=\"toggle-row\"> <a href=\"#\" ng-click=\"toggleRow(\\$event, \\$index)\"> <i class=\"fa fa-chevron-right\" ng-if=\"expandedRow !== \\$index\"></i> <i class=\"fa fa-chevron-down\" ng-if=\"expandedRow === \\$index\"></i> </a> </td> <td class=\"status-cell\"> <a href=\"#\" ng-if=\"endpoint.errors > 0 || endpoint.warnings > 0\" ng-click=\"onShowEndpointReport(endpoint)\" gdb-tooltip=\"{{'graphql.endpoints_management.table.actions.view_report.tooltip' | translate}}\" class=\"endpoint-report-link btn btn-link\"> <i ng-if=\"!endpoint.createdSuccessfully\" class=\"fa-regular fa-circle-xmark status-failed\"></i> <i ng-if=\"endpoint.createdSuccessfully\" class=\"fa-regular fa-circle-check status-success\"></i> </a> </td> <td> <span ng-if=\"!endpoint.active\" gdb-tooltip=\"{{'graphql.endpoints_management.table.actions.explore_endpoint.inactive.tooltip' | translate}}\" class=\"endpoint-id\">{{endpoint.endpointId}}</span> <a ng-if=\"endpoint.active\" href=\"#\" ng-click=\"onExploreEndpoint(endpoint)\" gdb-tooltip=\"{{'graphql.endpoints_management.table.actions.explore_endpoint.active.tooltip' | translate}}\" class=\"endpoint-link\">{{endpoint.endpointId}}</a> </td> <td>{{endpoint.label}}</td> <td class=\"default-endpoint-selector\"> <label class=\"endpoint-default-state\"> <input type=\"radio\" ng-model=\"selectedDefaultEndpoint.default\" ng-value=\"endpoint.default\" ng-disabled=\"!endpoint.createdSuccessfully\" ng-change=\"setEndpointAsDefault(endpoint)\"/> </label> </td> <td class=\"active-endpoint-selector\"> <span ng-click=\"!endpoint.createdSuccessfully || toggleEndpointActiveState(endpoint)\" class=\"toggle-active-state\"> <input type=\"checkbox\" class=\"switch\" ng-checked=\"endpoint.active\" ng-disabled=\"!endpoint.createdSuccessfully\"/> <label></label> </span> </td> <td title=\"{{endpoint.lastModified}}\">{{endpoint.lastModified | date: 'yyyy-MM-dd'}}</td> <td class=\"objects-count numeric\">{{endpoint.objectsCount}}</td> <td class=\"properties-count numeric\">{{endpoint.propertiesCount}}</td> <td class=\"endpoint-actions\"> <div class=\"btn-group\"> <button class=\"btn btn-link secondary btn-sm open-endpoint-actions-btn\" data-toggle=\"dropdown\" aria-expanded=\"false\" ng-if=\"true\" ng-disabled=\"false\"> <i class=\"fa fa-ellipsis\"></i> </button> <div class=\"dropdown-menu dropdown-menu-right endpoint-actions-menu\"> <button class=\"dropdown-item export-schema-btn\" type=\"button\" ng-click=\"onExportSchema(endpoint)\"> <i class=\"fa fa-arrow-down-to-line\"></i>&nbsp; <span>{{'graphql.endpoints_management.table.actions.export_schema.label' | translate}}</span> </button> <button class=\"dropdown-item configure-endpoint-btn\" type=\"button\" ng-click=\"onConfigureEndpoint(endpoint)\"> <i class=\"fa fa-gear\"></i>&nbsp; <span>{{'graphql.endpoints_management.table.actions.configure_endpoint.label' | translate}}</span> </button> <div class=\"dropdown-divider\"></div> <button class=\"dropdown-item delete-endpoint-btn\" type=\"button\" ng-click=\"onDeleteEndpoint(endpoint)\"> <i class=\"fa fa-trash-can\"></i>&nbsp; <span>{{'graphql.endpoints_management.table.actions.delete_endpoint.label' | translate}}</span> </button> </div> </div> </td> </tr> <tr ng-repeat-end ng-if=\"expandedRow === \\$index\" class=\"endpoint-description-row\"> <td></td> <td colspan=\"8\"> <strong>{{'graphql.endpoints_management.table.labels.description' | translate}}</strong> <div class=\"endpoint-description\">{{endpoint.description}}</div> </td> </tr> <tr ng-if=\"endpointsInfoList.endpoints.length === 0\" class=\"no-results\"> <td colspan=\"9\"> <div class=\"alert alert-info\"> <span>{{'graphql.endpoints_management.table.messages.endpoints_filter_no_result' | translate}}</span> </div> </td></tr> </tbody> </table> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"16162.67e7c1f5f313481b1e80.bundle.js","mappings":"uJAGA,QAFW,mrP","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/templates/graphql-endpoint-management.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/graphql/graphql-endpoint-management.css?v=3.2.0-TR2\" rel=\"stylesheet\"/> <div class=\"graphql-endpoint-management-view\"> <h1 id=\"title-container\"> <span id=\"graphql-endpoint-management-title-label\">{{title}}</span> <page-info-tooltip></page-info-tooltip> </h1> <div core-errors></div> <div onto-loader-new ng-show=\"loadingEndpointsInfo\" class=\"graphql-endpoint-management-page-loader\" size=\"100\"> </div> <div ng-if=\"getActiveRepository() && !loadingEndpointsInfo\" class=\"endpoint-management-container\"> <div class=\"toolbar\"> <div class=\"endpoints-filter\"> <input type=\"text\" ng-if=\"hasEndpoints\" class=\"form-control endpoints-filter-field\" placeholder=\"{{'graphql.endpoints_management.toolbar.endpoints_filter.placeholder' | translate}}\" ng-model=\"filterTerm\" ng-change=\"onEndpointsFilter(filterTerm)\" aria-label=\"Filter endpoints\" autocomplete=\"off\"> </div> <div class=\"actions\"> <button class=\"btn btn-primary create-endpoint-btn\" ng-click=\"startCreateEndpointWizard()\" gdb-tooltip=\"{{'graphql.endpoints_management.toolbar.create_endpoint.tooltip' | translate}}\"> <span class=\"fa-kit fa-gdb-graphql\"></span>&nbsp; <span>{{'graphql.endpoints_management.toolbar.create_endpoint.label' | translate}}</span> </button> <button class=\"btn btn-secondary import-schema-definition-btn ml-1\" ng-click=\"importSchema()\" gdb-tooltip=\"{{'graphql.endpoints_management.toolbar.import_schema.tooltip' | translate}}\"> <span class=\"fa fa-upload\"></span>&nbsp; <span>{{'graphql.endpoints_management.toolbar.import_schema.label' | translate}}</span> </button> </div> </div> <div ng-if=\"!hasEndpoints\" class=\"alert alert-info no-endpoints mt-2\"> <span>{{'graphql.endpoints_management.table.messages.no_endpoints_in_repository' | translate}}</span> </div> <table ng-if=\"hasEndpoints\" class=\"endpoints-info-table table mt-1\" aria-describedby=\"GraphQL endpoints info table\"> <thead> <tr> <th scope=\"col\" class=\"toggle-col\"></th> <th scope=\"col\" class=\"status-col\"></th> <th scope=\"col\" class=\"endpoint-id-col\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.id.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.id.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-label-col\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.label.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.label.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-is-default-col text-center\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.is_default.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.is_default.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-is-active-col text-center\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.is_active.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.is_active.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-modified-on-col\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.modified_on.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.modified_on.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-types-count-col numeric\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.types_count.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.types_count.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-props-count-col numeric\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.props_count.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.props_count.label' | translate}} </span> </th> <th scope=\"col\" class=\"endpoint-actions-col\"> <span gdb-tooltip=\"{{'graphql.endpoints_management.table.column.actions.tooltip' | translate}}\"> {{'graphql.endpoints_management.table.column.actions.label' | translate}} </span> </th> </tr> </thead> <tr ng-if=\"operationInProgress\" class=\"overlay-row\"> <td colspan=\"9\"> <div class=\"endpoint-operation-progress\" onto-loader-fancy size=\"100\" hide-message=\"true\"></div> </td> </tr> <tbody> <tr ng-repeat-start=\"endpoint in endpointsInfoList.endpoints track by endpoint.endpointId\"> <td class=\"toggle-row\"> <a href=\"#\" ng-click=\"toggleRow(\\$event, \\$index)\"> <i class=\"fa fa-chevron-right\" ng-if=\"expandedRow !== \\$index\"></i> <i class=\"fa fa-chevron-down\" ng-if=\"expandedRow === \\$index\"></i> </a> </td> <td class=\"status-cell\"> <a href=\"#\" ng-if=\"endpoint.errors > 0 || endpoint.warnings > 0\" ng-click=\"onShowEndpointReport(endpoint)\" gdb-tooltip=\"{{'graphql.endpoints_management.table.actions.view_report.tooltip' | translate}}\" class=\"endpoint-report-link btn btn-link\"> <i ng-if=\"!endpoint.createdSuccessfully\" class=\"fa-regular fa-circle-xmark status-failed\"></i> <i ng-if=\"endpoint.createdSuccessfully\" class=\"fa-regular fa-circle-check status-success\"></i> </a> </td> <td> <span ng-if=\"!endpoint.active\" gdb-tooltip=\"{{'graphql.endpoints_management.table.actions.explore_endpoint.inactive.tooltip' | translate}}\" class=\"endpoint-id\">{{endpoint.endpointId}}</span> <a ng-if=\"endpoint.active\" href=\"#\" ng-click=\"onExploreEndpoint(endpoint)\" gdb-tooltip=\"{{'graphql.endpoints_management.table.actions.explore_endpoint.active.tooltip' | translate}}\" class=\"endpoint-link\">{{endpoint.endpointId}}</a> </td> <td>{{endpoint.label}}</td> <td class=\"default-endpoint-selector\"> <label class=\"endpoint-default-state\"> <input type=\"radio\" ng-model=\"selectedDefaultEndpoint.default\" ng-value=\"endpoint.default\" ng-disabled=\"!endpoint.createdSuccessfully\" ng-change=\"setEndpointAsDefault(endpoint)\"/> </label> </td> <td class=\"active-endpoint-selector\"> <span ng-click=\"!endpoint.createdSuccessfully || toggleEndpointActiveState(endpoint)\" class=\"toggle-active-state\"> <input type=\"checkbox\" class=\"switch\" ng-checked=\"endpoint.active\" ng-disabled=\"!endpoint.createdSuccessfully\"/> <label></label> </span> </td> <td title=\"{{endpoint.lastModified}}\">{{endpoint.lastModified | date: 'yyyy-MM-dd'}}</td> <td class=\"objects-count numeric\">{{endpoint.objectsCount}}</td> <td class=\"properties-count numeric\">{{endpoint.propertiesCount}}</td> <td class=\"endpoint-actions\"> <div class=\"btn-group\"> <button class=\"btn btn-link secondary btn-sm open-endpoint-actions-btn\" data-toggle=\"dropdown\" aria-expanded=\"false\" ng-if=\"true\" ng-disabled=\"false\"> <i class=\"fa fa-ellipsis\"></i> </button> <div class=\"dropdown-menu dropdown-menu-right endpoint-actions-menu\"> <button class=\"dropdown-item export-schema-btn\" type=\"button\" ng-click=\"onExportSchema(endpoint)\"> <i class=\"fa fa-arrow-down-to-line\"></i>&nbsp; <span>{{'graphql.endpoints_management.table.actions.export_schema.label' | translate}}</span> </button> <button class=\"dropdown-item configure-endpoint-btn\" type=\"button\" ng-click=\"onConfigureEndpoint(endpoint)\"> <i class=\"fa fa-gear\"></i>&nbsp; <span>{{'graphql.endpoints_management.table.actions.configure_endpoint.label' | translate}}</span> </button> <div class=\"dropdown-divider\"></div> <button class=\"dropdown-item delete-endpoint-btn\" type=\"button\" ng-click=\"onDeleteEndpoint(endpoint)\"> <i class=\"fa fa-trash-can\"></i>&nbsp; <span>{{'graphql.endpoints_management.table.actions.delete_endpoint.label' | translate}}</span> </button> </div> </div> </td> </tr> <tr ng-repeat-end ng-if=\"expandedRow === \\$index\" class=\"endpoint-description-row\"> <td></td> <td colspan=\"8\"> <strong>{{'graphql.endpoints_management.table.labels.description' | translate}}</strong> <div class=\"endpoint-description\">{{endpoint.description}}</div> </td> </tr> <tr ng-if=\"endpointsInfoList.endpoints.length === 0\" class=\"no-results\"> <td colspan=\"9\"> <div class=\"alert alert-info\"> <span>{{'graphql.endpoints_management.table.messages.endpoints_filter_no_result' | translate}}</span> </div> </td></tr> </tbody> </table> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ export const __webpack_id__=18961;export const __webpack_ids__=[18961];export const __webpack_modules__={18961:(o,t,n)=>{n.r(t),n.d(t,{onto_dropdown:()=>s});var e=n(87848),i=n(79939),r=n(28499),d=n(90835),l=n(44123);n(57154);const s=class{constructor(o){(0,e.r)(this,o),this.valueChanged=(0,e.c)(this,"valueChanged"),this.logger=i.L.logger,this.GUIDE_SELECTOR_ATTR="guide-selector",this.open=!1,this.buttonTooltipContent="",this.dropdownTooltipTrigger="manual",this.iconClass="",this.tooltipPlacement=l.O.LEFT,this.dropdownAlignment=r.D.LEFT,this.autoClose=!1,this.toggleButtonClickHandler=()=>{d.T.destroyTooltip(this.dropdownButtonElement),this.buttonTooltipContent="",this.toggleComponent()}}keydownListener(o){"Escape"===o.key&&this.closeMenu()}mouseClickListener(o){const t=o.target;this.autoClose&&!this.hostElement.contains(t)&&this.closeMenu()}componentDidUpdate(){this.dropdownButtonElement&&(this.buttonTooltipContent&&""!==this.buttonTooltipContent?d.T.updateTooltipContent(this.dropdownButtonElement,this.buttonTooltipContent):d.T.destroyTooltip(this.dropdownButtonElement))}render(){var o,t;const n=this.dropdownAlignment===r.D.RIGHT?"onto-dropdown-right-item-alignment":"onto-dropdown-left-item-alignment",i="function"==typeof this.tooltipPlacement?this.tooltipPlacement(this.open):this.tooltipPlacement;return(0,e.h)("div",{key:"cfe7e37b7e35a2c2f789db7627132e9f81fb3c52",class:"onto-dropdown "+(this.open?"open":"closed")},(0,e.h)("button",Object.assign({key:"c5dad75448c84a2ca04105429d14b331529b72a3",class:"onto-dropdown-button",ref:o=>this.dropdownButtonElement=o},this.dropdownButtonGuideSelector?{[this.GUIDE_SELECTOR_ATTR]:this.dropdownButtonGuideSelector}:{},{"tooltip-placement":i,"tooltip-trigger":this.dropdownTooltipTrigger,"tooltip-content":this.buttonTooltipContent},this.tooltipTheme?{"tooltip-theme":this.tooltipTheme}:{},{onMouseEnter:this.setDropdownButtonTooltip(),onClick:this.toggleButtonClickHandler}),this.iconClass?(0,e.h)("i",{class:"button-icon "+this.iconClass}):"",(0,e.h)("span",{key:"ba8774fa79bfbaf2829d924872fd912a4435f1b2",class:"button-name"},null!==(o=this.dropdownButtonName)&&void 0!==o?o:this.translate(this.dropdownButtonNameLabelKey)),(0,e.h)("i",{key:"e237048eb394e44f6d25f65c0c8834c761d14287",class:"fa-light fa-angle-down "+(this.open?"fa-rotate-180":"")})),(0,e.h)("div",{key:"cc19ea9e57cc629d6ad8957fb4d635d8e23eda43",class:"onto-dropdown-menu "+n},null===(t=this.items)||void 0===t?void 0:t.map(o=>{var t;return(0,e.h)("button",Object.assign({class:"onto-dropdown-menu-item "+o.cssClass},o.guideSelector?{[this.GUIDE_SELECTOR_ATTR]:o.guideSelector}:{},{"tooltip-placement":l.O.LEFT,"tooltip-trigger":o.dropdownTooltipTrigger},this.tooltipTheme?{"tooltip-theme":this.tooltipTheme}:{},{onMouseEnter:this.setDropdownItemTooltip(o),onClick:this.itemClickHandler(o.value)}),o.iconClass?(0,e.h)("span",{class:"onto-dropdown-option-icon "+o.iconClass}):"",(0,e.h)("span",null,null!==(t=o.name)&&void 0!==t?t:this.translate(o.nameLabelKey)))})))}setDropdownButtonTooltip(){return async()=>{var o;let t;t="function"==typeof this.dropdownButtonTooltip?await this.getTooltipContent(this.dropdownButtonTooltip):null!==(o=this.dropdownButtonTooltip)&&void 0!==o?o:this.translate(this.dropdownButtonTooltipLabelKey),this.buttonTooltipContent=t}}setDropdownItemTooltip(o){return async t=>{var n;const e=t.currentTarget;if("function"==typeof o.tooltip){let t=await this.getTooltipContent(o.tooltip);e.setAttribute("tooltip-content",t)}else e.setAttribute("tooltip-content",null!==(n=o.tooltip)&&void 0!==n?n:this.translate(o.tooltipLabelKey))}}itemClickHandler(o){return()=>this.onSelect(o)}translate(o){return o?i.T.translate(o):""}onSelect(o){this.open=!1,this.valueChanged.emit(o)}toggleComponent(){this.open=!this.open}closeMenu(){this.open=!1}async getTooltipContent(o){let t="";try{t=await o()}catch(o){this.logger.error(o)}return t}get hostElement(){return(0,e.g)(this)}};s.style=":root{--onto-dropdown-button-color:var(--secondary-color, #373a3c);--onto-dropdown-button-background-color:var(--primary-color, #ac2925);--onto-dropdown-item-hover:var(--primary-color-dark, #ac2925);--onto-dropdown-button-icon-color:var(--primary-color, #ac2925);--onto-dropdown-button-open-icon-color:var(--icon-on-primary-color, rgba(255, 255, 255, 0.8));--onto-dropdown-color:#FFFFFF}:host{display:block}.onto-dropdown{position:relative;width:fit-content}.onto-dropdown.closed .onto-dropdown-menu{display:none}.onto-dropdown.closed .button-icon{color:var(--onto-dropdown-button-icon-color)}.onto-dropdown.closed .button-name{color:var(--onto-dropdown-button-color)}.onto-dropdown.open{background-color:var(--onto-dropdown-button-icon-color);color:#FFFFFF;height:2rem}.onto-dropdown.open .button-icon{color:var(--onto-dropdown-button-open-icon-color)}.onto-dropdown .onto-dropdown-button{display:flex;flex-direction:row;gap:0.3em;align-items:center;font-size:1rem;font-weight:400;padding:0.4em 1rem;line-height:1.5;border:1px solid transparent;outline:none;color:var(--onto-dropdown-color);background-color:var(--onto-dropdown-button-background-color);transition:all 0.15s ease-out}.onto-dropdown .onto-dropdown-button .button-icon{font-size:1.4em}.onto-dropdown .onto-dropdown-button .fa-angle-down{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}.onto-dropdown .onto-dropdown-menu{position:absolute;margin:0;padding:0;z-index:1000;overflow-y:auto;max-height:340px;min-width:100%}.onto-dropdown .onto-dropdown-menu-item{display:block;text-decoration:none;font-size:1rem;font-weight:400;padding:0.5em 1.2em;color:var(--onto-dropdown-color);background-color:var(--onto-dropdown-button-background-color);text-align:end;white-space:nowrap;border:none;outline:none;width:100%}.onto-dropdown .onto-dropdown-menu-item:hover{cursor:pointer;background-color:var(--onto-dropdown-item-hover)}.onto-dropdown .onto-dropdown-button:hover{cursor:pointer}.onto-dropdown .onto-dropdown-button:hover .button-icon{transform:scale(1.2)}.onto-dropdown .onto-dropdown-option-icon{margin-right:0.2em}.onto-dropdown .onto-dropdown-right-item-alignment{right:0;left:auto}"},28499:(o,t,n)=>{var e;n.d(t,{D:()=>e}),function(o){o.RIGHT="right",o.LEFT="left"}(e||(e={}))}};
2
+ //# sourceMappingURL=18961.5e34171366c281038fe5.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"18961.5e34171366c281038fe5.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/shared-components/dist/esm/onto-dropdown.entry.js","webpack://root-config/./packages/shared-components/dist/esm/dropdown-item-alignment-DghTf3pJ.js"],"sourcesContent":["import { r as registerInstance, c as createEvent, h, g as getElement } from './index-I_gcXFWK.js';\nimport { L as LoggerProvider, T as TranslationService } from './translation.service-nljGIprK.js';\nimport { D as DropdownItemAlignment } from './dropdown-item-alignment-DghTf3pJ.js';\nimport { T as TooltipUtil } from './tooltip-util-BqOc8q8q.js';\nimport { O as OntoTooltipPlacement } from './onto-tooltip-placement-D_J2-9CG.js';\nimport '@ontotext/workbench-api';\n\nconst ontoDropdownCss = \":root{--onto-dropdown-button-color:var(--secondary-color, #373a3c);--onto-dropdown-button-background-color:var(--primary-color, #ac2925);--onto-dropdown-item-hover:var(--primary-color-dark, #ac2925);--onto-dropdown-button-icon-color:var(--primary-color, #ac2925);--onto-dropdown-button-open-icon-color:var(--icon-on-primary-color, rgba(255, 255, 255, 0.8));--onto-dropdown-color:#FFFFFF}:host{display:block}.onto-dropdown{position:relative;width:fit-content}.onto-dropdown.closed .onto-dropdown-menu{display:none}.onto-dropdown.closed .button-icon{color:var(--onto-dropdown-button-icon-color)}.onto-dropdown.closed .button-name{color:var(--onto-dropdown-button-color)}.onto-dropdown.open{background-color:var(--onto-dropdown-button-icon-color);color:#FFFFFF;height:2rem}.onto-dropdown.open .button-icon{color:var(--onto-dropdown-button-open-icon-color)}.onto-dropdown .onto-dropdown-button{display:flex;flex-direction:row;gap:0.3em;align-items:center;font-size:1rem;font-weight:400;padding:0.4em 1rem;line-height:1.5;border:1px solid transparent;outline:none;color:var(--onto-dropdown-color);background-color:var(--onto-dropdown-button-background-color);transition:all 0.15s ease-out}.onto-dropdown .onto-dropdown-button .button-icon{font-size:1.4em}.onto-dropdown .onto-dropdown-button .fa-angle-down{color:rgba(0, 0, 0, 0.35);font-size:1.1em;transition:all 0.2s ease-in}.onto-dropdown .onto-dropdown-menu{position:absolute;margin:0;padding:0;z-index:1000;overflow-y:auto;max-height:340px;min-width:100%}.onto-dropdown .onto-dropdown-menu-item{display:block;text-decoration:none;font-size:1rem;font-weight:400;padding:0.5em 1.2em;color:var(--onto-dropdown-color);background-color:var(--onto-dropdown-button-background-color);text-align:end;white-space:nowrap;border:none;outline:none;width:100%}.onto-dropdown .onto-dropdown-menu-item:hover{cursor:pointer;background-color:var(--onto-dropdown-item-hover)}.onto-dropdown .onto-dropdown-button:hover{cursor:pointer}.onto-dropdown .onto-dropdown-button:hover .button-icon{transform:scale(1.2)}.onto-dropdown .onto-dropdown-option-icon{margin-right:0.2em}.onto-dropdown .onto-dropdown-right-item-alignment{right:0;left:auto}\";\n\nconst OntoDropdown = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.valueChanged = createEvent(this, \"valueChanged\");\n this.logger = LoggerProvider.logger;\n this.GUIDE_SELECTOR_ATTR = 'guide-selector';\n /**\n * Indicates whether the dropdown menu is open.\n */\n this.open = false;\n /**\n * Holds the content of the tooltip\n */\n this.buttonTooltipContent = '';\n /**\n * Specifies the events that trigger the dropdown button tooltip to appear. Multiple event names should be separated by spaces.\n */\n this.dropdownTooltipTrigger = 'manual';\n /**\n * Icon class for the main dropdown button.\n */\n this.iconClass = '';\n /**\n * Specifies the items tooltip placement. Accepts a string of the placement or a function that returns the placement.\n * The function takes the isOpen parameter as a boolean and returns the placement as a string.\n * If not provided, the tooltip will be placed to the left.\n *\n */\n this.tooltipPlacement = OntoTooltipPlacement.LEFT;\n /**\n * Specifies the dropdown items' alignment. If not provided, the items and the dropdown button will be aligned to the left.\n *\n */\n this.dropdownAlignment = DropdownItemAlignment.LEFT;\n /**\n * Flag to determine if the dropdown should close automatically when a click occurs outside the dropdown.\n */\n this.autoClose = false;\n this.toggleButtonClickHandler = () => {\n TooltipUtil.destroyTooltip(this.dropdownButtonElement);\n this.buttonTooltipContent = '';\n this.toggleComponent();\n };\n }\n /**\n * Listens for the Escape key keydown event globally.\n * Closes the dropdown menu if the Escape key is pressed.\n *\n * @param ev The keyboard event triggered by the Escape key.\n */\n keydownListener(ev) {\n if (ev.key === 'Escape') {\n this.closeMenu();\n }\n }\n /**\n * Listens for mouse click events globally.\n * Closes the dropdown menu if the click occurs outside the dropdown.\n *\n * @param ev The mouse event triggered by a click.\n */\n mouseClickListener(ev) {\n const target = ev.target;\n if (this.autoClose && !this.hostElement.contains(target)) {\n this.closeMenu();\n }\n }\n componentDidUpdate() {\n if (this.dropdownButtonElement) {\n if (this.buttonTooltipContent && this.buttonTooltipContent !== '') {\n TooltipUtil.updateTooltipContent(this.dropdownButtonElement, this.buttonTooltipContent);\n }\n else {\n TooltipUtil.destroyTooltip(this.dropdownButtonElement);\n }\n }\n }\n render() {\n var _a, _b;\n const dropdownAlignmentClass = this.dropdownAlignment === DropdownItemAlignment.RIGHT\n ? 'onto-dropdown-right-item-alignment' : 'onto-dropdown-left-item-alignment';\n const tooltipPlacement = typeof this.tooltipPlacement === 'function' ? this.tooltipPlacement(this.open) : this.tooltipPlacement;\n return (h(\"div\", { key: 'cfe7e37b7e35a2c2f789db7627132e9f81fb3c52', class: `onto-dropdown ${this.open ? 'open' : 'closed'}` }, h(\"button\", Object.assign({ key: 'c5dad75448c84a2ca04105429d14b331529b72a3', class: \"onto-dropdown-button\", ref: (el) => this.dropdownButtonElement = el }, (this.dropdownButtonGuideSelector ? { [this.GUIDE_SELECTOR_ATTR]: this.dropdownButtonGuideSelector } : {}), { \"tooltip-placement\": tooltipPlacement, \"tooltip-trigger\": this.dropdownTooltipTrigger, \"tooltip-content\": this.buttonTooltipContent }, (this.tooltipTheme ? { 'tooltip-theme': this.tooltipTheme } : {}), { onMouseEnter: this.setDropdownButtonTooltip(), onClick: this.toggleButtonClickHandler }), this.iconClass ? h(\"i\", { class: 'button-icon ' + this.iconClass }) : '', h(\"span\", { key: 'ba8774fa79bfbaf2829d924872fd912a4435f1b2', class: 'button-name' }, (_a = this.dropdownButtonName) !== null && _a !== void 0 ? _a : this.translate(this.dropdownButtonNameLabelKey)), h(\"i\", { key: 'e237048eb394e44f6d25f65c0c8834c761d14287', class: `fa-light fa-angle-down ${this.open ? 'fa-rotate-180' : ''}` })), h(\"div\", { key: 'cc19ea9e57cc629d6ad8957fb4d635d8e23eda43', class: 'onto-dropdown-menu ' + dropdownAlignmentClass }, (_b = this.items) === null || _b === void 0 ? void 0 : _b.map((item) => {\n var _a;\n return h(\"button\", Object.assign({ class: 'onto-dropdown-menu-item ' + item.cssClass }, (item.guideSelector ? { [this.GUIDE_SELECTOR_ATTR]: item.guideSelector } : {}), { \"tooltip-placement\": OntoTooltipPlacement.LEFT, \"tooltip-trigger\": item.dropdownTooltipTrigger }, (this.tooltipTheme ? { 'tooltip-theme': this.tooltipTheme } : {}), { onMouseEnter: this.setDropdownItemTooltip(item), onClick: this.itemClickHandler(item.value) }), item.iconClass ? h(\"span\", { class: 'onto-dropdown-option-icon ' + item.iconClass }) : '', h(\"span\", null, (_a = item.name) !== null && _a !== void 0 ? _a : this.translate(item.nameLabelKey)));\n }))));\n }\n setDropdownButtonTooltip() {\n return async () => {\n var _a;\n let tooltipContent;\n if (typeof this.dropdownButtonTooltip === 'function') {\n tooltipContent = await this.getTooltipContent(this.dropdownButtonTooltip);\n }\n else {\n tooltipContent = (_a = this.dropdownButtonTooltip) !== null && _a !== void 0 ? _a : this.translate(this.dropdownButtonTooltipLabelKey);\n }\n this.buttonTooltipContent = tooltipContent;\n };\n }\n setDropdownItemTooltip(item) {\n return async (event) => {\n var _a;\n const target = event.currentTarget;\n if (typeof item.tooltip === 'function') {\n let tooltipContent = await this.getTooltipContent(item.tooltip);\n target.setAttribute('tooltip-content', tooltipContent);\n }\n else {\n target.setAttribute('tooltip-content', (_a = item.tooltip) !== null && _a !== void 0 ? _a : this.translate(item.tooltipLabelKey));\n }\n };\n }\n itemClickHandler(value) {\n return () => this.onSelect(value);\n }\n translate(key) {\n return key ? TranslationService.translate(key) : '';\n }\n onSelect(value) {\n this.open = false;\n this.valueChanged.emit(value);\n }\n toggleComponent() {\n this.open = !this.open;\n }\n closeMenu() {\n this.open = false;\n }\n async getTooltipContent(tooltipFunction) {\n let tooltipContent = '';\n try {\n tooltipContent = await tooltipFunction();\n }\n catch (error) {\n this.logger.error(error);\n }\n return tooltipContent;\n }\n get hostElement() { return getElement(this); }\n};\nOntoDropdown.style = ontoDropdownCss;\n\nexport { OntoDropdown as onto_dropdown };\n","var DropdownItemAlignment;\n(function (DropdownItemAlignment) {\n DropdownItemAlignment[\"RIGHT\"] = \"right\";\n DropdownItemAlignment[\"LEFT\"] = \"left\";\n})(DropdownItemAlignment || (DropdownItemAlignment = {}));\n\nexport { DropdownItemAlignment as D };\n"],"names":["OntoDropdown","constructor","hostRef","registerInstance","this","valueChanged","createEvent","logger","LoggerProvider","GUIDE_SELECTOR_ATTR","open","buttonTooltipContent","dropdownTooltipTrigger","iconClass","tooltipPlacement","OntoTooltipPlacement","LEFT","dropdownAlignment","DropdownItemAlignment","autoClose","toggleButtonClickHandler","TooltipUtil","destroyTooltip","dropdownButtonElement","toggleComponent","keydownListener","ev","key","closeMenu","mouseClickListener","target","hostElement","contains","componentDidUpdate","updateTooltipContent","render","_a","_b","dropdownAlignmentClass","RIGHT","h","class","Object","assign","ref","el","dropdownButtonGuideSelector","tooltipTheme","onMouseEnter","setDropdownButtonTooltip","onClick","dropdownButtonName","translate","dropdownButtonNameLabelKey","items","map","item","cssClass","guideSelector","setDropdownItemTooltip","itemClickHandler","value","name","nameLabelKey","async","tooltipContent","dropdownButtonTooltip","getTooltipContent","dropdownButtonTooltipLabelKey","event","currentTarget","tooltip","setAttribute","tooltipLabelKey","onSelect","TranslationService","emit","tooltipFunction","error","getElement","style"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ export const __webpack_id__=20227;export const __webpack_ids__=[20227,61105];export const __webpack_modules__={20227:(n,e,t)=>{t.r(e),t(98977),t(61105);const o=t(304).LoggerProvider.logger;function r(n){const e=[];return Object.keys(n).forEach(function(t){e.push(encodeURIComponent(t)+"="+encodeURIComponent(n[t]))}),e.join("&")}function i(n){return _.map(n,function(n,e){return{key:e,value:n}})}function a(n,e){return _.reduce(n,function(n,t){if(""===t.key&&""===t.value);else{if(""===t.key)throw new Error(e.instant("externalsync.empty.value.key.error",{value:t.value}));if(n.hasOwnProperty(t.key))throw new Error(e.instant("externalsync.duplicate.key.error",{key:t.key}));n[t.key]=t.value}return n},{})}function c(n,e){for(let t=0;t<e.length;t++){const o=e[t];if("StringArray"===o.__type)n[o.__name]||(n[o.__name]=[""]);else if("OptionArray"===o.__type)if(n[o.__name])for(let e=0;e<o.__childOptions.length;e++){const t=o.__childOptions[e];if("Boolean"===t.__type)for(let e=0;e<n[o.__name].length;e++){const r=n[o.__name][e];!r.hasOwnProperty([t.__name])&&angular.isDefined(t.__defaultValue)&&(r[t.__name]=t.__defaultValue)}}else{n[o.__name]=[];const e={};for(let n=0;n<o.__childOptions.length;n++){const t=o.__childOptions[n];"StringArray"===t.__type?e[t.__name]=[""]:e[t.__name]=angular.isUndefined(t.__defaultValue)?"":t.__defaultValue}n[o.__name].push(e)}else"Map"===o.__type?n[o.__name]?n[o.__name]=i(n[o.__name]):n[o.__name]=[]:"JsonString"===o.__type?!n[o.__name]||n[o.__name]instanceof String||"string"==typeof n[o.__name]||(n[o.__name]=angular.toJson(n[o.__name],2)):angular.isUndefined(n[o.__name])&&(n[o.__name]=angular.isUndefined(o.__defaultValue)?"":o.__defaultValue)}return n}function s(n,e,t){return n.post("repositories/"+e,r({query:t}),{headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/sparql-results+json","X-GraphDB-Local-Consistency":"updating"}})}function l(n){return n.substring(0,n.length-1)+"/instance#"}function u(n,e,t,o,r){const i=function n(e,t){const o={};return _.each(t,function(t){angular.isDefined(e[t.__name])&&("OptionArray"===t.__type?(o[t.__name]=[],_.each(e[t.__name],function(e){o[t.__name].push(n(e,t.__childOptions))})):o[t.__name]=_.cloneDeep(e[t.__name]))}),o}(t,o);for(let n=0;n<o.length;n++)try{"Map"===o[n].__type?i[o[n].__name]=a(i[o[n].__name],$translate):"JsonString"===o[n].__type&&(i[o[n].__name]=angular.fromJson(i[o[n].__name]))}catch(e){return r(o[n].__label,e.message),null}p(i);let c="";return c+="PREFIX :<"+e+">\n",c+="PREFIX inst:<"+l(e)+">\n",c+="INSERT DATA {\n",c+="\tinst:"+n+" :createConnector '''\n",c+=angular.toJson(i,2),c+="\n''' .\n}\n",c=c.replace(/\\/g,"\\\\\\"),c}function p(n){return Array.isArray(n)&&(n=_.filter(n,function(n){return null!==n&&(!n.trim||""!==n.trim())})),Object.keys(n).forEach(function(e){""!==n[e]&&null!==n[e]&&void 0!==n[e]||!1===n[e]?"object"==typeof n[e]&&(n[e]=p(n[e])):delete n[e]}),n}function f(n,e,t,i,a,p,f,g,d,m){function y(e){n.beingBuiltConnector={percentDone:0,status:{processedEntities:0,estimatedEntities:0,indexedEntities:0,entitiesPerSecond:0},actionName:e?m.instant("externalsync.repairing"):m.instant("externalsync.creating"),waitOnRepairStartOnce:!!e,eta:"-",inline:!1,iri:null}}function C(e,t,o){return y(o),$.extend(n.beingBuiltConnector,{iri:l(e)+t,name:t,inline:!1,doneCallback:function(){n.beingBuiltConnector.modalInstance.dismiss("cancel")}}),n.beingBuiltConnector.modalInstance=i.open({templateUrl:"pages/connectorProgress.html",controller:"CreateProgressCtrl",size:"lg",backdrop:"static",scope:n}),n.beingBuiltConnector.modalInstance}function h(e,o,i){const c=C(e.value,o.name,!1);g.addStatements(t.getActiveRepository(),r({update:o.query})).then(function(){d.getConnectors().then(function(){d.hasConnector(encodeURIComponent(e.value)).then(function(t){n.existing[e.key]=t.data})}),a.success(m.instant("created.connector",{name:o.name}))},function(n){a.error(getError(n)),i()}).finally(function(){c.dismiss("cancel")})}n.loader=!1,n.controllers=[],n.existing={},n.definitions={},n.getLoaderMessage=function(){const e=(Date.now()-n.loaderStartTime)/1e3,t=n.getHumanReadableSeconds(e);let o="";return o=n.progressMessage?n.progressMessage+"... "+t:m.instant("common.running.operation",{timeHuman:t}),n.extraMessage&&e>10&&(o+="\n"+n.extraMessage),o},n.setLoader=function(e,t,o){e?(n.loader=!0,n.loaderStartTime=Date.now(),n.progressMessage=t,n.extraMessage=o):(n.loader=!1,n.progressMessage="",n.extraMessage="")},n.initConnector=function(e){return d.initConnector(encodeURIComponent(e.value)).then(function(t){return n.definitions[e.key]=t.data,d.hasConnector(encodeURIComponent(e.value)).then(function(t){n.existing[e.key]=t.data})})},n.getConnectors=function(){n.isLicenseValid()&&n.canWriteActiveRepo()&&(n.setLoader(!0,m.instant("externalsync.fetching.connectors"),m.instant("common.extra.message")),d.getConnectors().then(function(r){n.connectors=Object.keys(r.data).map(function(n){return{key:n,value:r.data[n]}}),f.all(_.map(n.connectors,function(e){return n.initConnector(e)})).finally(function(){y();const r=function(n){const e=_.map(n,function(n){return"<"+n.value+"connectorStatus>"}).join("|");return e?"SELECT ?connector ?status { ?connector "+e+" ?status }":null}(n.connectors);r?function(n){return s(e,t.getActiveRepository(),n)}(r).then(function(e){const t=function(n){if(n.bindings)for(let e=0;e<n.bindings.length;e++)try{const t=JSON.parse(n.bindings[e].status.value);if("BUILDING"===t.status)return{connector:n.bindings[e].connector.value,status:t}}catch(n){o.error(n)}return{}}(e.data.results);if(t.connector){const e=t.connector.split(/#/);e[0]=e[0].replace(/\/instance$/,"#"),r=e[0],i=e[1],y(),$.extend(n.beingBuiltConnector,{iri:l(r)+i,name:i,inline:!0,doneCallback:function(){n.beingBuiltConnector.inline=!1}})}var r,i}).finally(function(){n.setLoader(!1)}):n.setLoader(!1)})}).catch(function(e){n.setLoader(!1),a.error(getError(e),m.instant("externalsync.could.not.get.connectors.error"))}),n.existing={})},n.getOptions=function(e){return n.definitions[e.key]},n.isEmpty=function(n){return angular.isObject(n)&&0===Object.keys(n).length},n.toPrettyJson=function(n){return angular.toJson(n,2)},n.$watch(function(){return t.getActiveRepository()},n.getConnectors),n.$watch(function(){return t.getActiveLocation()},n.getConnectors),n.copyConnector=function(e,t){let o;angular.isUndefined(t)||(o=_.cloneDeep(t),o.name=o.name+"-copy"),i.open({templateUrl:"pages/createConnector.html",controller:"CreateConnectorCtrl",size:"lg",backdrop:"static",resolve:{connector:function(){return e},values:function(){return angular.isUndefined(o)?{name:"",values:{}}:o},options:function(){return n.getOptions(e)}}}).result.then(function(t){h(e,t,function(){t.skipConversion=!0,n.newConnector(e,t)})})},n.newConnector=function(e,t){i.open({templateUrl:"pages/createConnector.html",controller:"CreateConnectorCtrl",size:"lg",backdrop:"static",resolve:{connector:function(){return e},values:function(){return angular.isUndefined(t)?{name:"",values:{}}:t},options:function(){return n.getOptions(e)}}}).result.then(function(t){h(e,t,function(){t.skipConversion=!0,n.newConnector(e,t)})})},n.repair=function(e,o){p.openSimpleModal({title:m.instant("externalsync.confirm.repair"),message:m.instant("externalsync.repair.warning.msg"),warning:!0}).result.then(function(){const i=C(o.value,e.name,!0),c=(s=e.name,"PREFIX prefix:<"+(u=o.value)+">\nINSERT DATA {\n\t<"+l(u)+s+'> prefix:repairConnector ""\n}');var s,u;g.addStatements(t.getActiveRepository(),r({update:c})).then(function(){d.getConnectors().then(function(){d.hasConnector(encodeURIComponent(o.value)).then(function(e){n.existing[o.key]=e.data})}),a.success(m.instant("externalsync.repair.success.msg",{name:e.name}))},function(n){a.error(getError(n))}).finally(function(){i.dismiss("cancel")})})},n.delete=function(e,o){const c=o.key.indexOf("Elastic")>=0||o.key.indexOf("Solr")>=0;i.open({templateUrl:"js/angular/externalsync/templates/deleteConnector.html",controller:"DeleteConnectorCtrl",resolve:{popoverMsg:function(){return c?m.instant("delete.connector.conditional",{type:o.key}):""}}}).result.then(function(i){n.setLoader(!0,m.instant("externalsync.delete.progress.msg",{name:e.name}),m.instant("externalsync.extra.message.warning"));const s=function(n,e,t){const o=e.substring(0,e.length-1)+"/instance#";return"PREFIX prefix:<"+e+">\nINSERT DATA {\n\t<"+o+n+'> prefix:dropConnector "'+(t?"force":"")+'"\n}'}(e.name,o.value,i);g.addStatements(t.getActiveRepository(),r({update:s})).then(function(){d.getConnectors().then(function(){d.hasConnector(encodeURIComponent(o.value)).then(function(e){n.existing[o.key]=e.data})}),i?(a.success(m.instant("externalsync.delete.force.success.msg",{name:e.name})),c&&a.warning(m.instant("externalsync.delete.remote.warning",{key:o.key}))):a.success(m.instant("externalsync.delete.success.msg",{name:e.name}))},function(n){a.error(getError(n))}).finally(function(){n.setLoader(!1)})})},n.viewQuery=function(e,t){i.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){const o=n.getOptions(e);return u(t.name,e.value,c(t.values,o),o)}}})}}function g(n,e,t){n.force=!1,n.popoverMsg=t,n.ok=function(){e.close(n.force)},n.cancel=function(){e.dismiss()}}function d(n,e,t,o,r){function i(){return u(n.name,t.value,n.values,n.options,function(n,e){r.error(e,n)})}n.connector=t,n.addField=function(e,t){const o=_.cloneDeep(n.defaultValues[t][0]);n.values[t].splice(e+1,0,o)},n.addOption=function(n,e){e.splice(n+1,0,"")},n.deleteOption=function(n,e){e.splice(n,1)},n.addMapOption=function(n,e){e.splice(n+1,0,{key:"",value:""})},n.deleteMapOption=function(n,e){e.splice(n,1)},n.ok=function(){if(n.form.$valid){const t=i();t&&e.close({name:n.name,values:n.values,options:n.options,query:t})}},n.viewQuery=function(){const n=i();n&&o.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return n}}})},n.cancel=function(){e.dismiss("cancel")}}function m(n,e,t,o,r,i,a,s){angular.extend(this,e("ExtendNewConnectorCtrl",{$scope:n,$uibModalInstance:o,connector:r,$uibModal:i})),n.values=a.values,n.options=s,n.name=a.name,a.skipConversion||(n.values=c(n.values,n.options)),n.defaultValues=_.cloneDeep(n.values)}function y(n,e,t,r,i){function a(){const a=function(n){const e=n.replace(/\/instance#.+$/,"#connectorStatus");let t="";return t+="SELECT ?status {\n",t+="\t<"+n+"> <"+e+"> ?status",t+="\n}",t}(n.beingBuiltConnector.iri);n.beingBuiltConnector.iri=null,n.progressInterval=e(function(){(function(n){return s(t,r.getActiveRepository(),n)})(a).then(function(t){const r=function(n){if(n.bindings&&n.bindings.length>0)try{return JSON.parse(n.bindings[0].status.value)}catch(n){o.error(n)}return{}}(t.data.results);"BUILDING"===r.status?(n.beingBuiltConnector.status=r,n.beingBuiltConnector.percentDone=(100*r.processedEntities/r.estimatedEntities).toFixed(0),n.beingBuiltConnector.eta=n.getHumanReadableSeconds(r.etaSeconds),n.beingBuiltConnector.actionName=r.repair?i.instant("externalsync.repairing"):i.instant("externalsync.creating"),n.beingBuiltConnector.waitOnRepairStartOnce=!1):"BUILT"!==r.status||n.beingBuiltConnector.waitOnRepairStartOnce||(e.cancel(n.progressInterval),n.beingBuiltConnector.doneCallback&&n.beingBuiltConnector.doneCallback())})},1e3),n.$on("$destroy",function(){e.cancel(n.progressInterval)})}n.beingBuiltConnector=n.beingBuiltConnector||{},!n.beingBuiltConnector.inline&&n.beingBuiltConnector.iri&&a(),n.$watch("beingBuiltConnector.iri",function(e){n.beingBuiltConnector.inline&&e&&a()})}angular.module("graphdb.framework.externalsync.controllers",["graphdb.framework.rest.rdf4j.repositories.service","graphdb.framework.rest.connectors.service"]).controller("ConnectorsCtrl",f).controller("ExtendNewConnectorCtrl",d).controller("CreateConnectorCtrl",m).controller("CreateProgressCtrl",y).controller("DeleteConnectorCtrl",g).filter("ceil",function(){return function(n){return Math.ceil(n)}}),f.$inject=["$scope","$http","$repositories","$uibModal","toastr","ModalService","$q","RDF4JRepositoriesRestService","ConnectorsRestService","$translate"],g.$inject=["$scope","$uibModalInstance","popoverMsg"],d.$inject=["$scope","$uibModalInstance","connector","$uibModal","toastr"],m.$inject=["$scope","$controller","$http","$uibModalInstance","connector","$uibModal","values","options"],y.$inject=["$scope","$interval","$http","$repositories","$translate"]},61105:()=>{angular.module("graphdb.framework.rest.connectors.service",[]).factory("ConnectorsRestService",e),e.$inject=["$http"];const n="rest/connectors";function e(e){return{getConnectors:function(t,o){return t?e.get(n,{headers:{"X-GraphDB-Repository":t,"X-GraphDB-Repository-Location":o}}):e.get(n)},initConnector:function(t){return e.get(`${n}/options?prefix=${t}`)},hasConnector:function(t,o,r){return o?e.get(`${n}/existing?prefix=${t}`,{headers:{"X-GraphDB-Repository":o,"X-GraphDB-Repository-Location":r}}):e.get(`${n}/existing?prefix=${t}`)},checkConnector:function(t){return e.post(`${n}/check`,t,{headers:{"Content-Type":"text/plain"}})}}}}};
2
+ //# sourceMappingURL=20227.a9333aa1320edea7264b.bundle.js.map