@cleavelandprice/ngx-lib 2.1.3 → 2.2.2

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 (157) hide show
  1. package/README.md +615 -615
  2. package/esm2020/cleavelandprice-ngx-lib.mjs +5 -0
  3. package/{esm2015/public_api.js → esm2020/public_api.mjs} +1 -1
  4. package/esm2020/src/authentication/authentication.module.mjs +112 -0
  5. package/esm2020/src/authentication/components/login/login.component.mjs +40 -0
  6. package/esm2020/src/authentication/components/login-form/login-form.component.mjs +45 -0
  7. package/esm2020/src/authentication/model/authentication-token.mjs +2 -0
  8. package/{esm2015/src/authentication/model/authentication.service.config.js → esm2020/src/authentication/model/authentication.service.config.mjs} +1 -1
  9. package/esm2020/src/authentication/services/authentication.service.mjs +138 -0
  10. package/esm2020/src/dialog/components/_dialog/dialog.component.mjs +83 -0
  11. package/esm2020/src/dialog/components/confirmation-dialog/confirmation-dialog.component.mjs +21 -0
  12. package/esm2020/src/dialog/components/input-dialog/input-dialog.component.mjs +21 -0
  13. package/esm2020/src/dialog/components/message-dialog/message-dialog.component.mjs +21 -0
  14. package/esm2020/src/dialog/dialog.module.mjs +74 -0
  15. package/{esm2015/src/dialog/model/confirmation-dialog-mode.enum.js → esm2020/src/dialog/model/confirmation-dialog-mode.enum.mjs} +1 -1
  16. package/esm2020/src/email/email.module.mjs +47 -0
  17. package/esm2020/src/email/model/email-dto.mjs +2 -0
  18. package/{esm2015/src/email/model/email-sender.js → esm2020/src/email/model/email-sender.mjs} +2 -1
  19. package/{esm2015/src/email/model/email.js → esm2020/src/email/model/email.mjs} +2 -1
  20. package/{esm2015/src/email/model/email.service.config.js → esm2020/src/email/model/email.service.config.mjs} +1 -1
  21. package/esm2020/src/email/services/email.service.mjs +31 -0
  22. package/esm2020/src/employee/employee.module.mjs +91 -0
  23. package/esm2020/src/employee/model/employee.mjs +2 -0
  24. package/{esm2015/src/employee/model/employee.service.config.js → esm2020/src/employee/model/employee.service.config.mjs} +1 -1
  25. package/esm2020/src/employee/pipes/departments.pipe.mjs +24 -0
  26. package/esm2020/src/employee/pipes/employee-by-dn.pipe.mjs +17 -0
  27. package/esm2020/src/employee/pipes/employee-photo-url.pipe.mjs +27 -0
  28. package/esm2020/src/employee/pipes/employees-with-property-value.pipe.mjs +17 -0
  29. package/esm2020/src/employee/pipes/filter-employees.pipe.mjs +22 -0
  30. package/esm2020/src/employee/pipes/is-member-of.pipe.mjs +17 -0
  31. package/esm2020/src/employee/pipes/sort-employees.pipe.mjs +44 -0
  32. package/esm2020/src/employee/services/employee.service.mjs +41 -0
  33. package/esm2020/src/file-upload/components/upload/upload.component.mjs +34 -0
  34. package/esm2020/src/file-upload/components/upload-dialog/upload-dialog.component.mjs +102 -0
  35. package/{esm2015/src/file-upload/model/database-file-info.js → esm2020/src/file-upload/model/database-file-info.mjs} +2 -1
  36. package/{esm2015/src/file-upload/model/file-upload-request.js → esm2020/src/file-upload/model/file-upload-request.mjs} +2 -1
  37. package/esm2020/src/file-upload/model/filesystem-file-info.mjs +2 -0
  38. package/esm2020/src/file-upload/model/upload.service.config.mjs +3 -0
  39. package/esm2020/src/file-upload/services/upload.service.mjs +93 -0
  40. package/esm2020/src/file-upload/upload.module.mjs +93 -0
  41. package/{esm2015/src/sharepoint/model/sharepoint-calendar-event.js → esm2020/src/sharepoint/model/sharepoint-calendar-event.mjs} +2 -1
  42. package/esm2020/src/sharepoint/model/sharepoint-customer-visit.mjs +2 -0
  43. package/{esm2015/src/sharepoint/model/sharepoint-employee-picture.js → esm2020/src/sharepoint/model/sharepoint-employee-picture.mjs} +2 -1
  44. package/esm2020/src/sharepoint/model/sharepoint-list-item.mjs +2 -0
  45. package/esm2020/src/sharepoint/model/sharepoint-list.mjs +2 -0
  46. package/esm2020/src/sharepoint/model/sharepoint-person.mjs +2 -0
  47. package/esm2020/src/sharepoint/model/sharepoint-picture.mjs +2 -0
  48. package/{esm2015/src/sharepoint/model/sharepoint.service.config.js → esm2020/src/sharepoint/model/sharepoint.service.config.mjs} +1 -1
  49. package/esm2020/src/sharepoint/pipes/sharepoint-photo-url.pipe.mjs +16 -0
  50. package/esm2020/src/sharepoint/pipes/sharepoint-url.pipe.mjs +16 -0
  51. package/esm2020/src/sharepoint/services/sharepoint.service.mjs +77 -0
  52. package/esm2020/src/sharepoint/sharepoint.module.mjs +69 -0
  53. package/esm2020/src/url/pipes/safe-url.pipe.mjs +21 -0
  54. package/esm2020/src/url/pipes/uri-scheme.pipe.mjs +103 -0
  55. package/esm2020/src/url/url.module.mjs +38 -0
  56. package/fesm2015/cleavelandprice-ngx-lib.mjs +1414 -0
  57. package/fesm2015/cleavelandprice-ngx-lib.mjs.map +1 -0
  58. package/fesm2020/cleavelandprice-ngx-lib.mjs +1386 -0
  59. package/fesm2020/cleavelandprice-ngx-lib.mjs.map +1 -0
  60. package/index.d.ts +5 -0
  61. package/package.json +22 -10
  62. package/src/authentication/authentication.module.d.ts +17 -0
  63. package/src/authentication/components/login/login.component.d.ts +6 -1
  64. package/src/authentication/components/login-form/login-form.component.d.ts +3 -0
  65. package/src/authentication/model/authentication-token.d.ts +1 -8
  66. package/src/authentication/services/authentication.service.d.ts +12 -2
  67. package/src/dialog/components/_dialog/dialog.component.d.ts +3 -0
  68. package/src/dialog/components/confirmation-dialog/confirmation-dialog.component.d.ts +3 -0
  69. package/src/dialog/components/input-dialog/input-dialog.component.d.ts +3 -0
  70. package/src/dialog/components/message-dialog/message-dialog.component.d.ts +3 -0
  71. package/src/dialog/dialog.module.d.ts +14 -0
  72. package/src/email/email.module.d.ts +5 -0
  73. package/src/email/services/email.service.d.ts +3 -0
  74. package/src/employee/employee.module.d.ts +12 -0
  75. package/src/employee/pipes/departments.pipe.d.ts +3 -0
  76. package/src/employee/pipes/employee-by-dn.pipe.d.ts +3 -0
  77. package/src/employee/pipes/employee-photo-url.pipe.d.ts +3 -0
  78. package/src/employee/pipes/employees-with-property-value.pipe.d.ts +3 -0
  79. package/src/employee/pipes/filter-employees.pipe.d.ts +3 -0
  80. package/src/employee/pipes/is-member-of.pipe.d.ts +3 -0
  81. package/src/employee/pipes/sort-employees.pipe.d.ts +3 -0
  82. package/src/employee/services/employee.service.d.ts +3 -0
  83. package/src/file-upload/components/upload/upload.component.d.ts +3 -0
  84. package/src/file-upload/components/upload-dialog/upload-dialog.component.d.ts +3 -0
  85. package/src/file-upload/services/upload.service.d.ts +3 -0
  86. package/src/file-upload/upload.module.d.ts +13 -0
  87. package/src/sharepoint/model/sharepoint-calendar-event.d.ts +3 -3
  88. package/src/sharepoint/model/sharepoint-customer-visit.d.ts +5 -5
  89. package/src/sharepoint/model/sharepoint-employee-picture.d.ts +2 -3
  90. package/src/sharepoint/model/sharepoint-list-item.d.ts +9 -9
  91. package/src/sharepoint/model/sharepoint-list.d.ts +8 -0
  92. package/src/sharepoint/model/sharepoint-person.d.ts +9 -0
  93. package/src/sharepoint/model/sharepoint-picture.d.ts +11 -8
  94. package/src/sharepoint/model/sharepoint.service.config.d.ts +2 -5
  95. package/src/sharepoint/pipes/sharepoint-photo-url.pipe.d.ts +3 -0
  96. package/src/sharepoint/pipes/sharepoint-url.pipe.d.ts +3 -0
  97. package/src/sharepoint/services/sharepoint.service.d.ts +11 -6
  98. package/src/sharepoint/sharepoint.module.d.ts +9 -4
  99. package/src/url/pipes/safe-url.pipe.d.ts +3 -0
  100. package/src/url/pipes/uri-scheme.pipe.d.ts +3 -0
  101. package/src/url/url.module.d.ts +7 -0
  102. package/bundles/cleavelandprice-ngx-lib.umd.js +0 -1360
  103. package/bundles/cleavelandprice-ngx-lib.umd.js.map +0 -1
  104. package/bundles/cleavelandprice-ngx-lib.umd.min.js +0 -2
  105. package/bundles/cleavelandprice-ngx-lib.umd.min.js.map +0 -1
  106. package/cleavelandprice-ngx-lib.d.ts +0 -5
  107. package/cleavelandprice-ngx-lib.metadata.json +0 -1
  108. package/esm2015/cleavelandprice-ngx-lib.js +0 -6
  109. package/esm2015/src/authentication/authentication.module.js +0 -84
  110. package/esm2015/src/authentication/components/login/login.component.js +0 -41
  111. package/esm2015/src/authentication/components/login-form/login-form.component.js +0 -41
  112. package/esm2015/src/authentication/model/authentication-token.js +0 -1
  113. package/esm2015/src/authentication/services/authentication.service.js +0 -129
  114. package/esm2015/src/dialog/components/_dialog/dialog.component.js +0 -75
  115. package/esm2015/src/dialog/components/confirmation-dialog/confirmation-dialog.component.js +0 -19
  116. package/esm2015/src/dialog/components/input-dialog/input-dialog.component.js +0 -19
  117. package/esm2015/src/dialog/components/message-dialog/message-dialog.component.js +0 -19
  118. package/esm2015/src/dialog/dialog.module.js +0 -54
  119. package/esm2015/src/email/email.module.js +0 -41
  120. package/esm2015/src/email/model/email-dto.js +0 -1
  121. package/esm2015/src/email/services/email.service.js +0 -30
  122. package/esm2015/src/employee/employee.module.js +0 -73
  123. package/esm2015/src/employee/model/employee.js +0 -1
  124. package/esm2015/src/employee/pipes/departments.pipe.js +0 -20
  125. package/esm2015/src/employee/pipes/employee-by-dn.pipe.js +0 -13
  126. package/esm2015/src/employee/pipes/employee-photo-url.pipe.js +0 -23
  127. package/esm2015/src/employee/pipes/employees-with-property-value.pipe.js +0 -13
  128. package/esm2015/src/employee/pipes/filter-employees.pipe.js +0 -18
  129. package/esm2015/src/employee/pipes/is-member-of.pipe.js +0 -13
  130. package/esm2015/src/employee/pipes/sort-employees.pipe.js +0 -40
  131. package/esm2015/src/employee/services/employee.service.js +0 -40
  132. package/esm2015/src/file-upload/components/upload/upload.component.js +0 -34
  133. package/esm2015/src/file-upload/components/upload-dialog/upload-dialog.component.js +0 -101
  134. package/esm2015/src/file-upload/model/filesystem-file-info.js +0 -1
  135. package/esm2015/src/file-upload/model/upload.service.config.js +0 -3
  136. package/esm2015/src/file-upload/services/upload.service.js +0 -91
  137. package/esm2015/src/file-upload/upload.module.js +0 -73
  138. package/esm2015/src/sharepoint/model/sharepoint-customer-visit.js +0 -1
  139. package/esm2015/src/sharepoint/model/sharepoint-list-item.js +0 -1
  140. package/esm2015/src/sharepoint/model/sharepoint-list-items-request.js +0 -1
  141. package/esm2015/src/sharepoint/model/sharepoint-picture.js +0 -1
  142. package/esm2015/src/sharepoint/model/sharepoint-uri-request.js +0 -1
  143. package/esm2015/src/sharepoint/model/sharepoint-user-request.js +0 -1
  144. package/esm2015/src/sharepoint/model/sharepoint-user.js +0 -1
  145. package/esm2015/src/sharepoint/pipes/sharepoint-photo-url.pipe.js +0 -12
  146. package/esm2015/src/sharepoint/pipes/sharepoint-url.pipe.js +0 -12
  147. package/esm2015/src/sharepoint/services/sharepoint.service.js +0 -71
  148. package/esm2015/src/sharepoint/sharepoint.module.js +0 -65
  149. package/esm2015/src/url/pipes/safe-url.pipe.js +0 -20
  150. package/esm2015/src/url/pipes/uri-scheme.pipe.js +0 -99
  151. package/esm2015/src/url/url.module.js +0 -31
  152. package/fesm2015/cleavelandprice-ngx-lib.js +0 -1247
  153. package/fesm2015/cleavelandprice-ngx-lib.js.map +0 -1
  154. package/src/sharepoint/model/sharepoint-list-items-request.d.ts +0 -10
  155. package/src/sharepoint/model/sharepoint-uri-request.d.ts +0 -5
  156. package/src/sharepoint/model/sharepoint-user-request.d.ts +0 -6
  157. package/src/sharepoint/model/sharepoint-user.d.ts +0 -8
