@ngx-file-upload/ui
Version:
Angular 16 file upload components for @ngx-file-upload/core
58 lines • 6 kB
JavaScript
/**
* remote control for a single upload, will passed
* by [NgxFileUploadItem]{@link ../components/NgxFileUploadItem.html} as context.ctrl
* to the item template.
*
* @example
*
* <ng-template let-uploadData="data" let-uploadCtrl="ctrl">
* <button type="button" *ngIf="!data.hasError" (click)="uploadCtrl.start($event)">start</button>
* <button type="button" *ngIf="data.hasError" (click)="uploadCtrl.retry($event)">retry</button>
* <button type="button" (click)="uploadCtrl.cancel($event)">cancel</button>
* </ng-template>
*
* <ngx-file-upload-item *ngFor="item of uploads" [template]="myItemTemplate" [upload]="item"></ngx-fileUpload-item>
*/
export class Control {
constructor(upload) {
this.upload = upload;
}
/**
* if upload has been failed (http error) it has not completed
* since connection can be broken or something dont has started yet.
*
* Give them a chance for a retry
*/
retry(event) {
this.handleEvent(event);
this.upload.retry();
}
/**
* start single upload
*/
start($event) {
this.handleEvent($event);
this.upload.start();
}
/**
* cancel / stop single upload
*/
stop($event) {
this.handleEvent($event);
this.upload.cancel();
}
remove($event) {
this.handleEvent($event);
this.upload.destroy();
}
removeInvalidFiles($event) {
this.handleEvent($event);
this.upload.removeInvalidFiles();
}
handleEvent(event) {
if (event && event instanceof MouseEvent) {
event.stopPropagation();
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3VwbG9hZC1pdGVtL3NyYy91cGxvYWQuY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBTyxPQUFPO0lBRWhCLFlBQTJCLE1BQTZCO1FBQTdCLFdBQU0sR0FBTixNQUFNLENBQXVCO0lBQUcsQ0FBQztJQUU1RDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxLQUFrQjtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE1BQW1CO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUMsTUFBbUI7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBbUI7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxNQUFtQjtRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWtCO1FBQ2xDLElBQUksS0FBSyxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7WUFDdEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5neEZpbGVVcGxvYWRSZXF1ZXN0LCBOZ3hGaWxlVXBsb2FkQ29udHJvbCB9IGZyb20gXCJAbmd4LWZpbGUtdXBsb2FkL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiByZW1vdGUgY29udHJvbCBmb3IgYSBzaW5nbGUgdXBsb2FkLCB3aWxsIHBhc3NlZFxyXG4gKiBieSBbTmd4RmlsZVVwbG9hZEl0ZW1de0BsaW5rIC4uL2NvbXBvbmVudHMvTmd4RmlsZVVwbG9hZEl0ZW0uaHRtbH0gYXMgY29udGV4dC5jdHJsXHJcbiAqIHRvIHRoZSBpdGVtIHRlbXBsYXRlLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8bmctdGVtcGxhdGUgbGV0LXVwbG9hZERhdGE9XCJkYXRhXCIgbGV0LXVwbG9hZEN0cmw9XCJjdHJsXCI+XHJcbiAqICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIiFkYXRhLmhhc0Vycm9yXCIgKGNsaWNrKT1cInVwbG9hZEN0cmwuc3RhcnQoJGV2ZW50KVwiPnN0YXJ0PC9idXR0b24+XHJcbiAqICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImRhdGEuaGFzRXJyb3JcIiAgKGNsaWNrKT1cInVwbG9hZEN0cmwucmV0cnkoJGV2ZW50KVwiPnJldHJ5PC9idXR0b24+XHJcbiAqICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRDdHJsLmNhbmNlbCgkZXZlbnQpXCI+Y2FuY2VsPC9idXR0b24+XHJcbiAqIDwvbmctdGVtcGxhdGU+XHJcbiAqXHJcbiAqIDxuZ3gtZmlsZS11cGxvYWQtaXRlbSAqbmdGb3I9XCJpdGVtIG9mIHVwbG9hZHNcIiBbdGVtcGxhdGVdPVwibXlJdGVtVGVtcGxhdGVcIiBbdXBsb2FkXT1cIml0ZW1cIj48L25neC1maWxlVXBsb2FkLWl0ZW0+XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29udHJvbCBpbXBsZW1lbnRzIE5neEZpbGVVcGxvYWRDb250cm9sIHtcclxuXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSB1cGxvYWQ6IElOZ3hGaWxlVXBsb2FkUmVxdWVzdCkge31cclxuXHJcbiAgICAvKipcclxuICAgICAqIGlmIHVwbG9hZCBoYXMgYmVlbiBmYWlsZWQgKGh0dHAgZXJyb3IpIGl0IGhhcyBub3QgY29tcGxldGVkXHJcbiAgICAgKiBzaW5jZSBjb25uZWN0aW9uIGNhbiBiZSBicm9rZW4gb3Igc29tZXRoaW5nIGRvbnQgaGFzIHN0YXJ0ZWQgeWV0LlxyXG4gICAgICpcclxuICAgICAqIEdpdmUgdGhlbSBhIGNoYW5jZSBmb3IgYSByZXRyeVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmV0cnkoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFdmVudChldmVudCk7XHJcbiAgICAgICAgdGhpcy51cGxvYWQucmV0cnkoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHN0YXJ0IHNpbmdsZSB1cGxvYWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXJ0KCRldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUV2ZW50KCRldmVudCk7XHJcbiAgICAgICAgdGhpcy51cGxvYWQuc3RhcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGNhbmNlbCAvIHN0b3Agc2luZ2xlIHVwbG9hZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RvcCgkZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFdmVudCgkZXZlbnQpO1xyXG4gICAgICAgIHRoaXMudXBsb2FkLmNhbmNlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmUoJGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXZlbnQoJGV2ZW50KTtcclxuICAgICAgICB0aGlzLnVwbG9hZC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUludmFsaWRGaWxlcygkZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFdmVudCgkZXZlbnQpO1xyXG4gICAgICAgIHRoaXMudXBsb2FkLnJlbW92ZUludmFsaWRGaWxlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlRXZlbnQoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50ICYmIGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19