@cleavelandprice/ngx-lib 2.2.3 → 2.3.7

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 (275) hide show
  1. package/README.md +617 -615
  2. package/active-directory/active-directory.module.d.ts +11 -0
  3. package/active-directory/index.d.ts +5 -0
  4. package/active-directory/model/ad-object.d.ts +13 -0
  5. package/active-directory/model/cache-object.d.ts +4 -0
  6. package/active-directory/model/caching-config.d.ts +4 -0
  7. package/active-directory/model/default-caching-config.d.ts +2 -0
  8. package/active-directory/model/default-config.d.ts +2 -0
  9. package/active-directory/model/default-logging-config.d.ts +2 -0
  10. package/active-directory/model/logging-config.d.ts +6 -0
  11. package/active-directory/model/service-config.d.ts +7 -0
  12. package/active-directory/model/user-or-group.d.ts +7 -0
  13. package/active-directory/model/user.d.ts +23 -0
  14. package/active-directory/public_api.d.ts +8 -0
  15. package/active-directory/services/active-directory.service.d.ts +18 -0
  16. package/authentication/authentication.module.d.ts +20 -0
  17. package/authentication/components/login/login.component.d.ts +13 -0
  18. package/authentication/components/login-form/login-form.component.d.ts +23 -0
  19. package/authentication/index.d.ts +5 -0
  20. package/authentication/model/authenticated-user.d.ts +9 -0
  21. package/authentication/model/authentication-request.d.ts +6 -0
  22. package/{src/authentication → authentication}/model/authentication-token.d.ts +0 -0
  23. package/authentication/model/default-config.d.ts +2 -0
  24. package/authentication/model/login-form-data.d.ts +3 -0
  25. package/authentication/model/service-config.d.ts +3 -0
  26. package/authentication/public_api.d.ts +9 -0
  27. package/authentication/services/authentication.service.d.ts +25 -0
  28. package/dialog/components/base/base.component.d.ts +20 -0
  29. package/dialog/components/confirmation/confirmation.component.d.ts +12 -0
  30. package/dialog/components/input/input.component.d.ts +12 -0
  31. package/dialog/components/message/message.component.d.ts +12 -0
  32. package/dialog/dialog.module.d.ts +17 -0
  33. package/dialog/index.d.ts +5 -0
  34. package/{src/dialog/model/confirmation-dialog-mode.enum.d.ts → dialog/model/confirmation-dialog-mode.d.ts} +0 -0
  35. package/dialog/model/dialog-base-data.d.ts +10 -0
  36. package/dialog/model/dialog-type.d.ts +5 -0
  37. package/dialog/public_api.d.ts +8 -0
  38. package/esm2020/active-directory/active-directory.module.mjs +38 -0
  39. package/esm2020/active-directory/cleavelandprice-ngx-lib-active-directory.mjs +5 -0
  40. package/esm2020/active-directory/model/ad-object.mjs +2 -0
  41. package/esm2020/active-directory/model/cache-object.mjs +3 -0
  42. package/esm2020/active-directory/model/caching-config.mjs +2 -0
  43. package/esm2020/active-directory/model/default-caching-config.mjs +5 -0
  44. package/esm2020/active-directory/model/default-config.mjs +8 -0
  45. package/esm2020/active-directory/model/default-logging-config.mjs +7 -0
  46. package/esm2020/active-directory/model/logging-config.mjs +2 -0
  47. package/esm2020/active-directory/model/service-config.mjs +3 -0
  48. package/esm2020/active-directory/model/user-or-group.mjs +2 -0
  49. package/esm2020/active-directory/model/user.mjs +2 -0
  50. package/esm2020/active-directory/public_api.mjs +9 -0
  51. package/esm2020/active-directory/services/active-directory.service.mjs +89 -0
  52. package/esm2020/authentication/authentication.module.mjs +77 -0
  53. package/esm2020/authentication/cleavelandprice-ngx-lib-authentication.mjs +5 -0
  54. package/esm2020/authentication/components/login/login.component.mjs +39 -0
  55. package/esm2020/authentication/components/login-form/login-form.component.mjs +60 -0
  56. package/esm2020/authentication/model/authenticated-user.mjs +2 -0
  57. package/esm2020/authentication/model/authentication-request.mjs +2 -0
  58. package/esm2020/authentication/model/authentication-token.mjs +2 -0
  59. package/esm2020/authentication/model/default-config.mjs +4 -0
  60. package/esm2020/authentication/model/login-form-data.mjs +2 -0
  61. package/esm2020/authentication/model/service-config.mjs +3 -0
  62. package/esm2020/authentication/public_api.mjs +11 -0
  63. package/esm2020/authentication/services/authentication.service.mjs +120 -0
  64. package/esm2020/cleavelandprice-ngx-lib.mjs +2 -2
  65. package/esm2020/dialog/cleavelandprice-ngx-lib-dialog.mjs +5 -0
  66. package/esm2020/dialog/components/base/base.component.mjs +84 -0
  67. package/esm2020/dialog/components/confirmation/confirmation.component.mjs +23 -0
  68. package/esm2020/dialog/components/input/input.component.mjs +23 -0
  69. package/esm2020/dialog/components/message/message.component.mjs +23 -0
  70. package/esm2020/dialog/dialog.module.mjs +63 -0
  71. package/esm2020/dialog/model/confirmation-dialog-mode.mjs +8 -0
  72. package/esm2020/dialog/model/dialog-base-data.mjs +2 -0
  73. package/esm2020/dialog/model/dialog-type.mjs +7 -0
  74. package/esm2020/dialog/public_api.mjs +9 -0
  75. package/esm2020/lib/ngx-lib.module.mjs +16 -0
  76. package/esm2020/public-api.mjs +5 -0
  77. package/esm2020/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs +5 -0
  78. package/esm2020/sharepoint/model/base-item.mjs +2 -0
  79. package/esm2020/sharepoint/model/base-request-credential.mjs +2 -0
  80. package/esm2020/sharepoint/model/base-request.mjs +2 -0
  81. package/esm2020/sharepoint/model/cache-object.mjs +3 -0
  82. package/esm2020/sharepoint/model/caching-config.mjs +2 -0
  83. package/esm2020/sharepoint/model/default-config.mjs +25 -0
  84. package/esm2020/sharepoint/model/file-request.mjs +2 -0
  85. package/esm2020/sharepoint/model/folder-request.mjs +2 -0
  86. package/esm2020/sharepoint/model/list-item.mjs +2 -0
  87. package/esm2020/sharepoint/model/list-items-request.mjs +2 -0
  88. package/esm2020/sharepoint/model/logging-config.mjs +2 -0
  89. package/esm2020/sharepoint/model/photo-item.mjs +2 -0
  90. package/esm2020/sharepoint/model/service-config.mjs +3 -0
  91. package/esm2020/sharepoint/model/uri-request.mjs +2 -0
  92. package/esm2020/sharepoint/model/user-request.mjs +2 -0
  93. package/esm2020/sharepoint/model/user.mjs +2 -0
  94. package/esm2020/sharepoint/public_api.mjs +18 -0
  95. package/esm2020/sharepoint/services/sharepoint.service.mjs +152 -0
  96. package/esm2020/sharepoint/sharepoint.module.mjs +38 -0
  97. package/esm2020/upload/cleavelandprice-ngx-lib-upload.mjs +5 -0
  98. package/esm2020/upload/components/upload/upload.component.mjs +33 -0
  99. package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +92 -0
  100. package/esm2020/upload/model/database-file-info.mjs +2 -0
  101. package/esm2020/upload/model/file-upload-request.mjs +2 -0
  102. package/esm2020/upload/model/filesystem-file-info.mjs +2 -0
  103. package/esm2020/upload/model/service-config.mjs +3 -0
  104. package/esm2020/upload/public_api.mjs +9 -0
  105. package/esm2020/upload/services/upload.service.mjs +93 -0
  106. package/esm2020/upload/upload.module.mjs +61 -0
  107. package/esm2020/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs +5 -0
  108. package/esm2020/url-utilities/pipes/safe-resource-url.pipe.mjs +20 -0
  109. package/esm2020/url-utilities/pipes/safe-url.pipe.mjs +20 -0
  110. package/esm2020/url-utilities/pipes/uri-scheme.pipe.mjs +105 -0
  111. package/esm2020/url-utilities/public_api.mjs +5 -0
  112. package/esm2020/url-utilities/url-utilities.module.mjs +34 -0
  113. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs +156 -0
  114. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -0
  115. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs +299 -0
  116. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs.map +1 -0
  117. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs +218 -0
  118. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs.map +1 -0
  119. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs +233 -0
  120. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -0
  121. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs +280 -0
  122. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +1 -0
  123. package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs +176 -0
  124. package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -0
  125. package/fesm2015/cleavelandprice-ngx-lib.mjs +11 -1404
  126. package/fesm2015/cleavelandprice-ngx-lib.mjs.map +1 -1
  127. package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs +147 -0
  128. package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -0
  129. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs +290 -0
  130. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs.map +1 -0
  131. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs +212 -0
  132. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs.map +1 -0
  133. package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs +219 -0
  134. package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -0
  135. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs +273 -0
  136. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs.map +1 -0
  137. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs +176 -0
  138. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -0
  139. package/fesm2020/cleavelandprice-ngx-lib.mjs +11 -1376
  140. package/fesm2020/cleavelandprice-ngx-lib.mjs.map +1 -1
  141. package/index.d.ts +1 -1
  142. package/lib/ngx-lib.module.d.ts +6 -0
  143. package/package.json +57 -12
  144. package/public-api.d.ts +1 -0
  145. package/sharepoint/index.d.ts +5 -0
  146. package/sharepoint/model/base-item.d.ts +4 -0
  147. package/sharepoint/model/base-request-credential.d.ts +4 -0
  148. package/sharepoint/model/base-request.d.ts +8 -0
  149. package/sharepoint/model/cache-object.d.ts +4 -0
  150. package/sharepoint/model/caching-config.d.ts +4 -0
  151. package/sharepoint/model/default-config.d.ts +2 -0
  152. package/sharepoint/model/file-request.d.ts +4 -0
  153. package/sharepoint/model/folder-request.d.ts +4 -0
  154. package/sharepoint/model/list-item.d.ts +10 -0
  155. package/sharepoint/model/list-items-request.d.ts +5 -0
  156. package/sharepoint/model/logging-config.d.ts +6 -0
  157. package/sharepoint/model/photo-item.d.ts +11 -0
  158. package/sharepoint/model/service-config.d.ts +16 -0
  159. package/sharepoint/model/uri-request.d.ts +4 -0
  160. package/sharepoint/model/user-request.d.ts +4 -0
  161. package/sharepoint/model/user.d.ts +12 -0
  162. package/sharepoint/public_api.d.ts +16 -0
  163. package/sharepoint/services/sharepoint.service.d.ts +25 -0
  164. package/sharepoint/sharepoint.module.d.ts +11 -0
  165. package/{src/file-upload → upload}/components/upload/upload.component.d.ts +0 -0
  166. package/{src/file-upload → upload}/components/upload-dialog/upload-dialog.component.d.ts +3 -3
  167. package/upload/index.d.ts +5 -0
  168. package/{src/file-upload → upload}/model/database-file-info.d.ts +0 -0
  169. package/{src/file-upload → upload}/model/file-upload-request.d.ts +0 -0
  170. package/{src/file-upload → upload}/model/filesystem-file-info.d.ts +0 -0
  171. package/{src/file-upload/model/upload.service.config.d.ts → upload/model/service-config.d.ts} +1 -1
  172. package/upload/public_api.d.ts +8 -0
  173. package/{src/file-upload → upload}/services/upload.service.d.ts +6 -8
  174. package/upload/upload.module.d.ts +16 -0
  175. package/url-utilities/index.d.ts +5 -0
  176. package/url-utilities/pipes/safe-resource-url.pipe.d.ts +10 -0
  177. package/{src/url → url-utilities}/pipes/safe-url.pipe.d.ts +0 -0
  178. package/{src/url → url-utilities}/pipes/uri-scheme.pipe.d.ts +1 -1
  179. package/url-utilities/public_api.d.ts +4 -0
  180. package/url-utilities/url-utilities.module.d.ts +10 -0
  181. package/esm2020/public_api.mjs +0 -8
  182. package/esm2020/src/authentication/authentication.module.mjs +0 -112
  183. package/esm2020/src/authentication/components/login/login.component.mjs +0 -40
  184. package/esm2020/src/authentication/components/login-form/login-form.component.mjs +0 -45
  185. package/esm2020/src/authentication/model/authentication-token.mjs +0 -2
  186. package/esm2020/src/authentication/model/authentication.service.config.mjs +0 -3
  187. package/esm2020/src/authentication/services/authentication.service.mjs +0 -144
  188. package/esm2020/src/dialog/components/_dialog/dialog.component.mjs +0 -83
  189. package/esm2020/src/dialog/components/confirmation-dialog/confirmation-dialog.component.mjs +0 -21
  190. package/esm2020/src/dialog/components/input-dialog/input-dialog.component.mjs +0 -21
  191. package/esm2020/src/dialog/components/message-dialog/message-dialog.component.mjs +0 -21
  192. package/esm2020/src/dialog/dialog.module.mjs +0 -74
  193. package/esm2020/src/dialog/model/confirmation-dialog-mode.enum.mjs +0 -8
  194. package/esm2020/src/email/email.module.mjs +0 -47
  195. package/esm2020/src/email/model/email-dto.mjs +0 -2
  196. package/esm2020/src/email/model/email-sender.mjs +0 -2
  197. package/esm2020/src/email/model/email.mjs +0 -2
  198. package/esm2020/src/email/model/email.service.config.mjs +0 -3
  199. package/esm2020/src/email/services/email.service.mjs +0 -31
  200. package/esm2020/src/employee/employee.module.mjs +0 -91
  201. package/esm2020/src/employee/model/employee.mjs +0 -2
  202. package/esm2020/src/employee/model/employee.service.config.mjs +0 -3
  203. package/esm2020/src/employee/pipes/departments.pipe.mjs +0 -24
  204. package/esm2020/src/employee/pipes/employee-by-dn.pipe.mjs +0 -17
  205. package/esm2020/src/employee/pipes/employee-photo-url.pipe.mjs +0 -27
  206. package/esm2020/src/employee/pipes/employees-with-property-value.pipe.mjs +0 -17
  207. package/esm2020/src/employee/pipes/filter-employees.pipe.mjs +0 -22
  208. package/esm2020/src/employee/pipes/is-member-of.pipe.mjs +0 -17
  209. package/esm2020/src/employee/pipes/sort-employees.pipe.mjs +0 -44
  210. package/esm2020/src/employee/services/employee.service.mjs +0 -41
  211. package/esm2020/src/file-upload/components/upload/upload.component.mjs +0 -34
  212. package/esm2020/src/file-upload/components/upload-dialog/upload-dialog.component.mjs +0 -102
  213. package/esm2020/src/file-upload/model/database-file-info.mjs +0 -2
  214. package/esm2020/src/file-upload/model/file-upload-request.mjs +0 -2
  215. package/esm2020/src/file-upload/model/filesystem-file-info.mjs +0 -2
  216. package/esm2020/src/file-upload/model/upload.service.config.mjs +0 -3
  217. package/esm2020/src/file-upload/services/upload.service.mjs +0 -93
  218. package/esm2020/src/file-upload/upload.module.mjs +0 -93
  219. package/esm2020/src/sharepoint/model/sharepoint-calendar-event.mjs +0 -2
  220. package/esm2020/src/sharepoint/model/sharepoint-customer-visit.mjs +0 -2
  221. package/esm2020/src/sharepoint/model/sharepoint-employee-picture.mjs +0 -2
  222. package/esm2020/src/sharepoint/model/sharepoint-list-item.mjs +0 -2
  223. package/esm2020/src/sharepoint/model/sharepoint-list.mjs +0 -2
  224. package/esm2020/src/sharepoint/model/sharepoint-person.mjs +0 -2
  225. package/esm2020/src/sharepoint/model/sharepoint-picture.mjs +0 -2
  226. package/esm2020/src/sharepoint/model/sharepoint.service.config.mjs +0 -3
  227. package/esm2020/src/sharepoint/pipes/sharepoint-photo-url.pipe.mjs +0 -16
  228. package/esm2020/src/sharepoint/pipes/sharepoint-url.pipe.mjs +0 -16
  229. package/esm2020/src/sharepoint/services/sharepoint.service.mjs +0 -77
  230. package/esm2020/src/sharepoint/sharepoint.module.mjs +0 -69
  231. package/esm2020/src/url/pipes/safe-url.pipe.mjs +0 -21
  232. package/esm2020/src/url/pipes/uri-scheme.pipe.mjs +0 -103
  233. package/esm2020/src/url/url.module.mjs +0 -38
  234. package/public_api.d.ts +0 -7
  235. package/src/authentication/authentication.module.d.ts +0 -31
  236. package/src/authentication/components/login/login.component.d.ts +0 -15
  237. package/src/authentication/components/login-form/login-form.component.d.ts +0 -20
  238. package/src/authentication/model/authentication.service.config.d.ts +0 -3
  239. package/src/authentication/services/authentication.service.d.ts +0 -68
  240. package/src/dialog/components/_dialog/dialog.component.d.ts +0 -22
  241. package/src/dialog/components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -9
  242. package/src/dialog/components/input-dialog/input-dialog.component.d.ts +0 -9
  243. package/src/dialog/components/message-dialog/message-dialog.component.d.ts +0 -9
  244. package/src/dialog/dialog.module.d.ts +0 -20
  245. package/src/email/email.module.d.ts +0 -14
  246. package/src/email/model/email-dto.d.ts +0 -13
  247. package/src/email/model/email-sender.d.ts +0 -6
  248. package/src/email/model/email.d.ts +0 -9
  249. package/src/email/model/email.service.config.d.ts +0 -7
  250. package/src/email/services/email.service.d.ts +0 -13
  251. package/src/employee/employee.module.d.ts +0 -28
  252. package/src/employee/model/employee.d.ts +0 -35
  253. package/src/employee/model/employee.service.config.d.ts +0 -3
  254. package/src/employee/pipes/departments.pipe.d.ts +0 -8
  255. package/src/employee/pipes/employee-by-dn.pipe.d.ts +0 -8
  256. package/src/employee/pipes/employee-photo-url.pipe.d.ts +0 -9
  257. package/src/employee/pipes/employees-with-property-value.pipe.d.ts +0 -8
  258. package/src/employee/pipes/filter-employees.pipe.d.ts +0 -8
  259. package/src/employee/pipes/is-member-of.pipe.d.ts +0 -8
  260. package/src/employee/pipes/sort-employees.pipe.d.ts +0 -9
  261. package/src/employee/services/employee.service.d.ts +0 -15
  262. package/src/file-upload/upload.module.d.ts +0 -26
  263. package/src/sharepoint/model/sharepoint-calendar-event.d.ts +0 -6
  264. package/src/sharepoint/model/sharepoint-customer-visit.d.ts +0 -8
  265. package/src/sharepoint/model/sharepoint-employee-picture.d.ts +0 -5
  266. package/src/sharepoint/model/sharepoint-list-item.d.ts +0 -11
  267. package/src/sharepoint/model/sharepoint-list.d.ts +0 -8
  268. package/src/sharepoint/model/sharepoint-person.d.ts +0 -9
  269. package/src/sharepoint/model/sharepoint-picture.d.ts +0 -14
  270. package/src/sharepoint/model/sharepoint.service.config.d.ts +0 -5
  271. package/src/sharepoint/pipes/sharepoint-photo-url.pipe.d.ts +0 -8
  272. package/src/sharepoint/pipes/sharepoint-url.pipe.d.ts +0 -7
  273. package/src/sharepoint/services/sharepoint.service.d.ts +0 -23
  274. package/src/sharepoint/sharepoint.module.d.ts +0 -24
  275. package/src/url/url.module.d.ts +0 -11