@@ -0,0 +1,34 @@
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
+ import * as i3 from "@angular/material/button";
7
+ export class UploadComponent {
8
+ constructor(dialog, uploadService) {
9
+ this.dialog = dialog;
10
+ this.uploadService = uploadService;
11
+ this.dialogClosed = new EventEmitter();
12
+ }
13
+ ngOnInit() {
14
+ this.uploadButtonText = this.uploadService.uploadButtonText ?
15
+ this.uploadService.uploadButtonText :
16
+ 'Upload';
17
+ }
18
+ openUploadDialog() {
19
+ this.dialog.open(UploadDialogComponent, { width: '50%' })
20
+ .afterClosed().subscribe(() => this.dialogClosed.emit());
21
+ }
22
+ }
23
+ UploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadComponent, deps: [{ token: i1.MatDialog }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
24
+ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UploadComponent, selector: "cp-upload", outputs: { dialogClosed: "dialogClosed" }, ngImport: i0, template: '<button mat-raised-button (click)="openUploadDialog()">{{ uploadButtonText }}</button>', isInline: true, dependencies: [{ kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadComponent, decorators: [{
26
+ type: Component,
27
+ args: [{
28
+ selector: 'cp-upload',
29
+ template: '<button mat-raised-button (click)="openUploadDialog()">{{ uploadButtonText }}</button>'
30
+ }]
31
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.UploadService }]; }, propDecorators: { dialogClosed: [{
32
+ type: Output
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWxlLXVwbG9hZC9jb21wb25lbnRzL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUFPbkYsTUFBTSxPQUFPLGVBQWU7SUFJeEIsWUFBbUIsTUFBaUIsRUFBUyxhQUE0QjtRQUF0RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFIL0QsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR2lDLENBQUM7SUFFOUUsUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3BELFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7NEdBZlEsZUFBZTtnR0FBZixlQUFlLDRGQUZkLHdGQUF3RjsyRkFFekYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLHdGQUF3RjtpQkFDckc7NEhBRWEsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBVcGxvYWREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLy4uL3VwbG9hZC1kaWFsb2cvdXBsb2FkLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3AtdXBsb2FkJyxcclxuICAgIHRlbXBsYXRlOiAnPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwib3BlblVwbG9hZERpYWxvZygpXCI+e3sgdXBsb2FkQnV0dG9uVGV4dCB9fTwvYnV0dG9uPidcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAT3V0cHV0KCkgZGlhbG9nQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgdXBsb2FkQnV0dG9uVGV4dDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgcHVibGljIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXBsb2FkQnV0dG9uVGV4dCA9IHRoaXMudXBsb2FkU2VydmljZS51cGxvYWRCdXR0b25UZXh0ID9cclxuICAgICAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZEJ1dHRvblRleHQgOlxyXG4gICAgICAgICAgICAnVXBsb2FkJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlblVwbG9hZERpYWxvZygpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZy5vcGVuKFVwbG9hZERpYWxvZ0NvbXBvbmVudCwgeyB3aWR0aDogJzUwJScgfSlcclxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZGlhbG9nQ2xvc2VkLmVtaXQoKSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,102 @@
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/button";
8
+ import * as i5 from "@angular/material/list";
9
+ import * as i6 from "@angular/material/core";
10
+ import * as i7 from "@angular/material/progress-bar";
11
+ export class UploadDialogComponent {
12
+ constructor(dialogRef, uploadService) {
13
+ this.dialogRef = dialogRef;
14
+ this.uploadService = uploadService;
15
+ this.files = new Set();
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 ?
23
+ this.uploadService.uploadDialogTitle :
24
+ 'Upload Files';
25
+ this.uploadDialogAddFilesButtonText = this.uploadService.uploadDialogAddFilesButtonText ?
26
+ this.uploadService.uploadDialogAddFilesButtonText :
27
+ 'Add Files';
28
+ this.uploadDialogCancelButtonText = this.uploadService.uploadDialogCancelButtonText ?
29
+ this.uploadService.uploadDialogCancelButtonText :
30
+ 'Cancel';
31
+ this.uploadDialogUploadButtonText = this.uploadService.uploadDialogUploadButtonText ?
32
+ this.uploadService.uploadDialogUploadButtonText :
33
+ 'Upload';
34
+ this.uploadDialogFinishButtonText = this.uploadService.uploadDialogFinishButtonText ?
35
+ this.uploadService.uploadDialogFinishButtonText :
36
+ 'Finish';
37
+ this.primaryButtonText = this.uploadDialogUploadButtonText;
38
+ }
39
+ addFiles() {
40
+ this.file.nativeElement.click();
41
+ }
42
+ onFilesAdded() {
43
+ const files = this.file.nativeElement.files;
44
+ for (const key in files) {
45
+ if (!isNaN(parseInt(key))) {
46
+ // See if the file already exists
47
+ this.uploadService.exists(files[key].name)
48
+ .subscribe(exists => {
49
+ if (exists) {
50
+ this.existingFileConflict = files[key].name;
51
+ }
52
+ if (!exists) {
53
+ this.files.add(files[key]);
54
+ }
55
+ });
56
+ }
57
+ }
58
+ }
59
+ closeDialog() {
60
+ // if everything was uploaded already, just close the dialog
61
+ if (this.uploadSuccessful) {
62
+ return this.dialogRef.close();
63
+ }
64
+ // set the component state to "uploading"
65
+ this.uploading = true;
66
+ // start the upload and save the progress map
67
+ this.progress = this.uploadService.upload(this.files);
68
+ // convert the progress map into an array
69
+ const allProgressObservables = [];
70
+ for (let key in this.progress) {
71
+ allProgressObservables.push(this.progress[key].progress);
72
+ }
73
+ // Adjust the state variables
74
+ // The OK-button should have the text "Finish" now
75
+ this.primaryButtonText = this.uploadDialogFinishButtonText;
76
+ // The dialog should not be closed while uploading
77
+ this.canBeClosed = false;
78
+ this.dialogRef.disableClose = true;
79
+ // Hide the cancel-button
80
+ this.showCancelButton = false;
81
+ // When all progress-observables are completed...
82
+ forkJoin(allProgressObservables).subscribe(end => {
83
+ // ... the dialog can be closed again...
84
+ this.canBeClosed = true;
85
+ this.dialogRef.disableClose = false;
86
+ // ... the upload was successful...
87
+ this.uploadSuccessful = true;
88
+ // ... and the component is no longer uploading
89
+ this.uploading = false;
90
+ });
91
+ }
92
+ }
93
+ UploadDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
94
+ UploadDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", 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 />\r\n\r\n<div mat-dialog-title id=\"title\">\r\n <div>{{ uploadDialogTitle }}</div>\r\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\r\n {{ uploadDialogAddFilesButtonText }}\r\n </button>\r\n</div>\r\n\r\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\r\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\r\n</div>\r\n\r\n<mat-dialog-content>\r\n <mat-list>\r\n <mat-list-item *ngFor=\"let file of files\">\r\n <h4 mat-line>{{file.name}}</h4>\r\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\r\n </mat-list-item>\r\n </mat-list>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions id=\"actions\">\r\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadDialogCancelButtonText }}</button>\r\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\r\n</mat-dialog-actions>\r\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: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { 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: i5.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { kind: "directive", type: i6.MatLine, selector: "[mat-line], [matLine]" }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadDialogComponent, decorators: [{
96
+ type: Component,
97
+ args: [{ selector: 'cp-upload-dialog', template: "<input type=\"file\" #file style=\"display: none\" (change)=\"onFilesAdded()\" multiple />\r\n\r\n<div mat-dialog-title id=\"title\">\r\n <div>{{ uploadDialogTitle }}</div>\r\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\r\n {{ uploadDialogAddFilesButtonText }}\r\n </button>\r\n</div>\r\n\r\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\r\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\r\n</div>\r\n\r\n<mat-dialog-content>\r\n <mat-list>\r\n <mat-list-item *ngFor=\"let file of files\">\r\n <h4 mat-line>{{file.name}}</h4>\r\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\r\n </mat-list-item>\r\n </mat-list>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions id=\"actions\">\r\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadDialogCancelButtonText }}</button>\r\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\r\n</mat-dialog-actions>\r\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"] }]
98
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.UploadService }]; }, propDecorators: { file: [{
99
+ type: ViewChild,
100
+ args: ['file', { static: true }]
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZmlsZS11cGxvYWQvY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2ZpbGUtdXBsb2FkL2NvbXBvbmVudHMvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQU9oQyxNQUFNLE9BQU8scUJBQXFCO0lBb0JoQyxZQUFtQixTQUE4QyxFQUFTLGFBQTRCO1FBQW5GLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFsQi9GLFVBQUssR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBS3BDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQVNpRixDQUFDO0lBRTNHLFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN0QyxjQUFjLENBQUM7UUFFakIsSUFBSSxDQUFDLDhCQUE4QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDbkQsV0FBVyxDQUFDO1FB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QUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUVwQyxtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUU3QiwrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEFoSFUscUJBQXFCO3NHQUFyQixxQkFBcUIsb0tDVmxDLDJzQ0EwQkE7MkZEaEJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7K0hBS1MsSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NwLXVwbG9hZC1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmaWxlJywgeyBzdGF0aWM6IHRydWUgfSkgZmlsZTtcclxuICBwdWJsaWMgZmlsZXM6IFNldDxGaWxlPiA9IG5ldyBTZXQoKTtcclxuICBleGlzdGluZ0ZpbGVDb25mbGljdDogc3RyaW5nO1xyXG5cclxuICAvLyBTdGF0ZVxyXG4gIHByb2dyZXNzO1xyXG4gIGNhbkJlQ2xvc2VkID0gdHJ1ZTtcclxuICBwcmltYXJ5QnV0dG9uVGV4dDogc3RyaW5nO1xyXG4gIHNob3dDYW5jZWxCdXR0b24gPSB0cnVlO1xyXG4gIHVwbG9hZGluZyA9IGZhbHNlO1xyXG4gIHVwbG9hZFN1Y2Nlc3NmdWwgPSBmYWxzZTtcclxuXHJcbiAgLy8gVUkgY29uZmlndXJhdGlvblxyXG4gIHVwbG9hZERpYWxvZ1RpdGxlOiBzdHJpbmc7XHJcbiAgdXBsb2FkRGlhbG9nQWRkRmlsZXNCdXR0b25UZXh0OiBzdHJpbmc7XHJcbiAgdXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dDogc3RyaW5nO1xyXG4gIHVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQ6IHN0cmluZztcclxuICB1cGxvYWREaWFsb2dGaW5pc2hCdXR0b25UZXh0OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxVcGxvYWREaWFsb2dDb21wb25lbnQ+LCBwdWJsaWMgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy51cGxvYWREaWFsb2dUaXRsZSA9IHRoaXMudXBsb2FkU2VydmljZS51cGxvYWREaWFsb2dUaXRsZSA/XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS51cGxvYWREaWFsb2dUaXRsZSA6XHJcbiAgICAgICdVcGxvYWQgRmlsZXMnO1xyXG5cclxuICAgIHRoaXMudXBsb2FkRGlhbG9nQWRkRmlsZXNCdXR0b25UZXh0ID0gdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZERpYWxvZ0FkZEZpbGVzQnV0dG9uVGV4dCA/XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS51cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQgOlxyXG4gICAgICAnQWRkIEZpbGVzJztcclxuXHJcbiAgICB0aGlzLnVwbG9hZERpYWxvZ0NhbmNlbEJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UudXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dCA/XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS51cGxvYWREaWFsb2dDYW5jZWxCdXR0b25UZXh0IDpcclxuICAgICAgJ0NhbmNlbCc7XHJcblxyXG4gICAgdGhpcy51cGxvYWREaWFsb2dVcGxvYWRCdXR0b25UZXh0ID0gdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQgP1xyXG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UudXBsb2FkRGlhbG9nVXBsb2FkQnV0dG9uVGV4dCA6XHJcbiAgICAgICdVcGxvYWQnO1xyXG5cclxuICAgIHRoaXMudXBsb2FkRGlhbG9nRmluaXNoQnV0dG9uVGV4dCA9IHRoaXMudXBsb2FkU2VydmljZS51cGxvYWREaWFsb2dGaW5pc2hCdXR0b25UZXh0ID9cclxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQgOlxyXG4gICAgICAnRmluaXNoJztcclxuXHJcbiAgICB0aGlzLnByaW1hcnlCdXR0b25UZXh0ID0gdGhpcy51cGxvYWREaWFsb2dVcGxvYWRCdXR0b25UZXh0O1xyXG4gIH1cclxuXHJcbiAgYWRkRmlsZXMoKSB7XHJcbiAgICB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlc0FkZGVkKCkge1xyXG4gICAgY29uc3QgZmlsZXM6IHsgW2tleTogc3RyaW5nXTogRmlsZSB9ID0gdGhpcy5maWxlLm5hdGl2ZUVsZW1lbnQuZmlsZXM7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWxlcykge1xyXG4gICAgICBpZiAoIWlzTmFOKHBhcnNlSW50KGtleSkpKSB7XHJcbiAgICAgICAgLy8gU2VlIGlmIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzXHJcbiAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmV4aXN0cyhmaWxlc1trZXldLm5hbWUpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKGV4aXN0cyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChleGlzdHMpIHtcclxuICAgICAgICAgICAgICB0aGlzLmV4aXN0aW5nRmlsZUNvbmZsaWN0ID0gZmlsZXNba2V5XS5uYW1lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIWV4aXN0cykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZXMuYWRkKGZpbGVzW2tleV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICAvLyBpZiBldmVyeXRoaW5nIHdhcyB1cGxvYWRlZCBhbHJlYWR5LCBqdXN0IGNsb3NlIHRoZSBkaWFsb2dcclxuICAgIGlmICh0aGlzLnVwbG9hZFN1Y2Nlc3NmdWwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0IHRoZSBjb21wb25lbnQgc3RhdGUgdG8gXCJ1cGxvYWRpbmdcIlxyXG4gICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8vIHN0YXJ0IHRoZSB1cGxvYWQgYW5kIHNhdmUgdGhlIHByb2dyZXNzIG1hcFxyXG4gICAgdGhpcy5wcm9ncmVzcyA9IHRoaXMudXBsb2FkU2VydmljZS51cGxvYWQodGhpcy5maWxlcyk7XHJcblxyXG4gICAgLy8gY29udmVydCB0aGUgcHJvZ3Jlc3MgbWFwIGludG8gYW4gYXJyYXlcclxuICAgIGNvbnN0IGFsbFByb2dyZXNzT2JzZXJ2YWJsZXMgPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5wcm9ncmVzcykge1xyXG4gICAgICBhbGxQcm9ncmVzc09ic2VydmFibGVzLnB1c2godGhpcy5wcm9ncmVzc1trZXldLnByb2dyZXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBZGp1c3QgdGhlIHN0YXRlIHZhcmlhYmxlc1xyXG5cclxuICAgIC8vIFRoZSBPSy1idXR0b24gc2hvdWxkIGhhdmUgdGhlIHRleHQgXCJGaW5pc2hcIiBub3dcclxuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ7XHJcblxyXG4gICAgLy8gVGhlIGRpYWxvZyBzaG91bGQgbm90IGJlIGNsb3NlZCB3aGlsZSB1cGxvYWRpbmdcclxuICAgIHRoaXMuY2FuQmVDbG9zZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgY2FuY2VsLWJ1dHRvblxyXG4gICAgdGhpcy5zaG93Q2FuY2VsQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgLy8gV2hlbiBhbGwgcHJvZ3Jlc3Mtb2JzZXJ2YWJsZXMgYXJlIGNvbXBsZXRlZC4uLlxyXG4gICAgZm9ya0pvaW4oYWxsUHJvZ3Jlc3NPYnNlcnZhYmxlcykuc3Vic2NyaWJlKGVuZCA9PiB7XHJcbiAgICAgIC8vIC4uLiB0aGUgZGlhbG9nIGNhbiBiZSBjbG9zZWQgYWdhaW4uLi5cclxuICAgICAgdGhpcy5jYW5CZUNsb3NlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGZhbHNlO1xyXG5cclxuICAgICAgLy8gLi4uIHRoZSB1cGxvYWQgd2FzIHN1Y2Nlc3NmdWwuLi5cclxuICAgICAgdGhpcy51cGxvYWRTdWNjZXNzZnVsID0gdHJ1ZTtcclxuXHJcbiAgICAgIC8vIC4uLiBhbmQgdGhlIGNvbXBvbmVudCBpcyBubyBsb25nZXIgdXBsb2FkaW5nXHJcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgKGNoYW5nZSk9XCJvbkZpbGVzQWRkZWQoKVwiIG11bHRpcGxlIC8+XHJcblxyXG48ZGl2IG1hdC1kaWFsb2ctdGl0bGUgaWQ9XCJ0aXRsZVwiPlxyXG4gIDxkaXY+e3sgdXBsb2FkRGlhbG9nVGl0bGUgfX08L2Rpdj5cclxuICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ1cGxvYWRpbmcgfHwgdXBsb2FkU3VjY2Vzc2Z1bFwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYWRkLWZpbGVzLWJ0blwiIChjbGljayk9XCJhZGRGaWxlcygpXCI+XHJcbiAgICB7eyB1cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQgfX1cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGlkPVwiY29uZmxpY3RcIiAqbmdJZj1cImV4aXN0aW5nRmlsZUNvbmZsaWN0XCI+XHJcbiAge3sgZXhpc3RpbmdGaWxlQ29uZmxpY3QgfX0gYWxyZWFkeSBleGlzdHMgb24gdGhlIHNlcnZlciBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuXHJcbjwvZGl2PlxyXG5cclxuPG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8bWF0LWxpc3Q+XHJcbiAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlc1wiPlxyXG4gICAgICA8aDQgbWF0LWxpbmU+e3tmaWxlLm5hbWV9fTwvaDQ+XHJcbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwicHJvZ3Jlc3NcIiBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwicHJvZ3Jlc3NbZmlsZS5uYW1lXS5wcm9ncmVzcyB8IGFzeW5jXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gIDwvbWF0LWxpc3Q+XHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucyBpZD1cImFjdGlvbnNcIj5cclxuICA8YnV0dG9uICpuZ0lmPVwic2hvd0NhbmNlbEJ1dHRvblwiIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT57eyB1cGxvYWREaWFsb2dDYW5jZWxCdXR0b25UZXh0IH19PC9idXR0b24+XHJcbiAgPGJ1dHRvbiAqbmdJZj1cImZpbGVzLnNpemUgPiAwXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFjYW5CZUNsb3NlZFwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+e3sgcHJpbWFyeUJ1dHRvblRleHQgfX08L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==
@@ -1 +1,2 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtZmlsZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ZpbGUtdXBsb2FkL21vZGVsL2RhdGFiYXNlLWZpbGUtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUZpbGVJbmZvIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdGltZXN0YW1wOiBEYXRlO1xuICAgIGRiQXBwSWQ6IHN0cmluZztcbiAgICBleHRlcm5hbFJlZmVyZW5jZUlkPzogbnVtYmVyO1xuICAgIGNvbW1lbnQ/OiBzdHJpbmc7XG59XG4iXX0=
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtZmlsZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ZpbGUtdXBsb2FkL21vZGVsL2RhdGFiYXNlLWZpbGUtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUZpbGVJbmZvIHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHRpbWVzdGFtcDogRGF0ZTtcclxuICAgIGRiQXBwSWQ6IHN0cmluZztcclxuICAgIGV4dGVybmFsUmVmZXJlbmNlSWQ/OiBudW1iZXI7XHJcbiAgICBjb21tZW50Pzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1 +1,2 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWxlLXVwbG9hZC9tb2RlbC9maWxlLXVwbG9hZC1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRSZXF1ZXN0IHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGV4dGVybmFsUmVmZXJlbmNlSWQ/OiBudW1iZXI7XG4gICAgZm9sZGVyPzogc3RyaW5nO1xufVxuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWxlLXVwbG9hZC9tb2RlbC9maWxlLXVwbG9hZC1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRSZXF1ZXN0IHtcclxuICAgIGFwcElkPzogc3RyaW5nO1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIGV4dGVybmFsUmVmZXJlbmNlSWQ/OiBudW1iZXI7XHJcbiAgICBmb2xkZXI/OiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS1maWxlLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZmlsZS11cGxvYWQvbW9kZWwvZmlsZXN5c3RlbS1maWxlLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmlsZXN5c3RlbUZpbGVJbmZvIHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGF0dHJpYnV0ZXM/OiBudW1iZXI7XHJcbiAgICBjcmVhdGlvblRpbWU6IERhdGU7XHJcbiAgICBkaXJlY3Rvcnk6IHN0cmluZztcclxuICAgIGV4dGVuc2lvbjogc3RyaW5nO1xyXG4gICAgZnVsbG5hbWU6IHN0cmluZztcclxuICAgIGxhc3RBY2Nlc3NUaW1lOiBEYXRlO1xyXG4gICAgbGFzdFdyaXRlVGltZTogRGF0ZTtcclxuICAgIHJlYWRPbmx5OiBib29sZWFuO1xyXG4gICAgc2l6ZTogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export class UploadServiceConfig {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ZpbGUtdXBsb2FkL21vZGVsL3VwbG9hZC5zZXJ2aWNlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sbUJBQW1CO0NBYy9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVwbG9hZFNlcnZpY2VDb25maWcge1xyXG4gICAgdXBsb2FkQXBpVXJsOiBzdHJpbmc7XHJcbiAgICB1cGxvYWRQYXRoPzogc3RyaW5nO1xyXG4gICAgZGJBcHBJZD86IHN0cmluZztcclxuICAgIGV4dGVybmFsUmVmZXJlbmNlSWQ/OiBzdHJpbmc7XHJcbiAgICBjb21tZW50Pzogc3RyaW5nO1xyXG5cclxuICAgIC8vIFVJIGNvbmZpZ3VyYXRpb25cclxuICAgIHVwbG9hZEJ1dHRvblRleHQ/OiBzdHJpbmc7XHJcbiAgICB1cGxvYWREaWFsb2dUaXRsZT86IHN0cmluZztcclxuICAgIHVwbG9hZERpYWxvZ0FkZEZpbGVzQnV0dG9uVGV4dD86IHN0cmluZztcclxuICAgIHVwbG9hZERpYWxvZ0NhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmc7XHJcbiAgICB1cGxvYWREaWFsb2dVcGxvYWRCdXR0b25UZXh0Pzogc3RyaW5nO1xyXG4gICAgdXBsb2FkRGlhbG9nRmluaXNoQnV0dG9uVGV4dD86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -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/upload.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);
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.1.3", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }, { token: i2.UploadServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
87
+ UploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadService });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadService, decorators: [{
89
+ type: Injectable
90
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.UploadServiceConfig, decorators: [{
91
+ type: Optional
92
+ }] }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZmlsZS11cGxvYWQvc2VydmljZXMvdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFjLFdBQVcsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7O0FBTTdDLHdFQUF3RTtBQUd4RSxNQUFNLE9BQU8sYUFBYTtJQWV4QixZQUFvQixJQUFnQixFQUN0QixNQUEyQjtRQURyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVwQyxtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xELElBQUksQ0FBQyw4QkFBOEIsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUM7UUFDNUUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQztRQUN4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QUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBMEI7UUFFN0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbEIsR0FBRyxJQUFJLENBQUMsWUFBWSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7MEdBM0dVLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFpQk4sUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0ICwgIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZUNvbmZpZyB9IGZyb20gJy4vLi4vbW9kZWwvdXBsb2FkLnNlcnZpY2UuY29uZmlnJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZFJlcXVlc3QgfSBmcm9tICcuLy4uL21vZGVsL2ZpbGUtdXBsb2FkLXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBEYXRhYmFzZUZpbGVJbmZvIH0gZnJvbSAnLi8uLi9tb2RlbC9kYXRhYmFzZS1maWxlLWluZm8nO1xyXG5pbXBvcnQgeyBGaWxlc3lzdGVtRmlsZUluZm8gfSBmcm9tICcuLy4uL21vZGVsL2ZpbGVzeXN0ZW0tZmlsZS1pbmZvJztcclxuXHJcbi8vIGh0dHBzOi8vbWFsY29kZWQuY29tL3Bvc3RzL2FuZ3VsYXItZmlsZS11cGxvYWQtY29tcG9uZW50LXdpdGgtZXhwcmVzc1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkU2VydmljZSB7XHJcbiAgcHVibGljIHVwbG9hZEFwaVVybDogc3RyaW5nO1xyXG4gIHB1YmxpYyB1cGxvYWRQYXRoOiBzdHJpbmc7XHJcbiAgcHVibGljIGRiQXBwSWQ6IHN0cmluZztcclxuICBwdWJsaWMgZXh0ZXJuYWxSZWZlcmVuY2VJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBjb21tZW50OiBzdHJpbmc7XHJcblxyXG4gIC8vIFVJIGNvbmZpZ3VyYXRpb25cclxuICBwdWJsaWMgdXBsb2FkQnV0dG9uVGV4dDogc3RyaW5nO1xyXG4gIHB1YmxpYyB1cGxvYWREaWFsb2dUaXRsZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQ6IHN0cmluZztcclxuICBwdWJsaWMgdXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dDogc3RyaW5nO1xyXG4gIHB1YmxpYyB1cGxvYWREaWFsb2dVcGxvYWRCdXR0b25UZXh0OiBzdHJpbmc7XHJcbiAgcHVibGljIHVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnOiBVcGxvYWRTZXJ2aWNlQ29uZmlnKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkQXBpVXJsID0gY29uZmlnLnVwbG9hZEFwaVVybDtcclxuICAgICAgdGhpcy51cGxvYWRQYXRoID0gY29uZmlnLnVwbG9hZFBhdGggfHwgJyc7XHJcbiAgICAgIHRoaXMuZGJBcHBJZCA9IGNvbmZpZy5kYkFwcElkIHx8ICcnO1xyXG4gICAgICB0aGlzLmV4dGVybmFsUmVmZXJlbmNlSWQgPSBjb25maWcuZXh0ZXJuYWxSZWZlcmVuY2VJZCB8fCAnJztcclxuICAgICAgdGhpcy5jb21tZW50ID0gY29uZmlnLmNvbW1lbnQgfHwgJyc7XHJcblxyXG4gICAgICAvLyBVSSBjb25maWd1cmF0aW9uXHJcbiAgICAgIHRoaXMudXBsb2FkQnV0dG9uVGV4dCA9IGNvbmZpZy51cGxvYWRCdXR0b25UZXh0O1xyXG4gICAgICB0aGlzLnVwbG9hZERpYWxvZ1RpdGxlID0gY29uZmlnLnVwbG9hZERpYWxvZ1RpdGxlO1xyXG4gICAgICB0aGlzLnVwbG9hZERpYWxvZ0FkZEZpbGVzQnV0dG9uVGV4dCA9IGNvbmZpZy51cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQ7XHJcbiAgICAgIHRoaXMudXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dCA9IGNvbmZpZy51cGxvYWREaWFsb2dDYW5jZWxCdXR0b25UZXh0O1xyXG4gICAgICB0aGlzLnVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQgPSBjb25maWcudXBsb2FkRGlhbG9nVXBsb2FkQnV0dG9uVGV4dDtcclxuICAgICAgdGhpcy51cGxvYWREaWFsb2dGaW5pc2hCdXR0b25UZXh0ID0gY29uZmlnLnVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyB1cGxvYWQoZmlsZXM6IFNldDxGaWxlPik6IHtba2V5OiBzdHJpbmddOiBPYnNlcnZhYmxlPG51bWJlcj59IHtcclxuICAgIC8vIHRoaXMgd2lsbCBiZSB0aGUgb3VyIHJlc3VsdGluZyBtYXBcclxuICAgIGNvbnN0IHN0YXR1cyA9IHt9O1xyXG5cclxuICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB7XHJcbiAgICAgIC8vIGNyZWF0ZSBhIG5ldyBtdWx0aXBhcnQtZm9ybSBmb3IgZXZlcnkgZmlsZVxyXG4gICAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcclxuXHJcbiAgICAgIC8vIGNyZWF0ZSBhIGh0dHAtcG9zdCByZXF1ZXN0IGFuZCBwYXNzIHRoZSBmb3JtXHJcbiAgICAgIC8vIHRlbGwgaXQgdG8gcmVwb3J0IHRoZSB1cGxvYWQgcHJvZ3Jlc3NcclxuXHJcbiAgICAgIC8vIEEgJ0Rlc3RpbmF0aW9uJyBoZWFkZXIgaXMgdXNlZCB0byBvcHRpb25hbGx5IGNvbmZpZ3VyZSB0aGUgZmlsZSB1cGxvYWQgZGVzdGluYXRpb24gKGZpbGVzeXN0ZW0pXHJcbiAgICAgIC8vIEEgJ0RiQXBwSWQnIGhlYWRlciBpcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgZGF0YWJhc2UgdXBsb2Fkc1xyXG4gICAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCB0aGlzLnVwbG9hZEFwaVVybCwgZm9ybURhdGEsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgLnNldCgnRGVzdGluYXRpb24nLCB0aGlzLnVwbG9hZFBhdGgpXHJcbiAgICAgICAgICAuc2V0KCdEYkFwcElkJywgdGhpcy5kYkFwcElkKVxyXG4gICAgICAgICAgLnNldCgnRXh0ZXJuYWxSZWZlcmVuY2VJZCcsIHRoaXMuZXh0ZXJuYWxSZWZlcmVuY2VJZClcclxuICAgICAgICAgIC5zZXQoJ0NvbW1lbnQnLCB0aGlzLmNvbW1lbnQpXHJcbiAgICAgICAgLypoZWFkZXJzOiB0aGlzLnVwbG9hZFBhdGggP1xyXG4gICAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHsgJ0Rlc3RpbmF0aW9uJzogdGhpcy51cGxvYWRQYXRoIH0pIDpcclxuICAgICAgICAgIHRoaXMuZGJBcHBJZCA/XHJcbiAgICAgICAgICAgIG5ldyBIdHRwSGVhZGVycyh7ICdEYkFwcElkJzogdGhpcy5kYkFwcElkIH0pIDpcclxuICAgICAgICAgICAgbnVsbCovXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gY3JlYXRlIGEgbmV3IHByb2dyZXNzLXN1YmplY3QgZm9yIGV2ZXJ5IGZpbGVcclxuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcblxyXG4gICAgICAvLyBzZW5kIHRoZSBodHRwLXJlcXVlc3QgYW5kIHN1YnNjcmliZSBmb3IgcHJvZ3Jlc3MtdXBkYXRlc1xyXG4gICAgICB0aGlzLmh0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuXHJcbiAgICAgICAgICAvLyBjYWxjdWxhdGUgdGhlIHByb2dyZXNzIHBlcmNlbnRhZ2VcclxuICAgICAgICAgIGNvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgxMDAgKiBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbCk7XHJcblxyXG4gICAgICAgICAgLy8gcGFzcyB0aGUgcGVyY2VudGFnZSBpbnRvIHRoZSBwcm9ncmVzcy1zdHJlYW1cclxuICAgICAgICAgIHByb2dyZXNzLm5leHQocGVyY2VudERvbmUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuXHJcbiAgICAgICAgICAvLyBDbG9zZSB0aGUgcHJvZ3Jlc3Mtc3RyZWFtIGlmIHdlIGdldCBhbiBhbnN3ZXIgZm9ybSB0aGUgQVBJXHJcbiAgICAgICAgICAvLyBUaGUgdXBsb2FkIGlzIGNvbXBsZXRlXHJcbiAgICAgICAgICBwcm9ncmVzcy5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBTYXZlIGV2ZXJ5IHByb2dyZXNzLW9ic2VydmFibGUgaW4gYSBtYXAgb2YgYWxsIG9ic2VydmFibGVzXHJcbiAgICAgIHN0YXR1c1tmaWxlLm5hbWVdID0ge1xyXG4gICAgICAgIHByb2dyZXNzOiBwcm9ncmVzcy5hc09ic2VydmFibGUoKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gcmV0dXJuIHRoZSBtYXAgb2YgcHJvZ3Jlc3Mub2JzZXJ2YWJsZXNcclxuICAgIHJldHVybiBzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhpc3RzKGZpbGVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy51cGxvYWRBcGlVcmwudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdmaWxlc3lzdGVtJykgPT09IC0xID9cclxuICAgICAgeyBuYW1lOiBmaWxlTmFtZSwgZGJBcHBJZDogdGhpcy5kYkFwcElkIH0gOlxyXG4gICAgICB7IG5hbWU6IGZpbGVOYW1lLCBkZXN0aW5hdGlvbjogdGhpcy51cGxvYWRQYXRoIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGJvb2xlYW4+KGAke3RoaXMudXBsb2FkQXBpVXJsfS9leGlzdHNgLCBxdWVyeSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG93bmxvYWQocmVxdWVzdDogRmlsZVVwbG9hZFJlcXVlc3QpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnVwbG9hZEFwaVVybH0vc3RyZWFtYCwgcmVxdWVzdCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVcGxvYWRJbmZvKHJlcXVlc3Q6IEZpbGVVcGxvYWRSZXF1ZXN0KTpcclxuICAgIE9ic2VydmFibGU8RGF0YWJhc2VGaWxlSW5mbyB8IERhdGFiYXNlRmlsZUluZm9bXSB8IEZpbGVzeXN0ZW1GaWxlSW5mbyB8IEZpbGVzeXN0ZW1GaWxlSW5mb1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8RGF0YWJhc2VGaWxlSW5mbyB8IERhdGFiYXNlRmlsZUluZm9bXSB8IEZpbGVzeXN0ZW1GaWxlSW5mbyB8IEZpbGVzeXN0ZW1GaWxlSW5mb1tdPlxyXG4gICAgICAoYCR7dGhpcy51cGxvYWRBcGlVcmx9L2luZm9gLCByZXF1ZXN0KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,93 @@
1
+ //#region Imports
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule, Optional, SkipSelf } from '@angular/core';
4
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
5
+ import { HttpClientModule } from '@angular/common/http';
6
+ // Angular Material
7
+ import { MatButtonModule } from '@angular/material/button';
8
+ import { MatDialogModule } from '@angular/material/dialog';
9
+ import { MatListModule } from '@angular/material/list';
10
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
11
+ // Services
12
+ import { UploadServiceConfig } from './model/upload.service.config';
13
+ import { UploadService } from './services/upload.service';
14
+ // Components
15
+ import { UploadDialogComponent } from './components/upload-dialog/upload-dialog.component';
16
+ import { UploadComponent } from './components/upload/upload.component';
17
+ import * as i0 from "@angular/core";
18
+ //#endregion
19
+ //#region Exports
20
+ // Model
21
+ export * from './model/database-file-info';
22
+ export * from './model/file-upload-request';
23
+ export * from './model/filesystem-file-info';
24
+ export * from './model/upload.service.config';
25
+ // Services
26
+ export * from './services/upload.service';
27
+ // Components
28
+ export * from './components/upload-dialog/upload-dialog.component';
29
+ export * from './components/upload/upload.component';
30
+ //#endregion
31
+ export class UploadModule {
32
+ constructor(parentModule) {
33
+ if (parentModule) {
34
+ throw new Error('UploadModule is already loaded. Import it in the AppModule only');
35
+ }
36
+ }
37
+ static forRoot(uploadConfig) {
38
+ return {
39
+ ngModule: UploadModule,
40
+ providers: [
41
+ UploadService,
42
+ { provide: UploadServiceConfig, useValue: uploadConfig }
43
+ ]
44
+ };
45
+ }
46
+ }
47
+ UploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadModule, deps: [{ token: UploadModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
48
+ UploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: UploadModule, declarations: [UploadComponent,
49
+ UploadDialogComponent], imports: [CommonModule,
50
+ BrowserAnimationsModule,
51
+ HttpClientModule,
52
+ MatButtonModule,
53
+ MatDialogModule,
54
+ MatListModule,
55
+ MatProgressBarModule], exports: [UploadComponent,
56
+ UploadDialogComponent] });
57
+ UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadModule, imports: [CommonModule,
58
+ BrowserAnimationsModule,
59
+ HttpClientModule,
60
+ MatButtonModule,
61
+ MatDialogModule,
62
+ MatListModule,
63
+ MatProgressBarModule] });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadModule, decorators: [{
65
+ type: NgModule,
66
+ args: [{
67
+ imports: [
68
+ CommonModule,
69
+ BrowserAnimationsModule,
70
+ HttpClientModule,
71
+ MatButtonModule,
72
+ MatDialogModule,
73
+ MatListModule,
74
+ MatProgressBarModule
75
+ ],
76
+ declarations: [
77
+ UploadComponent,
78
+ UploadDialogComponent
79
+ ],
80
+ exports: [
81
+ UploadComponent,
82
+ UploadDialogComponent
83
+ ],
84
+ entryComponents: [
85
+ UploadDialogComponent
86
+ ]
87
+ }]
88
+ }], ctorParameters: function () { return [{ type: UploadModule, decorators: [{
89
+ type: Optional
90
+ }, {
91
+ type: SkipSelf
92
+ }] }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWxlLXVwbG9hZC91cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxtQkFBbUI7QUFDbkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdEUsV0FBVztBQUNYLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxhQUFhO0FBQ2IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUN2RSxZQUFZO0FBRVosaUJBQWlCO0FBQ2pCLFFBQVE7QUFDUixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLFdBQVc7QUFDWCxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGFBQWE7QUFDYixjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsWUFBWTtBQXdCVixNQUFNLE9BQU8sWUFBWTtJQVdyQixZQUFvQyxZQUEwQjtRQUM1RCxJQUFJLFlBQVksRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUNiLGlFQUFpRSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBZkgsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFpQztRQUM1QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFO2dCQUNULGFBQWE7Z0JBQ2IsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTthQUN6RDtTQUNGLENBQUM7SUFDSixDQUFDOzt5R0FUUSxZQUFZLGtCQVc2QixZQUFZOzBHQVhyRCxZQUFZLGlCQVhuQixlQUFlO1FBQ2YscUJBQXFCLGFBVnJCLFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsZ0JBQWdCO1FBRWhCLGVBQWU7UUFDZixlQUFlO1FBQ2YsYUFBYTtRQUNiLG9CQUFvQixhQU1wQixlQUFlO1FBQ2YscUJBQXFCOzBHQU1kLFlBQVksWUFwQm5CLFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsZ0JBQWdCO1FBRWhCLGVBQWU7UUFDZixlQUFlO1FBQ2YsYUFBYTtRQUNiLG9CQUFvQjsyRkFhYixZQUFZO2tCQXRCMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFFaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2Isb0JBQW9CO3FCQUFDO29CQUN6QixZQUFZLEVBQUU7d0JBQ1YsZUFBZTt3QkFDZixxQkFBcUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxlQUFlO3dCQUNmLHFCQUFxQjtxQkFDeEI7b0JBQ0QsZUFBZSxFQUFFO3dCQUNiLHFCQUFxQjtxQkFDeEI7aUJBQ0Y7MERBWXFELFlBQVk7MEJBQWpELFFBQVE7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gSW1wb3J0c1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuLy8gQW5ndWxhciBNYXRlcmlhbFxyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuXHJcbi8vIFNlcnZpY2VzXHJcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2VDb25maWcgfSBmcm9tICcuL21vZGVsL3VwbG9hZC5zZXJ2aWNlLmNvbmZpZyc7XHJcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlJztcclxuXHJcbi8vIENvbXBvbmVudHNcclxuaW1wb3J0IHsgVXBsb2FkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VwbG9hZC1kaWFsb2cvdXBsb2FkLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQnO1xyXG4vLyNlbmRyZWdpb25cclxuXHJcbi8vI3JlZ2lvbiBFeHBvcnRzXHJcbi8vIE1vZGVsXHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZGF0YWJhc2UtZmlsZS1pbmZvJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9maWxlLXVwbG9hZC1yZXF1ZXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9maWxlc3lzdGVtLWZpbGUtaW5mbyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvdXBsb2FkLnNlcnZpY2UuY29uZmlnJztcclxuXHJcbi8vIFNlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuLy8gQ29tcG9uZW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudCc7XHJcbi8vI2VuZHJlZ2lvblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcclxuXHJcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgICAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFVwbG9hZENvbXBvbmVudCxcclxuICAgICAgICBVcGxvYWREaWFsb2dDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgICAgIFVwbG9hZERpYWxvZ0NvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgICAgIFVwbG9hZERpYWxvZ0NvbXBvbmVudFxyXG4gICAgXVxyXG4gIH0pXHJcbiAgZXhwb3J0IGNsYXNzIFVwbG9hZE1vZHVsZSB7XHJcbiAgICBzdGF0aWMgZm9yUm9vdCh1cGxvYWRDb25maWc6IFVwbG9hZFNlcnZpY2VDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFVwbG9hZE1vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuZ01vZHVsZTogVXBsb2FkTW9kdWxlLFxyXG4gICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgIFVwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgICAgIHsgcHJvdmlkZTogVXBsb2FkU2VydmljZUNvbmZpZywgdXNlVmFsdWU6IHVwbG9hZENvbmZpZyB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50TW9kdWxlOiBVcGxvYWRNb2R1bGUpIHtcclxuICAgICAgICBpZiAocGFyZW50TW9kdWxlKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICdVcGxvYWRNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcbiJdfQ==
@@ -1 +1,2 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1jYWxlbmRhci1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZXBvaW50L21vZGVsL3NoYXJlcG9pbnQtY2FsZW5kYXItZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXJlUG9pbnRMaXN0SXRlbSB9IGZyb20gJy4vc2hhcmVwb2ludC1saXN0LWl0ZW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlUG9pbnRDYWxlbmRhckV2ZW50IGV4dGVuZHMgU2hhcmVQb2ludExpc3RJdGVtIHtcbiAgICBkdXJhdGlvbj86IG51bWJlcjtcbiAgICBlbmREYXRlOiBEYXRlO1xuICAgIGV2ZW50RGF0ZTogRGF0ZTtcbn1cbiJdfQ==
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1jYWxlbmRhci1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZXBvaW50L21vZGVsL3NoYXJlcG9pbnQtY2FsZW5kYXItZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXJlUG9pbnRMaXN0SXRlbSB9IGZyb20gJy4vc2hhcmVwb2ludC1saXN0LWl0ZW0nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZVBvaW50Q2FsZW5kYXJFdmVudCBleHRlbmRzIFNoYXJlUG9pbnRMaXN0SXRlbSB7XHJcbiAgICBvd3NfRHVyYXRpb246IG51bWJlcjtcclxuICAgIG93c19FbmREYXRlOiBEYXRlO1xyXG4gICAgb3dzX0V2ZW50RGF0ZTogRGF0ZTtcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1jdXN0b21lci12aXNpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZXBvaW50L21vZGVsL3NoYXJlcG9pbnQtY3VzdG9tZXItdmlzaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXJlUG9pbnRDYWxlbmRhckV2ZW50IH0gZnJvbSAnLi9zaGFyZXBvaW50LWNhbGVuZGFyLWV2ZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVQb2ludEN1c3RvbWVyVmlzaXQgZXh0ZW5kcyBTaGFyZVBvaW50Q2FsZW5kYXJFdmVudCB7XHJcbiAgICBvd3NfQ2F0ZWdvcnk6IHN0cmluZztcclxuICAgIG93c19DbGVhdmVsYW5kX3gwMDJmX1ByaWNlX3gwMDIwX0Nvbjogc3RyaW5nOyAvLyBDb250YWN0KHMpXHJcbiAgICBvd3NfQ3VzdG9tZXJfeDAwMjBfTmFtZXM6IHN0cmluZztcclxuICAgIG93c19DdXN0b21lcl94MDAyMF9UeXBlOiBzdHJpbmc7XHJcbiAgICBvd3NfTG9nbzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1 +1,2 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1lbXBsb3llZS1waWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlcG9pbnQvbW9kZWwvc2hhcmVwb2ludC1lbXBsb3llZS1waWN0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFyZVBvaW50UGljdHVyZSB9IGZyb20gJy4vc2hhcmVwb2ludC1waWN0dXJlJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZVBvaW50RW1wbG95ZWVQaWN0dXJlIGV4dGVuZHMgU2hhcmVQb2ludFBpY3R1cmUge1xuICAgIGVtcGxveWVlTnVtYmVyPzogbnVtYmVyO1xuICAgIGFjY291bnROYW1lPzogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xufVxuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1lbXBsb3llZS1waWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlcG9pbnQvbW9kZWwvc2hhcmVwb2ludC1lbXBsb3llZS1waWN0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFyZVBvaW50UGljdHVyZSB9IGZyb20gJy4vc2hhcmVwb2ludC1waWN0dXJlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVQb2ludEVtcGxveWVlUGljdHVyZSBleHRlbmRzIFNoYXJlUG9pbnRQaWN0dXJlIHtcclxuICAgIG93c19FbXBsb3llZU51bWJlcjogbnVtYmVyO1xyXG4gICAgb3dzX0FjY291bnROYW1lOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1saXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVwb2ludC9tb2RlbC9zaGFyZXBvaW50LWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTaGFyZVBvaW50TGlzdEl0ZW0ge1xyXG4gICAgb3dzX0VuY29kZWRBYnNVcmw6IHN0cmluZztcclxuICAgIG93c19BdXRob3I6IHN0cmluZztcclxuICAgIG93c19CYXNlTmFtZTogc3RyaW5nO1xyXG4gICAgb3dzX0dVSUQ6IHN0cmluZztcclxuICAgIG93c19JRDogbnVtYmVyO1xyXG4gICAgb3dzX01vZGlmaWVkOiBEYXRlO1xyXG4gICAgb3dzX1NlcnZlclVybDogc3RyaW5nO1xyXG4gICAgb3dzX1RpdGxlOiBzdHJpbmc7XHJcbiAgICBvd3NfVW5pcXVlSWQ6IHN0cmluZztcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlcG9pbnQvbW9kZWwvc2hhcmVwb2ludC1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNoYXJlUG9pbnRMaXN0IHtcclxuICAgIGxpc3Q6IHN0cmluZztcclxuICAgIHZpZXc6IHN0cmluZztcclxuICAgIHNpdGU/OiBzdHJpbmc7XHJcbiAgICBsaW1pdD86IHN0cmluZztcclxuICAgIHVzZXJOYW1lPzogc3RyaW5nO1xyXG4gICAgcGFzc3dvcmQ/OiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1wZXJzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVwb2ludC9tb2RlbC9zaGFyZXBvaW50LXBlcnNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTaGFyZVBvaW50UGVyc29uIHtcclxuICAgIGFjY291bnROYW1lOiBzdHJpbmc7XHJcbiAgICBkZXBhcnRtZW50OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gICAgZW1haWw6IHN0cmluZztcclxuICAgIGlzUmVzb2x2ZWQ6IGJvb2xlYW47XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgdXNlckluZm9JRDogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1waWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlcG9pbnQvbW9kZWwvc2hhcmVwb2ludC1waWN0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFyZVBvaW50TGlzdEl0ZW0gfSBmcm9tICcuL3NoYXJlcG9pbnQtbGlzdC1pdGVtJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVQb2ludFBpY3R1cmUgZXh0ZW5kcyBTaGFyZVBvaW50TGlzdEl0ZW0ge1xyXG4gICAgb3dzX0NyZWF0ZWQ6IERhdGU7XHJcbiAgICBvd3NfQ3JlYXRlZF94MDAyMF9CeTogc3RyaW5nO1xyXG4gICAgb3dzX0VuY29kZWRBYnNUaHVtYm5haWxVcmw6IHN0cmluZztcclxuICAgIG93c19GaWxlU2l6ZURpc3BsYXk6IG51bWJlcjtcclxuICAgIG93c19GaWxlVHlwZTogc3RyaW5nO1xyXG4gICAgb3dzX0ltYWdlQ3JlYXRlRGF0ZTogRGF0ZTtcclxuICAgIG93c19JbWFnZUhlaWdodDogbnVtYmVyO1xyXG4gICAgb3dzX0ltYWdlU2l6ZTogbnVtYmVyO1xyXG4gICAgb3dzX0ltYWdlV2lkdGg6IG51bWJlcjtcclxuICAgIG93c19Nb2RpZmllZF94MDAyMF9CeTogc3RyaW5nO1xyXG4gICAgb3dzX1RodW1ibmFpbEV4aXN0czogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export class SharePointServiceConfig {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5zZXJ2aWNlLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZXBvaW50L21vZGVsL3NoYXJlcG9pbnQuc2VydmljZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF1QjtDQU9uQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTaGFyZVBvaW50U2VydmljZUNvbmZpZyB7XG4gICAgc2hhcmVQb2ludEFwaVVybDogc3RyaW5nO1xuICAgIHNoYXJlUG9pbnRTZXJ2ZXJVcmw6IHN0cmluZztcbiAgICBlbXBsb3llZVBob3RvU2l0ZTogc3RyaW5nO1xuICAgIGVtcGxveWVlUGhvdG9MaXN0OiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBwYXNzd29yZDogc3RyaW5nO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5zZXJ2aWNlLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZXBvaW50L21vZGVsL3NoYXJlcG9pbnQuc2VydmljZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF1QjtDQUluQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTaGFyZVBvaW50U2VydmljZUNvbmZpZyB7XHJcbiAgICBzaGFyZVBvaW50QXBpVXJsOiBzdHJpbmc7XHJcbiAgICB1c2VyTmFtZT86IHN0cmluZztcclxuICAgIHBhc3N3b3JkPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SharePointPhotoUrlPipe {
4
+ transform(photo) {
5
+ return photo.ows_EncodedAbsUrl;
6
+ }
7
+ }
8
+ SharePointPhotoUrlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SharePointPhotoUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ SharePointPhotoUrlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SharePointPhotoUrlPipe, name: "sharePointPhotoUrl" });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SharePointPhotoUrlPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: 'sharePointPhotoUrl'
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC1waG90by11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZXBvaW50L3BpcGVzL3NoYXJlcG9pbnQtcGhvdG8tdXJsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxzQkFBc0I7SUFDL0IsU0FBUyxDQUFDLEtBQXdCO1FBQzlCLE9BQU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDO0lBQ25DLENBQUM7O21IQUhRLHNCQUFzQjtpSEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLG9CQUFvQjtpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNoYXJlUG9pbnRQaWN0dXJlIH0gZnJvbSAnLi8uLi9tb2RlbC9zaGFyZXBvaW50LXBpY3R1cmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ3NoYXJlUG9pbnRQaG90b1VybCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNoYXJlUG9pbnRQaG90b1VybFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHRyYW5zZm9ybShwaG90bzogU2hhcmVQb2ludFBpY3R1cmUpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBwaG90by5vd3NfRW5jb2RlZEFic1VybDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SharePointUrlPipe {
4
+ transform(url) {
5
+ return url !== null ? url.split(',')[0] : null;
6
+ }
7
+ }
8
+ SharePointUrlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SharePointUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ SharePointUrlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SharePointUrlPipe, name: "sharePointUrl" });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SharePointUrlPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: 'sharePointUrl'
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZXBvaW50L3BpcGVzL3NoYXJlcG9pbnQtdXJsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsU0FBUyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQzs7OEdBSlUsaUJBQWlCOzRHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFIN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3NoYXJlUG9pbnRVcmwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZVBvaW50VXJsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHVybCAhPT0gbnVsbCA/IHVybC5zcGxpdCgnLCcpWzBdIDogbnVsbDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,77 @@
1
+ //#region Imports
2
+ import { Injectable, Optional } from '@angular/core';
3
+ import { of } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./../model/sharepoint.service.config";
6
+ import * as i2 from "@angular/common/http";
7
+ //#endregion
8
+ export class SharePointService {
9
+ //#endregion
10
+ constructor(config, http) {
11
+ this.config = config;
12
+ this.http = http;
13
+ }
14
+ //#region Utilities
15
+ getListItems(list) {
16
+ return this.http.post(this.config.sharePointApiUrl, list);
17
+ }
18
+ getListItemsSimple(list, view, site, limit) {
19
+ return this.http.get(`${this.config.sharePointApiUrl}/${list}/${view}/${site}/${limit}`);
20
+ }
21
+ getPeople(storePeople) {
22
+ // Do we already have people stored locally?
23
+ if (this.people) {
24
+ return of(this.people);
25
+ // return Observable.of(this.people);
26
+ }
27
+ // Should we store people locally for subsequent calls?
28
+ if (storePeople) {
29
+ this.http.get(`${this.config.sharePointApiUrl}/people`)
30
+ .subscribe(peeps => this.people = peeps);
31
+ }
32
+ return this.http.get(`${this.config.sharePointApiUrl}/people`);
33
+ }
34
+ getPhotos(storePhotos) {
35
+ // Do we already have photos stored locally?
36
+ if (this.photos) {
37
+ return of(this.photos);
38
+ // return Observable.of(this.photos);
39
+ }
40
+ /*const spList: SharePointList = {
41
+ list: 'Employee Thumbnail Photos',
42
+ view: 'All Pictures',
43
+ site: 'https://sharepoint.cleavelandprice.com/DigitalDisplay',
44
+ userName: this.config.userName,
45
+ password: this.config.password
46
+ };*/
47
+ const request = {
48
+ list: 'Employee Thumbnail Photos',
49
+ site: 'https://sharepoint.cleavelandprice.com/DigitalDisplay',
50
+ username: this.config.userName,
51
+ password: this.config.password
52
+ };
53
+ // Should we store photos locally for subsequent calls?
54
+ if (storePhotos) {
55
+ this.http.post(`${this.config.sharePointApiUrl}/listitems`, request)
56
+ .subscribe(photos => this.photos = photos);
57
+ }
58
+ return this.http.post(`${this.config.sharePointApiUrl}/listitems`, request);
59
+ }
60
+ getCustomerVisits() {
61
+ const list = {
62
+ list: 'Customer Visits',
63
+ view: 'All Events',
64
+ userName: this.config.userName,
65
+ password: this.config.password
66
+ };
67
+ return this.http.post(this.config.sharePointApiUrl, list);
68
+ }
69
+ }
70
+ SharePointService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SharePointService, deps: [{ token: i1.SharePointServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
71
+ SharePointService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SharePointService });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SharePointService, decorators: [{
73
+ type: Injectable
74
+ }], ctorParameters: function () { return [{ type: i1.SharePointServiceConfig, decorators: [{
75
+ type: Optional
76
+ }] }, { type: i2.HttpClient }]; } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlcG9pbnQvc2VydmljZXMvc2hhcmVwb2ludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUXRDLFlBQVk7QUFHWixNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQVk7SUFFWixZQUFnQyxNQUErQixFQUNyRCxJQUFnQjtRQURNLFdBQU0sR0FBTixNQUFNLENBQXlCO1FBQ3JELFNBQUksR0FBSixJQUFJLENBQVk7SUFBSSxDQUFDO0lBRS9CLG1CQUFtQjtJQUNuQixZQUFZLENBQUMsSUFBb0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBdUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxJQUFhLEVBQUUsS0FBYztRQUMxRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF1QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRUQsU0FBUyxDQUFDLFdBQXFCO1FBQzdCLDRDQUE0QztRQUM1QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEIscUNBQXFDO1NBQ3ZDO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsU0FBUyxDQUFDO2lCQUN4RSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQzVDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixTQUFTLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsU0FBUyxDQUFDLFdBQXFCO1FBQzdCLDRDQUE0QztRQUM1QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkIscUNBQXFDO1NBQ3RDO1FBRUQ7Ozs7OztZQU1JO1FBQ0osTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJLEVBQUUsMkJBQTJCO1lBQ2pDLElBQUksRUFBRSx1REFBdUQ7WUFDN0QsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1NBQy9CLENBQUM7UUFFRix1REFBdUQ7UUFDdkQsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBOEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixZQUFZLEVBQUUsT0FBTyxDQUFDO2lCQUM5RixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBOEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sSUFBSSxHQUFtQjtZQUMzQixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLElBQUksRUFBRSxZQUFZO1lBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtTQUMvQixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBNEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RixDQUFDOzs4R0F6RVUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBT0ksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBJbXBvcnRzXHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBTaGFyZVBvaW50U2VydmljZUNvbmZpZyB9IGZyb20gJy4vLi4vbW9kZWwvc2hhcmVwb2ludC5zZXJ2aWNlLmNvbmZpZyc7XHJcbmltcG9ydCB7IFNoYXJlUG9pbnRMaXN0IH0gZnJvbSAnLi8uLi9tb2RlbC9zaGFyZXBvaW50LWxpc3QnO1xyXG5pbXBvcnQgeyBTaGFyZVBvaW50TGlzdEl0ZW0gfSBmcm9tICcuLy4uL21vZGVsL3NoYXJlcG9pbnQtbGlzdC1pdGVtJztcclxuaW1wb3J0IHsgU2hhcmVQb2ludEVtcGxveWVlUGljdHVyZSB9IGZyb20gJy4vLi4vbW9kZWwvc2hhcmVwb2ludC1lbXBsb3llZS1waWN0dXJlJztcclxuaW1wb3J0IHsgU2hhcmVQb2ludEN1c3RvbWVyVmlzaXQgfSBmcm9tICcuLy4uL21vZGVsL3NoYXJlcG9pbnQtY3VzdG9tZXItdmlzaXQnO1xyXG5pbXBvcnQgeyBTaGFyZVBvaW50UGVyc29uIH0gZnJvbSAnLi8uLi9tb2RlbC9zaGFyZXBvaW50LXBlcnNvbic7XHJcbi8vI2VuZHJlZ2lvblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2hhcmVQb2ludFNlcnZpY2Uge1xyXG4gIC8vI3JlZ2lvbiBGaWVsZHNcclxuICBwZW9wbGU6IFNoYXJlUG9pbnRQZXJzb25bXTtcclxuICBwaG90b3M6IFNoYXJlUG9pbnRFbXBsb3llZVBpY3R1cmVbXTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IFNoYXJlUG9pbnRTZXJ2aWNlQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xyXG4gIGdldExpc3RJdGVtcyhsaXN0OiBTaGFyZVBvaW50TGlzdCk6IE9ic2VydmFibGU8U2hhcmVQb2ludExpc3RJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTaGFyZVBvaW50TGlzdEl0ZW1bXT4odGhpcy5jb25maWcuc2hhcmVQb2ludEFwaVVybCwgbGlzdCk7XHJcbiAgfVxyXG5cclxuICBnZXRMaXN0SXRlbXNTaW1wbGUobGlzdDogc3RyaW5nLCB2aWV3OiBzdHJpbmcsIHNpdGU/OiBzdHJpbmcsIGxpbWl0Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTaGFyZVBvaW50TGlzdEl0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2hhcmVQb2ludExpc3RJdGVtW10+KGAke3RoaXMuY29uZmlnLnNoYXJlUG9pbnRBcGlVcmx9LyR7bGlzdH0vJHt2aWV3fS8ke3NpdGV9LyR7bGltaXR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRQZW9wbGUoc3RvcmVQZW9wbGU/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxTaGFyZVBvaW50UGVyc29uW10+IHtcclxuICAgIC8vIERvIHdlIGFscmVhZHkgaGF2ZSBwZW9wbGUgc3RvcmVkIGxvY2FsbHk/XHJcbiAgICBpZiAodGhpcy5wZW9wbGUpIHtcclxuICAgICAgcmV0dXJuIG9mKHRoaXMucGVvcGxlKTtcclxuICAgICAgIC8vIHJldHVybiBPYnNlcnZhYmxlLm9mKHRoaXMucGVvcGxlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTaG91bGQgd2Ugc3RvcmUgcGVvcGxlIGxvY2FsbHkgZm9yIHN1YnNlcXVlbnQgY2FsbHM/XHJcbiAgICBpZiAoc3RvcmVQZW9wbGUpIHtcclxuICAgICAgdGhpcy5odHRwLmdldDxTaGFyZVBvaW50UGVyc29uW10+KGAke3RoaXMuY29uZmlnLnNoYXJlUG9pbnRBcGlVcmx9L3Blb3BsZWApXHJcbiAgICAgICAgLnN1YnNjcmliZShwZWVwcyA9PiB0aGlzLnBlb3BsZSA9IHBlZXBzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTaGFyZVBvaW50UGVyc29uW10+KGAke3RoaXMuY29uZmlnLnNoYXJlUG9pbnRBcGlVcmx9L3Blb3BsZWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGhvdG9zKHN0b3JlUGhvdG9zPzogYm9vbGVhbik6IE9ic2VydmFibGU8U2hhcmVQb2ludEVtcGxveWVlUGljdHVyZVtdPiB7XHJcbiAgICAvLyBEbyB3ZSBhbHJlYWR5IGhhdmUgcGhvdG9zIHN0b3JlZCBsb2NhbGx5P1xyXG4gICAgaWYgKHRoaXMucGhvdG9zKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGlzLnBob3Rvcyk7XHJcbiAgICAgIC8vIHJldHVybiBPYnNlcnZhYmxlLm9mKHRoaXMucGhvdG9zKTtcclxuICAgIH1cclxuXHJcbiAgICAvKmNvbnN0IHNwTGlzdDogU2hhcmVQb2ludExpc3QgPSB7XHJcbiAgICAgIGxpc3Q6ICdFbXBsb3llZSBUaHVtYm5haWwgUGhvdG9zJyxcclxuICAgICAgdmlldzogJ0FsbCBQaWN0dXJlcycsXHJcbiAgICAgIHNpdGU6ICdodHRwczovL3NoYXJlcG9pbnQuY2xlYXZlbGFuZHByaWNlLmNvbS9EaWdpdGFsRGlzcGxheScsXHJcbiAgICAgIHVzZXJOYW1lOiB0aGlzLmNvbmZpZy51c2VyTmFtZSxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMuY29uZmlnLnBhc3N3b3JkXHJcbiAgICB9OyovXHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICBsaXN0OiAnRW1wbG95ZWUgVGh1bWJuYWlsIFBob3RvcycsXHJcbiAgICAgIHNpdGU6ICdodHRwczovL3NoYXJlcG9pbnQuY2xlYXZlbGFuZHByaWNlLmNvbS9EaWdpdGFsRGlzcGxheScsXHJcbiAgICAgIHVzZXJuYW1lOiB0aGlzLmNvbmZpZy51c2VyTmFtZSxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMuY29uZmlnLnBhc3N3b3JkXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIFNob3VsZCB3ZSBzdG9yZSBwaG90b3MgbG9jYWxseSBmb3Igc3Vic2VxdWVudCBjYWxscz9cclxuICAgIGlmIChzdG9yZVBob3Rvcykge1xyXG4gICAgICB0aGlzLmh0dHAucG9zdDxTaGFyZVBvaW50RW1wbG95ZWVQaWN0dXJlW10+KGAke3RoaXMuY29uZmlnLnNoYXJlUG9pbnRBcGlVcmx9L2xpc3RpdGVtc2AsIHJlcXVlc3QpXHJcbiAgICAgICAgLnN1YnNjcmliZShwaG90b3MgPT4gdGhpcy5waG90b3MgPSBwaG90b3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTaGFyZVBvaW50RW1wbG95ZWVQaWN0dXJlW10+KGAke3RoaXMuY29uZmlnLnNoYXJlUG9pbnRBcGlVcmx9L2xpc3RpdGVtc2AsIHJlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VzdG9tZXJWaXNpdHMoKTogT2JzZXJ2YWJsZTxTaGFyZVBvaW50Q3VzdG9tZXJWaXNpdFtdPiB7XHJcbiAgICBjb25zdCBsaXN0OiBTaGFyZVBvaW50TGlzdCA9IHtcclxuICAgICAgbGlzdDogJ0N1c3RvbWVyIFZpc2l0cycsXHJcbiAgICAgIHZpZXc6ICdBbGwgRXZlbnRzJyxcclxuICAgICAgdXNlck5hbWU6IHRoaXMuY29uZmlnLnVzZXJOYW1lLFxyXG4gICAgICBwYXNzd29yZDogdGhpcy5jb25maWcucGFzc3dvcmRcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNoYXJlUG9pbnRDdXN0b21lclZpc2l0W10+KHRoaXMuY29uZmlnLnNoYXJlUG9pbnRBcGlVcmwsIGxpc3QpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iXX0=