@eo-sdk/client 10.6.10 → 10.6.12

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 (258) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
  3. package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts.map +1 -1
  4. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  5. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +2 -0
  6. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  7. package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
  8. package/app/eo-framework/util/services/utilities.service.d.ts +190 -0
  9. package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
  10. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  11. package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +18 -1
  12. package/esm2020/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
  13. package/esm2020/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  14. package/esm2020/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +2 -1
  15. package/esm2020/app/eo-framework/grid/grid.component.mjs +2 -2
  16. package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +3 -1
  17. package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  18. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +10 -3
  19. package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
  20. package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +7 -7
  21. package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  22. package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  23. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +2 -2
  24. package/esm2020/app/eo-framework/util/services/utilities.service.mjs +4 -1
  25. package/fesm2015/eo-sdk-client.mjs +74 -46
  26. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  27. package/fesm2020/eo-sdk-client.mjs +74 -46
  28. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  29. package/misc/scripts/exclude-core-ng-package.js +11 -0
  30. package/misc/scripts/prebuild-about-state.js +2 -3
  31. package/package.json +3 -11
  32. package/esm2020/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.mjs +0 -5
  33. package/esm2020/projects/eo-sdk/core/lib/config/core-config.mjs +0 -23
  34. package/esm2020/projects/eo-sdk/core/lib/config/core-init.service.mjs +0 -71
  35. package/esm2020/projects/eo-sdk/core/lib/config/core-init.tokens.mjs +0 -8
  36. package/esm2020/projects/eo-sdk/core/lib/config/initialize-module.mjs +0 -11
  37. package/esm2020/projects/eo-sdk/core/lib/config/missing-translation-handler.mjs +0 -15
  38. package/esm2020/projects/eo-sdk/core/lib/config/translate-json-loader.mjs +0 -130
  39. package/esm2020/projects/eo-sdk/core/lib/environment.enaio.mjs +0 -12
  40. package/esm2020/projects/eo-sdk/core/lib/eo-core-shared.module.mjs +0 -24
  41. package/esm2020/projects/eo-sdk/core/lib/eo-core.module.mjs +0 -117
  42. package/esm2020/projects/eo-sdk/core/lib/interface/change-password.interface.mjs +0 -2
  43. package/esm2020/projects/eo-sdk/core/lib/interface/event.interface.mjs +0 -2
  44. package/esm2020/projects/eo-sdk/core/lib/interface/http-options.interface.mjs +0 -2
  45. package/esm2020/projects/eo-sdk/core/lib/interface/logger.interface.mjs +0 -7
  46. package/esm2020/projects/eo-sdk/core/lib/interface/organization-objects.interface.mjs +0 -2
  47. package/esm2020/projects/eo-sdk/core/lib/interface/tree-node.interface.mjs +0 -2
  48. package/esm2020/projects/eo-sdk/core/lib/model/baseparams.model.mjs +0 -2
  49. package/esm2020/projects/eo-sdk/core/lib/model/bpm.model.mjs +0 -70
  50. package/esm2020/projects/eo-sdk/core/lib/model/custom-action.model.mjs +0 -2
  51. package/esm2020/projects/eo-sdk/core/lib/model/dms-object-history.model.mjs +0 -30
  52. package/esm2020/projects/eo-sdk/core/lib/model/dms-object.model.mjs +0 -138
  53. package/esm2020/projects/eo-sdk/core/lib/model/eo-error.model.mjs +0 -37
  54. package/esm2020/projects/eo-sdk/core/lib/model/eo-user.model.mjs +0 -86
  55. package/esm2020/projects/eo-sdk/core/lib/model/inbox-item.model.mjs +0 -36
  56. package/esm2020/projects/eo-sdk/core/lib/model/object-type.model.mjs +0 -39
  57. package/esm2020/projects/eo-sdk/core/lib/model/org.model.mjs +0 -2
  58. package/esm2020/projects/eo-sdk/core/lib/model/prepared-item.model.mjs +0 -35
  59. package/esm2020/projects/eo-sdk/core/lib/model/range-value.model.mjs +0 -45
  60. package/esm2020/projects/eo-sdk/core/lib/model/upload-file-item.model.mjs +0 -17
  61. package/esm2020/projects/eo-sdk/core/lib/model/upload-target.model.mjs +0 -50
  62. package/esm2020/projects/eo-sdk/core/lib/model/work-item-history.model.mjs +0 -54
  63. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth-interceptor.mjs +0 -29
  64. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.mjs +0 -2
  65. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +0 -215
  66. package/esm2020/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.mjs +0 -2
  67. package/esm2020/projects/eo-sdk/core/lib/service/backend/backend.service.mjs +0 -360
  68. package/esm2020/projects/eo-sdk/core/lib/service/bpm/bpm.service.mjs +0 -286
  69. package/esm2020/projects/eo-sdk/core/lib/service/cache/app-cache.service.mjs +0 -117
  70. package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.mjs +0 -2
  71. package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.mjs +0 -60
  72. package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.mjs +0 -6
  73. package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.mjs +0 -2
  74. package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.mjs +0 -100
  75. package/esm2020/projects/eo-sdk/core/lib/service/config/config.enum.mjs +0 -6
  76. package/esm2020/projects/eo-sdk/core/lib/service/config/config.interface.mjs +0 -2
  77. package/esm2020/projects/eo-sdk/core/lib/service/config/config.service.mjs +0 -135
  78. package/esm2020/projects/eo-sdk/core/lib/service/dms/dms.service.mjs +0 -507
  79. package/esm2020/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.mjs +0 -2
  80. package/esm2020/projects/eo-sdk/core/lib/service/events/event.service.mjs +0 -44
  81. package/esm2020/projects/eo-sdk/core/lib/service/events/events.mjs +0 -27
  82. package/esm2020/projects/eo-sdk/core/lib/service/inbox/inbox.service.mjs +0 -111
  83. package/esm2020/projects/eo-sdk/core/lib/service/logger/console-log.service.mjs +0 -41
  84. package/esm2020/projects/eo-sdk/core/lib/service/logger/logger.mjs +0 -47
  85. package/esm2020/projects/eo-sdk/core/lib/service/notifications/notifications.service.mjs +0 -136
  86. package/esm2020/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.mjs +0 -2
  87. package/esm2020/projects/eo-sdk/core/lib/service/prepare/prepare.service.mjs +0 -305
  88. package/esm2020/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.mjs +0 -2
  89. package/esm2020/projects/eo-sdk/core/lib/service/search/search-query.model.mjs +0 -510
  90. package/esm2020/projects/eo-sdk/core/lib/service/search/search.service.mjs +0 -484
  91. package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +0 -60
  92. package/esm2020/projects/eo-sdk/core/lib/service/storage/local-storage.service.mjs +0 -111
  93. package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.mjs +0 -2
  94. package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.mjs +0 -216
  95. package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.mjs +0 -98
  96. package/esm2020/projects/eo-sdk/core/lib/service/system/system.service.mjs +0 -345
  97. package/esm2020/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.mjs +0 -2
  98. package/esm2020/projects/eo-sdk/core/lib/service/system-status/system-status.service.mjs +0 -104
  99. package/esm2020/projects/eo-sdk/core/lib/service/system-status/system.status.enum.mjs +0 -9
  100. package/esm2020/projects/eo-sdk/core/lib/service/system-status/system.status.interface.mjs +0 -2
  101. package/esm2020/projects/eo-sdk/core/lib/service/upload/upload.service.mjs +0 -46
  102. package/esm2020/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.mjs +0 -83
  103. package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +0 -399
  104. package/esm2020/projects/eo-sdk/core/lib/util/utils.mjs +0 -304
  105. package/esm2020/projects/eo-sdk/core/public_api.mjs +0 -85
  106. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +0 -6124
  107. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +0 -1
  108. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +0 -6139
  109. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +0 -1
  110. package/projects/eo-sdk/core/README.md +0 -113
  111. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.d.ts.map +0 -1
  112. package/projects/eo-sdk/core/index.d.ts +0 -6
  113. package/projects/eo-sdk/core/lib/config/core-config.d.ts +0 -14
  114. package/projects/eo-sdk/core/lib/config/core-config.d.ts.map +0 -1
  115. package/projects/eo-sdk/core/lib/config/core-init.service.d.ts +0 -33
  116. package/projects/eo-sdk/core/lib/config/core-init.service.d.ts.map +0 -1
  117. package/projects/eo-sdk/core/lib/config/core-init.tokens.d.ts +0 -8
  118. package/projects/eo-sdk/core/lib/config/core-init.tokens.d.ts.map +0 -1
  119. package/projects/eo-sdk/core/lib/config/initialize-module.d.ts +0 -7
  120. package/projects/eo-sdk/core/lib/config/initialize-module.d.ts.map +0 -1
  121. package/projects/eo-sdk/core/lib/config/missing-translation-handler.d.ts +0 -14
  122. package/projects/eo-sdk/core/lib/config/missing-translation-handler.d.ts.map +0 -1
  123. package/projects/eo-sdk/core/lib/config/translate-json-loader.d.ts +0 -21
  124. package/projects/eo-sdk/core/lib/config/translate-json-loader.d.ts.map +0 -1
  125. package/projects/eo-sdk/core/lib/environment.enaio.d.ts +0 -6
  126. package/projects/eo-sdk/core/lib/environment.enaio.d.ts.map +0 -1
  127. package/projects/eo-sdk/core/lib/eo-core-shared.module.d.ts +0 -12
  128. package/projects/eo-sdk/core/lib/eo-core-shared.module.d.ts.map +0 -1
  129. package/projects/eo-sdk/core/lib/eo-core.module.d.ts +0 -46
  130. package/projects/eo-sdk/core/lib/eo-core.module.d.ts.map +0 -1
  131. package/projects/eo-sdk/core/lib/interface/change-password.interface.d.ts +0 -8
  132. package/projects/eo-sdk/core/lib/interface/change-password.interface.d.ts.map +0 -1
  133. package/projects/eo-sdk/core/lib/interface/event.interface.d.ts +0 -14
  134. package/projects/eo-sdk/core/lib/interface/event.interface.d.ts.map +0 -1
  135. package/projects/eo-sdk/core/lib/interface/http-options.interface.d.ts +0 -17
  136. package/projects/eo-sdk/core/lib/interface/http-options.interface.d.ts.map +0 -1
  137. package/projects/eo-sdk/core/lib/interface/logger.interface.d.ts +0 -20
  138. package/projects/eo-sdk/core/lib/interface/logger.interface.d.ts.map +0 -1
  139. package/projects/eo-sdk/core/lib/interface/organization-objects.interface.d.ts +0 -20
  140. package/projects/eo-sdk/core/lib/interface/organization-objects.interface.d.ts.map +0 -1
  141. package/projects/eo-sdk/core/lib/interface/tree-node.interface.d.ts +0 -24
  142. package/projects/eo-sdk/core/lib/interface/tree-node.interface.d.ts.map +0 -1
  143. package/projects/eo-sdk/core/lib/model/baseparams.model.d.ts +0 -58
  144. package/projects/eo-sdk/core/lib/model/baseparams.model.d.ts.map +0 -1
  145. package/projects/eo-sdk/core/lib/model/bpm.model.d.ts +0 -253
  146. package/projects/eo-sdk/core/lib/model/bpm.model.d.ts.map +0 -1
  147. package/projects/eo-sdk/core/lib/model/custom-action.model.d.ts +0 -34
  148. package/projects/eo-sdk/core/lib/model/custom-action.model.d.ts.map +0 -1
  149. package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts +0 -59
  150. package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts.map +0 -1
  151. package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts +0 -137
  152. package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts.map +0 -1
  153. package/projects/eo-sdk/core/lib/model/eo-error.model.d.ts +0 -19
  154. package/projects/eo-sdk/core/lib/model/eo-error.model.d.ts.map +0 -1
  155. package/projects/eo-sdk/core/lib/model/eo-user.model.d.ts +0 -107
  156. package/projects/eo-sdk/core/lib/model/eo-user.model.d.ts.map +0 -1
  157. package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts +0 -71
  158. package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts.map +0 -1
  159. package/projects/eo-sdk/core/lib/model/object-type.model.d.ts +0 -125
  160. package/projects/eo-sdk/core/lib/model/object-type.model.d.ts.map +0 -1
  161. package/projects/eo-sdk/core/lib/model/org.model.d.ts +0 -94
  162. package/projects/eo-sdk/core/lib/model/org.model.d.ts.map +0 -1
  163. package/projects/eo-sdk/core/lib/model/prepared-item.model.d.ts +0 -190
  164. package/projects/eo-sdk/core/lib/model/prepared-item.model.d.ts.map +0 -1
  165. package/projects/eo-sdk/core/lib/model/range-value.model.d.ts +0 -22
  166. package/projects/eo-sdk/core/lib/model/range-value.model.d.ts.map +0 -1
  167. package/projects/eo-sdk/core/lib/model/upload-file-item.model.d.ts +0 -30
  168. package/projects/eo-sdk/core/lib/model/upload-file-item.model.d.ts.map +0 -1
  169. package/projects/eo-sdk/core/lib/model/upload-target.model.d.ts +0 -60
  170. package/projects/eo-sdk/core/lib/model/upload-target.model.d.ts.map +0 -1
  171. package/projects/eo-sdk/core/lib/model/work-item-history.model.d.ts +0 -52
  172. package/projects/eo-sdk/core/lib/model/work-item-history.model.d.ts.map +0 -1
  173. package/projects/eo-sdk/core/lib/service/auth/auth-interceptor.d.ts +0 -12
  174. package/projects/eo-sdk/core/lib/service/auth/auth-interceptor.d.ts.map +0 -1
  175. package/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.d.ts +0 -23
  176. package/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.d.ts.map +0 -1
  177. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +0 -104
  178. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +0 -1
  179. package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts +0 -18
  180. package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts.map +0 -1
  181. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +0 -209
  182. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts.map +0 -1
  183. package/projects/eo-sdk/core/lib/service/bpm/bpm.service.d.ts +0 -150
  184. package/projects/eo-sdk/core/lib/service/bpm/bpm.service.d.ts.map +0 -1
  185. package/projects/eo-sdk/core/lib/service/cache/app-cache.service.d.ts +0 -59
  186. package/projects/eo-sdk/core/lib/service/cache/app-cache.service.d.ts.map +0 -1
  187. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts +0 -54
  188. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts.map +0 -1
  189. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts +0 -35
  190. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts.map +0 -1
  191. package/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.d.ts +0 -5
  192. package/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.d.ts.map +0 -1
  193. package/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.d.ts +0 -16
  194. package/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.d.ts.map +0 -1
  195. package/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.d.ts +0 -49
  196. package/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.d.ts.map +0 -1
  197. package/projects/eo-sdk/core/lib/service/config/config.enum.d.ts +0 -5
  198. package/projects/eo-sdk/core/lib/service/config/config.enum.d.ts.map +0 -1
  199. package/projects/eo-sdk/core/lib/service/config/config.interface.d.ts +0 -55
  200. package/projects/eo-sdk/core/lib/service/config/config.interface.d.ts.map +0 -1
  201. package/projects/eo-sdk/core/lib/service/config/config.service.d.ts +0 -80
  202. package/projects/eo-sdk/core/lib/service/config/config.service.d.ts.map +0 -1
  203. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +0 -286
  204. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts.map +0 -1
  205. package/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.d.ts +0 -13
  206. package/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.d.ts.map +0 -1
  207. package/projects/eo-sdk/core/lib/service/events/event.service.d.ts +0 -31
  208. package/projects/eo-sdk/core/lib/service/events/event.service.d.ts.map +0 -1
  209. package/projects/eo-sdk/core/lib/service/events/events.d.ts +0 -27
  210. package/projects/eo-sdk/core/lib/service/events/events.d.ts.map +0 -1
  211. package/projects/eo-sdk/core/lib/service/inbox/inbox.service.d.ts +0 -66
  212. package/projects/eo-sdk/core/lib/service/inbox/inbox.service.d.ts.map +0 -1
  213. package/projects/eo-sdk/core/lib/service/logger/console-log.service.d.ts +0 -20
  214. package/projects/eo-sdk/core/lib/service/logger/console-log.service.d.ts.map +0 -1
  215. package/projects/eo-sdk/core/lib/service/logger/logger.d.ts +0 -25
  216. package/projects/eo-sdk/core/lib/service/logger/logger.d.ts.map +0 -1
  217. package/projects/eo-sdk/core/lib/service/notifications/notifications.service.d.ts +0 -78
  218. package/projects/eo-sdk/core/lib/service/notifications/notifications.service.d.ts.map +0 -1
  219. package/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.d.ts +0 -9
  220. package/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.d.ts.map +0 -1
  221. package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts +0 -189
  222. package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts.map +0 -1
  223. package/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.d.ts +0 -10
  224. package/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.d.ts.map +0 -1
  225. package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts +0 -327
  226. package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts.map +0 -1
  227. package/projects/eo-sdk/core/lib/service/search/search.service.d.ts +0 -173
  228. package/projects/eo-sdk/core/lib/service/search/search.service.d.ts.map +0 -1
  229. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +0 -52
  230. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +0 -1
  231. package/projects/eo-sdk/core/lib/service/storage/local-storage.service.d.ts +0 -53
  232. package/projects/eo-sdk/core/lib/service/storage/local-storage.service.d.ts.map +0 -1
  233. package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.d.ts +0 -15
  234. package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.d.ts.map +0 -1
  235. package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.d.ts +0 -108
  236. package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.d.ts.map +0 -1
  237. package/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.d.ts +0 -74
  238. package/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.d.ts.map +0 -1
  239. package/projects/eo-sdk/core/lib/service/system/system.service.d.ts +0 -125
  240. package/projects/eo-sdk/core/lib/service/system/system.service.d.ts.map +0 -1
  241. package/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.d.ts +0 -53
  242. package/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.d.ts.map +0 -1
  243. package/projects/eo-sdk/core/lib/service/system-status/system-status.service.d.ts +0 -26
  244. package/projects/eo-sdk/core/lib/service/system-status/system-status.service.d.ts.map +0 -1
  245. package/projects/eo-sdk/core/lib/service/system-status/system.status.enum.d.ts +0 -8
  246. package/projects/eo-sdk/core/lib/service/system-status/system.status.enum.d.ts.map +0 -1
  247. package/projects/eo-sdk/core/lib/service/system-status/system.status.interface.d.ts +0 -8
  248. package/projects/eo-sdk/core/lib/service/system-status/system.status.interface.d.ts.map +0 -1
  249. package/projects/eo-sdk/core/lib/service/upload/upload.service.d.ts +0 -28
  250. package/projects/eo-sdk/core/lib/service/upload/upload.service.d.ts.map +0 -1
  251. package/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.d.ts +0 -50
  252. package/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.d.ts.map +0 -1
  253. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +0 -216
  254. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +0 -1
  255. package/projects/eo-sdk/core/lib/util/utils.d.ts +0 -148
  256. package/projects/eo-sdk/core/lib/util/utils.d.ts.map +0 -1
  257. package/projects/eo-sdk/core/public_api.d.ts +0 -82
  258. package/projects/eo-sdk/core/public_api.d.ts.map +0 -1
