@sumaris-net/ngx-components 1.11.9 → 1.11.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +39 -49
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/src/app/core/form/entity-editor.class.js +18 -16
- package/esm2015/src/app/core/services/model/referential.model.js +1 -1
- package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.js +7 -18
- package/esm2015/src/app/shared/upload-file/upload-file.component.js +8 -5
- package/fesm2015/sumaris-net.ngx-components.js +29 -35
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/form/entity-editor.class.d.ts +4 -3
- package/src/app/core/services/model/referential.model.d.ts +1 -1
- package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +3 -1
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -142,9 +142,12 @@ export class UploadFileComponent {
|
|
|
142
142
|
.pipe(map((event) => {
|
|
143
143
|
// Progress event
|
|
144
144
|
if ((event === null || event === void 0 ? void 0 : event.type) === HttpEventType.UploadProgress || event.type === HttpEventType.User) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
if (isNotNil(event.loaded) && event.loaded >= 0) {
|
|
146
|
+
file.progress = Math.min(1, event.loaded / (event.total || 1));
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
file.progress = -1; // Indeterminate progression
|
|
150
|
+
}
|
|
148
151
|
}
|
|
149
152
|
// Response event
|
|
150
153
|
else if (event instanceof HttpResponse || event instanceof FileResponse) {
|
|
@@ -179,7 +182,7 @@ export class UploadFileComponent {
|
|
|
179
182
|
UploadFileComponent.decorators = [
|
|
180
183
|
{ type: Component, args: [{
|
|
181
184
|
selector: 'app-upload-file',
|
|
182
|
-
template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large\" color=\"accent\">file_upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"file.deleting ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n",
|
|
185
|
+
template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large\" color=\"accent\">file_upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n",
|
|
183
186
|
styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:1px dashed #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{-webkit-animation:shake 1s;animation:shake 1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:1px dashed #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:grey!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@-webkit-keyframes shake{0%{transform:translate(1px,1px) rotate(0deg)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0deg)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0deg)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0deg)}to{transform:translate(1px,-2px) rotate(-1deg)}}@keyframes shake{0%{transform:translate(1px,1px) rotate(0deg)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0deg)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0deg)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0deg)}to{transform:translate(1px,-2px) rotate(-1deg)}}"]
|
|
184
187
|
},] }
|
|
185
188
|
];
|
|
@@ -196,4 +199,4 @@ UploadFileComponent.propDecorators = {
|
|
|
196
199
|
deleteFn: [{ type: Input }],
|
|
197
200
|
maxParallelUpload: [{ type: Input }]
|
|
198
201
|
};
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQWUsWUFBWSxFQUEyQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBQyxPQUFPLEVBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFPdkQsTUFBTSxPQUFPLG1CQUFtQjtJQXlCOUIsWUFBc0IsRUFBcUIsRUFBWSxTQUEyQjtRQUE1RCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBcEJ6RSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSy9CLFVBQUssR0FBc0IsRUFBRSxDQUFDO0lBY3VELENBQUM7SUFadEYsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxN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QztZQUN6QixDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0osQ0FBQyxDQUFDO1lBRUgsc0JBQXNCO1lBQ3RCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztpQkFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUNuQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixDQUFDO0tBQUE7SUFFRCxRQUFRLENBQUMsSUFBcUI7UUFDNUIsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDOzs7WUExTUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHd2REFBMkM7O2FBRTVDOzs7WUFiTyxpQkFBaUI7WUFJakIsZ0JBQWdCOzs7eUJBWXJCLFNBQVMsU0FBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzRCQUUxQyxLQUFLO3lCQUNMLEtBQUs7NEJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7Z0NBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBFdmVudFR5cGUsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RmlsZURlbGV0ZUZuLCBGaWxlUmVzcG9uc2UsIEZpbGVVcGxvYWRGbiwgVXBsb2FkRmlsZX0gZnJvbSAnLi91cGxvYWQtZmlsZS5tb2RlbCc7XG5pbXBvcnQge2lzTmlsLCBpc05vdE5pbH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7d2FpdEZvciwgV2FpdEZvck9wdGlvbnN9IGZyb20gJy4uL29ic2VydmFibGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVwbG9hZC1maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLWZpbGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkRmlsZUNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZURyb3BSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgZmlsZURyb3BFbDogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBmaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVuaXF1ZUZpbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5zdGFudFVwbG9hZCA9IGZhbHNlO1xuICBASW5wdXQoKSB1cGxvYWRGbjogRmlsZVVwbG9hZEZuPGFueT47XG4gIEBJbnB1dCgpIGRlbGV0ZUZuOiBGaWxlRGVsZXRlRm48YW55PjtcbiAgQElucHV0KCkgbWF4UGFyYWxsZWxVcGxvYWQ6IG51bWJlcjtcblxuICBmaWxlczogVXBsb2FkRmlsZTxhbnk+W10gPSBbXTtcblxuICBnZXQgcHJvY2Vzc2luZ0ZpbGVzKCk6IFVwbG9hZEZpbGU8YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5maWxlcy5maWx0ZXIoZiA9PiAhZi5kZWxldGluZyAmJiBpc05vdE5pbChmLnByb2dyZXNzKSAmJiBmLnByb2dyZXNzIDwgMSlcbiAgfVxuXG4gIGdldCBwcm9jZXNzZWRGaWxlcygpOiBVcGxvYWRGaWxlPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZXMuZmlsdGVyKGYgPT4gIWYuZGVsZXRpbmcgJiYgZi5wcm9ncmVzcyA9PT0gMSk7XG4gIH1cblxuICBnZXQgcHJvY2Vzc2luZ0ZpbGVzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzaW5nRmlsZXMubGVuZ3RoO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICAvKipcbiAgICogb24gZmlsZSBkcm9wIGhhbmRsZXJcbiAgICovXG4gIG9uRmlsZURyb3BwZWQoZXZlbnQpIHtcbiAgICB0aGlzLnByZXBhcmVGaWxlc0xpc3QoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIGhhbmRsZSBmaWxlIGZyb20gYnJvd3NpbmdcbiAgICovXG4gIGZpbGVCcm93c2VIYW5kbGVyKGZpbGVzKSB7XG4gICAgdGhpcy5wcmVwYXJlRmlsZXNMaXN0KGZpbGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgZmlsZSBmcm9tIGZpbGVzIGxpc3RcbiAgICpcbiAgICogQHBhcmFtIGluZGV4IChGaWxlIGluZGV4KVxuICAgKi9cbiAgYXN5bmMgZGVsZXRlRmlsZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZmlsZXNbaW5kZXhdO1xuXG4gICAgaWYgKGZpbGUucHJvZ3Jlc3MgPT09IDEgJiYgdGhpcy5kZWxldGVGbikge1xuICAgICAgaWYgKGZpbGUuZGVsZXRpbmcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBbdXBsb2FkLWZpbGVdIFRoaXMgZmlsZSBhbHJlYWR5IGRlbGV0aW5nYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGZpbGUuZGVsZXRpbmcgPSB0cnVlXG4gICAgICAgIGNvbnN0IGRlbGV0ZWQgPSBhd2FpdCB0aGlzLmRlbGV0ZUZuKGZpbGUpO1xuICAgICAgICBpZiAoIWRlbGV0ZWQpIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhdGNoKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmaW5hbGx5IHtcbiAgICAgICAgZmlsZS5kZWxldGluZyA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBNYWtlIHN1cmUgaW5kZXggbm90IGNoYW5nZWRcbiAgICAgIGluZGV4ID0gdGhpcy5maWxlcy5pbmRleE9mKGZpbGUpO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuOyAvLyBOb3QgZm91bmQgKGFscmVhZHkgcmVtb3ZlZCA/KVxuICAgIH1cbiAgICBlbHNlIGlmIChmaWxlLnByb2dyZXNzID4gMCkge1xuICAgICAgY29uc29sZS53YXJuKGBbdXBsb2FkLWZpbGVdIENhbm5vdCByZW1vdmUgdGhpcyBmaWxlIHdoaWxlIHVwbG9hZGluZ2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgRmlsZXMgbGlzdCB0byBub3JtYWwgYXJyYXkgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gZmlsZXMgKEZpbGVzIExpc3QpXG4gICAqL1xuICBwcmVwYXJlRmlsZXNMaXN0KGZpbGVzOiBGaWxlTGlzdCB8IEZpbGVbXSkge1xuICAgIGxldCBpdGVtczogRmlsZVtdO1xuICAgIGlmIChmaWxlcyBpbnN0YW5jZW9mIEZpbGVMaXN0KSB7XG4gICAgICBpdGVtcyA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBpdGVtID0gZmlsZXMuaXRlbShpKTtcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpdGVtcyA9IGZpbGVzO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzLnB1c2goLi4uaXRlbXMpO1xuXG4gICAgdGhpcy5maWxlRHJvcEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcblxuICAgIC8vIFN0YXJ0IHVwbG9hZFxuICAgIGlmICh0aGlzLmluc3RhbnRVcGxvYWQpIHtcbiAgICAgIHRoaXMudXBsb2FkRmlsZXMoaXRlbXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHVwbG9hZFxuICAgKi9cbiAgYXN5bmMgdXBsb2FkRmlsZXMoZmlsZXM/OiBGaWxlW10pOiBQcm9taXNlPFVwbG9hZEZpbGU8YW55PltdPiB7XG5cbiAgICBpZiAoIWZpbGVzKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ1t1cGxvYWQtZmlsZV0gVXBsb2FkaW5nIGFsbCBmaWxlcy4uLicpO1xuICAgICAgZmlsZXMgPSB0aGlzLmZpbGVzO1xuICAgIH1cblxuICAgIGNvbnN0ICRwcm9jZXNzaW5nRmlsZUNvdW50Q2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnByb2Nlc3NpbmdGaWxlc0NvdW50KTtcbiAgICBjb25zdCAkY2hhbmdlcyA9IG5ldyBTdWJqZWN0KCk7XG4gICAgJGNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICRwcm9jZXNzaW5nRmlsZUNvdW50Q2hhbmdlLm5leHQodGhpcy5wcm9jZXNzaW5nRmlsZXNDb3VudCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBqb2JzOiBPYnNlcnZhYmxlPFVwbG9hZEZpbGU8YW55Pj5bXSA9IGZpbGVzXG4gICAgICAubWFwKGYgPT4gZiBhcyBVcGxvYWRGaWxlPGFueT4pXG4gICAgICAuZmlsdGVyKGZpbGUgPT4gaXNOaWwoZmlsZS5wcm9ncmVzcykgJiYgIWZpbGUuZXJyb3IpIC8vIFNraXAgaWYgYWxyZWFkeSBzdGFydGVkIG9yIGluIGVycm9yXG4gICAgICAubWFwKChmaWxlLCBpKSA9PiB7XG4gICAgICAgICAgLy8gV2FpdCBpZiBuZWVkXG4gICAgICAgICAgaWYgKGlzTm90TmlsKHRoaXMubWF4UGFyYWxsZWxVcGxvYWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gJHByb2Nlc3NpbmdGaWxlQ291bnRDaGFuZ2UucGlwZShcbiAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKGkpLCAvLyBjYWxsIG9mIGZpbHRlcigpIG11c3QgYmUgZGlmZmVyZW50IGZvciB3YWl0aW5nIGpvYlxuICAgICAgICAgICAgICBmaWx0ZXIoY291bnQgPT4gY291bnQgPCB0aGlzLm1heFBhcmFsbGVsVXBsb2FkKSxcbiAgICAgICAgICAgICAgbWFwKF8gPT4ge1xuICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHVwbG9hZGluZ1xuICAgICAgICAgICAgICAgIGlmIChpc05pbChmaWxlLnByb2dyZXNzKSkgZmlsZS5wcm9ncmVzcyA9IDA7XG4gICAgICAgICAgICAgICAgJGNoYW5nZXMubmV4dCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU3RhcnQgdXBsb2FkaW5nXG4gICAgICAgICAgaWYgKGlzTmlsKGZpbGUucHJvZ3Jlc3MpKSBmaWxlLnByb2dyZXNzID0gMDtcbiAgICAgICAgICByZXR1cm4gb2YoZmlsZSk7XG4gICAgICAgIH0pXG5cbiAgICAgIC5tYXAoZmlsZSQgPT4gZmlsZSQucGlwZShcbiAgICAgICAgLy8gTG9nXG4gICAgICAgIHRhcChmaWxlID0+IGNvbnNvbGUuZGVidWcoYFt1cGxvYWQtZmlsZV0gJHtmaWxlLm5hbWV9OiB1cGxvYWRpbmcuLi5gKSksXG5cbiAgICAgICAgLy8gU3RhcnQgdXBsb2FkaW5nXG4gICAgICAgIHN3aXRjaE1hcChmaWxlID0+IHRoaXMudXBsb2FkRm4oZmlsZSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcblxuICAgICAgICAgICAgICAvLyBQcm9ncmVzcyBldmVudFxuICAgICAgICAgICAgICBpZiAoZXZlbnQ/LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MgfHwgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Vc2VyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSBldmVudC50b3RhbCB8fCAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvYWRlZCA9IGV2ZW50LmxvYWRlZCB8fCAwO1xuICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSBNYXRoLm1pbigxLCBsb2FkZWQgLyB0b3RhbCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBSZXNwb25zZSBldmVudFxuICAgICAgICAgICAgICBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSB8fCBldmVudCBpbnN0YW5jZW9mIEZpbGVSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSAxO1xuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgPSBldmVudDtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBbdXBsb2FkLWZpbGVdICR7ZmlsZS5uYW1lfTogJHtldmVudC5zdGF0dXNUZXh0IHx8ICdPSyd9YCwgZmlsZS5yZXNwb25zZSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBPdGhlciBldmVudHNcbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdbdXBsb2FkLWZpbGVdIFVua25vd24gZXZlbnQsIHJldHVybmVkIGJ5IHVwbG9hZEZuXFwncyBvYnNlcnZhYmxlOicsIGV2ZW50KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgZmlsZS5lcnJvciA9IGVyciAmJiAoZXJyLm1lc3NhZ2UgfHwgZXJyLmVycm9yPy5tZXNzYWdlKSB8fCAnRklMRS5VUExPQUQuRVJST1InO1xuICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICRjaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgKSk7XG5cbiAgICAvLyBXYWl0IGpvYnMgdG8gZmluaXNoXG4gICAgcmV0dXJuIGZvcmtKb2luKGpvYnMpXG4gICAgICAucGlwZSh0YXAoXyA9PiAkY2hhbmdlcy5jb21wbGV0ZSgpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHdhaXRJZGxlKG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB3YWl0Rm9yKCgpID0+IHRoaXMucHJvY2Vzc2luZ0ZpbGVzQ291bnQgPT09IDAsIG9wdHMpO1xuICB9XG59XG4iXX0=
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQWUsWUFBWSxFQUEyQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBQyxPQUFPLEVBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFPdkQsTUFBTSxPQUFPLG1CQUFtQjtJQXlCOUIsWUFBc0IsRUFBcUIsRUFBWSxTQUEyQjtRQUE1RCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBcEJ6RSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSy9CLFVBQUssR0FBc0IsRUFBRSxDQUFDO0lBY3VELENBQUM7SUFadEYsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxN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QUFDLEdBQUcsRUFBRTtnQkFDUCxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNKLENBQUMsQ0FBQztZQUVILHNCQUFzQjtZQUN0QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7aUJBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDbkMsU0FBUyxFQUFFLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRUQsUUFBUSxDQUFDLElBQXFCO1FBQzVCLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7O1lBN01GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixreERBQTJDOzthQUU1Qzs7O1lBYk8saUJBQWlCO1lBSWpCLGdCQUFnQjs7O3lCQVlyQixTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs0QkFFMUMsS0FBSzt5QkFDTCxLQUFLOzRCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO2dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0ZpbGVEZWxldGVGbiwgRmlsZVJlc3BvbnNlLCBGaWxlVXBsb2FkRm4sIFVwbG9hZEZpbGV9IGZyb20gJy4vdXBsb2FkLWZpbGUubW9kZWwnO1xuaW1wb3J0IHtpc05pbCwgaXNOb3ROaWx9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQge3dhaXRGb3IsIFdhaXRGb3JPcHRpb25zfSBmcm9tICcuLi9vYnNlcnZhYmxlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11cGxvYWQtZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1maWxlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZEZpbGVDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVEcm9wUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIGZpbGVEcm9wRWw6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuICBASW5wdXQoKSB1bmlxdWVGaWxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluc3RhbnRVcGxvYWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdXBsb2FkRm46IEZpbGVVcGxvYWRGbjxhbnk+O1xuICBASW5wdXQoKSBkZWxldGVGbjogRmlsZURlbGV0ZUZuPGFueT47XG4gIEBJbnB1dCgpIG1heFBhcmFsbGVsVXBsb2FkOiBudW1iZXI7XG5cbiAgZmlsZXM6IFVwbG9hZEZpbGU8YW55PltdID0gW107XG5cbiAgZ2V0IHByb2Nlc3NpbmdGaWxlcygpOiBVcGxvYWRGaWxlPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZXMuZmlsdGVyKGYgPT4gIWYuZGVsZXRpbmcgJiYgaXNOb3ROaWwoZi5wcm9ncmVzcykgJiYgZi5wcm9ncmVzcyA8IDEpXG4gIH1cblxuICBnZXQgcHJvY2Vzc2VkRmlsZXMoKTogVXBsb2FkRmlsZTxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLmZpbGVzLmZpbHRlcihmID0+ICFmLmRlbGV0aW5nICYmIGYucHJvZ3Jlc3MgPT09IDEpO1xuICB9XG5cbiAgZ2V0IHByb2Nlc3NpbmdGaWxlc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2Vzc2luZ0ZpbGVzLmxlbmd0aDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIG9uIGZpbGUgZHJvcCBoYW5kbGVyXG4gICAqL1xuICBvbkZpbGVEcm9wcGVkKGV2ZW50KSB7XG4gICAgdGhpcy5wcmVwYXJlRmlsZXNMaXN0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBoYW5kbGUgZmlsZSBmcm9tIGJyb3dzaW5nXG4gICAqL1xuICBmaWxlQnJvd3NlSGFuZGxlcihmaWxlcykge1xuICAgIHRoaXMucHJlcGFyZUZpbGVzTGlzdChmaWxlcyk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGZpbGUgZnJvbSBmaWxlcyBsaXN0XG4gICAqXG4gICAqIEBwYXJhbSBpbmRleCAoRmlsZSBpbmRleClcbiAgICovXG4gIGFzeW5jIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGZpbGUgPSB0aGlzLmZpbGVzW2luZGV4XTtcblxuICAgIGlmIChmaWxlLnByb2dyZXNzID09PSAxICYmIHRoaXMuZGVsZXRlRm4pIHtcbiAgICAgIGlmIChmaWxlLmRlbGV0aW5nKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgW3VwbG9hZC1maWxlXSBUaGlzIGZpbGUgYWxyZWFkeSBkZWxldGluZ2ApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBmaWxlLmRlbGV0aW5nID0gdHJ1ZVxuICAgICAgICBjb25zdCBkZWxldGVkID0gYXdhaXQgdGhpcy5kZWxldGVGbihmaWxlKTtcbiAgICAgICAgaWYgKCFkZWxldGVkKSByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXRjaChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZmluYWxseSB7XG4gICAgICAgIGZpbGUuZGVsZXRpbmcgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gTWFrZSBzdXJlIGluZGV4IG5vdCBjaGFuZ2VkXG4gICAgICBpbmRleCA9IHRoaXMuZmlsZXMuaW5kZXhPZihmaWxlKTtcbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHJldHVybjsgLy8gTm90IGZvdW5kIChhbHJlYWR5IHJlbW92ZWQgPylcbiAgICB9XG4gICAgZWxzZSBpZiAoZmlsZS5wcm9ncmVzcyA+IDApIHtcbiAgICAgIGNvbnNvbGUud2FybihgW3VwbG9hZC1maWxlXSBDYW5ub3QgcmVtb3ZlIHRoaXMgZmlsZSB3aGlsZSB1cGxvYWRpbmdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpbGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IEZpbGVzIGxpc3QgdG8gbm9ybWFsIGFycmF5IGxpc3RcbiAgICpcbiAgICogQHBhcmFtIGZpbGVzIChGaWxlcyBMaXN0KVxuICAgKi9cbiAgcHJlcGFyZUZpbGVzTGlzdChmaWxlczogRmlsZUxpc3QgfCBGaWxlW10pIHtcbiAgICBsZXQgaXRlbXM6IEZpbGVbXTtcbiAgICBpZiAoZmlsZXMgaW5zdGFuY2VvZiBGaWxlTGlzdCkge1xuICAgICAgaXRlbXMgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IGZpbGVzLml0ZW0oaSk7XG4gICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaXRlbXMgPSBmaWxlcztcbiAgICB9XG4gICAgdGhpcy5maWxlcy5wdXNoKC4uLml0ZW1zKTtcblxuICAgIHRoaXMuZmlsZURyb3BFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG5cbiAgICAvLyBTdGFydCB1cGxvYWRcbiAgICBpZiAodGhpcy5pbnN0YW50VXBsb2FkKSB7XG4gICAgICB0aGlzLnVwbG9hZEZpbGVzKGl0ZW1zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB1cGxvYWRcbiAgICovXG4gIGFzeW5jIHVwbG9hZEZpbGVzKGZpbGVzPzogRmlsZVtdKTogUHJvbWlzZTxVcGxvYWRGaWxlPGFueT5bXT4ge1xuXG4gICAgaWYgKCFmaWxlcykge1xuICAgICAgY29uc29sZS5pbmZvKCdbdXBsb2FkLWZpbGVdIFVwbG9hZGluZyBhbGwgZmlsZXMuLi4nKTtcbiAgICAgIGZpbGVzID0gdGhpcy5maWxlcztcbiAgICB9XG5cbiAgICBjb25zdCAkcHJvY2Vzc2luZ0ZpbGVDb3VudENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5wcm9jZXNzaW5nRmlsZXNDb3VudCk7XG4gICAgY29uc3QgJGNoYW5nZXMgPSBuZXcgU3ViamVjdCgpO1xuICAgICRjaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAkcHJvY2Vzc2luZ0ZpbGVDb3VudENoYW5nZS5uZXh0KHRoaXMucHJvY2Vzc2luZ0ZpbGVzQ291bnQpO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgam9iczogT2JzZXJ2YWJsZTxVcGxvYWRGaWxlPGFueT4+W10gPSBmaWxlc1xuICAgICAgLm1hcChmID0+IGYgYXMgVXBsb2FkRmlsZTxhbnk+KVxuICAgICAgLmZpbHRlcihmaWxlID0+IGlzTmlsKGZpbGUucHJvZ3Jlc3MpICYmICFmaWxlLmVycm9yKSAvLyBTa2lwIGlmIGFscmVhZHkgc3RhcnRlZCBvciBpbiBlcnJvclxuICAgICAgLm1hcCgoZmlsZSwgaSkgPT4ge1xuICAgICAgICAgIC8vIFdhaXQgaWYgbmVlZFxuICAgICAgICAgIGlmIChpc05vdE5pbCh0aGlzLm1heFBhcmFsbGVsVXBsb2FkKSkge1xuICAgICAgICAgICAgcmV0dXJuICRwcm9jZXNzaW5nRmlsZUNvdW50Q2hhbmdlLnBpcGUoXG4gICAgICAgICAgICAgIGRlYm91bmNlVGltZShpKSwgLy8gY2FsbCBvZiBmaWx0ZXIoKSBtdXN0IGJlIGRpZmZlcmVudCBmb3Igd2FpdGluZyBqb2JcbiAgICAgICAgICAgICAgZmlsdGVyKGNvdW50ID0+IGNvdW50IDwgdGhpcy5tYXhQYXJhbGxlbFVwbG9hZCksXG4gICAgICAgICAgICAgIG1hcChfID0+IHtcbiAgICAgICAgICAgICAgICAvLyBTdGFydCB1cGxvYWRpbmdcbiAgICAgICAgICAgICAgICBpZiAoaXNOaWwoZmlsZS5wcm9ncmVzcykpIGZpbGUucHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgICAgICRjaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFN0YXJ0IHVwbG9hZGluZ1xuICAgICAgICAgIGlmIChpc05pbChmaWxlLnByb2dyZXNzKSkgZmlsZS5wcm9ncmVzcyA9IDA7XG4gICAgICAgICAgcmV0dXJuIG9mKGZpbGUpO1xuICAgICAgICB9KVxuXG4gICAgICAubWFwKGZpbGUkID0+IGZpbGUkLnBpcGUoXG4gICAgICAgIC8vIExvZ1xuICAgICAgICB0YXAoZmlsZSA9PiBjb25zb2xlLmRlYnVnKGBbdXBsb2FkLWZpbGVdICR7ZmlsZS5uYW1lfTogdXBsb2FkaW5nLi4uYCkpLFxuXG4gICAgICAgIC8vIFN0YXJ0IHVwbG9hZGluZ1xuICAgICAgICBzd2l0Y2hNYXAoZmlsZSA9PiB0aGlzLnVwbG9hZEZuKGZpbGUpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG5cbiAgICAgICAgICAgICAgLy8gUHJvZ3Jlc3MgZXZlbnRcbiAgICAgICAgICAgICAgaWYgKGV2ZW50Py50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzIHx8IGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXNlcikge1xuICAgICAgICAgICAgICAgIGlmIChpc05vdE5pbChldmVudC5sb2FkZWQpICYmIGV2ZW50LmxvYWRlZCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICBmaWxlLnByb2dyZXNzID0gTWF0aC5taW4oMSwgZXZlbnQubG9hZGVkIC8gKGV2ZW50LnRvdGFsIHx8IDEpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICBmaWxlLnByb2dyZXNzID0gLTE7IC8vIEluZGV0ZXJtaW5hdGUgcHJvZ3Jlc3Npb25cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBSZXNwb25zZSBldmVudFxuICAgICAgICAgICAgICBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSB8fCBldmVudCBpbnN0YW5jZW9mIEZpbGVSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSAxO1xuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgPSBldmVudDtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBbdXBsb2FkLWZpbGVdICR7ZmlsZS5uYW1lfTogJHtldmVudC5zdGF0dXNUZXh0IHx8ICdPSyd9YCwgZmlsZS5yZXNwb25zZSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBPdGhlciBldmVudHNcbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdbdXBsb2FkLWZpbGVdIFVua25vd24gZXZlbnQsIHJldHVybmVkIGJ5IHVwbG9hZEZuXFwncyBvYnNlcnZhYmxlOicsIGV2ZW50KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgZmlsZS5lcnJvciA9IGVyciAmJiAoZXJyLm1lc3NhZ2UgfHwgZXJyLmVycm9yPy5tZXNzYWdlKSB8fCAnRklMRS5VUExPQUQuRVJST1InO1xuICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICRjaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgKSk7XG5cbiAgICAvLyBXYWl0IGpvYnMgdG8gZmluaXNoXG4gICAgcmV0dXJuIGZvcmtKb2luKGpvYnMpXG4gICAgICAucGlwZSh0YXAoXyA9PiAkY2hhbmdlcy5jb21wbGV0ZSgpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHdhaXRJZGxlKG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB3YWl0Rm9yKCgpID0+IHRoaXMucHJvY2Vzc2luZ0ZpbGVzQ291bnQgPT09IDAsIG9wdHMpO1xuICB9XG59XG4iXX0=
|
|
@@ -15833,9 +15833,12 @@ class UploadFileComponent {
|
|
|
15833
15833
|
.pipe(map((event) => {
|
|
15834
15834
|
// Progress event
|
|
15835
15835
|
if ((event === null || event === void 0 ? void 0 : event.type) === HttpEventType.UploadProgress || event.type === HttpEventType.User) {
|
|
15836
|
-
|
|
15837
|
-
|
|
15838
|
-
|
|
15836
|
+
if (isNotNil(event.loaded) && event.loaded >= 0) {
|
|
15837
|
+
file.progress = Math.min(1, event.loaded / (event.total || 1));
|
|
15838
|
+
}
|
|
15839
|
+
else {
|
|
15840
|
+
file.progress = -1; // Indeterminate progression
|
|
15841
|
+
}
|
|
15839
15842
|
}
|
|
15840
15843
|
// Response event
|
|
15841
15844
|
else if (event instanceof HttpResponse || event instanceof FileResponse) {
|
|
@@ -15870,7 +15873,7 @@ class UploadFileComponent {
|
|
|
15870
15873
|
UploadFileComponent.decorators = [
|
|
15871
15874
|
{ type: Component, args: [{
|
|
15872
15875
|
selector: 'app-upload-file',
|
|
15873
|
-
template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large\" color=\"accent\">file_upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"file.deleting ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n",
|
|
15876
|
+
template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large\" color=\"accent\">file_upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n",
|
|
15874
15877
|
styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:1px dashed #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{-webkit-animation:shake 1s;animation:shake 1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:1px dashed #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:grey!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@-webkit-keyframes shake{0%{transform:translate(1px,1px) rotate(0deg)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0deg)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0deg)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0deg)}to{transform:translate(1px,-2px) rotate(-1deg)}}@keyframes shake{0%{transform:translate(1px,1px) rotate(0deg)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0deg)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0deg)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0deg)}to{transform:translate(1px,-2px) rotate(-1deg)}}"]
|
|
15875
15878
|
},] }
|
|
15876
15879
|
];
|
|
@@ -23619,12 +23622,15 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23619
23622
|
}
|
|
23620
23623
|
});
|
|
23621
23624
|
}
|
|
23625
|
+
canUserWrite(data, opts) {
|
|
23626
|
+
return this.dataService.canUserWrite(data, opts);
|
|
23627
|
+
}
|
|
23622
23628
|
startListenRemoteChanges() {
|
|
23623
23629
|
// Skip if disable, or already listening
|
|
23624
23630
|
if (this._listenChangesSubscription || !this._enableListenChanges || this.isNewData)
|
|
23625
23631
|
return;
|
|
23626
23632
|
// Listen for changes on server
|
|
23627
|
-
this._listenChangesSubscription = this.
|
|
23633
|
+
this._listenChangesSubscription = this.listenChanges(this.data.id, { interval: this._listenIntervalInSeconds })
|
|
23628
23634
|
.pipe(filter(isNotNil))
|
|
23629
23635
|
.subscribe((data) => {
|
|
23630
23636
|
if (data.updateDate && data.updateDate.isAfter(this.data.updateDate)) {
|
|
@@ -23886,6 +23892,16 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23886
23892
|
yield this.load(this.data && this.data.id);
|
|
23887
23893
|
});
|
|
23888
23894
|
}
|
|
23895
|
+
unload() {
|
|
23896
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23897
|
+
this.stopListenRemoteChanges();
|
|
23898
|
+
this.form.reset();
|
|
23899
|
+
this.registerForms();
|
|
23900
|
+
this._dirty = false;
|
|
23901
|
+
this.data = null;
|
|
23902
|
+
this.saving = false;
|
|
23903
|
+
});
|
|
23904
|
+
}
|
|
23889
23905
|
goBack(event) {
|
|
23890
23906
|
var _a;
|
|
23891
23907
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -23932,10 +23948,6 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23932
23948
|
if (!opts || opts.emitEvent !== false)
|
|
23933
23949
|
this.markForCheck();
|
|
23934
23950
|
}
|
|
23935
|
-
/* -- public abstract methods (to override) -- */
|
|
23936
|
-
canUserWrite(data, opts) {
|
|
23937
|
-
return this.dataService.canUserWrite(data, opts);
|
|
23938
|
-
}
|
|
23939
23951
|
/* -- protected methods -- */
|
|
23940
23952
|
/**
|
|
23941
23953
|
* Return undefined to keep same tab
|
|
@@ -23945,16 +23957,6 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23945
23957
|
const nextTabIndex = this.selectedTabIndex + 1;
|
|
23946
23958
|
return nextTabIndex < this.tabCount ? nextTabIndex : undefined;
|
|
23947
23959
|
}
|
|
23948
|
-
unload() {
|
|
23949
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23950
|
-
this.stopListenRemoteChanges();
|
|
23951
|
-
this.form.reset();
|
|
23952
|
-
this.registerForms();
|
|
23953
|
-
this._dirty = false;
|
|
23954
|
-
this.data = null;
|
|
23955
|
-
this.saving = false;
|
|
23956
|
-
});
|
|
23957
|
-
}
|
|
23958
23960
|
onBeforeEntityLoad() {
|
|
23959
23961
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23960
23962
|
// can be overwritten by subclasses
|
|
@@ -24046,6 +24048,9 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
24046
24048
|
}
|
|
24047
24049
|
return parentUrl;
|
|
24048
24050
|
}
|
|
24051
|
+
listenChanges(id, opts) {
|
|
24052
|
+
return this.dataService.listenChanges(this.data.id, opts);
|
|
24053
|
+
}
|
|
24049
24054
|
markForCheck() {
|
|
24050
24055
|
this.cd.markForCheck();
|
|
24051
24056
|
}
|
|
@@ -25895,21 +25900,9 @@ class UploadFileTestingPage {
|
|
|
25895
25900
|
}
|
|
25896
25901
|
showPopover(event, opts) {
|
|
25897
25902
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25898
|
-
const
|
|
25899
|
-
|
|
25900
|
-
|
|
25901
|
-
backdropDismiss: false,
|
|
25902
|
-
keyboardClose: false,
|
|
25903
|
-
event,
|
|
25904
|
-
translucent: true,
|
|
25905
|
-
cssClass: 'popover-large',
|
|
25906
|
-
});
|
|
25907
|
-
yield modal.present();
|
|
25908
|
-
const { data } = yield modal.onDidDismiss();
|
|
25909
|
-
if (data) {
|
|
25910
|
-
const filenames = data.map(file => { var _a; return (_a = file.response) === null || _a === void 0 ? void 0 : _a.body.finalName; });
|
|
25911
|
-
console.info('Popover result: ', filenames);
|
|
25912
|
-
}
|
|
25903
|
+
const { data } = yield FilesUtils.showUploadPopover(this.popoverController, event, Object.assign({ uploadFn: (file) => this.uploadFile(file), deleteFn: (file) => this.deleteFile(file) }, opts));
|
|
25904
|
+
const filenames = (data || []).map(file => { var _a, _b; return (_b = (_a = file.response) === null || _a === void 0 ? void 0 : _a.body) === null || _b === void 0 ? void 0 : _b.finalName; });
|
|
25905
|
+
console.info('Popover result: ', filenames);
|
|
25913
25906
|
});
|
|
25914
25907
|
}
|
|
25915
25908
|
/**
|
|
@@ -25925,7 +25918,8 @@ class UploadFileTestingPage {
|
|
|
25925
25918
|
loaded += loadStep;
|
|
25926
25919
|
// Return progression
|
|
25927
25920
|
if (loaded < file.size) {
|
|
25928
|
-
return {
|
|
25921
|
+
//return {type: HttpEventType.UploadProgress, total: file.size, loaded };
|
|
25922
|
+
return { type: HttpEventType.UploadProgress, loaded: -1 };
|
|
25929
25923
|
}
|
|
25930
25924
|
// Stop the timer
|
|
25931
25925
|
setTimeout(() => $stop.next(), 100);
|