@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.
- package/README.md +615 -615
- package/esm2020/cleavelandprice-ngx-lib.mjs +5 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +1 -1
- package/esm2020/src/authentication/authentication.module.mjs +112 -0
- package/esm2020/src/authentication/components/login/login.component.mjs +40 -0
- package/esm2020/src/authentication/components/login-form/login-form.component.mjs +45 -0
- package/esm2020/src/authentication/model/authentication-token.mjs +2 -0
- package/{esm2015/src/authentication/model/authentication.service.config.js → esm2020/src/authentication/model/authentication.service.config.mjs} +1 -1
- package/esm2020/src/authentication/services/authentication.service.mjs +138 -0
- package/esm2020/src/dialog/components/_dialog/dialog.component.mjs +83 -0
- package/esm2020/src/dialog/components/confirmation-dialog/confirmation-dialog.component.mjs +21 -0
- package/esm2020/src/dialog/components/input-dialog/input-dialog.component.mjs +21 -0
- package/esm2020/src/dialog/components/message-dialog/message-dialog.component.mjs +21 -0
- package/esm2020/src/dialog/dialog.module.mjs +74 -0
- package/{esm2015/src/dialog/model/confirmation-dialog-mode.enum.js → esm2020/src/dialog/model/confirmation-dialog-mode.enum.mjs} +1 -1
- package/esm2020/src/email/email.module.mjs +47 -0
- package/esm2020/src/email/model/email-dto.mjs +2 -0
- package/{esm2015/src/email/model/email-sender.js → esm2020/src/email/model/email-sender.mjs} +2 -1
- package/{esm2015/src/email/model/email.js → esm2020/src/email/model/email.mjs} +2 -1
- package/{esm2015/src/email/model/email.service.config.js → esm2020/src/email/model/email.service.config.mjs} +1 -1
- package/esm2020/src/email/services/email.service.mjs +31 -0
- package/esm2020/src/employee/employee.module.mjs +91 -0
- package/esm2020/src/employee/model/employee.mjs +2 -0
- package/{esm2015/src/employee/model/employee.service.config.js → esm2020/src/employee/model/employee.service.config.mjs} +1 -1
- package/esm2020/src/employee/pipes/departments.pipe.mjs +24 -0
- package/esm2020/src/employee/pipes/employee-by-dn.pipe.mjs +17 -0
- package/esm2020/src/employee/pipes/employee-photo-url.pipe.mjs +27 -0
- package/esm2020/src/employee/pipes/employees-with-property-value.pipe.mjs +17 -0
- package/esm2020/src/employee/pipes/filter-employees.pipe.mjs +22 -0
- package/esm2020/src/employee/pipes/is-member-of.pipe.mjs +17 -0
- package/esm2020/src/employee/pipes/sort-employees.pipe.mjs +44 -0
- package/esm2020/src/employee/services/employee.service.mjs +41 -0
- package/esm2020/src/file-upload/components/upload/upload.component.mjs +34 -0
- package/esm2020/src/file-upload/components/upload-dialog/upload-dialog.component.mjs +102 -0
- package/{esm2015/src/file-upload/model/database-file-info.js → esm2020/src/file-upload/model/database-file-info.mjs} +2 -1
- package/{esm2015/src/file-upload/model/file-upload-request.js → esm2020/src/file-upload/model/file-upload-request.mjs} +2 -1
- package/esm2020/src/file-upload/model/filesystem-file-info.mjs +2 -0
- package/esm2020/src/file-upload/model/upload.service.config.mjs +3 -0
- package/esm2020/src/file-upload/services/upload.service.mjs +93 -0
- package/esm2020/src/file-upload/upload.module.mjs +93 -0
- package/{esm2015/src/sharepoint/model/sharepoint-calendar-event.js → esm2020/src/sharepoint/model/sharepoint-calendar-event.mjs} +2 -1
- package/esm2020/src/sharepoint/model/sharepoint-customer-visit.mjs +2 -0
- package/{esm2015/src/sharepoint/model/sharepoint-employee-picture.js → esm2020/src/sharepoint/model/sharepoint-employee-picture.mjs} +2 -1
- package/esm2020/src/sharepoint/model/sharepoint-list-item.mjs +2 -0
- package/esm2020/src/sharepoint/model/sharepoint-list.mjs +2 -0
- package/esm2020/src/sharepoint/model/sharepoint-person.mjs +2 -0
- package/esm2020/src/sharepoint/model/sharepoint-picture.mjs +2 -0
- package/{esm2015/src/sharepoint/model/sharepoint.service.config.js → esm2020/src/sharepoint/model/sharepoint.service.config.mjs} +1 -1
- package/esm2020/src/sharepoint/pipes/sharepoint-photo-url.pipe.mjs +16 -0
- package/esm2020/src/sharepoint/pipes/sharepoint-url.pipe.mjs +16 -0
- package/esm2020/src/sharepoint/services/sharepoint.service.mjs +77 -0
- package/esm2020/src/sharepoint/sharepoint.module.mjs +69 -0
- package/esm2020/src/url/pipes/safe-url.pipe.mjs +21 -0
- package/esm2020/src/url/pipes/uri-scheme.pipe.mjs +103 -0
- package/esm2020/src/url/url.module.mjs +38 -0
- package/fesm2015/cleavelandprice-ngx-lib.mjs +1414 -0
- package/fesm2015/cleavelandprice-ngx-lib.mjs.map +1 -0
- package/fesm2020/cleavelandprice-ngx-lib.mjs +1386 -0
- package/fesm2020/cleavelandprice-ngx-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +22 -10
- package/src/authentication/authentication.module.d.ts +17 -0
- package/src/authentication/components/login/login.component.d.ts +6 -1
- package/src/authentication/components/login-form/login-form.component.d.ts +3 -0
- package/src/authentication/model/authentication-token.d.ts +1 -8
- package/src/authentication/services/authentication.service.d.ts +12 -2
- package/src/dialog/components/_dialog/dialog.component.d.ts +3 -0
- package/src/dialog/components/confirmation-dialog/confirmation-dialog.component.d.ts +3 -0
- package/src/dialog/components/input-dialog/input-dialog.component.d.ts +3 -0
- package/src/dialog/components/message-dialog/message-dialog.component.d.ts +3 -0
- package/src/dialog/dialog.module.d.ts +14 -0
- package/src/email/email.module.d.ts +5 -0
- package/src/email/services/email.service.d.ts +3 -0
- package/src/employee/employee.module.d.ts +12 -0
- package/src/employee/pipes/departments.pipe.d.ts +3 -0
- package/src/employee/pipes/employee-by-dn.pipe.d.ts +3 -0
- package/src/employee/pipes/employee-photo-url.pipe.d.ts +3 -0
- package/src/employee/pipes/employees-with-property-value.pipe.d.ts +3 -0
- package/src/employee/pipes/filter-employees.pipe.d.ts +3 -0
- package/src/employee/pipes/is-member-of.pipe.d.ts +3 -0
- package/src/employee/pipes/sort-employees.pipe.d.ts +3 -0
- package/src/employee/services/employee.service.d.ts +3 -0
- package/src/file-upload/components/upload/upload.component.d.ts +3 -0
- package/src/file-upload/components/upload-dialog/upload-dialog.component.d.ts +3 -0
- package/src/file-upload/services/upload.service.d.ts +3 -0
- package/src/file-upload/upload.module.d.ts +13 -0
- package/src/sharepoint/model/sharepoint-calendar-event.d.ts +3 -3
- package/src/sharepoint/model/sharepoint-customer-visit.d.ts +5 -5
- package/src/sharepoint/model/sharepoint-employee-picture.d.ts +2 -3
- package/src/sharepoint/model/sharepoint-list-item.d.ts +9 -9
- package/src/sharepoint/model/sharepoint-list.d.ts +8 -0
- package/src/sharepoint/model/sharepoint-person.d.ts +9 -0
- package/src/sharepoint/model/sharepoint-picture.d.ts +11 -8
- package/src/sharepoint/model/sharepoint.service.config.d.ts +2 -5
- package/src/sharepoint/pipes/sharepoint-photo-url.pipe.d.ts +3 -0
- package/src/sharepoint/pipes/sharepoint-url.pipe.d.ts +3 -0
- package/src/sharepoint/services/sharepoint.service.d.ts +11 -6
- package/src/sharepoint/sharepoint.module.d.ts +9 -4
- package/src/url/pipes/safe-url.pipe.d.ts +3 -0
- package/src/url/pipes/uri-scheme.pipe.d.ts +3 -0
- package/src/url/url.module.d.ts +7 -0
- package/bundles/cleavelandprice-ngx-lib.umd.js +0 -1360
- package/bundles/cleavelandprice-ngx-lib.umd.js.map +0 -1
- package/bundles/cleavelandprice-ngx-lib.umd.min.js +0 -2
- package/bundles/cleavelandprice-ngx-lib.umd.min.js.map +0 -1
- package/cleavelandprice-ngx-lib.d.ts +0 -5
- package/cleavelandprice-ngx-lib.metadata.json +0 -1
- package/esm2015/cleavelandprice-ngx-lib.js +0 -6
- package/esm2015/src/authentication/authentication.module.js +0 -84
- package/esm2015/src/authentication/components/login/login.component.js +0 -41
- package/esm2015/src/authentication/components/login-form/login-form.component.js +0 -41
- package/esm2015/src/authentication/model/authentication-token.js +0 -1
- package/esm2015/src/authentication/services/authentication.service.js +0 -129
- package/esm2015/src/dialog/components/_dialog/dialog.component.js +0 -75
- package/esm2015/src/dialog/components/confirmation-dialog/confirmation-dialog.component.js +0 -19
- package/esm2015/src/dialog/components/input-dialog/input-dialog.component.js +0 -19
- package/esm2015/src/dialog/components/message-dialog/message-dialog.component.js +0 -19
- package/esm2015/src/dialog/dialog.module.js +0 -54
- package/esm2015/src/email/email.module.js +0 -41
- package/esm2015/src/email/model/email-dto.js +0 -1
- package/esm2015/src/email/services/email.service.js +0 -30
- package/esm2015/src/employee/employee.module.js +0 -73
- package/esm2015/src/employee/model/employee.js +0 -1
- package/esm2015/src/employee/pipes/departments.pipe.js +0 -20
- package/esm2015/src/employee/pipes/employee-by-dn.pipe.js +0 -13
- package/esm2015/src/employee/pipes/employee-photo-url.pipe.js +0 -23
- package/esm2015/src/employee/pipes/employees-with-property-value.pipe.js +0 -13
- package/esm2015/src/employee/pipes/filter-employees.pipe.js +0 -18
- package/esm2015/src/employee/pipes/is-member-of.pipe.js +0 -13
- package/esm2015/src/employee/pipes/sort-employees.pipe.js +0 -40
- package/esm2015/src/employee/services/employee.service.js +0 -40
- package/esm2015/src/file-upload/components/upload/upload.component.js +0 -34
- package/esm2015/src/file-upload/components/upload-dialog/upload-dialog.component.js +0 -101
- package/esm2015/src/file-upload/model/filesystem-file-info.js +0 -1
- package/esm2015/src/file-upload/model/upload.service.config.js +0 -3
- package/esm2015/src/file-upload/services/upload.service.js +0 -91
- package/esm2015/src/file-upload/upload.module.js +0 -73
- package/esm2015/src/sharepoint/model/sharepoint-customer-visit.js +0 -1
- package/esm2015/src/sharepoint/model/sharepoint-list-item.js +0 -1
- package/esm2015/src/sharepoint/model/sharepoint-list-items-request.js +0 -1
- package/esm2015/src/sharepoint/model/sharepoint-picture.js +0 -1
- package/esm2015/src/sharepoint/model/sharepoint-uri-request.js +0 -1
- package/esm2015/src/sharepoint/model/sharepoint-user-request.js +0 -1
- package/esm2015/src/sharepoint/model/sharepoint-user.js +0 -1
- package/esm2015/src/sharepoint/pipes/sharepoint-photo-url.pipe.js +0 -12
- package/esm2015/src/sharepoint/pipes/sharepoint-url.pipe.js +0 -12
- package/esm2015/src/sharepoint/services/sharepoint.service.js +0 -71
- package/esm2015/src/sharepoint/sharepoint.module.js +0 -65
- package/esm2015/src/url/pipes/safe-url.pipe.js +0 -20
- package/esm2015/src/url/pipes/uri-scheme.pipe.js +0 -99
- package/esm2015/src/url/url.module.js +0 -31
- package/fesm2015/cleavelandprice-ngx-lib.js +0 -1247
- package/fesm2015/cleavelandprice-ngx-lib.js.map +0 -1
- package/src/sharepoint/model/sharepoint-list-items-request.d.ts +0 -10
- package/src/sharepoint/model/sharepoint-uri-request.d.ts +0 -5
- package/src/sharepoint/model/sharepoint-user-request.d.ts +0 -6
- 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
|
-
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtZmlsZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ZpbGUtdXBsb2FkL21vZGVsL2RhdGFiYXNlLWZpbGUtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUZpbGVJbmZvIHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHRpbWVzdGFtcDogRGF0ZTtcclxuICAgIGRiQXBwSWQ6IHN0cmluZztcclxuICAgIGV4dGVybmFsUmVmZXJlbmNlSWQ/OiBudW1iZXI7XHJcbiAgICBjb21tZW50Pzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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=
|