@@ -1,83 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { ReplaySubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../prepare/prepare.service";
5
- /**
6
- * Service for registration of upload targets. Any app component can register itself
7
- * to retrieve files dragged to the client. This way also plugins are able to fetch and
8
- * process uploaded files.
9
- */
10
- export class UploadRegistryService {
11
- /**
12
- * @ignore
13
- */
14
- constructor(prepareService) {
15
- this.prepareService = prepareService;
16
- this._targets = [];
17
- this.targetsSource = new ReplaySubject(1);
18
- /**
19
- * Stream of currently available upload targets
20
- */
21
- this.uploadTargets$ = this.targetsSource.asObservable();
22
- }
23
- setOverlayActive(oa) {
24
- this.overlayActive = oa;
25
- }
26
- isOverlayActive() {
27
- return this.overlayActive;
28
- }
29
- /**
30
- * Registers a new upload target.
31
- * If there is an existing target with the same ID it will be updated.
32
- *
33
- * @param uploadTarget The target to be registered
34
- */
35
- register(uploadTarget) {
36
- if (uploadTarget.referenceObject) {
37
- uploadTarget.description = `${(uploadTarget.type === 'object' && uploadTarget.referenceObject?.type?.label) ? `${uploadTarget.referenceObject.type.label}: ` : ''}${uploadTarget.referenceObject.title}`;
38
- if (uploadTarget.subFolder) {
39
- this.prepareService.getPrepareChildTypes(uploadTarget.referenceObject.id).subscribe((res) => {
40
- if (this.isSubFolderAllowed(uploadTarget.subFolder.data, res.types)) {
41
- uploadTarget.description += '; ' + uploadTarget.subFolder.name;
42
- }
43
- });
44
- }
45
- }
46
- const target = this._targets.find(t => t.id === uploadTarget.id);
47
- if (target) {
48
- Object.assign(target, uploadTarget);
49
- }
50
- else {
51
- this._targets.push(uploadTarget);
52
- }
53
- this.targetsSource.next(this._targets);
54
- }
55
- /**
56
- * Checks if it is allowed to drop Files in SubFolders
57
- *
58
- * @param subFolder
59
- * @param ObjectType[] locationTypes
60
- * @returns boolean
61
- */
62
- isSubFolderAllowed(subFolder, locationTypes) {
63
- return !!locationTypes.find(lt => lt.name === subFolder.type);
64
- }
65
- /**
66
- * Removes an upload target from the list of registered targets.
67
- *
68
- * @param uploadTargetId ID of the target to be removed
69
- */
70
- unregister(uploadTargetId) {
71
- this._targets = this._targets.filter((t) => t.id !== uploadTargetId);
72
- this.targetsSource.next(this._targets);
73
- }
74
- }
75
- UploadRegistryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UploadRegistryService, deps: [{ token: i1.PrepareService }], target: i0.ɵɵFactoryTarget.Injectable });
76
- UploadRegistryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UploadRegistryService, providedIn: 'root' });
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UploadRegistryService, decorators: [{
78
- type: Injectable,
79
- args: [{
80
- providedIn: 'root'
81
- }]
82
- }], ctorParameters: function () { return [{ type: i1.PrepareService }]; } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvdXBsb2FkLXJlZ2lzdHJ5L3VwbG9hZC1yZWdpc3RyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQzs7O0FBSy9DOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBVWhDOztPQUVHO0lBQ0gsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBWDFDLGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBQzlCLGtCQUFhLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBRTdEOztXQUVHO1FBQ0ksbUJBQWMsR0FBK0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQU10RixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBVztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsWUFBMEI7UUFFakMsSUFBSSxZQUFZLENBQUMsZUFBZSxFQUFFO1lBQ2hDLFlBQVksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4TSxJQUFJLFlBQVksQ0FBQyxTQUFTLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDMUYsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUNuRSxZQUFZLENBQUMsV0FBVyxJQUFJLElBQUksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztxQkFDaEU7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsa0JBQWtCLENBQUMsU0FBYyxFQUFFLGFBQTJCO1FBQzVELE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxjQUFzQjtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDOztrSEF0RVUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVwbGF5U3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1VwbG9hZFRhcmdldH0gZnJvbSAnLi4vLi4vbW9kZWwvdXBsb2FkLXRhcmdldC5tb2RlbCc7XG5pbXBvcnQge1ByZXBhcmVTZXJ2aWNlfSBmcm9tICcuLi9wcmVwYXJlL3ByZXBhcmUuc2VydmljZSc7XG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciByZWdpc3RyYXRpb24gb2YgdXBsb2FkIHRhcmdldHMuIEFueSBhcHAgY29tcG9uZW50IGNhbiByZWdpc3RlciBpdHNlbGZcbiAqIHRvIHJldHJpZXZlIGZpbGVzIGRyYWdnZWQgdG8gdGhlIGNsaWVudC4gVGhpcyB3YXkgYWxzbyBwbHVnaW5zIGFyZSBhYmxlIHRvIGZldGNoIGFuZFxuICogcHJvY2VzcyB1cGxvYWRlZCBmaWxlcy5cbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRSZWdpc3RyeVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX3RhcmdldHM6IFVwbG9hZFRhcmdldFtdID0gW107XG4gIHByaXZhdGUgdGFyZ2V0c1NvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFVwbG9hZFRhcmdldFtdPigxKTtcbiAgcHJpdmF0ZSBvdmVybGF5QWN0aXZlOiBib29sZWFuO1xuICAvKipcbiAgICogU3RyZWFtIG9mIGN1cnJlbnRseSBhdmFpbGFibGUgdXBsb2FkIHRhcmdldHNcbiAgICovXG4gIHB1YmxpYyB1cGxvYWRUYXJnZXRzJDogT2JzZXJ2YWJsZTxVcGxvYWRUYXJnZXRbXT4gPSB0aGlzLnRhcmdldHNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJlcGFyZVNlcnZpY2U6IFByZXBhcmVTZXJ2aWNlKSB7XG4gIH1cblxuICBzZXRPdmVybGF5QWN0aXZlKG9hOiBib29sZWFuKSB7XG4gICAgdGhpcy5vdmVybGF5QWN0aXZlID0gb2E7XG4gIH1cbiAgaXNPdmVybGF5QWN0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlBY3RpdmU7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgbmV3IHVwbG9hZCB0YXJnZXQuXG4gICAqIElmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIHRhcmdldCB3aXRoIHRoZSBzYW1lIElEIGl0IHdpbGwgYmUgdXBkYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHVwbG9hZFRhcmdldCBUaGUgdGFyZ2V0IHRvIGJlIHJlZ2lzdGVyZWRcbiAgICovXG4gIHJlZ2lzdGVyKHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0KSB7XG5cbiAgICBpZiAodXBsb2FkVGFyZ2V0LnJlZmVyZW5jZU9iamVjdCkge1xuICAgICAgdXBsb2FkVGFyZ2V0LmRlc2NyaXB0aW9uID0gYCR7KHVwbG9hZFRhcmdldC50eXBlID09PSAnb2JqZWN0JyAmJiB1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0Py50eXBlPy5sYWJlbCkgPyBgJHt1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0LnR5cGUubGFiZWx9OiBgIDogJyd9JHt1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0LnRpdGxlfWA7XG4gICAgICAgaWYgKHVwbG9hZFRhcmdldC5zdWJGb2xkZXIpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlU2VydmljZS5nZXRQcmVwYXJlQ2hpbGRUeXBlcyh1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0LmlkKS5zdWJzY3JpYmUoKHJlcykgPT4geyBcbiAgICAgICAgICBpZiAodGhpcy5pc1N1YkZvbGRlckFsbG93ZWQodXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLCByZXMudHlwZXMpKSB7XG4gICAgICAgICAgICB1cGxvYWRUYXJnZXQuZGVzY3JpcHRpb24gKz0gJzsgJyArIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIubmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuX3RhcmdldHMuZmluZCh0ID0+IHQuaWQgPT09IHVwbG9hZFRhcmdldC5pZCk7XG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHVwbG9hZFRhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RhcmdldHMucHVzaCh1cGxvYWRUYXJnZXQpO1xuICAgIH1cbiAgICB0aGlzLnRhcmdldHNTb3VyY2UubmV4dCh0aGlzLl90YXJnZXRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgaXQgaXMgYWxsb3dlZCB0byBkcm9wIEZpbGVzIGluIFN1YkZvbGRlcnNcbiAgICpcbiAgICogQHBhcmFtIHN1YkZvbGRlclxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZVtdIGxvY2F0aW9uVHlwZXNcbiAgICogQHJldHVybnMgYm9vbGVhblxuICAgKi9cbiAgaXNTdWJGb2xkZXJBbGxvd2VkKHN1YkZvbGRlcjogYW55LCBsb2NhdGlvblR5cGVzOiBPYmplY3RUeXBlW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFsb2NhdGlvblR5cGVzLmZpbmQobHQgPT4gbHQubmFtZSA9PT0gc3ViRm9sZGVyLnR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYW4gdXBsb2FkIHRhcmdldCBmcm9tIHRoZSBsaXN0IG9mIHJlZ2lzdGVyZWQgdGFyZ2V0cy5cbiAgICpcbiAgICogQHBhcmFtIHVwbG9hZFRhcmdldElkIElEIG9mIHRoZSB0YXJnZXQgdG8gYmUgcmVtb3ZlZFxuICAgKi9cbiAgdW5yZWdpc3Rlcih1cGxvYWRUYXJnZXRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGFyZ2V0cyA9IHRoaXMuX3RhcmdldHMuZmlsdGVyKCh0KSA9PiB0LmlkICE9PSB1cGxvYWRUYXJnZXRJZCk7XG4gICAgdGhpcy50YXJnZXRzU291cmNlLm5leHQodGhpcy5fdGFyZ2V0cyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,399 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, forkJoin, of, EMPTY } from 'rxjs';
3
- import { map, tap, debounceTime, filter, catchError } from 'rxjs/operators';
4
- import { EoUser } from '../../model/eo-user.model';
5
- import { Utils } from '../../util/utils';
6
- import { EnaioEvent } from '../events/events';
7
- import { Direction } from '../config/config.enum';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../backend/backend.service";
10
- import * as i2 from "@ngx-translate/core";
11
- import * as i3 from "../logger/logger";
12
- import * as i4 from "../events/event.service";
13
- import * as i5 from "../system/system.service";
14
- import * as i6 from "@angular/common/http";
15
- import * as i7 from "../config/config.service";
16
- /**
17
- * Applications user service.
18
- * To get the current user you have to subscribe to the services `user$` observable.
19
- *
20
- * ```javascript
21
- * userService.user$.subscribe((user) => this.user = user);
22
- * ```
23
- *
24
- * This way your component will be provided with an up-to-date user object no matter
25
- * which component changes on of the users properties.
26
- */
27
- export class UserService {
28
- /**
29
- * @ignore
30
- */
31
- constructor(backend, translate, logger, eventService, system, http, config) {
32
- this.backend = backend;
33
- this.translate = translate;
34
- this.logger = logger;
35
- this.eventService = eventService;
36
- this.system = system;
37
- this.http = http;
38
- this.config = config;
39
- this.USER_FETCH_URI = '/user?favorites=true&privileges=true&roles=true&deputies=true&substitutesOf=true';
40
- this.user = null;
41
- this.userSource = new BehaviorSubject(this.user);
42
- /**
43
- * Observable emitting the current user
44
- */
45
- this.user$ = this.userSource.asObservable();
46
- this.favorites = null;
47
- this.favoritesSource = new BehaviorSubject(this.favorites);
48
- /**
49
- * Observable emitting current users favorites
50
- */
51
- this.favoritesGridData$ = this.favoritesSource.asObservable().pipe(debounceTime(100), filter(v => v));
52
- this.favorites$ = this.favoritesGridData$.pipe(this.backend.gridDataFilter);
53
- this.notifications = null;
54
- this.notificationsSource = new BehaviorSubject(this.notifications);
55
- /**
56
- * Observable emitting current users recyclebin
57
- */
58
- this.recycles = null;
59
- this.recyclesSource = new BehaviorSubject(this.recycles);
60
- this.recyclesGridData$ = this.recyclesSource.asObservable().pipe(debounceTime(100), filter(v => v));
61
- this.recycles$ = this.recyclesGridData$.pipe(this.backend.gridDataFilter);
62
- /**
63
- * Observable emitting current users notifications
64
- */
65
- this.notificationsGridData$ = this.notificationsSource.asObservable().pipe(debounceTime(100), filter(v => v));
66
- this.notifications$ = this.notificationsGridData$.pipe(this.backend.gridDataFilter);
67
- }
68
- /**
69
- * Gets the current user.
70
- * @returns The current user or NULL if no user is logged in
71
- */
72
- getCurrentUser() {
73
- return this.user;
74
- }
75
- /**
76
- * Set presence of the current user
77
- * @param present Value to set the users presence to
78
- */
79
- setPresence(present) {
80
- if (present !== this.user.present) {
81
- return this.backend.put('/user?presence=' + present)
82
- .pipe(tap(_ => {
83
- this.user.present = present;
84
- this.userSource.next(this.user);
85
- }));
86
- }
87
- else {
88
- return of(null);
89
- }
90
- }
91
- /**
92
- *
93
- * @param uri
94
- * @returns
95
- */
96
- delUserImage(uri) {
97
- return this.http.put(uri, null);
98
- }
99
- setUserImage(file) {
100
- return this.backend.put(`/user/image`, file);
101
- }
102
- /**
103
- * Sets the deputies for the current user
104
- * @param deputiesNames Names of the users to be set as deputies
105
- */
106
- setDeputies(deputiesNames) {
107
- return this.backend.put(`/user/deputy?user=${deputiesNames.join('&user=')}`).pipe(tap(() => this.refreshCurrentUser().subscribe()));
108
- }
109
- /**
110
- * Change the users client locale
111
- * @param iso ISO locale string to be set as new client locale
112
- */
113
- changeClientLocale(iso) {
114
- this.user.userSettings['clientlocale'] = iso;
115
- this.backend
116
- .put('/user/config/web', this.user.userSettings)
117
- .subscribe(() => {
118
- this.logger.debug('Changed client locale to \'' + iso + '\'');
119
- this.translate.use(iso);
120
- this.user.uiDirection = (this.config.getClientLocales().find(l => l.iso === iso) || {}).dir || Direction.LTR;
121
- this.userSource.next(this.user);
122
- this.eventService.trigger(EnaioEvent.CLIENT_LOCALE_CHANGED, iso);
123
- });
124
- }
125
- /**
126
- * Change the users schema locale
127
- * @param iso ISO locale string to be set as new schema locale
128
- */
129
- changeSchemaLocale(iso) {
130
- this.user.schemaLocale = iso;
131
- return this.backend
132
- .put('/user/locale/' + this.user.schemaLocale)
133
- .pipe(tap(() => {
134
- this.logger.debug('Changed schema locale to \'' + iso + '\'');
135
- this.userSource.next(this.user);
136
- this.backend.setHeader('Accept-Language', this.user.getSchemaLocale());
137
- this.logger.debug('Loading system definition for new locale.');
138
- this.system.getSystemDefinition(this.user).subscribe();
139
- this.eventService.trigger(EnaioEvent.SCHEMA_LOCALE_CHANGED, iso);
140
- }));
141
- }
142
- /**
143
- * Set a new current user
144
- * @param res The user to be set as current user
145
- */
146
- setCurrentUser(res) {
147
- this.user = new EoUser(res);
148
- this.passwordValidationSettings = res.passwortvalidation;
149
- this.user.setImageBase(this.backend.getServiceBase());
150
- this.backend.setHeader('Accept-Language', this.user.getSchemaLocale());
151
- const languages = this.config.getClientLocales().map(lang => lang.iso);
152
- let userLang = this.user.getClientLocale();
153
- if (languages.indexOf(userLang) === -1) {
154
- userLang = this.config.getDefaultClientLocale();
155
- }
156
- this.logger.debug('Setting client locale to \'' + userLang + '\'');
157
- this.translate.use(userLang);
158
- this.user.uiDirection = (this.config.getClientLocales().find(l => l.iso === userLang) || {}).dir || Direction.LTR;
159
- this.userSource.next(this.user);
160
- this.favorites = null;
161
- this.favoritesSource.next(this.favorites);
162
- this.notifications = null;
163
- this.notificationsSource.next(this.notifications);
164
- }
165
- /**
166
- * Fetches the current users favorites
167
- */
168
- getFavorites() {
169
- // only favorite objects of type 'DMS_OBJECT', are accepted
170
- // read more: http://jira.optimal-systems.de/browse/COOL-2316
171
- return this.backend
172
- .getJson('/user/favorites')
173
- .pipe(map(res => res && res.filter(r => r.favoritetype === 'DMS_OBJECT')), tap(res => {
174
- this.favorites = res;
175
- this.favoritesSource.next(this.favorites);
176
- }));
177
- // .map(res => {
178
- // let dmsObject = this.resolveObjectTypes(new DmsObject(res));
179
- // return dmsObject;
180
- // });
181
- }
182
- /**
183
- * Soft update for the users favorites
184
- * @param id ID of the favorite to be updated
185
- * @param item The new favorite item
186
- * @param multi Whether or not to update multiple items
187
- */
188
- updateFavorites(id, item, multi) {
189
- if (this.backend.update(this.favorites, multi || [{ id, item }])) {
190
- this.favoritesSource.next(this.favorites);
191
- }
192
- }
193
- /**
194
- * Gets the users notifications (resubmissions and subscriptions)
195
- * @returns Resolved by list of the users notifications
196
- */
197
- getNotifications() {
198
- const notificationData = [
199
- this.getSubscription(),
200
- this.getResubmission()
201
- ];
202
- return forkJoin(notificationData);
203
- }
204
- /**
205
- * Gets the users resubmissions
206
- * @returns Collection of users resubmissions
207
- */
208
- getResubmission() {
209
- return this.backend.getJson('/messageprovider/resubmission/list').pipe(tap(response => {
210
- this.notifications = response;
211
- this.notificationsSource.next(this.notifications);
212
- }));
213
- }
214
- /**
215
- * Gets the users subscriptions
216
- * @returns Collection of users subscriptions
217
- */
218
- getSubscription() {
219
- return this.backend
220
- .getJson('/messageprovider/subscription/list').pipe(tap(response => {
221
- this.notifications = response;
222
- this.notificationsSource.next(this.notifications);
223
- }));
224
- }
225
- /**
226
- * Removes a notification
227
- * @param id ID of the notification to be removed
228
- * @param type The notifications type ('SUBSCRIPTION', 'RESUBMISSION')
229
- */
230
- removeNotifications(id, type) {
231
- let messagetype;
232
- switch (type) {
233
- case 'SUBSCRIPTION':
234
- messagetype = 'subscription';
235
- break;
236
- case 'RESUBMISSION':
237
- messagetype = 'resubmission';
238
- break;
239
- default:
240
- return;
241
- }
242
- return this.backend.del(`/messageprovider/${messagetype}/` + id).pipe(tap(res => this.updateNotifications('')));
243
- }
244
- /**
245
- * Soft update for users notifications
246
- */
247
- updateNotifications(id, item, multi) {
248
- if (this.backend.update(this.notifications, multi || [{ id, item }])) {
249
- this.notificationsSource.next(this.notifications);
250
- }
251
- }
252
- /**
253
- * Gets the URI to a users avatar image
254
- * @param userId The users ID
255
- * @returns URI to the user image
256
- */
257
- getUserImageUri(userId) {
258
- return `${this.backend.getBaseWithContext(this.backend.getServiceBase())}/organization/image/${userId}?usedefault=true`;
259
- }
260
- /**
261
- * Removes a favorite item
262
- * @param favoriteId ID of the favorite item to be removed
263
- */
264
- removeFavorite(favoriteId) {
265
- return this.backend.del('/user/favorite/' + favoriteId).pipe(tap(res => this.updateFavorites(favoriteId)));
266
- }
267
- /**
268
- * Create a new favorite item for the current user
269
- * @param id ID of the dms object to be set up as favorite
270
- * @param type The object type of the dms object
271
- * @param title The favorites title
272
- */
273
- createFavorite(id, type, title) {
274
- const uri = Utils.buildUri('/dms/favorite/' + id, { type, title });
275
- return this.backend.post(uri, {}).pipe(tap(res => this.getFavorites().subscribe()));
276
- }
277
- /**
278
- * @ignore
279
- */
280
- removeFavoritesForTarget(id) {
281
- return this.backend.del('/dms/favorite/' + id).pipe(tap(res => {
282
- const toRemove = this.favorites.filter(i => i.target.id === id).map(i => Object.assign({
283
- id: i.id
284
- }));
285
- this.updateFavorites(null, null, toRemove);
286
- }));
287
- }
288
- /**
289
- * Gets the users recyclebin
290
- */
291
- getRecycleBin() {
292
- return this.backend.getJson(`/user/recyclebin`).pipe(tap(response => {
293
- this.recycles = response;
294
- this.recyclesSource.next(this.recycles);
295
- }));
296
- }
297
- /**
298
- * Changes the users preferred lock mode and persists it on the server
299
- * @param lock The value to set the lock settings to
300
- */
301
- changeLockSetting(lock) {
302
- this.user.userSettings.alwayslock = lock;
303
- return this.backend.put('/user/config/web', this.user.userSettings).pipe(map(() => {
304
- this.refreshCurrentUser().subscribe();
305
- }));
306
- }
307
- hasPrivilege(privilege) {
308
- return !!this.user.privileges.find(priv => priv.name === privilege);
309
- }
310
- /**
311
- * Changes the users password and persists it on the server
312
- */
313
- changePassword(payload) {
314
- return this.backend.put(`/user/password`, payload);
315
- }
316
- /**
317
- * Fetches the settings for the current user and stores the new User object on the session
318
- */
319
- refreshCurrentUser() {
320
- return this.backend.get(this.USER_FETCH_URI).pipe(map(res => this.setCurrentUser(res)));
321
- }
322
- validatePassword(password) {
323
- if (password.length < this.passwordValidationSettings.minlength) {
324
- return { type: 'short', amount: this.passwordValidationSettings.minlength };
325
- }
326
- if (password.replace(/[^0-9]/g, '').length < this.passwordValidationSettings.minnumber) {
327
- return { type: 'number', amount: this.passwordValidationSettings.minnumber };
328
- }
329
- if (password.replace(/[a-zA-Z0-9ß ]/g, '').length < this.passwordValidationSettings.minspecialchars) {
330
- return { type: 'specialchars', amount: this.passwordValidationSettings.minspecialchars };
331
- }
332
- return { type: 'valid', amount: null };
333
- }
334
- /**
335
- * Changes the users saved inbox filter terms
336
- * @param filterTerms The value to set the saved inbox filters list to
337
- */
338
- changeSavedInboxFilters(filterTerms) {
339
- this.user.userSettings.savedInboxFilter = filterTerms;
340
- return this.backend.put('/user/config/web', this.user.userSettings).pipe(map(() => {
341
- this.refreshCurrentUser().subscribe();
342
- }));
343
- }
344
- /**
345
- * Save or change the workspace of the current user
346
- * @param workspaceConfig The value to set the saved workspace or create a new workspace
347
- */
348
- saveChangeWorkspace(workspaceConfig) {
349
- this.user.userSettings.workspaceOptions = workspaceConfig;
350
- return this.backend.put('/user/config/web', this.user.userSettings).pipe(map(() => {
351
- this.refreshCurrentUser().subscribe();
352
- }));
353
- }
354
- /**
355
- * Get all the field definitions of an object type
356
- * @param type The object type
357
- */
358
- getFieldDefinition(type) {
359
- const contextType = 'sysfolder';
360
- let mode = 'ALL';
361
- return this.backend.get(`/user/config/result/${type}?contexttype=${contextType}&mode=${mode}`);
362
- }
363
- /**
364
- * Save or change the visibility state of dashboard toolbar for the current user
365
- * @param toolbarVisibility The visibility state
366
- */
367
- saveToolbarState(toolbarVisibility) {
368
- this.user.userSettings.toolbarVisibility = toolbarVisibility;
369
- return this.backend.put('/user/config/web', this.user.userSettings).pipe(map(() => {
370
- this.refreshCurrentUser().subscribe();
371
- }));
372
- }
373
- /**
374
- * Save the local storage settings
375
- * @param localSettings The local settings to be saved from the localstorage
376
- * @param cacheSettings The local settings to be saved from the app cache
377
- */
378
- saveLocalSettings(localSettings, cacheSettings) {
379
- return this.backend.put('/user/config/localSettings', { localSettings: localSettings, cacheSettings: cacheSettings }).pipe(map(() => {
380
- this.refreshCurrentUser().subscribe();
381
- }));
382
- }
383
- /**
384
- * Loads the local storage settings
385
- * @returns The saved settings
386
- */
387
- loadLocalSettings() {
388
- return this.backend.get('/user/config/localSettings').pipe(catchError(() => EMPTY));
389
- }
390
- }
391
- UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UserService, deps: [{ token: i1.BackendService }, { token: i2.TranslateService }, { token: i3.Logger }, { token: i4.EventService }, { token: i5.SystemService }, { token: i6.HttpClient }, { token: i7.Config }], target: i0.ɵɵFactoryTarget.Injectable });
392
- UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UserService, providedIn: 'root' });
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UserService, decorators: [{
394
- type: Injectable,
395
- args: [{
396
- providedIn: 'root'
397
- }]
398
- }], ctorParameters: function () { return [{ type: i1.BackendService }, { type: i2.TranslateService }, { type: i3.Logger }, { type: i4.EventService }, { type: i5.SystemService }, { type: i6.HttpClient }, { type: i7.Config }]; } });
399
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSTFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUlqRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBSWhEOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQXlDdEI7O09BRUc7SUFDSCxZQUFvQixPQUF1QixFQUN2QixTQUEyQixFQUMzQixNQUFjLEVBQ2QsWUFBMEIsRUFDMUIsTUFBcUIsRUFDckIsSUFBZ0IsRUFDaEIsTUFBYztRQU5kLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhEbEMsbUJBQWMsR0FBRyxrRkFBa0Ys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bkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBvZiwgRU1QVFl9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRhcCwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGNhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NoYW5nZVBhc3N3b3JkSW50ZXJmYWNlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvY2hhbmdlLXBhc3N3b3JkLmludGVyZmFjZSc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQge0VvVXNlcn0gZnJvbSAnLi4vLi4vbW9kZWwvZW8tdXNlci5tb2RlbCc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyJztcbmltcG9ydCB7U3lzdGVtU2VydmljZX0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0RpcmVjdGlvbn0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5lbnVtJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnfSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcblxuLyoqXG4gKiBBcHBsaWNhdGlvbnMgdXNlciBzZXJ2aWNlLlxuICogVG8gZ2V0IHRoZSBjdXJyZW50IHVzZXIgeW91IGhhdmUgdG8gc3Vic2NyaWJlIHRvIHRoZSBzZXJ2aWNlcyBgdXNlciRgIG9ic2VydmFibGUuXG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogdXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyKSA9PiB0aGlzLnVzZXIgPSB1c2VyKTtcbiAqIGBgYFxuICpcbiAqIFRoaXMgd2F5IHlvdXIgY29tcG9uZW50IHdpbGwgYmUgcHJvdmlkZWQgd2l0aCBhbiB1cC10by1kYXRlIHVzZXIgb2JqZWN0IG5vIG1hdHRlclxuICogd2hpY2ggY29tcG9uZW50IGNoYW5nZXMgb24gb2YgdGhlIHVzZXJzIHByb3BlcnRpZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIHtcblxuICBVU0VSX0ZFVENIX1VSSSA9ICcvdXNlcj9mYXZvcml0ZXM9dHJ1ZSZwcml2aWxlZ2VzPXRydWUmcm9sZXM9dHJ1ZSZkZXB1dGllcz10cnVlJnN1YnN0aXR1dGVzT2Y9dHJ1ZSc7XG5cbiAgcHJpdmF0ZSB1c2VyOiBFb1VzZXIgPSBudWxsO1xuICBwcml2YXRlIHVzZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVvVXNlcj4odGhpcy51c2VyKTtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgcHVibGljIHVzZXIkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnVzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBmYXZvcml0ZXMgPSBudWxsO1xuICBwcml2YXRlIGZhdm9yaXRlc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLmZhdm9yaXRlcyk7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgZmF2b3JpdGVzXG4gICAqL1xuICBwdWJsaWMgZmF2b3JpdGVzR3JpZERhdGEkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZhdm9yaXRlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyBmYXZvcml0ZXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZhdm9yaXRlc0dyaWREYXRhJC5waXBlKHRoaXMuYmFja2VuZC5ncmlkRGF0YUZpbHRlcik7XG5cbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zID0gbnVsbDtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMubm90aWZpY2F0aW9ucyk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyByZWN5Y2xlYmluXG4gICAqL1xuXG4gIHByaXZhdGUgcmVjeWNsZXMgPSBudWxsO1xuICBwcml2YXRlIHJlY3ljbGVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMucmVjeWNsZXMpO1xuXG4gIHB1YmxpYyByZWN5Y2xlc0dyaWREYXRhJCA6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucmVjeWNsZXNTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlsdGVyKHYgPT4gdikpO1xuICBwdWJsaWMgcmVjeWNsZXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnJlY3ljbGVzR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIG5vdGlmaWNhdGlvbnNHcmlkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyBub3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5ub3RpZmljYXRpb25zR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuICBwdWJsaWMgcGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3M6IGFueTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHVzZXIgb3IgTlVMTCBpZiBubyB1c2VyIGlzIGxvZ2dlZCBpblxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRVc2VyKCk6IEVvVXNlciB7XG4gICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNldCBwcmVzZW5jZSBvZiB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSBwcmVzZW50IFZhbHVlIHRvIHNldCB0aGUgdXNlcnMgcHJlc2VuY2UgdG9cbiAgICovXG4gIHB1YmxpYyBzZXRQcmVzZW5jZShwcmVzZW50OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGlmIChwcmVzZW50ICE9PSB0aGlzLnVzZXIucHJlc2VudCkge1xuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyP3ByZXNlbmNlPScgKyBwcmVzZW50KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoXyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIucHJlc2VudCA9IHByZXNlbnQ7XG4gICAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdXJpXG4gICAqIEByZXR1cm5zXG4gICAqL1xuXG4gIHB1YmxpYyBkZWxVc2VySW1hZ2UodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVyaSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VXNlckltYWdlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9pbWFnZWAsZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVwdXRpZXMgZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIGRlcHV0aWVzTmFtZXMgTmFtZXMgb2YgdGhlIHVzZXJzIHRvIGJlIHNldCBhcyBkZXB1dGllc1xuICAgKi9cbiAgcHVibGljIHNldERlcHV0aWVzKGRlcHV0aWVzTmFtZXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL3VzZXIvZGVwdXR5P3VzZXI9JHtkZXB1dGllc05hbWVzLmpvaW4oJyZ1c2VyPScpfWApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgdXNlcnMgY2xpZW50IGxvY2FsZVxuICAgKiBAcGFyYW0gaXNvIElTTyBsb2NhbGUgc3RyaW5nIHRvIGJlIHNldCBhcyBuZXcgY2xpZW50IGxvY2FsZVxuICAgKi9cbiAgcHVibGljIGNoYW5nZUNsaWVudExvY2FsZShpc286IHN0cmluZykge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3NbJ2NsaWVudGxvY2FsZSddID0gaXNvO1xuICAgIHRoaXMuYmFja2VuZFxuICAgICAgLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NoYW5nZWQgY2xpZW50IGxvY2FsZSB0byBcXCcnICsgaXNvICsgJ1xcJycpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UoaXNvKTtcbiAgICAgICAgdGhpcy51c2VyLnVpRGlyZWN0aW9uID0gKHRoaXMuY29uZmlnLmdldENsaWVudExvY2FsZXMoKS5maW5kKGwgPT4gbC5pc28gPT09IGlzbykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xuICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuQ0xJRU5UX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSB1c2VycyBzY2hlbWEgbG9jYWxlXG4gICAqIEBwYXJhbSBpc28gSVNPIGxvY2FsZSBzdHJpbmcgdG8gYmUgc2V0IGFzIG5ldyBzY2hlbWEgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlU2NoZW1hTG9jYWxlKGlzbzogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VyLnNjaGVtYUxvY2FsZSA9IGlzbztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KCcvdXNlci9sb2NhbGUvJyArIHRoaXMudXNlci5zY2hlbWFMb2NhbGUpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hhbmdlZCBzY2hlbWEgbG9jYWxlIHRvIFxcJycgKyBpc28gKyAnXFwnJyk7XG4gICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkaW5nIHN5c3RlbSBkZWZpbml0aW9uIGZvciBuZXcgbG9jYWxlLicpO1xuICAgICAgICAgIHRoaXMuc3lzdGVtLmdldFN5c3RlbURlZmluaXRpb24odGhpcy51c2VyKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuU0NIRU1BX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xuICAgICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgbmV3IGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gcmVzIFRoZSB1c2VyIHRvIGJlIHNldCBhcyBjdXJyZW50IHVzZXJcbiAgICovXG4gIHB1YmxpYyBzZXRDdXJyZW50VXNlcihyZXM6IGFueSkge1xuICAgIHRoaXMudXNlciA9IG5ldyBFb1VzZXIocmVzKTtcbiAgICB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzID0gcmVzLnBhc3N3b3J0dmFsaWRhdGlvbjtcbiAgICB0aGlzLnVzZXIuc2V0SW1hZ2VCYXNlKHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKTtcbiAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xuXG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gdGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLm1hcChsYW5nID0+IGxhbmcuaXNvKTtcbiAgICBsZXQgdXNlckxhbmcgPSB0aGlzLnVzZXIuZ2V0Q2xpZW50TG9jYWxlKCk7XG4gICAgaWYgKGxhbmd1YWdlcy5pbmRleE9mKHVzZXJMYW5nKSA9PT0gLTEpIHtcbiAgICAgIHVzZXJMYW5nID0gdGhpcy5jb25maWcuZ2V0RGVmYXVsdENsaWVudExvY2FsZSgpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0dGluZyBjbGllbnQgbG9jYWxlIHRvIFxcJycgKyB1c2VyTGFuZyArICdcXCcnKTtcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UodXNlckxhbmcpO1xuICAgIHRoaXMudXNlci51aURpcmVjdGlvbiA9ICh0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkuZmluZChsID0+IGwuaXNvID09PSB1c2VyTGFuZykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xuXG4gICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcblxuICAgIHRoaXMuZmF2b3JpdGVzID0gbnVsbDtcbiAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcblxuICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IG51bGw7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBjdXJyZW50IHVzZXJzIGZhdm9yaXRlc1xuICAgKi9cbiAgcHVibGljIGdldEZhdm9yaXRlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgLy8gb25seSBmYXZvcml0ZSBvYmplY3RzIG9mIHR5cGUgJ0RNU19PQkpFQ1QnLCBhcmUgYWNjZXB0ZWRcbiAgICAvLyByZWFkIG1vcmU6IGh0dHA6Ly9qaXJhLm9wdGltYWwtc3lzdGVtcy5kZS9icm93c2UvQ09PTC0yMzE2XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oJy91c2VyL2Zhdm9yaXRlcycpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiByZXMgJiYgcmVzLmZpbHRlcihyID0+IHIuZmF2b3JpdGV0eXBlID09PSAnRE1TX09CSkVDVCcpKSxcbiAgICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXMgPSByZXM7XG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG4gICAgICAgIH0pKTtcblxuICAgIC8vIC5tYXAocmVzID0+IHtcbiAgICAvLyAgIGxldCBkbXNPYmplY3QgPSB0aGlzLnJlc29sdmVPYmplY3RUeXBlcyhuZXcgRG1zT2JqZWN0KHJlcykpO1xuICAgIC8vICAgcmV0dXJuIGRtc09iamVjdDtcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgdGhlIHVzZXJzIGZhdm9yaXRlc1xuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGZhdm9yaXRlIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIGl0ZW0gVGhlIG5ldyBmYXZvcml0ZSBpdGVtXG4gICAqIEBwYXJhbSBtdWx0aSBXaGV0aGVyIG9yIG5vdCB0byB1cGRhdGUgbXVsdGlwbGUgaXRlbXNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVGYXZvcml0ZXMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcbiAgICBpZiAodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLmZhdm9yaXRlcywgbXVsdGkgfHwgW3tpZCwgaXRlbX1dKSkge1xuICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnMgKHJlc3VibWlzc2lvbnMgYW5kIHN1YnNjcmlwdGlvbnMpXG4gICAqIEByZXR1cm5zIFJlc29sdmVkIGJ5IGxpc3Qgb2YgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXROb3RpZmljYXRpb25zKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uRGF0YSA9IFtcbiAgICAgIHRoaXMuZ2V0U3Vic2NyaXB0aW9uKCksXG4gICAgICB0aGlzLmdldFJlc3VibWlzc2lvbigpXG4gICAgXTtcbiAgICByZXR1cm4gZm9ya0pvaW4obm90aWZpY2F0aW9uRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgcmVzdWJtaXNzaW9uc1xuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHJlc3VibWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBnZXRSZXN1Ym1pc3Npb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEpzb24oJy9tZXNzYWdlcHJvdmlkZXIvcmVzdWJtaXNzaW9uL2xpc3QnKS5waXBlKFxuICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgc3Vic2NyaXB0aW9uc1xuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHN1YnNjcmlwdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXRTdWJzY3JpcHRpb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL21lc3NhZ2Vwcm92aWRlci9zdWJzY3JpcHRpb24vbGlzdCcpLnBpcGUoXG4gICAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gdHlwZSBUaGUgbm90aWZpY2F0aW9ucyB0eXBlICgnU1VCU0NSSVBUSU9OJywgJ1JFU1VCTUlTU0lPTicpXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlTm90aWZpY2F0aW9ucyhpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgbWVzc2FnZXR5cGU6IHN0cmluZztcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ1NVQlNDUklQVElPTic6XG4gICAgICAgIG1lc3NhZ2V0eXBlID0gJ3N1YnNjcmlwdGlvbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUkVTVUJNSVNTSU9OJzpcbiAgICAgICAgbWVzc2FnZXR5cGUgPSAncmVzdWJtaXNzaW9uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKGAvbWVzc2FnZXByb3ZpZGVyLyR7bWVzc2FnZXR5cGV9L2AgKyBpZCkucGlwZSh0YXAocmVzID0+IHRoaXMudXBkYXRlTm90aWZpY2F0aW9ucygnJykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZU5vdGlmaWNhdGlvbnMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcbiAgICBpZiAodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLm5vdGlmaWNhdGlvbnMsIG11bHRpIHx8IFt7aWQsIGl0ZW19XSkpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIFVSSSB0byBhIHVzZXJzIGF2YXRhciBpbWFnZVxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VycyBJRFxuICAgKiBAcmV0dXJucyBVUkkgdG8gdGhlIHVzZXIgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBnZXRVc2VySW1hZ2VVcmkodXNlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYWNrZW5kLmdldEJhc2VXaXRoQ29udGV4dCh0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSl9L29yZ2FuaXphdGlvbi9pbWFnZS8ke3VzZXJJZH0/dXNlZGVmYXVsdD10cnVlYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgZmF2b3JpdGUgaXRlbVxuICAgKiBAcGFyYW0gZmF2b3JpdGVJZCBJRCBvZiB0aGUgZmF2b3JpdGUgaXRlbSB0byBiZSByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmF2b3JpdGUoZmF2b3JpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy91c2VyL2Zhdm9yaXRlLycgKyBmYXZvcml0ZUlkKS5waXBlKHRhcChyZXMgPT4gdGhpcy51cGRhdGVGYXZvcml0ZXMoZmF2b3JpdGVJZCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgZmF2b3JpdGUgaXRlbSBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGRtcyBvYmplY3QgdG8gYmUgc2V0IHVwIGFzIGZhdm9yaXRlXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBvYmplY3QgdHlwZSBvZiB0aGUgZG1zIG9iamVjdFxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIGZhdm9yaXRlcyB0aXRsZVxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUZhdm9yaXRlKGlkOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgdGl0bGU6IHN0cmluZykge1xuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKCcvZG1zL2Zhdm9yaXRlLycgKyBpZCwge3R5cGUsIHRpdGxlfSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KHVyaSwge30pLnBpcGUodGFwKHJlcyA9PiB0aGlzLmdldEZhdm9yaXRlcygpLnN1YnNjcmliZSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZhdm9yaXRlc0ZvclRhcmdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy9kbXMvZmF2b3JpdGUvJyArIGlkKS5waXBlKHRhcChcbiAgICAgIHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IHRvUmVtb3ZlID0gdGhpcy5mYXZvcml0ZXMuZmlsdGVyKGkgPT4gaS50YXJnZXQuaWQgPT09IGlkKS5tYXAoaSA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICBpZDogaS5pZFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMudXBkYXRlRmF2b3JpdGVzKG51bGwsIG51bGwsIHRvUmVtb3ZlKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyByZWN5Y2xlYmluXG4gICovXG4gIGdldFJlY3ljbGVCaW4oKTogT2JzZXJ2YWJsZTxhbnk+ICB7XG4gICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL3VzZXIvcmVjeWNsZWJpbmApLnBpcGUoXG4gICAgICB0YXAocmVzcG9uc2U9PntcbiAgICAgICAgdGhpcy5yZWN5Y2xlcz1yZXNwb25zZTtcbiAgICAgICAgdGhpcy5yZWN5Y2xlc1NvdXJjZS5uZXh0KHRoaXMucmVjeWNsZXMpO1xuICAgICAgfSkpO1xuICAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSB1c2VycyBwcmVmZXJyZWQgbG9jayBtb2RlIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXG4gICAqIEBwYXJhbSBsb2NrIFRoZSB2YWx1ZSB0byBzZXQgdGhlIGxvY2sgc2V0dGluZ3MgdG9cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VMb2NrU2V0dGluZyhsb2NrOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLmFsd2F5c2xvY2sgPSBsb2NrO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaGFzUHJpdmlsZWdlKHByaXZpbGVnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy51c2VyLnByaXZpbGVnZXMuZmluZChwcml2ID0+IHByaXYubmFtZSA9PT0gcHJpdmlsZWdlKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHBhc3N3b3JkIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXG4gICAqL1xuICBjaGFuZ2VQYXNzd29yZChwYXlsb2FkOiBDaGFuZ2VQYXNzd29yZEludGVyZmFjZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL3Bhc3N3b3JkYCwgcGF5bG9hZCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc2V0dGluZ3MgZm9yIHRoZSBjdXJyZW50IHVzZXIgYW5kIHN0b3JlcyB0aGUgbmV3IFVzZXIgb2JqZWN0IG9uIHRoZSBzZXNzaW9uXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hDdXJyZW50VXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCh0aGlzLlVTRVJfRkVUQ0hfVVJJKS5waXBlKG1hcChyZXMgPT4gdGhpcy5zZXRDdXJyZW50VXNlcihyZXMpKSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKToge3R5cGU6IHN0cmluZywgYW1vdW50OiBudW1iZXJ9IHtcbiAgICBpZiAocGFzc3dvcmQubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ3Nob3J0JywgYW1vdW50OiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbmxlbmd0aH07XG4gICAgfVxuXG4gICAgaWYgKHBhc3N3b3JkLnJlcGxhY2UoL1teMC05XS9nLCAnJykubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5udW1iZXIpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ251bWJlcicsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5udW1iZXJ9O1xuICAgIH1cblxuICAgIGlmIChwYXNzd29yZC5yZXBsYWNlKC9bYS16QS1aMC05w58gXS9nLCAnJykubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5zcGVjaWFsY2hhcnMpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ3NwZWNpYWxjaGFycycsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5zcGVjaWFsY2hhcnN9O1xuICAgIH1cblxuICAgIHJldHVybiAge3R5cGU6ICd2YWxpZCcsIGFtb3VudDogbnVsbH07XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgdXNlcnMgc2F2ZWQgaW5ib3ggZmlsdGVyIHRlcm1zXG4gICAqIEBwYXJhbSBmaWx0ZXJUZXJtcyBUaGUgdmFsdWUgdG8gc2V0IHRoZSBzYXZlZCBpbmJveCBmaWx0ZXJzIGxpc3QgdG9cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VTYXZlZEluYm94RmlsdGVycyhmaWx0ZXJUZXJtczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLnNhdmVkSW5ib3hGaWx0ZXIgPSBmaWx0ZXJUZXJtcztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpLnBpcGUobWFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgb3IgY2hhbmdlIHRoZSB3b3Jrc3BhY2Ugb2YgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gd29ya3NwYWNlQ29uZmlnIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHNhdmVkIHdvcmtzcGFjZSBvciBjcmVhdGUgYSBuZXcgd29ya3NwYWNlXG4gICAqL1xuICBwdWJsaWMgc2F2ZUNoYW5nZVdvcmtzcGFjZSh3b3Jrc3BhY2VDb25maWc6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMgPSB3b3Jrc3BhY2VDb25maWc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHRoZSBmaWVsZCBkZWZpbml0aW9ucyBvZiBhbiBvYmplY3QgdHlwZVxuICAgKiBAcGFyYW0gdHlwZSBUaGUgb2JqZWN0IHR5cGVcbiAgICovXG5cbiAgcHVibGljIGdldEZpZWxkRGVmaW5pdGlvbih0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZXh0VHlwZSA9ICdzeXNmb2xkZXInO1xuICAgIGxldCBtb2RlID0gJ0FMTCc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoYC91c2VyL2NvbmZpZy9yZXN1bHQvJHt0eXBlfT9jb250ZXh0dHlwZT0ke2NvbnRleHRUeXBlfSZtb2RlPSR7bW9kZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIG9yIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiBkYXNoYm9hcmQgdG9vbGJhciBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gdG9vbGJhclZpc2liaWxpdHkgVGhlIHZpc2liaWxpdHkgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBzYXZlVG9vbGJhclN0YXRlKHRvb2xiYXJWaXNpYmlsaXR5OiBib29sZWFuKSB7XG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5ncy50b29sYmFyVmlzaWJpbGl0eSA9IHRvb2xiYXJWaXNpYmlsaXR5O1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSB0aGUgbG9jYWwgc3RvcmFnZSBzZXR0aW5nc1xuICAgKiBAcGFyYW0gbG9jYWxTZXR0aW5ncyBUaGUgbG9jYWwgc2V0dGluZ3MgdG8gYmUgc2F2ZWQgZnJvbSB0aGUgbG9jYWxzdG9yYWdlXG4gICAqIEBwYXJhbSBjYWNoZVNldHRpbmdzIFRoZSBsb2NhbCBzZXR0aW5ncyB0byBiZSBzYXZlZCBmcm9tIHRoZSBhcHAgY2FjaGVcbiAgICovXG4gIHB1YmxpYyBzYXZlTG9jYWxTZXR0aW5ncyhsb2NhbFNldHRpbmdzOiBhbnksIGNhY2hlU2V0dGluZ3M6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvbG9jYWxTZXR0aW5ncycsIHtsb2NhbFNldHRpbmdzOiBsb2NhbFNldHRpbmdzLCBjYWNoZVNldHRpbmdzOiBjYWNoZVNldHRpbmdzfSkucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGxvY2FsIHN0b3JhZ2Ugc2V0dGluZ3NcbiAgICogQHJldHVybnMgVGhlIHNhdmVkIHNldHRpbmdzXG4gICAqL1xuICBwdWJsaWMgbG9hZExvY2FsU2V0dGluZ3MoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCgnL3VzZXIvY29uZmlnL2xvY2FsU2V0dGluZ3MnKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gRU1QVFkpKTtcbiAgfVxufVxuIl19