@@ -0,0 +1,152 @@
1
+ //#region Imports
2
+ import { Injectable, Optional } from '@angular/core';
3
+ import { of } from 'rxjs';
4
+ import { defaultConfig } from '../model/default-config';
5
+ import moment from 'moment';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../model/service-config";
8
+ import * as i2 from "@angular/common/http";
9
+ //#endregion
10
+ export class SharepointService {
11
+ //#endregion
12
+ //#region Initialization
13
+ // If a ServiceConfig object is not provided when the module is imported, then default values are pulled in from default-config.ts.
14
+ constructor(config, http) {
15
+ this.config = config;
16
+ this.http = http;
17
+ this.cache = null;
18
+ this.defaultCacheLifeMinutes = 720;
19
+ this.config = this.config ?? defaultConfig;
20
+ this.configureCaching();
21
+ this.configureLogging();
22
+ }
23
+ //#region Utilities
24
+ cacheExpired(cache) {
25
+ if (!cache) {
26
+ return true;
27
+ }
28
+ const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
29
+ const expiration = moment(cache.lastUpdate)
30
+ .add(lifeMinutes, 'minutes');
31
+ return moment().isAfter(expiration);
32
+ }
33
+ configureCaching() {
34
+ // If caching config is missing entirely, give it a default
35
+ this.config.caching = this.config.caching ?? {
36
+ enabled: false,
37
+ lifeMinutes: this.defaultCacheLifeMinutes
38
+ };
39
+ this.cache = {
40
+ photos: null,
41
+ users: null
42
+ };
43
+ }
44
+ configureLogging() {
45
+ // If logging config is missing entirely, give it a default
46
+ this.config.logging = this.config.logging ?? {
47
+ dataCached: false,
48
+ cachedDataReturned: false,
49
+ freshDataReturned: false,
50
+ cacheCleared: false
51
+ };
52
+ }
53
+ //#endregion
54
+ getListItems(request) {
55
+ const apiUrl = this.config?.apiUrl ?? defaultConfig.apiUrl;
56
+ const endpoint = this.config?.listItemsEndpoint ?? defaultConfig.listItemsEndpoint;
57
+ return this.http.post(`${apiUrl}${endpoint}`, request);
58
+ }
59
+ getPhotos() {
60
+ const request = {
61
+ username: this.config?.username ?? defaultConfig.username,
62
+ password: this.config?.password ?? defaultConfig.password,
63
+ site: this.config?.photos.site ?? defaultConfig.photos.site,
64
+ list: this.config?.photos.list ?? defaultConfig.photos.list,
65
+ additionalPropertiesToRetrieve: defaultConfig.photos.additionalPropertiesToRetrieve
66
+ };
67
+ const observable$ = this.getListItems(request);
68
+ if (this.config.caching?.enabled) {
69
+ if (this.cacheExpired(this.cache?.photos)) {
70
+ // Get the data and cache it
71
+ observable$.subscribe(data => {
72
+ this.cache.photos = {
73
+ data,
74
+ lastUpdate: moment()
75
+ };
76
+ if (this.config.logging?.dataCached) {
77
+ const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
78
+ console.log(`Photos cached for ${lifeMinutes} minutes`);
79
+ }
80
+ });
81
+ }
82
+ else {
83
+ // Cache exists and hasn't expired yet
84
+ if (this.config.logging?.cachedDataReturned) {
85
+ console.log('Returning cached photos');
86
+ }
87
+ return of(this.cache.photos.data);
88
+ }
89
+ }
90
+ // Cache is either disabled or expired, return data from API
91
+ if (this.config.logging?.freshDataReturned) {
92
+ console.log('Returning fresh photos');
93
+ }
94
+ return observable$;
95
+ }
96
+ getUsers(request, id) {
97
+ const apiUrl = this.config?.apiUrl ?? defaultConfig.apiUrl;
98
+ const endpoint = this.config?.usersEndpoint ?? defaultConfig.usersEndpoint;
99
+ const observable$ = this.http.post(`${apiUrl}${endpoint}/${id ?? ''}`, request);
100
+ //#region Single user
101
+ if (id) {
102
+ return observable$;
103
+ }
104
+ //#endregion
105
+ //#region Multiple users
106
+ if (this.config.caching?.enabled) {
107
+ if (this.cacheExpired(this.cache.users)) {
108
+ // Get the data and cache it
109
+ observable$.subscribe(data => {
110
+ this.cache.users = {
111
+ data: data,
112
+ lastUpdate: moment()
113
+ };
114
+ if (this.config.logging?.dataCached) {
115
+ const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
116
+ console.log(`Users cached for ${lifeMinutes} minutes`);
117
+ }
118
+ });
119
+ }
120
+ else {
121
+ // Cache exists and hasn't expired yet
122
+ if (this.config.logging?.cachedDataReturned) {
123
+ console.log('Returning cached users');
124
+ }
125
+ return of(this.cache.users.data);
126
+ }
127
+ }
128
+ // Cache is either disabled or expired, return data from API
129
+ if (this.config.logging?.freshDataReturned) {
130
+ console.log('Returning fresh users');
131
+ }
132
+ return observable$;
133
+ //#endregion
134
+ }
135
+ clearCache() {
136
+ this.cache = null;
137
+ if (this.config.logging?.cacheCleared) {
138
+ console.log('Cache cleared');
139
+ }
140
+ }
141
+ }
142
+ SharepointService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharepointService, deps: [{ token: i1.ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
143
+ SharepointService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharepointService, providedIn: 'root' });
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharepointService, decorators: [{
145
+ type: Injectable,
146
+ args: [{
147
+ providedIn: 'root'
148
+ }]
149
+ }], ctorParameters: function () { return [{ type: i1.ServiceConfig, decorators: [{
150
+ type: Optional
151
+ }] }, { type: i2.HttpClient }]; } });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvc2hhcmVwb2ludC9zcmMvc2VydmljZXMvc2hhcmVwb2ludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVV4RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFDNUIsWUFBWTtBQUtaLE1BQU0sT0FBTyxpQkFBaUI7SUFvQjVCLFlBQVk7SUFFWix3QkFBd0I7SUFDeEIsbUlBQW1JO0lBQ25JLFlBQWdDLE1BQXFCLEVBQ2pDLElBQWdCO1FBREosV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBeEI1QixVQUFLLEdBR0YsSUFBSSxDQUFDO1FBRVIsNEJBQXVCLEdBQUcsR0FBRyxDQUFDO1FBcUJ4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDO1FBRTNDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUF2QkQsbUJBQW1CO0lBQ1gsWUFBWSxDQUFJLEtBQXFCO1FBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUNyRixNQUFNLFVBQVUsR0FB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b250ZW50IjpbIi8vI3JlZ2lvbiBJbXBvcnRzXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGRlZmF1bHRDb25maWcgfSBmcm9tICcuLi9tb2RlbC9kZWZhdWx0LWNvbmZpZyc7XG5cbmltcG9ydCB7IENhY2hlT2JqZWN0IH0gZnJvbSAnLi4vbW9kZWwvY2FjaGUtb2JqZWN0JztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi4vbW9kZWwvbGlzdC1pdGVtJztcbmltcG9ydCB7IExpc3RJdGVtc1JlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9saXN0LWl0ZW1zLXJlcXVlc3QnO1xuaW1wb3J0IHsgUGhvdG9JdGVtIH0gZnJvbSAnLi4vbW9kZWwvcGhvdG8taXRlbSc7XG5pbXBvcnQgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvc2VydmljZS1jb25maWcnO1xuaW1wb3J0IHsgVXNlclJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC91c2VyLXJlcXVlc3QnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVsL3VzZXInO1xuXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG4vLyNlbmRyZWdpb25cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVwb2ludFNlcnZpY2Uge1xuICBwcml2YXRlIGNhY2hlOiB7XG4gICAgdXNlcnM6IENhY2hlT2JqZWN0PFVzZXI+IHwgbnVsbCxcbiAgICBwaG90b3M6IENhY2hlT2JqZWN0PFBob3RvSXRlbT4gfCBudWxsXG4gIH0gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGRlZmF1bHRDYWNoZUxpZmVNaW51dGVzID0gNzIwO1xuXG4gIC8vI3JlZ2lvbiBVdGlsaXRpZXNcbiAgcHJpdmF0ZSBjYWNoZUV4cGlyZWQ8VD4oY2FjaGU6IENhY2hlT2JqZWN0PFQ+KTogYm9vbGVhbiB7XG4gICAgaWYgKCFjYWNoZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgbGlmZU1pbnV0ZXMgPSB0aGlzLmNvbmZpZy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xuICAgIGNvbnN0IGV4cGlyYXRpb24gPSBtb21lbnQoY2FjaGUubGFzdFVwZGF0ZSlcbiAgICAgIC5hZGQobGlmZU1pbnV0ZXMsICdtaW51dGVzJyk7XG5cbiAgICByZXR1cm4gbW9tZW50KCkuaXNBZnRlcihleHBpcmF0aW9uKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gSW5pdGlhbGl6YXRpb25cbiAgLy8gSWYgYSBTZXJ2aWNlQ29uZmlnIG9iamVjdCBpcyBub3QgcHJvdmlkZWQgd2hlbiB0aGUgbW9kdWxlIGlzIGltcG9ydGVkLCB0aGVuIGRlZmF1bHQgdmFsdWVzIGFyZSBwdWxsZWQgaW4gZnJvbSBkZWZhdWx0LWNvbmZpZy50cy5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IFNlcnZpY2VDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyA/PyBkZWZhdWx0Q29uZmlnO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmVDYWNoaW5nKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmVMb2dnaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZUNhY2hpbmcoKTogdm9pZCB7XG4gICAgLy8gSWYgY2FjaGluZyBjb25maWcgaXMgbWlzc2luZyBlbnRpcmVseSwgZ2l2ZSBpdCBhIGRlZmF1bHRcbiAgICB0aGlzLmNvbmZpZy5jYWNoaW5nID0gdGhpcy5jb25maWcuY2FjaGluZyA/PyB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGxpZmVNaW51dGVzOiB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzXG4gICAgfTtcblxuICAgIHRoaXMuY2FjaGUgPSB7XG4gICAgICBwaG90b3M6IG51bGwsXG4gICAgICB1c2VyczogbnVsbFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZUxvZ2dpbmcoKTogdm9pZCB7XG4gICAgLy8gSWYgbG9nZ2luZyBjb25maWcgaXMgbWlzc2luZyBlbnRpcmVseSwgZ2l2ZSBpdCBhIGRlZmF1bHRcbiAgICB0aGlzLmNvbmZpZy5sb2dnaW5nID0gdGhpcy5jb25maWcubG9nZ2luZyA/PyB7XG4gICAgICBkYXRhQ2FjaGVkOiBmYWxzZSxcbiAgICAgIGNhY2hlZERhdGFSZXR1cm5lZDogZmFsc2UsXG4gICAgICBmcmVzaERhdGFSZXR1cm5lZDogZmFsc2UsXG4gICAgICBjYWNoZUNsZWFyZWQ6IGZhbHNlXG4gICAgfVxuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIGdldExpc3RJdGVtcyhyZXF1ZXN0OiBMaXN0SXRlbXNSZXF1ZXN0KTogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiB7XG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5jb25maWc/LmFwaVVybCA/PyBkZWZhdWx0Q29uZmlnLmFwaVVybDtcbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuY29uZmlnPy5saXN0SXRlbXNFbmRwb2ludCA/PyBkZWZhdWx0Q29uZmlnLmxpc3RJdGVtc0VuZHBvaW50O1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RJdGVtW10+KGAke2FwaVVybH0ke2VuZHBvaW50fWAsIHJlcXVlc3QpO1xuICB9XG5cbiAgZ2V0UGhvdG9zKCk6IE9ic2VydmFibGU8UGhvdG9JdGVtW10+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBMaXN0SXRlbXNSZXF1ZXN0ID0ge1xuICAgICAgdXNlcm5hbWU6IHRoaXMuY29uZmlnPy51c2VybmFtZSA/PyBkZWZhdWx0Q29uZmlnLnVzZXJuYW1lLFxuICAgICAgcGFzc3dvcmQ6IHRoaXMuY29uZmlnPy5wYXNzd29yZCA/PyBkZWZhdWx0Q29uZmlnLnBhc3N3b3JkLFxuICAgICAgc2l0ZTogdGhpcy5jb25maWc/LnBob3Rvcy5zaXRlID8/IGRlZmF1bHRDb25maWcucGhvdG9zLnNpdGUsXG4gICAgICBsaXN0OiB0aGlzLmNvbmZpZz8ucGhvdG9zLmxpc3QgPz8gZGVmYXVsdENvbmZpZy5waG90b3MubGlzdCxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzVG9SZXRyaWV2ZTogZGVmYXVsdENvbmZpZy5waG90b3MuYWRkaXRpb25hbFByb3BlcnRpZXNUb1JldHJpZXZlXG4gICAgfTtcblxuICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy5nZXRMaXN0SXRlbXMocmVxdWVzdCkgYXMgT2JzZXJ2YWJsZTxQaG90b0l0ZW1bXT47XG5cbiAgICBpZiAodGhpcy5jb25maWcuY2FjaGluZz8uZW5hYmxlZCkge1xuICAgICAgaWYgKHRoaXMuY2FjaGVFeHBpcmVkPFBob3RvSXRlbT4odGhpcy5jYWNoZT8ucGhvdG9zISkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGFuZCBjYWNoZSBpdFxuICAgICAgICBvYnNlcnZhYmxlJC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSEucGhvdG9zID0ge1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGxhc3RVcGRhdGU6IG1vbWVudCgpXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5kYXRhQ2FjaGVkKSB7XG4gICAgICAgICAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgUGhvdG9zIGNhY2hlZCBmb3IgJHtsaWZlTWludXRlc30gbWludXRlc2ApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDYWNoZSBleGlzdHMgYW5kIGhhc24ndCBleHBpcmVkIHlldFxuICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uY2FjaGVkRGF0YVJldHVybmVkKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgcGhvdG9zJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YodGhpcy5jYWNoZSEucGhvdG9zIS5kYXRhKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDYWNoZSBpcyBlaXRoZXIgZGlzYWJsZWQgb3IgZXhwaXJlZCwgcmV0dXJuIGRhdGEgZnJvbSBBUElcbiAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZnJlc2hEYXRhUmV0dXJuZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgZnJlc2ggcGhvdG9zJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9ic2VydmFibGUkO1xuICB9XG5cbiAgZ2V0VXNlcnMocmVxdWVzdDogVXNlclJlcXVlc3QsIGlkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxVc2VyIHwgVXNlcltdPiB7XG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5jb25maWc/LmFwaVVybCA/PyBkZWZhdWx0Q29uZmlnLmFwaVVybDtcbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuY29uZmlnPy51c2Vyc0VuZHBvaW50ID8/IGRlZmF1bHRDb25maWcudXNlcnNFbmRwb2ludDtcbiAgICBcbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuaHR0cC5wb3N0PFVzZXIgfCBVc2VyW10+KGAke2FwaVVybH0ke2VuZHBvaW50fS8ke2lkID8/ICcnfWAsIHJlcXVlc3QpO1xuXG4gICAgLy8jcmVnaW9uIFNpbmdsZSB1c2VyXG4gICAgaWYgKGlkKSB7XG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XG4gICAgfVxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIE11bHRpcGxlIHVzZXJzXG4gICAgaWYgKHRoaXMuY29uZmlnLmNhY2hpbmc/LmVuYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLmNhY2hlRXhwaXJlZDxVc2VyPih0aGlzLmNhY2hlIS51c2VycyEpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgZGF0YSBhbmQgY2FjaGUgaXRcbiAgICAgICAgb2JzZXJ2YWJsZSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUhLnVzZXJzID0ge1xuICAgICAgICAgICAgZGF0YTogZGF0YSBhcyBVc2VyW10sXG4gICAgICAgICAgICBsYXN0VXBkYXRlOiBtb21lbnQoKVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZGF0YUNhY2hlZCkge1xuICAgICAgICAgICAgY29uc3QgbGlmZU1pbnV0ZXMgPSB0aGlzLmNvbmZpZy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFVzZXJzIGNhY2hlZCBmb3IgJHtsaWZlTWludXRlc30gbWludXRlc2ApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDYWNoZSBleGlzdHMgYW5kIGhhc24ndCBleHBpcmVkIHlldFxuICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uY2FjaGVkRGF0YVJldHVybmVkKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgdXNlcnMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlIS51c2VycyEuZGF0YSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2FjaGUgaXMgZWl0aGVyIGRpc2FibGVkIG9yIGV4cGlyZWQsIHJldHVybiBkYXRhIGZyb20gQVBJXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmZyZXNoRGF0YVJldHVybmVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGZyZXNoIHVzZXJzJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9ic2VydmFibGUkO1xuICAgIC8vI2VuZHJlZ2lvblxuICB9XG5cbiAgY2xlYXJDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlID0gbnVsbDtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZUNsZWFyZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdDYWNoZSBjbGVhcmVkJyk7XG4gICAgfVxuICB9XG59Il19
@@ -0,0 +1,38 @@
1
+ import { NgModule, Optional, SkipSelf } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ServiceConfig } from './model/service-config';
4
+ import { SharepointService } from './services/sharepoint.service';
5
+ import * as i0 from "@angular/core";
6
+ export class SharepointModule {
7
+ constructor(parentModule) {
8
+ if (parentModule) {
9
+ throw new Error('SharepointModule is already loaded. Import it in the AppModule only');
10
+ }
11
+ }
12
+ static forRoot(config) {
13
+ return {
14
+ ngModule: SharepointModule,
15
+ providers: [
16
+ SharepointService,
17
+ { provide: ServiceConfig, useValue: config }
18
+ ]
19
+ };
20
+ }
21
+ }
22
+ SharepointModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharepointModule, deps: [{ token: SharepointModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
23
+ SharepointModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SharepointModule, imports: [CommonModule] });
24
+ SharepointModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharepointModule, imports: [CommonModule] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharepointModule, decorators: [{
26
+ type: NgModule,
27
+ args: [{
28
+ declarations: [],
29
+ imports: [
30
+ CommonModule
31
+ ]
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: SharepointModule, decorators: [{
34
+ type: Optional
35
+ }, {
36
+ type: SkipSelf
37
+ }] }]; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50L3NyYy9zaGFyZXBvaW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBUWxFLE1BQU0sT0FBTyxnQkFBZ0I7SUFXM0IsWUFBcUMsWUFBOEI7UUFDakUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYixxRUFBcUUsQ0FBQyxDQUFDO1NBQzFFO0lBQ0gsQ0FBQztJQWZELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNULGlCQUFpQjtnQkFDakIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQzs7NkdBVFUsZ0JBQWdCLGtCQVd3QixnQkFBZ0I7OEdBWHhELGdCQUFnQixZQUh6QixZQUFZOzhHQUdILGdCQUFnQixZQUh6QixZQUFZOzJGQUdILGdCQUFnQjtrQkFONUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7aUJBQ0Y7MERBWW9ELGdCQUFnQjswQkFBckQsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbC9zZXJ2aWNlLWNvbmZpZyc7XG5pbXBvcnQgeyBTaGFyZXBvaW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2hhcmVwb2ludC5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlcG9pbnRNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFNlcnZpY2VDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNoYXJlcG9pbnRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFNoYXJlcG9pbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgU2hhcmVwb2ludFNlcnZpY2UsXG4gICAgICAgIHsgcHJvdmlkZTogU2VydmljZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IFNoYXJlcG9pbnRNb2R1bGUpIHtcbiAgICBpZiAocGFyZW50TW9kdWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdTaGFyZXBvaW50TW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5Jyk7XG4gICAgfVxuICB9XG59Il19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItdXBsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvdXBsb2FkL3NyYy9jbGVhdmVsYW5kcHJpY2Utbmd4LWxpYi11cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Component, Output, EventEmitter } from '@angular/core';
2
+ import { UploadDialogComponent } from './../upload-dialog/upload-dialog.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ import * as i2 from "./../../services/upload.service";
6
+ export class UploadComponent {
7
+ constructor(dialog, uploadService) {
8
+ this.dialog = dialog;
9
+ this.uploadService = uploadService;
10
+ this.dialogClosed = new EventEmitter();
11
+ }
12
+ ngOnInit() {
13
+ this.uploadButtonText = this.uploadService.uploadButtonText ?
14
+ this.uploadService.uploadButtonText :
15
+ 'Upload';
16
+ }
17
+ openUploadDialog() {
18
+ this.dialog.open(UploadDialogComponent, { width: '50%' })
19
+ .afterClosed().subscribe(() => this.dialogClosed.emit());
20
+ }
21
+ }
22
+ UploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadComponent, deps: [{ token: i1.MatDialog }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
23
+ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: UploadComponent, selector: "cp-upload", outputs: { dialogClosed: "dialogClosed" }, ngImport: i0, template: '<button mat-raised-button (click)="openUploadDialog()">{{ uploadButtonText }}</button>', isInline: true });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadComponent, decorators: [{
25
+ type: Component,
26
+ args: [{
27
+ selector: 'cp-upload',
28
+ template: '<button mat-raised-button (click)="openUploadDialog()">{{ uploadButtonText }}</button>'
29
+ }]
30
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.UploadService }]; }, propDecorators: { dialogClosed: [{
31
+ type: Output
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFPbkYsTUFBTSxPQUFPLGVBQWU7SUFJeEIsWUFBbUIsTUFBaUIsRUFBUyxhQUE0QjtRQUF0RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFIL0QsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR2lDLENBQUM7SUFFOUUsUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3BELFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7NEdBZlEsZUFBZTtnR0FBZixlQUFlLDRGQUZkLHdGQUF3RjsyRkFFekYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLHdGQUF3RjtpQkFDckc7NEhBRWEsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFVwbG9hZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vLi4vdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3AtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZTogJzxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIm9wZW5VcGxvYWREaWFsb2coKVwiPnt7IHVwbG9hZEJ1dHRvblRleHQgfX08L2J1dHRvbj4nXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQE91dHB1dCgpIGRpYWxvZ0Nsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB1cGxvYWRCdXR0b25UZXh0ITogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCBwdWJsaWMgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRCdXR0b25UZXh0ID0gdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZEJ1dHRvblRleHQgP1xuICAgICAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZEJ1dHRvblRleHQgOlxuICAgICAgICAgICAgJ1VwbG9hZCc7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5VcGxvYWREaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkRGlhbG9nQ29tcG9uZW50LCB7IHdpZHRoOiAnNTAlJyB9KVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZGlhbG9nQ2xvc2VkLmVtaXQoKSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,92 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { forkJoin } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ import * as i2 from "./../../services/upload.service";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/material/list";
8
+ import * as i5 from "@angular/material/core";
9
+ import * as i6 from "@angular/material/progress-bar";
10
+ export class UploadDialogComponent {
11
+ constructor(dialogRef, uploadService) {
12
+ this.dialogRef = dialogRef;
13
+ this.uploadService = uploadService;
14
+ this.files = new Set();
15
+ this.existingFileConflict = null;
16
+ this.canBeClosed = true;
17
+ this.showCancelButton = true;
18
+ this.uploading = false;
19
+ this.uploadSuccessful = false;
20
+ }
21
+ ngOnInit() {
22
+ this.uploadDialogTitle = this.uploadService.uploadDialogTitle ?? 'Upload Files';
23
+ this.uploadDialogAddFilesButtonText = this.uploadService.uploadDialogAddFilesButtonText ?? 'Add Files';
24
+ this.uploadDialogCancelButtonText = this.uploadService.uploadDialogCancelButtonText ?? 'Cancel';
25
+ this.uploadDialogUploadButtonText = this.uploadService.uploadDialogUploadButtonText ?? 'Upload';
26
+ this.uploadDialogFinishButtonText = this.uploadService.uploadDialogFinishButtonText ?? 'Finish';
27
+ this.primaryButtonText = this.uploadDialogUploadButtonText;
28
+ }
29
+ addFiles() {
30
+ this.file.nativeElement.click();
31
+ }
32
+ onFilesAdded() {
33
+ const files = this.file.nativeElement.files;
34
+ for (const key in files) {
35
+ if (!isNaN(parseInt(key))) {
36
+ // See if the file already exists
37
+ this.uploadService.exists(files[key].name)
38
+ .subscribe(exists => {
39
+ if (exists) {
40
+ this.existingFileConflict = files[key].name;
41
+ }
42
+ if (!exists) {
43
+ this.files.add(files[key]);
44
+ }
45
+ });
46
+ }
47
+ }
48
+ }
49
+ closeDialog() {
50
+ // if everything was uploaded already, just close the dialog
51
+ if (this.uploadSuccessful) {
52
+ return this.dialogRef.close();
53
+ }
54
+ // set the component state to "uploading"
55
+ this.uploading = true;
56
+ // start the upload and save the progress map
57
+ this.progress = this.uploadService.upload(this.files);
58
+ // convert the progress map into an array
59
+ const allProgressObservables = [];
60
+ for (let key in this.progress) {
61
+ allProgressObservables.push(this.progress[key].progress);
62
+ }
63
+ // Adjust the state variables
64
+ // The OK-button should have the text "Finish" now
65
+ this.primaryButtonText = this.uploadDialogFinishButtonText;
66
+ // The dialog should not be closed while uploading
67
+ this.canBeClosed = false;
68
+ this.dialogRef.disableClose = true;
69
+ // Hide the cancel-button
70
+ this.showCancelButton = false;
71
+ // When all progress-observables are completed...
72
+ forkJoin(allProgressObservables).subscribe(end => {
73
+ // ... the dialog can be closed again...
74
+ this.canBeClosed = true;
75
+ this.dialogRef.disableClose = false;
76
+ // ... the upload was successful...
77
+ this.uploadSuccessful = true;
78
+ // ... and the component is no longer uploading
79
+ this.uploading = false;
80
+ });
81
+ }
82
+ }
83
+ UploadDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
84
+ UploadDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: UploadDialogComponent, selector: "cp-upload-dialog", viewQueries: [{ propertyName: "file", first: true, predicate: ["file"], descendants: true, static: true }], ngImport: i0, template: "<input type=\"file\" #file style=\"display: none\" (change)=\"onFilesAdded()\" multiple />\n\n<div mat-dialog-title id=\"title\">\n <div>{{ uploadDialogTitle }}</div>\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\n {{ uploadDialogAddFilesButtonText }}\n </button>\n</div>\n\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\n</div>\n\n<mat-dialog-content>\n <mat-list>\n <mat-list-item *ngFor=\"let file of files\">\n <h4 mat-line>{{file.name}}</h4>\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\n </mat-list-item>\n </mat-list>\n</mat-dialog-content>\n\n<mat-dialog-actions id=\"actions\">\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadDialogCancelButtonText }}</button>\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\n</mat-dialog-actions>\n", styles: ["#title{display:flex;justify-content:space-between}#actions{display:flex;justify-content:flex-end}#conflict{font-size:.8em;color:red;margin-top:.5em}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i4.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { kind: "component", type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatLine, selector: "[mat-line], [matLine]" }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadDialogComponent, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'cp-upload-dialog', template: "<input type=\"file\" #file style=\"display: none\" (change)=\"onFilesAdded()\" multiple />\n\n<div mat-dialog-title id=\"title\">\n <div>{{ uploadDialogTitle }}</div>\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\n {{ uploadDialogAddFilesButtonText }}\n </button>\n</div>\n\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\n</div>\n\n<mat-dialog-content>\n <mat-list>\n <mat-list-item *ngFor=\"let file of files\">\n <h4 mat-line>{{file.name}}</h4>\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\n </mat-list-item>\n </mat-list>\n</mat-dialog-content>\n\n<mat-dialog-actions id=\"actions\">\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadDialogCancelButtonText }}</button>\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\n</mat-dialog-actions>\n", styles: ["#title{display:flex;justify-content:space-between}#actions{display:flex;justify-content:flex-end}#conflict{font-size:.8em;color:red;margin-top:.5em}\n"] }]
88
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.UploadService }]; }, propDecorators: { file: [{
89
+ type: ViewChild,
90
+ args: ['file', { static: true }]
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL2NvbXBvbmVudHMvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBT2hDLE1BQU0sT0FBTyxxQkFBcUI7SUFvQmhDLFlBQW1CLFNBQThDLEVBQVMsYUFBNEI7UUFBbkYsY0FBUyxHQUFULFNBQVMsQ0FBcUM7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWxCL0YsVUFBSyxHQUFjLElBQUksR0FBRyxFQUFFLENBQUM7UUFDcEMseUJBQW9CLEdBQWtCLElBQUksQ0FBQztRQUkzQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFTaUYsQ0FBQztJQUUzRyxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLElBQUksY0FBYyxDQUFDO1FBRWhGLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixJQUFJLFdBQVcsQ0FBQztRQUV2RyxJQUFJLENBQUMsNEJB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LHFCQUFxQixvS0NWbEMsdXBDQTBCQTsyRkRoQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjsrSEFLUyxJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3AtdXBsb2FkLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLWRpYWxvZy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZmlsZScsIHsgc3RhdGljOiB0cnVlIH0pIGZpbGUhOiBFbGVtZW50UmVmO1xuICBwdWJsaWMgZmlsZXM6IFNldDxGaWxlPiA9IG5ldyBTZXQoKTtcbiAgZXhpc3RpbmdGaWxlQ29uZmxpY3Q6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8vIFN0YXRlXG4gIHByb2dyZXNzOiBhbnk7XG4gIGNhbkJlQ2xvc2VkID0gdHJ1ZTtcbiAgcHJpbWFyeUJ1dHRvblRleHQhOiBzdHJpbmc7XG4gIHNob3dDYW5jZWxCdXR0b24gPSB0cnVlO1xuICB1cGxvYWRpbmcgPSBmYWxzZTtcbiAgdXBsb2FkU3VjY2Vzc2Z1bCA9IGZhbHNlO1xuXG4gIC8vIFVJIGNvbmZpZ3VyYXRpb25cbiAgdXBsb2FkRGlhbG9nVGl0bGUhOiBzdHJpbmc7XG4gIHVwbG9hZERpYWxvZ0FkZEZpbGVzQnV0dG9uVGV4dCE6IHN0cmluZztcbiAgdXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dCE6IHN0cmluZztcbiAgdXBsb2FkRGlhbG9nVXBsb2FkQnV0dG9uVGV4dCE6IHN0cmluZztcbiAgdXBsb2FkRGlhbG9nRmluaXNoQnV0dG9uVGV4dCE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VXBsb2FkRGlhbG9nQ29tcG9uZW50PiwgcHVibGljIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXBsb2FkRGlhbG9nVGl0bGUgPSB0aGlzLnVwbG9hZFNlcnZpY2UudXBsb2FkRGlhbG9nVGl0bGUgPz8gJ1VwbG9hZCBGaWxlcyc7XG5cbiAgICB0aGlzLnVwbG9hZERpYWxvZ0FkZEZpbGVzQnV0dG9uVGV4dCA9IHRoaXMudXBsb2FkU2VydmljZS51cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQgPz8gJ0FkZCBGaWxlcyc7XG5cbiAgICB0aGlzLnVwbG9hZERpYWxvZ0NhbmNlbEJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UudXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dCA/PyAnQ2FuY2VsJztcblxuICAgIHRoaXMudXBsb2FkRGlhbG9nVXBsb2FkQnV0dG9uVGV4dCA9IHRoaXMudXBsb2FkU2VydmljZS51cGxvYWREaWFsb2dVcGxvYWRCdXR0b25UZXh0ID8/ICdVcGxvYWQnO1xuXG4gICAgdGhpcy51cGxvYWREaWFsb2dGaW5pc2hCdXR0b25UZXh0ID0gdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQgPz8gJ0ZpbmlzaCc7XG5cbiAgICB0aGlzLnByaW1hcnlCdXR0b25UZXh0ID0gdGhpcy51cGxvYWREaWFsb2dVcGxvYWRCdXR0b25UZXh0O1xuICB9XG5cbiAgYWRkRmlsZXMoKSB7XG4gICAgdGhpcy5maWxlLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIG9uRmlsZXNBZGRlZCgpIHtcbiAgICBjb25zdCBmaWxlczogeyBba2V5OiBzdHJpbmddOiBGaWxlIH0gPSB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC5maWxlcztcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWxlcykge1xuICAgICAgaWYgKCFpc05hTihwYXJzZUludChrZXkpKSkge1xuICAgICAgICAvLyBTZWUgaWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHNcbiAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmV4aXN0cyhmaWxlc1trZXldLm5hbWUpXG4gICAgICAgICAgLnN1YnNjcmliZShleGlzdHMgPT4ge1xuICAgICAgICAgICAgaWYgKGV4aXN0cykge1xuICAgICAgICAgICAgICB0aGlzLmV4aXN0aW5nRmlsZUNvbmZsaWN0ID0gZmlsZXNba2V5XS5uYW1lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICAgICAgICB0aGlzLmZpbGVzLmFkZChmaWxlc1trZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbG9zZURpYWxvZygpIHtcbiAgICAvLyBpZiBldmVyeXRoaW5nIHdhcyB1cGxvYWRlZCBhbHJlYWR5LCBqdXN0IGNsb3NlIHRoZSBkaWFsb2dcbiAgICBpZiAodGhpcy51cGxvYWRTdWNjZXNzZnVsKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvLyBzZXQgdGhlIGNvbXBvbmVudCBzdGF0ZSB0byBcInVwbG9hZGluZ1wiXG4gICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgLy8gc3RhcnQgdGhlIHVwbG9hZCBhbmQgc2F2ZSB0aGUgcHJvZ3Jlc3MgbWFwXG4gICAgdGhpcy5wcm9ncmVzcyA9IHRoaXMudXBsb2FkU2VydmljZS51cGxvYWQodGhpcy5maWxlcyk7XG5cbiAgICAvLyBjb252ZXJ0IHRoZSBwcm9ncmVzcyBtYXAgaW50byBhbiBhcnJheVxuICAgIGNvbnN0IGFsbFByb2dyZXNzT2JzZXJ2YWJsZXMgPSBbXTtcblxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLnByb2dyZXNzKSB7XG4gICAgICBhbGxQcm9ncmVzc09ic2VydmFibGVzLnB1c2godGhpcy5wcm9ncmVzc1trZXldLnByb2dyZXNzKTtcbiAgICB9XG5cbiAgICAvLyBBZGp1c3QgdGhlIHN0YXRlIHZhcmlhYmxlc1xuXG4gICAgLy8gVGhlIE9LLWJ1dHRvbiBzaG91bGQgaGF2ZSB0aGUgdGV4dCBcIkZpbmlzaFwiIG5vd1xuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ7XG5cbiAgICAvLyBUaGUgZGlhbG9nIHNob3VsZCBub3QgYmUgY2xvc2VkIHdoaWxlIHVwbG9hZGluZ1xuICAgIHRoaXMuY2FuQmVDbG9zZWQgPSBmYWxzZTtcbiAgICB0aGlzLmRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xuXG4gICAgLy8gSGlkZSB0aGUgY2FuY2VsLWJ1dHRvblxuICAgIHRoaXMuc2hvd0NhbmNlbEJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLy8gV2hlbiBhbGwgcHJvZ3Jlc3Mtb2JzZXJ2YWJsZXMgYXJlIGNvbXBsZXRlZC4uLlxuICAgIGZvcmtKb2luKGFsbFByb2dyZXNzT2JzZXJ2YWJsZXMpLnN1YnNjcmliZShlbmQgPT4ge1xuICAgICAgLy8gLi4uIHRoZSBkaWFsb2cgY2FuIGJlIGNsb3NlZCBhZ2Fpbi4uLlxuICAgICAgdGhpcy5jYW5CZUNsb3NlZCA9IHRydWU7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSBmYWxzZTtcblxuICAgICAgLy8gLi4uIHRoZSB1cGxvYWQgd2FzIHN1Y2Nlc3NmdWwuLi5cbiAgICAgIHRoaXMudXBsb2FkU3VjY2Vzc2Z1bCA9IHRydWU7XG5cbiAgICAgIC8vIC4uLiBhbmQgdGhlIGNvbXBvbmVudCBpcyBubyBsb25nZXIgdXBsb2FkaW5nXG4gICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG59XG4iLCI8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZSBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAoY2hhbmdlKT1cIm9uRmlsZXNBZGRlZCgpXCIgbXVsdGlwbGUgLz5cblxuPGRpdiBtYXQtZGlhbG9nLXRpdGxlIGlkPVwidGl0bGVcIj5cbiAgPGRpdj57eyB1cGxvYWREaWFsb2dUaXRsZSB9fTwvZGl2PlxuICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ1cGxvYWRpbmcgfHwgdXBsb2FkU3VjY2Vzc2Z1bFwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYWRkLWZpbGVzLWJ0blwiIChjbGljayk9XCJhZGRGaWxlcygpXCI+XG4gICAge3sgdXBsb2FkRGlhbG9nQWRkRmlsZXNCdXR0b25UZXh0IH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgaWQ9XCJjb25mbGljdFwiICpuZ0lmPVwiZXhpc3RpbmdGaWxlQ29uZmxpY3RcIj5cbiAge3sgZXhpc3RpbmdGaWxlQ29uZmxpY3QgfX0gYWxyZWFkeSBleGlzdHMgb24gdGhlIHNlcnZlciBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuXG48L2Rpdj5cblxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgPG1hdC1saXN0PlxuICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCI+XG4gICAgICA8aDQgbWF0LWxpbmU+e3tmaWxlLm5hbWV9fTwvaDQ+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cInByb2dyZXNzXCIgbW9kZT1cImRldGVybWluYXRlXCIgW3ZhbHVlXT1cInByb2dyZXNzW2ZpbGUubmFtZV0ucHJvZ3Jlc3MgfCBhc3luY1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG4gIDwvbWF0LWxpc3Q+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBpZD1cImFjdGlvbnNcIj5cbiAgPGJ1dHRvbiAqbmdJZj1cInNob3dDYW5jZWxCdXR0b25cIiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+e3sgdXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dCB9fTwvYnV0dG9uPlxuICA8YnV0dG9uICpuZ0lmPVwiZmlsZXMuc2l6ZSA+IDBcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWNhbkJlQ2xvc2VkXCIgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIj57eyBwcmltYXJ5QnV0dG9uVGV4dCB9fTwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtZmlsZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvdXBsb2FkL3NyYy9tb2RlbC9kYXRhYmFzZS1maWxlLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VGaWxlSW5mbyB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB0aW1lc3RhbXA6IERhdGU7XHJcbiAgICBkYkFwcElkOiBzdHJpbmc7XHJcbiAgICBleHRlcm5hbFJlZmVyZW5jZUlkPzogbnVtYmVyO1xyXG4gICAgY29tbWVudD86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvbW9kZWwvZmlsZS11cGxvYWQtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGaWxlVXBsb2FkUmVxdWVzdCB7XHJcbiAgICBhcHBJZD86IHN0cmluZztcclxuICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICBleHRlcm5hbFJlZmVyZW5jZUlkPzogbnVtYmVyO1xyXG4gICAgZm9sZGVyPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS1maWxlLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL21vZGVsL2ZpbGVzeXN0ZW0tZmlsZS1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZpbGVzeXN0ZW1GaWxlSW5mbyB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBhdHRyaWJ1dGVzPzogbnVtYmVyO1xyXG4gICAgY3JlYXRpb25UaW1lOiBEYXRlO1xyXG4gICAgZGlyZWN0b3J5OiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb246IHN0cmluZztcclxuICAgIGZ1bGxuYW1lOiBzdHJpbmc7XHJcbiAgICBsYXN0QWNjZXNzVGltZTogRGF0ZTtcclxuICAgIGxhc3RXcml0ZVRpbWU6IERhdGU7XHJcbiAgICByZWFkT25seTogYm9vbGVhbjtcclxuICAgIHNpemU6IG51bWJlcjtcclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export class ServiceConfig {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL21vZGVsL3NlcnZpY2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO0NBY3pCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNlcnZpY2VDb25maWcge1xyXG4gICAgdXBsb2FkQXBpVXJsITogc3RyaW5nO1xyXG4gICAgdXBsb2FkUGF0aD86IHN0cmluZztcclxuICAgIGRiQXBwSWQ/OiBzdHJpbmc7XHJcbiAgICBleHRlcm5hbFJlZmVyZW5jZUlkPzogc3RyaW5nO1xyXG4gICAgY29tbWVudD86IHN0cmluZztcclxuXHJcbiAgICAvLyBVSSBjb25maWd1cmF0aW9uXHJcbiAgICB1cGxvYWRCdXR0b25UZXh0Pzogc3RyaW5nO1xyXG4gICAgdXBsb2FkRGlhbG9nVGl0bGU/OiBzdHJpbmc7XHJcbiAgICB1cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQ/OiBzdHJpbmc7XHJcbiAgICB1cGxvYWREaWFsb2dDYW5jZWxCdXR0b25UZXh0Pzogc3RyaW5nO1xyXG4gICAgdXBsb2FkRGlhbG9nVXBsb2FkQnV0dG9uVGV4dD86IHN0cmluZztcclxuICAgIHVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ/OiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -0,0 +1,9 @@
1
+ export * from './model/database-file-info';
2
+ export * from './model/file-upload-request';
3
+ export * from './model/filesystem-file-info';
4
+ export * from './model/service-config';
5
+ export * from './components/upload/upload.component';
6
+ export * from './components/upload-dialog/upload-dialog.component';
7
+ export * from './services/upload.service';
8
+ export * from './upload.module';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvREFBb0QsQ0FBQztBQUVuRSxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vZGVsL2RhdGFiYXNlLWZpbGUtaW5mbyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZmlsZS11cGxvYWQtcmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZmlsZXN5c3RlbS1maWxlLWluZm8nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3NlcnZpY2UtY29uZmlnJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi91cGxvYWQubW9kdWxlJzsiXX0=
@@ -0,0 +1,93 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { HttpRequest, HttpEventType, HttpResponse, HttpHeaders } from '@angular/common/http';
3
+ import { Subject } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "../model/service-config";
7
+ // https://malcoded.com/posts/angular-file-upload-component-with-express
8
+ export class UploadService {
9
+ constructor(http, config) {
10
+ this.http = http;
11
+ this.uploadApiUrl = config.uploadApiUrl;
12
+ this.uploadPath = config.uploadPath || '';
13
+ this.dbAppId = config.dbAppId || '';
14
+ this.externalReferenceId = config.externalReferenceId || '';
15
+ this.comment = config.comment || '';
16
+ // UI configuration
17
+ this.uploadButtonText = config.uploadButtonText ?? '';
18
+ this.uploadDialogTitle = config.uploadDialogTitle ?? '';
19
+ this.uploadDialogAddFilesButtonText = config.uploadDialogAddFilesButtonText ?? '';
20
+ this.uploadDialogCancelButtonText = config.uploadDialogCancelButtonText ?? '';
21
+ this.uploadDialogUploadButtonText = config.uploadDialogUploadButtonText ?? '';
22
+ this.uploadDialogFinishButtonText = config.uploadDialogFinishButtonText ?? '';
23
+ }
24
+ upload(files) {
25
+ // this will be the our resulting map
26
+ const status = {};
27
+ files.forEach(file => {
28
+ // create a new multipart-form for every file
29
+ const formData = new FormData();
30
+ formData.append('file', file, file.name);
31
+ // create a http-post request and pass the form
32
+ // tell it to report the upload progress
33
+ // A 'Destination' header is used to optionally configure the file upload destination (filesystem)
34
+ // A 'DbAppId' header is used to configure the unique identifier of database uploads
35
+ const req = new HttpRequest('POST', this.uploadApiUrl, formData, {
36
+ reportProgress: true,
37
+ responseType: 'blob',
38
+ headers: new HttpHeaders()
39
+ .set('Destination', this.uploadPath)
40
+ .set('DbAppId', this.dbAppId)
41
+ .set('ExternalReferenceId', this.externalReferenceId)
42
+ .set('Comment', this.comment)
43
+ /*headers: this.uploadPath ?
44
+ new HttpHeaders({ 'Destination': this.uploadPath }) :
45
+ this.dbAppId ?
46
+ new HttpHeaders({ 'DbAppId': this.dbAppId }) :
47
+ null*/
48
+ });
49
+ // create a new progress-subject for every file
50
+ const progress = new Subject();
51
+ // send the http-request and subscribe for progress-updates
52
+ this.http.request(req).subscribe(event => {
53
+ if (event.type === HttpEventType.UploadProgress) {
54
+ // calculate the progress percentage
55
+ const percentDone = Math.round(100 * event.loaded / (event.total ?? 1));
56
+ // pass the percentage into the progress-stream
57
+ progress.next(percentDone);
58
+ }
59
+ else if (event instanceof HttpResponse) {
60
+ // Close the progress-stream if we get an answer form the API
61
+ // The upload is complete
62
+ progress.complete();
63
+ }
64
+ });
65
+ // Save every progress-observable in a map of all observables
66
+ status[file.name] = {
67
+ progress: progress.asObservable()
68
+ };
69
+ });
70
+ // return the map of progress.observables
71
+ return status;
72
+ }
73
+ exists(fileName) {
74
+ const query = this.uploadApiUrl.toLowerCase().indexOf('filesystem') === -1 ?
75
+ { name: fileName, dbAppId: this.dbAppId } :
76
+ { name: fileName, destination: this.uploadPath };
77
+ return this.http.post(`${this.uploadApiUrl}/exists`, query);
78
+ }
79
+ download(request) {
80
+ return this.http.post(`${this.uploadApiUrl}/stream`, request, { responseType: 'blob' });
81
+ }
82
+ getUploadInfo(request) {
83
+ return this.http.post(`${this.uploadApiUrl}/info`, request);
84
+ }
85
+ }
86
+ UploadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }, { token: i2.ServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
87
+ UploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadService });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadService, decorators: [{
89
+ type: Injectable
90
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ServiceConfig, decorators: [{
91
+ type: Optional
92
+ }] }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBYyxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7OztBQU03Qyx3RUFBd0U7QUFHeEUsTUFBTSxPQUFPLGFBQWE7SUFleEIsWUFBb0IsSUFBZ0IsRUFDdEIsTUFBcUI7UUFEZixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVwQyxtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLDhCQUE4QixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsSUFBSSxFQUFF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SSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxPQUEwQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBMEI7UUFFN0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbEIsR0FBRyxJQUFJLENBQUMsWUFBWSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7MEdBM0dVLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFpQk4sUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVxdWVzdCwgSHR0cEV2ZW50VHlwZSwgSHR0cFJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN1YmplY3QgLCAgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3NlcnZpY2UtY29uZmlnJztcbmltcG9ydCB7IEZpbGVVcGxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvZmlsZS11cGxvYWQtcmVxdWVzdCc7XG5pbXBvcnQgeyBEYXRhYmFzZUZpbGVJbmZvIH0gZnJvbSAnLi4vbW9kZWwvZGF0YWJhc2UtZmlsZS1pbmZvJztcbmltcG9ydCB7IEZpbGVzeXN0ZW1GaWxlSW5mbyB9IGZyb20gJy4uL21vZGVsL2ZpbGVzeXN0ZW0tZmlsZS1pbmZvJztcblxuLy8gaHR0cHM6Ly9tYWxjb2RlZC5jb20vcG9zdHMvYW5ndWxhci1maWxlLXVwbG9hZC1jb21wb25lbnQtd2l0aC1leHByZXNzXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVcGxvYWRTZXJ2aWNlIHtcbiAgcHVibGljIHVwbG9hZEFwaVVybDogc3RyaW5nO1xuICBwdWJsaWMgdXBsb2FkUGF0aDogc3RyaW5nO1xuICBwdWJsaWMgZGJBcHBJZDogc3RyaW5nO1xuICBwdWJsaWMgZXh0ZXJuYWxSZWZlcmVuY2VJZDogc3RyaW5nO1xuICBwdWJsaWMgY29tbWVudDogc3RyaW5nO1xuXG4gIC8vIFVJIGNvbmZpZ3VyYXRpb25cbiAgcHVibGljIHVwbG9hZEJ1dHRvblRleHQ6IHN0cmluZztcbiAgcHVibGljIHVwbG9hZERpYWxvZ1RpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyB1cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQ6IHN0cmluZztcbiAgcHVibGljIHVwbG9hZERpYWxvZ0NhbmNlbEJ1dHRvblRleHQ6IHN0cmluZztcbiAgcHVibGljIHVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQ6IHN0cmluZztcbiAgcHVibGljIHVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnOiBTZXJ2aWNlQ29uZmlnKSB7XG4gICAgICB0aGlzLnVwbG9hZEFwaVVybCA9IGNvbmZpZy51cGxvYWRBcGlVcmw7XG4gICAgICB0aGlzLnVwbG9hZFBhdGggPSBjb25maWcudXBsb2FkUGF0aCB8fCAnJztcbiAgICAgIHRoaXMuZGJBcHBJZCA9IGNvbmZpZy5kYkFwcElkIHx8ICcnO1xuICAgICAgdGhpcy5leHRlcm5hbFJlZmVyZW5jZUlkID0gY29uZmlnLmV4dGVybmFsUmVmZXJlbmNlSWQgfHwgJyc7XG4gICAgICB0aGlzLmNvbW1lbnQgPSBjb25maWcuY29tbWVudCB8fCAnJztcblxuICAgICAgLy8gVUkgY29uZmlndXJhdGlvblxuICAgICAgdGhpcy51cGxvYWRCdXR0b25UZXh0ID0gY29uZmlnLnVwbG9hZEJ1dHRvblRleHQgPz8gJyc7XG4gICAgICB0aGlzLnVwbG9hZERpYWxvZ1RpdGxlID0gY29uZmlnLnVwbG9hZERpYWxvZ1RpdGxlID8/ICcnO1xuICAgICAgdGhpcy51cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQgPSBjb25maWcudXBsb2FkRGlhbG9nQWRkRmlsZXNCdXR0b25UZXh0ID8/ICcnO1xuICAgICAgdGhpcy51cGxvYWREaWFsb2dDYW5jZWxCdXR0b25UZXh0ID0gY29uZmlnLnVwbG9hZERpYWxvZ0NhbmNlbEJ1dHRvblRleHQgPz8gJyc7XG4gICAgICB0aGlzLnVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQgPSBjb25maWcudXBsb2FkRGlhbG9nVXBsb2FkQnV0dG9uVGV4dCA/PyAnJztcbiAgICAgIHRoaXMudXBsb2FkRGlhbG9nRmluaXNoQnV0dG9uVGV4dCA9IGNvbmZpZy51cGxvYWREaWFsb2dGaW5pc2hCdXR0b25UZXh0ID8/ICcnO1xuICAgIH1cblxuICBwdWJsaWMgdXBsb2FkKGZpbGVzOiBTZXQ8RmlsZT4pOiBhbnkgeyAvLyB7W2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxudW1iZXI+fSB7XG4gICAgLy8gdGhpcyB3aWxsIGJlIHRoZSBvdXIgcmVzdWx0aW5nIG1hcFxuICAgIGNvbnN0IHN0YXR1czoge1trZXk6IHN0cmluZ106IHtwcm9ncmVzczogT2JzZXJ2YWJsZTxudW1iZXI+fX0gPSB7fTtcblxuICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB7XG4gICAgICAvLyBjcmVhdGUgYSBuZXcgbXVsdGlwYXJ0LWZvcm0gZm9yIGV2ZXJ5IGZpbGVcbiAgICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcblxuICAgICAgLy8gY3JlYXRlIGEgaHR0cC1wb3N0IHJlcXVlc3QgYW5kIHBhc3MgdGhlIGZvcm1cbiAgICAgIC8vIHRlbGwgaXQgdG8gcmVwb3J0IHRoZSB1cGxvYWQgcHJvZ3Jlc3NcblxuICAgICAgLy8gQSAnRGVzdGluYXRpb24nIGhlYWRlciBpcyB1c2VkIHRvIG9wdGlvbmFsbHkgY29uZmlndXJlIHRoZSBmaWxlIHVwbG9hZCBkZXN0aW5hdGlvbiAoZmlsZXN5c3RlbSlcbiAgICAgIC8vIEEgJ0RiQXBwSWQnIGhlYWRlciBpcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgZGF0YWJhc2UgdXBsb2Fkc1xuICAgICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdGhpcy51cGxvYWRBcGlVcmwsIGZvcm1EYXRhLCB7XG4gICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgICAgICAuc2V0KCdEZXN0aW5hdGlvbicsIHRoaXMudXBsb2FkUGF0aClcbiAgICAgICAgICAuc2V0KCdEYkFwcElkJywgdGhpcy5kYkFwcElkKVxuICAgICAgICAgIC5zZXQoJ0V4dGVybmFsUmVmZXJlbmNlSWQnLCB0aGlzLmV4dGVybmFsUmVmZXJlbmNlSWQpXG4gICAgICAgICAgLnNldCgnQ29tbWVudCcsIHRoaXMuY29tbWVudClcbiAgICAgICAgLypoZWFkZXJzOiB0aGlzLnVwbG9hZFBhdGggP1xuICAgICAgICAgIG5ldyBIdHRwSGVhZGVycyh7ICdEZXN0aW5hdGlvbic6IHRoaXMudXBsb2FkUGF0aCB9KSA6XG4gICAgICAgICAgdGhpcy5kYkFwcElkID9cbiAgICAgICAgICAgIG5ldyBIdHRwSGVhZGVycyh7ICdEYkFwcElkJzogdGhpcy5kYkFwcElkIH0pIDpcbiAgICAgICAgICAgIG51bGwqL1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGNyZWF0ZSBhIG5ldyBwcm9ncmVzcy1zdWJqZWN0IGZvciBldmVyeSBmaWxlXG4gICAgICBjb25zdCBwcm9ncmVzcyA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgICAgLy8gc2VuZCB0aGUgaHR0cC1yZXF1ZXN0IGFuZCBzdWJzY3JpYmUgZm9yIHByb2dyZXNzLXVwZGF0ZXNcbiAgICAgIHRoaXMuaHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcblxuICAgICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgcHJvZ3Jlc3MgcGVyY2VudGFnZVxuICAgICAgICAgIGNvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgxMDAgKiBldmVudC5sb2FkZWQgLyAoZXZlbnQudG90YWwgPz8gMSkpO1xuXG4gICAgICAgICAgLy8gcGFzcyB0aGUgcGVyY2VudGFnZSBpbnRvIHRoZSBwcm9ncmVzcy1zdHJlYW1cbiAgICAgICAgICBwcm9ncmVzcy5uZXh0KHBlcmNlbnREb25lKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xuXG4gICAgICAgICAgLy8gQ2xvc2UgdGhlIHByb2dyZXNzLXN0cmVhbSBpZiB3ZSBnZXQgYW4gYW5zd2VyIGZvcm0gdGhlIEFQSVxuICAgICAgICAgIC8vIFRoZSB1cGxvYWQgaXMgY29tcGxldGVcbiAgICAgICAgICBwcm9ncmVzcy5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gU2F2ZSBldmVyeSBwcm9ncmVzcy1vYnNlcnZhYmxlIGluIGEgbWFwIG9mIGFsbCBvYnNlcnZhYmxlc1xuICAgICAgc3RhdHVzW2ZpbGUubmFtZV0gPSB7XG4gICAgICAgIHByb2dyZXNzOiBwcm9ncmVzcy5hc09ic2VydmFibGUoKVxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIHJldHVybiB0aGUgbWFwIG9mIHByb2dyZXNzLm9ic2VydmFibGVzXG4gICAgcmV0dXJuIHN0YXR1cztcbiAgfVxuXG4gIHB1YmxpYyBleGlzdHMoZmlsZU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy51cGxvYWRBcGlVcmwudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdmaWxlc3lzdGVtJykgPT09IC0xID9cbiAgICAgIHsgbmFtZTogZmlsZU5hbWUsIGRiQXBwSWQ6IHRoaXMuZGJBcHBJZCB9IDpcbiAgICAgIHsgbmFtZTogZmlsZU5hbWUsIGRlc3RpbmF0aW9uOiB0aGlzLnVwbG9hZFBhdGggfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxib29sZWFuPihgJHt0aGlzLnVwbG9hZEFwaVVybH0vZXhpc3RzYCwgcXVlcnkpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkKHJlcXVlc3Q6IEZpbGVVcGxvYWRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudXBsb2FkQXBpVXJsfS9zdHJlYW1gLCByZXF1ZXN0LCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFVwbG9hZEluZm8ocmVxdWVzdDogRmlsZVVwbG9hZFJlcXVlc3QpOlxuICAgIE9ic2VydmFibGU8RGF0YWJhc2VGaWxlSW5mbyB8IERhdGFiYXNlRmlsZUluZm9bXSB8IEZpbGVzeXN0ZW1GaWxlSW5mbyB8IEZpbGVzeXN0ZW1GaWxlSW5mb1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PERhdGFiYXNlRmlsZUluZm8gfCBEYXRhYmFzZUZpbGVJbmZvW10gfCBGaWxlc3lzdGVtRmlsZUluZm8gfCBGaWxlc3lzdGVtRmlsZUluZm9bXT5cbiAgICAgIChgJHt0aGlzLnVwbG9hZEFwaVVybH0vaW5mb2AsIHJlcXVlc3QpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { NgModule, Optional, SkipSelf } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatDialogModule } from '@angular/material/dialog';
4
+ import { MatListModule } from '@angular/material/list';
5
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
6
+ import { UploadComponent } from './components/upload/upload.component';
7
+ import { UploadDialogComponent } from './components/upload-dialog/upload-dialog.component';
8
+ import { ServiceConfig } from './model/service-config';
9
+ import { UploadService } from './services/upload.service';
10
+ import * as i0 from "@angular/core";
11
+ export class UploadModule {
12
+ constructor(parentModule) {
13
+ if (parentModule) {
14
+ throw new Error('UploadModule is already loaded. Import it in the AppModule only');
15
+ }
16
+ }
17
+ static forRoot(uploadConfig) {
18
+ return {
19
+ ngModule: UploadModule,
20
+ providers: [
21
+ UploadService,
22
+ { provide: ServiceConfig, useValue: uploadConfig }
23
+ ]
24
+ };
25
+ }
26
+ }
27
+ UploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadModule, deps: [{ token: UploadModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
28
+ UploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: UploadModule, declarations: [UploadComponent,
29
+ UploadDialogComponent], imports: [CommonModule,
30
+ MatDialogModule,
31
+ MatListModule,
32
+ MatProgressBarModule], exports: [UploadComponent,
33
+ UploadDialogComponent] });
34
+ UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadModule, imports: [CommonModule,
35
+ MatDialogModule,
36
+ MatListModule,
37
+ MatProgressBarModule] });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UploadModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ declarations: [
42
+ UploadComponent,
43
+ UploadDialogComponent
44
+ ],
45
+ imports: [
46
+ CommonModule,
47
+ MatDialogModule,
48
+ MatListModule,
49
+ MatProgressBarModule
50
+ ],
51
+ exports: [
52
+ UploadComponent,
53
+ UploadDialogComponent
54
+ ]
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: UploadModule, decorators: [{
57
+ type: Optional
58
+ }, {
59
+ type: SkipSelf
60
+ }] }]; } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvdXBsb2FkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQWtCMUQsTUFBTSxPQUFPLFlBQVk7SUFXckIsWUFBb0MsWUFBMEI7UUFDNUQsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQWZILE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBMkI7UUFDdEMsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVCxhQUFhO2dCQUNiLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO2FBQ25EO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3lHQVRRLFlBQVksa0JBVzZCLFlBQVk7MEdBWHJELFlBQVksaUJBZHJCLGVBQWU7UUFDZixxQkFBcUIsYUFHckIsWUFBWTtRQUNaLGVBQWU7UUFDZixhQUFhO1FBQ2Isb0JBQW9CLGFBR3BCLGVBQWU7UUFDZixxQkFBcUI7MEdBR1osWUFBWSxZQVZyQixZQUFZO1FBQ1osZUFBZTtRQUNmLGFBQWE7UUFDYixvQkFBb0I7MkZBT1gsWUFBWTtrQkFoQnhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2YscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2Isb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixxQkFBcUI7cUJBQ3RCO2lCQUNGOzBEQVlxRCxZQUFZOzBCQUFqRCxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcblxuaW1wb3J0IHsgVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VwbG9hZC91cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFVwbG9hZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcnZpY2VDb25maWcgfSBmcm9tICcuL21vZGVsL3NlcnZpY2UtY29uZmlnJztcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVXBsb2FkQ29tcG9uZW50LFxuICAgIFVwbG9hZERpYWxvZ0NvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBVcGxvYWRDb21wb25lbnQsXG4gICAgVXBsb2FkRGlhbG9nQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QodXBsb2FkQ29uZmlnOiBTZXJ2aWNlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxVcGxvYWRNb2R1bGU+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5nTW9kdWxlOiBVcGxvYWRNb2R1bGUsXG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIFVwbG9hZFNlcnZpY2UsXG4gICAgICAgICAgeyBwcm92aWRlOiBTZXJ2aWNlQ29uZmlnLCB1c2VWYWx1ZTogdXBsb2FkQ29uZmlnIH1cbiAgICAgICAgXVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IFVwbG9hZE1vZHVsZSkge1xuICAgICAgaWYgKHBhcmVudE1vZHVsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1VwbG9hZE1vZHVsZSBpcyBhbHJlYWR5IGxvYWRlZC4gSW1wb3J0IGl0IGluIHRoZSBBcHBNb2R1bGUgb25seScpO1xuICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItdXJsLXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VybC11dGlsaXRpZXMvc3JjL2NsZWF2ZWxhbmRwcmljZS1uZ3gtbGliLXVybC11dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==