@libs-ui/components-inputs-upload 0.2.225 → 0.2.227

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.
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
59
59
  standalone: true
60
60
  }]
61
61
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRyb3AtZmlsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3VwbG9hZC9zcmMvdXBsb2FkLWRyb3AtZmlsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLDZDQUE2QztJQWE5QztJQVhGLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRS9CLFFBQVEsR0FBRyxLQUFLLENBQStCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFFOUYsV0FBVyxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQy9CLFlBQVksR0FBRyxNQUFNLEVBQVUsQ0FBQztJQUNoQyxPQUFPLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDM0IsWUFBWSxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV0QyxZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFaEMsQ0FBQztJQUVELGVBQWU7UUFDYixTQUFTLENBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUNuSCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7WUFDcEgsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLHlCQUF5QixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUMvRyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJCLE1BQU0sUUFBUSxHQUFXLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTlHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWpDLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3dHQXZEVSw2Q0FBNkM7NEZBQTdDLDZDQUE2Qzs7NEZBQTdDLDZDQUE2QztrQkFMekQsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxpREFBaUQ7b0JBQzNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5wdXQsIE9uRGVzdHJveSwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IGNoZWNrTW91c2VPdmVySW5Db250YWluZXIsIGlzVHlwZUZpbGUgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tMaWJzVWlDb21wb25lbnRzSW5wdXRzVXBsb2FkRHJvcEZpbGVEaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzVXBsb2FkRHJvcEZpbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICByZWFkb25seSBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4gfCB1bmRlZmluZWQ+KHRydWUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgb3V0RHJhZ092ZXIgPSBvdXRwdXQ8SUV2ZW50PigpO1xuICByZWFkb25seSBvdXREcmFnTGVhdmUgPSBvdXRwdXQ8SUV2ZW50PigpO1xuICByZWFkb25seSBvdXREcm9wID0gb3V0cHV0PElFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0RHJvcEZpbGVzID0gb3V0cHV0PEZpbGVbXT4oKTtcbiAgcmVhZG9ubHkgb3V0RHJvcEZpbGUgPSBvdXRwdXQ8RmlsZT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgZnJvbUV2ZW50PElFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcmFnb3ZlcicpLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKChlOiBJRXZlbnQpID0+IHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm91dERyYWdPdmVyLmVtaXQoZSk7XG4gICAgfSk7XG4gICAgZnJvbUV2ZW50PElFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcmFnbGVhdmUnKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZTogSUV2ZW50KSA9PiB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKGNoZWNrTW91c2VPdmVySW5Db250YWluZXIoZSwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMub3V0RHJhZ0xlYXZlLmVtaXQoZSk7XG4gICAgfSk7XG5cbiAgICBmcm9tRXZlbnQ8SUV2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Ryb3AnKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZTogSUV2ZW50KSA9PiB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vdXREcm9wLmVtaXQoZSk7XG5cbiAgICAgIGNvbnN0IGZpbGVMaXN0OiBGaWxlW10gPSBBcnJheS5mcm9tKGUuZGF0YVRyYW5zZmVyPy5maWxlcyB8fCBlLmNsaXBib2FyZERhdGE/LmZpbGVzIHx8IFtdKS5maWx0ZXIoaXNUeXBlRmlsZSk7XG5cbiAgICAgIGlmICghZmlsZUxpc3QgfHwgIWZpbGVMaXN0Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgICAgdGhpcy5vdXREcm9wRmlsZXMuZW1pdChmaWxlTGlzdCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5vdXREcm9wRmlsZS5lbWl0KGZpbGVMaXN0WzBdKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59Il19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRyb3AtZmlsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3VwbG9hZC9zcmMvdXBsb2FkLWRyb3AtZmlsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLDZDQUE2QztJQWE5QztJQVhGLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRS9CLFFBQVEsR0FBRyxLQUFLLENBQStCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFFOUYsV0FBVyxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQy9CLFlBQVksR0FBRyxNQUFNLEVBQVUsQ0FBQztJQUNoQyxPQUFPLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDM0IsWUFBWSxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV0QyxZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFaEMsQ0FBQztJQUVELGVBQWU7UUFDYixTQUFTLENBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUNuSCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7WUFDcEgsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLHlCQUF5QixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUMvRyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTVHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWpDLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3dHQXZEVSw2Q0FBNkM7NEZBQTdDLDZDQUE2Qzs7NEZBQTdDLDZDQUE2QztrQkFMekQsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxpREFBaUQ7b0JBQzNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5wdXQsIE9uRGVzdHJveSwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IGNoZWNrTW91c2VPdmVySW5Db250YWluZXIsIGlzVHlwZUZpbGUgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tMaWJzVWlDb21wb25lbnRzSW5wdXRzVXBsb2FkRHJvcEZpbGVEaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzVXBsb2FkRHJvcEZpbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICByZWFkb25seSBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4gfCB1bmRlZmluZWQ+KHRydWUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgb3V0RHJhZ092ZXIgPSBvdXRwdXQ8SUV2ZW50PigpO1xuICByZWFkb25seSBvdXREcmFnTGVhdmUgPSBvdXRwdXQ8SUV2ZW50PigpO1xuICByZWFkb25seSBvdXREcm9wID0gb3V0cHV0PElFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0RHJvcEZpbGVzID0gb3V0cHV0PEZpbGVbXT4oKTtcbiAgcmVhZG9ubHkgb3V0RHJvcEZpbGUgPSBvdXRwdXQ8RmlsZT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgZnJvbUV2ZW50PElFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcmFnb3ZlcicpLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKChlOiBJRXZlbnQpID0+IHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm91dERyYWdPdmVyLmVtaXQoZSk7XG4gICAgfSk7XG4gICAgZnJvbUV2ZW50PElFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcmFnbGVhdmUnKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZTogSUV2ZW50KSA9PiB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKGNoZWNrTW91c2VPdmVySW5Db250YWluZXIoZSwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMub3V0RHJhZ0xlYXZlLmVtaXQoZSk7XG4gICAgfSk7XG5cbiAgICBmcm9tRXZlbnQ8SUV2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Ryb3AnKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZTogSUV2ZW50KSA9PiB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vdXREcm9wLmVtaXQoZSk7XG5cbiAgICAgIGNvbnN0IGZpbGVMaXN0ID0gQXJyYXkuZnJvbTxGaWxlPihlLmRhdGFUcmFuc2Zlcj8uZmlsZXMgfHwgZS5jbGlwYm9hcmREYXRhPy5maWxlcyB8fCBbXSkuZmlsdGVyKGlzVHlwZUZpbGUpO1xuXG4gICAgICBpZiAoIWZpbGVMaXN0IHx8ICFmaWxlTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgIHRoaXMub3V0RHJvcEZpbGVzLmVtaXQoZmlsZUxpc3QpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMub3V0RHJvcEZpbGUuZW1pdChmaWxlTGlzdFswXSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufSJdfQ==
@@ -19,7 +19,7 @@ export class LibsUiComponentsInputsUploadDirective {
19
19
  inputElementUpload.style.display = 'none';
20
20
  inputElementUpload.click();
21
21
  fromEvent(inputElementUpload, 'change').pipe(takeUntil(this.onDestroy)).subscribe((event) => {
22
- const files = event.dataTransfer?.files || event.target?.files;
22
+ const files = Array.from(event.dataTransfer?.files || event.target?.files || []);
23
23
  inputElementUpload.remove();
24
24
  if (!files?.length) {
25
25
  return;
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
47
47
  standalone: true
48
48
  }]
49
49
  }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy91cGxvYWQvc3JjL3VwbG9hZC1maWxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU9yRCxNQUFNLE9BQU8scUNBQXFDO0lBQ3hDLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRS9CLFFBQVEsR0FBRyxLQUFLLENBQStCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLFdBQVcsR0FBRyxLQUFLLENBQTZCLDZFQUE2RSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLDZFQUE2RSxFQUFFLENBQUMsQ0FBQztJQUUzTyxjQUFjLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDbEMsYUFBYSxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRWhDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFHeEMsZUFBZTtRQUNYLFNBQVMsQ0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFO1lBQ2hILENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFbkIsTUFBTSxrQkFBa0IsR0FBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELGtCQUFrQixDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDakMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQzFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLFNBQVMsQ0FBUyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUM1RyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQkFDL0Qsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ25CLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFaEMsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3dHQTFDVSxxQ0FBcUM7NEZBQXJDLHFDQUFxQzs7NEZBQXJDLHFDQUFxQztrQkFMakQsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx5Q0FBeUM7b0JBQ25ELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW0xpYnNVaUNvbXBvbmVudHNJbnB1dHNVcGxvYWREaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzVXBsb2FkRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCxPbkRlc3Ryb3kge1xuICBwcml2YXRlIG9uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgbXVsdGlwbGUgPSBpbnB1dDxib29sZWFuLCBib29sZWFuIHwgdW5kZWZpbmVkPih0cnVlLCB7IHRyYW5zZm9ybTogdmFsID0+IHZhbCA/PyB0cnVlIH0pO1xuICByZWFkb25seSBhY2Nlc3NGaWxlcyA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignaW1hZ2UveC1wbmcsaW1hZ2UvanBnLGltYWdlL2pwZWcsaW1hZ2UvUE5HLGltYWdlL3gtUE5HLGltYWdlL0pQRyxpbWFnZS9KUEVHJywgeyB0cmFuc2Zvcm06IHZhbCA9PiB2YWwgPz8gJ2ltYWdlL3gtcG5nLGltYWdlL2pwZyxpbWFnZS9qcGVnLGltYWdlL1BORyxpbWFnZS94LVBORyxpbWFnZS9KUEcsaW1hZ2UvSlBFRycgfSk7XG5cbiAgcmVhZG9ubHkgb3V0VXBsb2FkRmlsZXMgPSBvdXRwdXQ8RmlsZVtdPigpO1xuICByZWFkb25seSBvdXRVcGxvYWRGaWxlID0gb3V0cHV0PEZpbGU+KCk7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgZnJvbUV2ZW50PElFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKChlOiBJRXZlbnQpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudFVwbG9hZD0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgaW5wdXRFbGVtZW50VXBsb2FkLnR5cGUgPSAnZmlsZSc7XG4gICAgICAgIGlucHV0RWxlbWVudFVwbG9hZC5hY2NlcHQgPSB0aGlzLmFjY2Vzc0ZpbGVzKCk7XG4gICAgICAgIGlucHV0RWxlbWVudFVwbG9hZC5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGUoKTtcbiAgICAgICAgaW5wdXRFbGVtZW50VXBsb2FkLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGlucHV0RWxlbWVudFVwbG9hZC5jbGljaygpO1xuICAgICAgICAgIGZyb21FdmVudDxJRXZlbnQ+KGlucHV0RWxlbWVudFVwbG9hZCwgJ2NoYW5nZScpLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKChldmVudDogSUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzIHx8IGV2ZW50LnRhcmdldD8uZmlsZXM7XG4gICAgICAgICAgaW5wdXRFbGVtZW50VXBsb2FkLnJlbW92ZSgpO1xuICAgICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgICAgICB0aGlzLm91dFVwbG9hZEZpbGVzLmVtaXQoZmlsZXMpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMub3V0VXBsb2FkRmlsZS5lbWl0KGZpbGVzWzBdKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy91cGxvYWQvc3JjL3VwbG9hZC1maWxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU9yRCxNQUFNLE9BQU8scUNBQXFDO0lBQ3hDLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRS9CLFFBQVEsR0FBRyxLQUFLLENBQStCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLFdBQVcsR0FBRyxLQUFLLENBQTZCLDZFQUE2RSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLDZFQUE2RSxFQUFFLENBQUMsQ0FBQztJQUUzTyxjQUFjLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDbEMsYUFBYSxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRWhDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFHeEMsZUFBZTtRQUNiLFNBQVMsQ0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFO1lBQ2hILENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFbkIsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNELGtCQUFrQixDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDakMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQzFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLFNBQVMsQ0FBUyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUMxRyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFPLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RixrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDbkIsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUVoQyxPQUFPO2dCQUNULENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7d0dBMUNVLHFDQUFxQzs0RkFBckMscUNBQXFDOzs0RkFBckMscUNBQXFDO2tCQUxqRCxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHlDQUF5QztvQkFDbkQsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3ksIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbTGlic1VpQ29tcG9uZW50c0lucHV0c1VwbG9hZERpcmVjdGl2ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNVcGxvYWREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG9uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgbXVsdGlwbGUgPSBpbnB1dDxib29sZWFuLCBib29sZWFuIHwgdW5kZWZpbmVkPih0cnVlLCB7IHRyYW5zZm9ybTogdmFsID0+IHZhbCA/PyB0cnVlIH0pO1xuICByZWFkb25seSBhY2Nlc3NGaWxlcyA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignaW1hZ2UveC1wbmcsaW1hZ2UvanBnLGltYWdlL2pwZWcsaW1hZ2UvUE5HLGltYWdlL3gtUE5HLGltYWdlL0pQRyxpbWFnZS9KUEVHJywgeyB0cmFuc2Zvcm06IHZhbCA9PiB2YWwgPz8gJ2ltYWdlL3gtcG5nLGltYWdlL2pwZyxpbWFnZS9qcGVnLGltYWdlL1BORyxpbWFnZS94LVBORyxpbWFnZS9KUEcsaW1hZ2UvSlBFRycgfSk7XG5cbiAgcmVhZG9ubHkgb3V0VXBsb2FkRmlsZXMgPSBvdXRwdXQ8RmlsZVtdPigpO1xuICByZWFkb25seSBvdXRVcGxvYWRGaWxlID0gb3V0cHV0PEZpbGU+KCk7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGZyb21FdmVudDxJRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZTogSUV2ZW50KSA9PiB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCBpbnB1dEVsZW1lbnRVcGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgaW5wdXRFbGVtZW50VXBsb2FkLnR5cGUgPSAnZmlsZSc7XG4gICAgICBpbnB1dEVsZW1lbnRVcGxvYWQuYWNjZXB0ID0gdGhpcy5hY2Nlc3NGaWxlcygpO1xuICAgICAgaW5wdXRFbGVtZW50VXBsb2FkLm11bHRpcGxlID0gdGhpcy5tdWx0aXBsZSgpO1xuICAgICAgaW5wdXRFbGVtZW50VXBsb2FkLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICBpbnB1dEVsZW1lbnRVcGxvYWQuY2xpY2soKTtcbiAgICAgIGZyb21FdmVudDxJRXZlbnQ+KGlucHV0RWxlbWVudFVwbG9hZCwgJ2NoYW5nZScpLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKChldmVudDogSUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbTxGaWxlPihldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzIHx8IGV2ZW50LnRhcmdldD8uZmlsZXMgfHwgW10pO1xuICAgICAgICBpbnB1dEVsZW1lbnRVcGxvYWQucmVtb3ZlKCk7XG4gICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgICAgdGhpcy5vdXRVcGxvYWRGaWxlcy5lbWl0KGZpbGVzKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm91dFVwbG9hZEZpbGUuZW1pdChmaWxlc1swXSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
@@ -231,7 +231,7 @@ class LibsUiComponentsInputsUploadDirective {
231
231
  inputElementUpload.style.display = 'none';
232
232
  inputElementUpload.click();
233
233
  fromEvent(inputElementUpload, 'change').pipe(takeUntil$1(this.onDestroy)).subscribe((event) => {
234
- const files = event.dataTransfer?.files || event.target?.files;
234
+ const files = Array.from(event.dataTransfer?.files || event.target?.files || []);
235
235
  inputElementUpload.remove();
236
236
  if (!files?.length) {
237
237
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-inputs-upload.mjs","sources":["../../../../../../libs-ui/components/inputs/upload/src/pipes/calc-duration-video.pipe.ts","../../../../../../libs-ui/components/inputs/upload/src/pipes/check-file-extension.pipe.ts","../../../../../../libs-ui/components/inputs/upload/src/avatar/avatar.component.ts","../../../../../../libs-ui/components/inputs/upload/src/avatar/avatar.component.html","../../../../../../libs-ui/components/inputs/upload/src/defines/helper.define.ts","../../../../../../libs-ui/components/inputs/upload/src/upload-drop-file.directive.ts","../../../../../../libs-ui/components/inputs/upload/src/upload-file.directive.ts","../../../../../../libs-ui/components/inputs/upload/src/upload.component.ts","../../../../../../libs-ui/components/inputs/upload/src/upload.component.html","../../../../../../libs-ui/components/inputs/upload/src/libs-ui-components-inputs-upload.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiPipesInputsUploadCalcDurationVideoPipe',\n standalone: true\n})\nexport class LibsUiPipesInputsUploadCalcDurationVideoPipe implements PipeTransform {\n\n transform(duration: number) {\n if (!duration) {\n return '0:0';\n }\n duration = Math.round(duration);\n if (duration >= 3600) {\n const hour = Math.floor(duration / 3600);\n const minute = Math.floor((duration - (hour * 3600)) / 60);\n const second = duration - (hour * 3600 + minute * 60);\n\n return `${hour}:${minute < 10 ? `0${minute}` : minute}:${second < 10 ? `0${second}` : second}`;\n }\n if (duration >= 60) {\n const minute = Math.floor(duration / 60);\n const second = duration - (minute * 60);\n\n return `${minute}:${second < 10 ? `0${second}` : second}`;\n }\n\n return `0:${duration}`;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IFile } from '@libs-ui/interfaces-types';\nimport { DocumentExtList, getFileExtension, ImageExtList, VideoExtList } from '@libs-ui/utils';\n\n@Pipe({\n name: 'LibsUiPipesInputsUploadCheckFileExtensionPipe',\n standalone: true\n})\nexport class LibsUiPipesInputsUploadCheckFileExtensionPipe implements PipeTransform {\n\n transform(file: IFile, type: 'image' | 'video' | 'word' | 'xlsx' | 'pdf' | 'pptx' | 'other') {\n const fileExtension = getFileExtension(file);\n\n if (!fileExtension) {\n return false;\n }\n switch (type) {\n case 'image':\n\n return ImageExtList.includes(fileExtension);\n\n case 'video':\n\n return VideoExtList.includes(fileExtension);\n\n case 'word':\n return ['doc', 'docx', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'].includes(fileExtension)\n\n case 'xlsx':\n return ['xls', 'xlsx', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'].includes(fileExtension)\n\n case 'pdf':\n return ['pdf', 'application/pdf'].includes(fileExtension)\n\n case 'pptx':\n return ['ppt', 'pptx', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'].includes(fileExtension)\n\n case 'other':\n return ![...ImageExtList, ...VideoExtList, ...DocumentExtList].includes(fileExtension);\n }\n }\n\n}\n","import { AsyncPipe, NgComponentOutlet } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, Inject, input, model, Optional, output } from \"@angular/core\";\nimport { LibsUiComponentsSpinnerComponent } from \"@libs-ui/components-spinner\";\nimport { LibsUiIconsGetIconComponentPipe } from \"@libs-ui/icons\";\nimport { IEvent, IFile } from \"@libs-ui/interfaces-types\";\nimport { LibsUiPipesSecurityTrustPipe } from \"@libs-ui/pipes-security-trust\";\nimport { LINK_IMAGE_ERROR_TOKEN_INJECT } from \"@libs-ui/utils\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { LibsUiPipesInputsUploadCalcDurationVideoPipe } from \"../pipes/calc-duration-video.pipe\";\nimport { LibsUiPipesInputsUploadCheckFileExtensionPipe } from \"../pipes/check-file-extension.pipe\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-upload-avatar',\n templateUrl: './avatar.component.html',\n standalone: true,\n imports: [\n NgComponentOutlet, AsyncPipe, TranslateModule,\n LibsUiComponentsSpinnerComponent,\n LibsUiPipesSecurityTrustPipe,\n LibsUiPipesInputsUploadCalcDurationVideoPipe,\n LibsUiPipesInputsUploadCheckFileExtensionPipe,\n LibsUiIconsGetIconComponentPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsUploadAvatarComponent {\n readonly item = model.required<IFile>();\n readonly showVideoDuration = input<boolean>();\n readonly disable = input<boolean>();\n readonly size = input<number>();\n readonly outOpenPreview = output<IFile>();\n\n constructor(@Optional() @Inject(LINK_IMAGE_ERROR_TOKEN_INJECT) private linkImageError: string) {\n }\n\n protected async handlerImageError(event: Event) {\n if (!this.linkImageError) {\n return;\n }\n (event as IEvent).target.src = this.linkImageError;\n }\n\n protected handlerImageClick(event: Event) {\n event.stopPropagation();\n this.outOpenPreview.emit(this.item());\n }\n}\n","<div class=\"flex mr-[12px] bg-[#ffffff] rounded-[4px]\"\n [class.libs-ui-disable]=\"disable() || item().isUploading || item().error\">\n @if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'image') {\n <div [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"relative\">\n @if (item().url || item().origin_url; as url) {\n <img [src]=\"url\"\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"rounded-[4px] cursor-pointer\"\n alt\n (error)=\"handlerImageError($event)\"\n (click)=\"handlerImageClick($event)\" />\n } @else {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'video') {\n <div class=\"relative\"\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\">\n @if (item().url || item().origin_url) {\n <video #videoRef\n [style.width.px]=\"size || 32\"\n [style.height.px]=\"size || 32\"\n class=\"rounded-[4px]\"\n preload=\"metadata\"\n [src]=\"(item().url || item().origin_url || '') | LibsUiPipesSecurityTrustPipe:'resourceUrl'\"></video>\n <div class=\"absolute w-full h-full top-0 bg-[#001433] opacity-40 rounded-[4px]\">\n </div>\n <div class=\"absolute w-full h-full flex items-center justify-center top-0\">\n <i class=\"text-[#ffffff] libs-ui-icon-play-solid before:!text-[10px]\"></i>\n </div>\n @if (showVideoDuration()) {\n <div\n class=\"flex text-[5px] absolute bottom-0 right-0 py-[2px] px-[4px] rounded-[4px] bg-[#000000] text-[#ffffff]\">\n {{ videoRef.duration | LibsUiPipesInputsUploadCalcDurationVideoPipe }}\n </div>\n }\n } @else {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'pdf') {\n <ng-container *ngComponentOutlet=\"'pdf'|LibsUiIconsGetIconComponentPipe|async\" />\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'word') {\n <ng-container *ngComponentOutlet=\"'word'|LibsUiIconsGetIconComponentPipe|async\" />\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'pptx') {\n <ng-container *ngComponentOutlet=\"'pptx'|LibsUiIconsGetIconComponentPipe|async\" />\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'xlsx') {\n <ng-container *ngComponentOutlet=\"'xlsx'|LibsUiIconsGetIconComponentPipe|async\" />\n }\n @else {\n <div [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"flex items-center justify-center\">\n <i class=\"libs-ui-icon-file before:!text-[19px]\"\n [class.text-[#6a7383]]=\"!item().isUploading && !item().error\"\n [class.text-[#071631]]=\"disable() || item().isUploading || item().error\"></i>\n </div>\n }\n</div>\n","import { getLabelBySizeFile } from '@libs-ui/utils';\nimport { IUploadDescriptionFormatAndSizeFile, TYPE_FILE_UPLOAD } from '../interfaces/upload.interface';\n\nexport const getDescriptionFormatAndSizeFileDefault = (type: TYPE_FILE_UPLOAD, maxImageSize: number, maxVideoSize: number, maxDocumentSize: number, maxAudioSize: number): IUploadDescriptionFormatAndSizeFile[] => {\n const image = {\n message: 'i18n_note_upload_image_volume',\n interpolateParams: { value: getLabelBySizeFile(maxImageSize, 0) }\n };\n const video = {\n message: 'i18n_note_upload_video_volume',\n interpolateParams: { value: getLabelBySizeFile(maxVideoSize, 0) }\n };\n const document = {\n message: 'i18n_note_upload_file_volume',\n interpolateParams: { value: getLabelBySizeFile(maxDocumentSize, 0) }\n };\n const audio = {\n message: 'i18n_note_upload_audio_volume',\n interpolateParams: { value: getLabelBySizeFile(maxAudioSize, 0) }\n };\n\n const typeSplit = type.split('_');\n const description = [];\n\n if (typeSplit.includes('image')) {\n description.push(image);\n }\n if (typeSplit.includes('audio')) {\n description.push(audio);\n }\n if (typeSplit.includes('video')) {\n description.push(video);\n }\n if (typeSplit.includes('document')) {\n description.push(document);\n }\n\n return description;\n};","import { AfterViewInit, Directive, ElementRef, input, OnDestroy, output } from '@angular/core';\nimport { IEvent } from '@libs-ui/interfaces-types';\nimport { checkMouseOverInContainer, isTypeFile } from '@libs-ui/utils';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsInputsUploadDropFileDirective]',\n standalone: true\n})\nexport class LibsUiComponentsInputsUploadDropFileDirective implements AfterViewInit, OnDestroy {\n\n private onDestroy = new Subject<void>();\n\n readonly multiple = input<boolean, boolean | undefined>(true, { transform: (value) => value ?? true });\n\n readonly outDragOver = output<IEvent>();\n readonly outDragLeave = output<IEvent>();\n readonly outDrop = output<IEvent>();\n readonly outDropFiles = output<File[]>();\n readonly outDropFile = output<File>();\n\n constructor(\n private elementRef: ElementRef\n ) {\n }\n\n ngAfterViewInit() {\n fromEvent<IEvent>(this.elementRef.nativeElement, 'dragover').pipe(takeUntil(this.onDestroy)).subscribe((e: IEvent) => {\n e.stopPropagation();\n e.preventDefault();\n this.outDragOver.emit(e);\n });\n fromEvent<IEvent>(this.elementRef.nativeElement, 'dragleave').pipe(takeUntil(this.onDestroy)).subscribe((e: IEvent) => {\n e.stopPropagation();\n e.preventDefault();\n if (checkMouseOverInContainer(e, this.elementRef.nativeElement)) {\n return;\n }\n this.outDragLeave.emit(e);\n });\n\n fromEvent<IEvent>(this.elementRef.nativeElement, 'drop').pipe(takeUntil(this.onDestroy)).subscribe((e: IEvent) => {\n e.stopPropagation();\n e.preventDefault();\n this.outDrop.emit(e);\n\n const fileList: File[] = Array.from(e.dataTransfer?.files || e.clipboardData?.files || []).filter(isTypeFile);\n\n if (!fileList || !fileList.length) {\n return;\n }\n\n if (this.multiple()) {\n this.outDropFiles.emit(fileList);\n\n return;\n }\n this.outDropFile.emit(fileList[0]);\n });\n }\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}","import { AfterViewInit, Directive, ElementRef, inject, input, OnDestroy, output } from '@angular/core';\nimport { IEvent } from '@libs-ui/interfaces-types';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsInputsUploadDirective]',\n standalone: true\n})\nexport class LibsUiComponentsInputsUploadDirective implements AfterViewInit,OnDestroy {\n private onDestroy = new Subject<void>();\n\n readonly multiple = input<boolean, boolean | undefined>(true, { transform: val => val ?? true });\n readonly accessFiles = input<string, string | undefined>('image/x-png,image/jpg,image/jpeg,image/PNG,image/x-PNG,image/JPG,image/JPEG', { transform: val => val ?? 'image/x-png,image/jpg,image/jpeg,image/PNG,image/x-PNG,image/JPG,image/JPEG' });\n\n readonly outUploadFiles = output<File[]>();\n readonly outUploadFile = output<File>();\n\n private elementRef = inject(ElementRef);\n\n\n ngAfterViewInit() {\n fromEvent<IEvent>(this.elementRef.nativeElement, 'click').pipe(takeUntil(this.onDestroy)).subscribe((e: IEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n const inputElementUpload= document.createElement('input');\n inputElementUpload.type = 'file';\n inputElementUpload.accept = this.accessFiles();\n inputElementUpload.multiple = this.multiple();\n inputElementUpload.style.display = 'none';\n inputElementUpload.click();\n fromEvent<IEvent>(inputElementUpload, 'change').pipe(takeUntil(this.onDestroy)).subscribe((event: IEvent) => {\n const files = event.dataTransfer?.files || event.target?.files;\n inputElementUpload.remove();\n if (!files?.length) {\n return;\n }\n if (this.multiple()) {\n this.outUploadFiles.emit(files);\n\n return;\n }\n this.outUploadFile.emit(files[0]);\n });\n });\n }\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ComponentRef, computed, effect, ElementRef, inject, input, OnDestroy, OnInit, output, signal, untracked, viewChild, WritableSignal } from '@angular/core';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsGalleryViewerComponent } from '@libs-ui/components-gallery';\nimport { ISaveFile, LibsUiComponentsImageEditorComponent } from '@libs-ui/components-image-editor';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { LibsUiComponentsPreviewFileComponent } from '@libs-ui/components-preview-file';\nimport { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';\nimport { IAspectRatio, IFile, IIsValidRequired, IMessageTranslate } from '@libs-ui/interfaces-types';\nimport { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';\nimport { LibsUiNotificationService } from '@libs-ui/services-notification';\nimport { AudioExtList, convertBlobToFile, convertFileToBase64_ObjectUrl, DocumentExtList, downloadFileByUrl, ERROR_MESSAGE_EMPTY_VALID, getFileExtension, getLabelBySizeFile, ImageExtList, isIncludeAudioExtList, isIncludeDocumentExtList, isIncludeImageExtList, isIncludeVideoExtList, isTypeAudio, isTypeImage, isTypeVideo, uuid, VideoExtList } from '@libs-ui/utils';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { LibsUiComponentsInputsUploadAvatarComponent } from './avatar/avatar.component';\nimport { getDescriptionFormatAndSizeFileDefault } from './defines/helper.define';\nimport { IUploadConfigDownloadSampleFile, IUploadDescriptionFormatAndSizeFile, IUploadFunctionControlEvent, TYPE_FILE_UPLOAD, TYPE_MODE_FILE_DISPLAY } from './interfaces/upload.interface';\nimport { LibsUiComponentsInputsUploadDropFileDirective } from './upload-drop-file.directive';\nimport { LibsUiComponentsInputsUploadDirective } from './upload-file.directive';\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-upload',\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss'],\n standalone: true,\n imports: [TranslateModule,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsLabelComponent,\n LibsUiComponentsInputsUploadAvatarComponent,\n LibsUiComponentsScrollOverlayDirective,\n LibsUiComponentsInputsUploadDirective,\n LibsUiComponentsInputsUploadDropFileDirective\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsUploadComponent implements OnInit, AfterViewInit, OnDestroy {\n // #region PROPERTIES\n private imageEditorComponentRef?: ComponentRef<LibsUiComponentsImageEditorComponent>;\n private previewFileComponentRef?: ComponentRef<LibsUiComponentsPreviewFileComponent>;\n private previewFileImageComponentRef?: ComponentRef<LibsUiComponentsGalleryViewerComponent>;\n protected isDragOver = signal(false);\n protected fileList = signal<Array<WritableSignal<IFile>>>([]);\n protected accessFiles = signal<string>('');\n protected messageError = signal<string | undefined>(undefined);\n protected descriptionFormatAndSizeFileComputed = computed<Array<IUploadDescriptionFormatAndSizeFile>>(() => {\n if (this.descriptionFormatAndSizeFile()?.length) {\n return this.descriptionFormatAndSizeFile() as unknown as Array<IUploadDescriptionFormatAndSizeFile>;\n }\n return getDescriptionFormatAndSizeFileDefault(this.fileType(), this.maxImageSize(), this.maxVideoSize(), this.maxDocumentSize(), this.maxAudioSize());\n });\n\n private onDestroy = new Subject<void>();\n // #endregion\n\n // #region INPUTS\n readonly originFiles = input<Array<WritableSignal<IFile>>, Array<WritableSignal<IFile>> | undefined>([], { transform: val => val ?? [] });\n readonly fileType = input<TYPE_FILE_UPLOAD, TYPE_FILE_UPLOAD | undefined>('image_video_document', { transform: val => val ?? 'image_video_document' });\n readonly multiple = input<boolean>();\n readonly canUploadIfHasExistFile = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly canSetAvatar = input<boolean | undefined>(false);\n readonly limitFile = input<number, number | undefined>(10, { transform: val => val ?? 10 });\n readonly maxTotalSize = input<number, number | undefined>(10 * 1024 * 1024, { transform: val => val ?? 10 * 1024 * 1024 });\n readonly maxImageSize = input<number, number | undefined>(5 * 1024 * 1024, { transform: val => val ?? 5 * 1024 * 1024 });\n readonly maxVideoSize = input<number, number | undefined>(10 * 1024 * 1024, { transform: val => val ?? 10 * 1024 * 1024 });\n readonly maxDocumentSize = input<number, number | undefined>(10 * 1024 * 1024, { transform: val => val ?? 10 * 1024 * 1024 });\n readonly maxAudioSize = input<number, number | undefined>(10 * 1024 * 1024, { transform: val => val ?? 10 * 1024 * 1024 });\n readonly imageExtList = input<string[], string[] | undefined>(ImageExtList, { transform: val => val ?? ImageExtList });\n readonly videoExtList = input<string[], string[] | undefined>(VideoExtList, { transform: val => val ?? VideoExtList });\n readonly documentExtList = input<string[], string[] | undefined>(DocumentExtList, { transform: val => val ?? DocumentExtList });\n readonly audioExtList = input<string[], string[] | undefined>(AudioExtList, { transform: val => val ?? AudioExtList });\n readonly classIncludeListItem = input<string>();\n readonly validRequired = input<IIsValidRequired>();\n readonly disable = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly readonly = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly aspectRatio = input<IAspectRatio>();\n readonly zIndex = input<number, number | undefined>(1200, { transform: val => val ?? 1200 });\n readonly ignoreShowSizeFile = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly allowShowPushMessageMaxSizeError = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly messageTypeFileError = input<string, string | undefined>('i18n_the_file_support_format_is_not_correct', { transform: val => val || 'i18n_the_file_support_format_is_not_correct' });\n readonly messageMaxSizeError = input<string, string | undefined>('i18n_file_size_exceeds_the_allowed_limit', { transform: val => val || 'i18n_file_size_exceeds_the_allowed_limit' });\n readonly messageFileUploadError = input<string, string | undefined>('i18n_invalid_file_upload', { transform: val => val || 'i18n_invalid_file_upload' });\n readonly messageTotalFileExceedsError = input<string, string | undefined>('i18n_file_number_exceeds_the_allowed_limit_please_delete_the_file', { transform: val => val || 'i18n_file_number_exceeds_the_allowed_limit_please_delete_the_file' })\n readonly configDescriptionInputUpload = input<IMessageTranslate, IMessageTranslate | undefined>({ message: 'i18n_drag_file_here_to_upload_or_select_file' }, {\n transform: val => val ?? { message: 'i18n_drag_file_here_to_upload_or_select_file' }\n });\n\n readonly modeDisplayFile = input<TYPE_MODE_FILE_DISPLAY, TYPE_MODE_FILE_DISPLAY | undefined>('full', { transform: val => val || 'full' });\n readonly descriptionFormatAndSizeFile = input<Array<IUploadDescriptionFormatAndSizeFile>>();\n readonly showVideoDuration = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly labelConfig = input<ILabel>();\n readonly showPopupUploadWhenHasFileAndModeSingle = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly ignoreIconRemove = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly ignoreIconEdit = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly ignoreIconPreview = input<boolean, boolean | undefined>(true, { transform: val => val ?? true });\n readonly classIncludeFileContent = input<string>();\n readonly showBorderErrorAllItemWhenError = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly configDownloadSampleFile = input<IUploadConfigDownloadSampleFile>();\n // #endregion\n\n // #region OUTPUTS\n readonly outClose = output<boolean>();\n readonly outFileChanged = output<Array<WritableSignal<IFile>>>();\n readonly outFileRemoved = output<WritableSignal<IFile>>();\n readonly outFunctionsControl = output<IUploadFunctionControlEvent>();\n // #endregion\n\n // #region VIEW CHILDREN\n readonly uploadRef = viewChild<ElementRef>('upload');\n readonly uploadInputRef = viewChild<ElementRef>('uploadInput');\n // #endregion\n\n // #region INJECTIONS\n private dynamicComponentService = inject(LibsUiDynamicComponentService);\n private translateService = inject(TranslateService);\n private notificationService = inject(LibsUiNotificationService);\n // #endregion\n\n constructor() {\n effect(() => {\n if (this.originFiles()) {\n untracked(() => {\n this.fileList.set([...this.originFiles()]);\n })\n }\n });\n }\n\n // #region LIFECYCLE HOOKS\n ngOnInit() {\n this.outFunctionsControl.emit({\n checkIsValid: this.validate.bind(this),\n removeAll: this.removeAllFile.bind(this),\n uploading: async (process, id) => {\n const fileUploading = this.fileList().find(file => file().id === id);\n\n if (fileUploading) {\n fileUploading.update(file => ({ ...file, percentUploading: process.percent, isUploading: process.percent !== 100 }));\n }\n },\n setMessageError: async (message, id) => {\n this.messageError.set(message);\n if (id) {\n const fileError = this.fileList().find(file => file().id === id);\n\n if (fileError) {\n fileError.update(file => ({ ...file, error: message }));\n }\n }\n },\n handlerUploadFile: this.showUploadPopup.bind(this)\n });\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.initAccessFiles();\n }, 0);\n }\n // #endregion\n\n // #region INITIALIZATION\n protected async initAccessFiles() {\n const accessExts: string[] = [];\n const typeSplit = this.fileType().split('_');\n\n if (typeSplit.includes('image')) {\n accessExts.push(...this.imageExtList());\n }\n if (typeSplit.includes('document')) {\n accessExts.push(...this.documentExtList());\n }\n if (typeSplit.includes('video')) {\n accessExts.push(...this.videoExtList());\n }\n if (typeSplit.includes('audio')) {\n accessExts.push(...this.audioExtList());\n }\n this.accessFiles.set(accessExts.map(ext => `.${ext}`).join(','));\n }\n // #endregion\n\n\n // #region FILE OPERATIONS\n protected async handlerSetClassDrag(toogle: boolean) {\n this.uploadRef()?.nativeElement.classList.toggle('libs-ui-components-inputs-upload-drag-over', toogle);\n }\n\n protected async handleUploadFiles(files: Array<File>) {\n if (this.maxTotalSize()) {\n let total = 0;\n\n for (let i = 0; i < files.length; i++) {\n total += files[i].size;\n }\n\n if (this.maxTotalSize() < total) {\n this.notificationService.showCompTypeTextError(this.translateService.instant('i18n_size_not_number_mb', { number: this.maxTotalSize() / 1024 / 1024 }), { timeRemove: 3000 });\n\n return;\n }\n }\n\n let errorExceedsMaxFile = false;\n if (!files || !files.length) {\n return;\n }\n if (!this.multiple() && this.fileList().length && !this.canUploadIfHasExistFile()) {\n return;\n }\n\n const remainFileTotal = this.limitFile() - this.fileList().length;\n if (files.length > remainFileTotal) {\n errorExceedsMaxFile = true;\n this.messageError.set(this.messageTotalFileExceedsError());\n }\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const isImage = isTypeImage(file);\n const isVideo = isTypeVideo(file);\n const isAudio = isTypeAudio(file);\n const newFile: IFile = {\n name: file.name,\n file: file,\n size: getLabelBySizeFile(file.size),\n type: isImage ? 'image' : isVideo ? 'video' : isAudio ? 'audio' : 'document',\n id: uuid()\n };\n if (!(await this.checkValidFileExtension(file))) {\n if (!errorExceedsMaxFile) {\n this.messageError.set(this.multiple() ? this.messageFileUploadError() : this.messageTypeFileError());\n }\n newFile.error = this.messageTypeFileError();\n await this.pushFileInList(file, newFile);\n continue;\n }\n if (!(await this.checkValidFileSize(file))) {\n if (!errorExceedsMaxFile) {\n this.messageError.set(this.multiple() ? this.messageFileUploadError() : this.messageMaxSizeError());\n }\n newFile.error = this.messageMaxSizeError();\n if (!this.multiple() && this.allowShowPushMessageMaxSizeError()) {\n this.notificationService.showCompTypeTextError(this.messageMaxSizeError());\n\n return;\n }\n await this.pushFileInList(file, newFile);\n continue;\n }\n await this.pushFileInList(file, newFile);\n }\n if (this.canSetAvatar() && this.fileList().length && !this.fileList().find(file => file().isAvatar)) {\n this.fileList.update(fileList => {\n const itemImage = fileList.find(file => file().type === 'image');\n if (itemImage) {\n itemImage.update(file => ({ ...file, isAvatar: true }));\n }\n return [...fileList];\n });\n }\n this.outFileChanged.emit(this.fileList());\n this.validate();\n }\n\n private async pushFileInList(file: File, newFile: IFile) {\n newFile.url = await convertFileToBase64_ObjectUrl(file) as string;\n\n this.fileList.update(fileList => {\n fileList.splice(0, this.canUploadIfHasExistFile() ? 1 : 0, signal(newFile));\n return [...fileList];\n });\n }\n\n protected async handlerOpenPreviewFile(item: IFile) {\n if (item.type === 'document') {\n this.previewFileDocument(item);\n return;\n }\n this.previewFileImage(item);\n }\n\n private async previewFileDocument(item: IFile) {\n if (this.previewFileComponentRef) {\n return;\n }\n this.previewFileComponentRef = this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsPreviewFileComponent);\n this.previewFileComponentRef.setInput('data', item);\n this.previewFileComponentRef.setInput('zIndex', this.zIndex() + 1);\n this.previewFileComponentRef.instance.outClose.subscribe(() => {\n this.dynamicComponentService.remove(this.previewFileComponentRef);\n this.previewFileComponentRef = undefined;\n });\n this.dynamicComponentService.addToBody(this.previewFileComponentRef);\n }\n\n private async previewFileImage(item: IFile) {\n if (this.previewFileImageComponentRef) {\n return;\n }\n this.previewFileImageComponentRef = this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsGalleryViewerComponent);\n const url = item.url || item.origin_url;\n this.previewFileImageComponentRef.setInput('images', [{ url }]);\n this.previewFileImageComponentRef.setInput('imageSelected', { url });\n this.previewFileImageComponentRef.setInput('fieldDisplaySrcImage', 'url');\n this.previewFileImageComponentRef.setInput('singleImage', true);\n this.previewFileImageComponentRef.instance.outClose.subscribe(() => {\n this.dynamicComponentService.remove(this.previewFileImageComponentRef);\n this.previewFileImageComponentRef = undefined;\n });\n this.dynamicComponentService.addToBody(this.previewFileImageComponentRef);\n }\n\n protected async handlerEditImage(event: Event, item: WritableSignal<IFile>) {\n event.stopPropagation();\n this.showEditModal(item);\n }\n\n protected async handlerRemoveFile(event: Event, item: WritableSignal<IFile>) {\n event.stopPropagation();\n this.removeFile(item);\n if (this.originFiles().find(file => file().url === item().url)) {\n this.outFileRemoved.emit(item);\n }\n this.validate();\n if (!this.multiple() && this.showPopupUploadWhenHasFileAndModeSingle()) {\n setTimeout(() => {\n this.showUploadPopup();\n }, 0);\n }\n }\n\n protected async removeFile(fileItem: WritableSignal<IFile>) {\n this.fileList.update(fileList => fileList.filter(item => item().id !== fileItem().id));\n if (this.canSetAvatar() && fileItem().isAvatar && this.fileList().length) {\n this.fileList.update(fileList => {\n fileList[0].update(file => ({ ...file, isAvatar: true }));\n\n return [...fileList];\n });\n\n }\n this.outFileChanged.emit(this.fileList());\n }\n\n protected async showEditModal(fileItem: WritableSignal<IFile>) {\n if (this.imageEditorComponentRef) {\n return;\n }\n const fileDataUrl = fileItem().url || fileItem().origin_url || '';\n this.imageEditorComponentRef = this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsImageEditorComponent);\n\n this.imageEditorComponentRef.setInput('imgSrc', fileDataUrl);\n this.imageEditorComponentRef.setInput('zIndex', this.zIndex() + 1);\n this.imageEditorComponentRef.setInput('nameFile', fileItem().name);\n this.imageEditorComponentRef.setInput('aspectRatio', this.aspectRatio());\n this.imageEditorComponentRef.instance.outClose.subscribe(() => {\n this.dynamicComponentService.remove(this.imageEditorComponentRef);\n this.imageEditorComponentRef = undefined;\n });\n\n this.imageEditorComponentRef.instance.outSaveFile.subscribe(async (result: ISaveFile) => {\n const messageError = !(await this.checkValidFileSize(result.file)) ? this.messageMaxSizeError() : undefined;\n const nameFile = fileItem().file?.name || fileItem().name;\n fileItem.update(data => ({ ...data, file: convertBlobToFile(result.file, nameFile), name: nameFile, origin_url: undefined, size: getLabelBySizeFile(result.file.size), error: messageError, url: result.url, isUpdate: true }));\n this.outFileChanged.emit(this.fileList());\n this.imageEditorComponentRef?.instance.outClose.emit({ isClickButtonClose: true });\n });\n this.dynamicComponentService.addToBody(this.imageEditorComponentRef);\n }\n\n protected async checkValidFileExtension(file: File) {\n const extension = getFileExtension(file);\n\n if (!extension) {\n return false;\n }\n const isImage = isTypeImage(file);\n const isVideo = isTypeVideo(file);\n const isAudio = isTypeAudio(file);\n const validImage = isIncludeImageExtList(extension, this.imageExtList());\n const validVideo = isIncludeVideoExtList(extension, this.videoExtList());\n const validAudio = isIncludeAudioExtList(extension, this.audioExtList());\n const validDocument = isIncludeDocumentExtList(extension, this.documentExtList());\n\n const typeSplit = this.fileType().split('_');\n\n if (isImage && typeSplit.includes('image')) {\n return validImage;\n }\n if (isVideo && typeSplit.includes('video')) {\n return validVideo;\n }\n if (isAudio && typeSplit.includes('audio')) {\n return validAudio;\n }\n if (typeSplit.includes('document')) {\n return validDocument;\n }\n\n return false;\n }\n\n protected async checkValidFileSize(file: File | Blob) {\n const isImage = isTypeImage(file);\n const isVideo = isTypeVideo(file);\n const isAudio = isTypeAudio(file);\n const validImage = file.size <= this.maxImageSize();\n const validVideo = file.size <= this.maxVideoSize();\n const validAudio = file.size <= this.maxAudioSize();\n const validDocument = file.size <= this.maxDocumentSize();\n\n const typeSplit = this.fileType().split('_');\n\n if (isImage && typeSplit.includes('image')) {\n return validImage;\n }\n if (isVideo && typeSplit.includes('video')) {\n return validVideo;\n }\n if (isAudio && typeSplit.includes('audio')) {\n return validAudio;\n }\n if (typeSplit.includes('document')) {\n return validDocument;\n }\n\n return false;\n }\n\n protected async validate() {\n if (this.validRequired()?.isRequired && !this.fileList().length) {\n this.messageError.set(this.validRequired()?.message || ERROR_MESSAGE_EMPTY_VALID);\n\n return false;\n }\n if (this.multiple() && this.fileList().length > this.limitFile()) {\n this.messageError.set(this.messageTotalFileExceedsError());\n\n return false;\n }\n const fileError = this.fileList().find(item => item().error);\n\n if (fileError) {\n this.messageError.set(this.multiple() ? this.messageFileUploadError() : fileError().error);\n\n return false;\n }\n this.messageError.set(undefined);\n\n return true;\n }\n\n protected async handlerSetAvatar(event: Event, file: WritableSignal<IFile>) {\n event.stopPropagation();\n\n this.fileList().forEach(item => {\n if (item().id === file().id) {\n item.update(file => ({ ...file, isAvatar: true }));\n return;\n }\n item.update(file => ({ ...file, isAvatar: false }));\n });\n this.outFileChanged.emit(this.fileList());\n }\n\n private async removeAllFile() {\n this.fileList.set([]);\n this.messageError.set(undefined);\n }\n\n protected async handlerDownloadSampleFile(event: Event) {\n event.stopPropagation();\n const config = this.configDownloadSampleFile();\n if (!config) {\n return;\n }\n if (config?.callBack) {\n config.callBack();\n\n return;\n }\n if (config?.url) {\n downloadFileByUrl(config.url, config.title);\n }\n }\n\n private async showUploadPopup() {\n this.uploadInputRef()?.nativeElement.click();\n this.uploadInputRef()?.nativeElement.setAttribute('accept', this.accessFiles());\n }\n\n // #endregion\n\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}","<div class=\"flex flex-col w-full h-full\">\n <div>\n @if (labelConfig();as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft || disable() || readonly() \"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight || disable() || readonly() \"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable() || readonly() \"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable() || readonly() \"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"labelConfig.count\" />\n }\n @if ((!configDownloadSampleFile()?.position || configDownloadSampleFile()?.position === 'top') && configDownloadSampleFile();as configDownloadSampleFile) {\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classLabel]=\"'libs-ui-font-h7m'\"\n [classInclude]=\"'!mb-[8px] !p-0'\"\n [classIconLeft]=\"'libs-ui-icon-attachment before:!text-[12px]'\"\n [label]=\"configDownloadSampleFile?.title || ' '\"\n (outClick)=\"handlerDownloadSampleFile($event)\" />\n }\n @if (multiple() || !showPopupUploadWhenHasFileAndModeSingle() || (!fileList().length && !multiple())) {\n <div #upload\n LibsUiComponentsInputsUploadDirective\n LibsUiComponentsInputsUploadDropFileDirective\n class=\"libs-ui-components-inputs-upload\"\n [class.libs-ui-components-inputs-upload-disable]=\"disable() || readonly() || (!multiple() && fileList().length && !canUploadIfHasExistFile())\"\n [class.libs-ui-components-inputs-upload-readonly]=\"readonly()\"\n [class.libs-ui-components-inputs-upload-error]=\"messageError()\"\n [multiple]=\"multiple()\"\n [accessFiles]=\"accessFiles()\"\n (outUploadFiles)=\"handleUploadFiles($event)\"\n (outUploadFile)=\"handleUploadFiles([$event])\"\n (outDragOver)=\"handlerSetClassDrag(true)\"\n (outDragLeave)=\"handlerSetClassDrag(false)\"\n (outDrop)=\"handlerSetClassDrag(false)\"\n (outDropFiles)=\"handleUploadFiles($event)\"\n (outDropFile)=\"handleUploadFiles([$event])\">\n <div class=\"flex items-center\">\n <div class=\"mr-[16px]\">\n <i class=\"libs-ui-components-inputs-upload-icon libs-ui-icon-file-upload before:!text-[32px]\"></i>\n </div>\n <div class=\"libs-ui-components-inputs-upload-description\">\n <div class=\"mb-[4px] libs-ui-font-h6m\"\n [innerHTML]=\"(configDescriptionInputUpload().message || '') | translate:configDescriptionInputUpload().interpolateParams\">\n </div>\n @for (item of descriptionFormatAndSizeFileComputed(); track item; let last = $last) {\n <div class=\"libs-ui-font-h7r\"\n [class.mb-[4px]]=\"!last\"\n [innerHTML]=\"item.message | translate:item.interpolateParams\">\n </div>\n }\n </div>\n </div>\n @if (multiple()) {\n <input #uploadInput\n class=\"upload-input hidden\"\n type=\"file\"\n name=\"files[]\"\n multiple\n [accept]=\"accessFiles()\" />\n } @else {\n <input #uploadInput\n class=\"upload-input hidden\"\n type=\"file\"\n name=\"files[]\"\n [accept]=\"accessFiles()\" />\n }\n </div>\n }\n @if (messageError() && (multiple() || !showPopupUploadWhenHasFileAndModeSingle() || (!fileList().length && !multiple()))) {\n <div class=\"mt-[8px] text-[#ee2d41] libs-ui-font-h7r\">\n {{ (messageError() || '') | translate:{ value: limitFile() } }}\n </div>\n }\n @if (configDownloadSampleFile()?.position === 'bottom' && configDownloadSampleFile();as configDownloadSampleFile) {\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classLabel]=\"'libs-ui-font-h7m'\"\n [classInclude]=\"'!mt-[8px] !p-0'\"\n [classIconLeft]=\"'libs-ui-icon-attachment before:!text-[12px]'\"\n [label]=\"configDownloadSampleFile.title || ' '\"\n (moClick)=\"handlerDownloadSampleFile($event)\" />\n }\n </div>\n @if (fileList().length) {\n <div LibsUiComponentsScrollOverlayDirective\n class=\"relative w-full h-full px-[10px] libs-ui-components-inputs-upload-view-list {{ classIncludeFileContent() || '' }}\"\n [class.mt-[12px]]=\"multiple() || !showPopupUploadWhenHasFileAndModeSingle()\">\n <ng-content select=\"[label-file]\"></ng-content>\n @for (item of fileList(); track item(); let first = $first) {\n <div class=\"libs-ui-components-inputs-upload-view-list-item {{ classIncludeListItem() || '' }}\"\n [class.libs-ui-components-inputs-upload-file-full]=\"modeDisplayFile() === 'full'\"\n [class.libs-ui-components-inputs-upload-file-short]=\"modeDisplayFile() === 'short'\"\n [class.libs-ui-border-error-general]=\"item().error || (messageError() && showBorderErrorAllItemWhenError())\"\n [class.mt-0]=\"first && !multiple() && !showPopupUploadWhenHasFileAndModeSingle()\">\n\n <div class=\"flex w-full\">\n <div class=\"flex items-center\">\n @if (canSetAvatar() && item().type === 'image') {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classIconLeft]=\"'!mr-0' + (item().isAvatar ? ' libs-ui-icon-check-circle-solid before:!text-[#00bc62]': ' libs-ui-icon-check-circle-outline') + ((disable() || readonly() || item().isUploading || !!item().error) ? ' libs-ui-disable' : '')\"\n [popover]=\"{config:{ content: item().isAvatar ? 'i18n_avatar' : 'i18n_choose_as_your_avatar', zIndex: zIndex()}}\"\n [classInclude]=\"'!mr-[12px] !p-0'\"\n [disable]=\"disable() || readonly() || item().isUploading || !!item().error\"\n (outClick)=\"handlerSetAvatar($event, item)\" />\n }\n </div>\n <div class=\"flex\"\n [class.w-[calc(100%-28px)]]=\"canSetAvatar()\"\n [class.w-full]=\"!canSetAvatar()\">\n @if (modeDisplayFile() === 'full') {\n <libs_ui-components-inputs-upload-avatar [disable]=\"disable() || readonly() \"\n [(item)]=\"item\"\n [showVideoDuration]=\"showVideoDuration()\"\n (outOpenPreview)=\"handlerOpenPreviewFile($event)\" />\n }\n <div class=\"relative w-full\">\n <div class=\"flex absolute w-full h-full flex-col\"\n [class.flex-col]=\"modeDisplayFile() === 'full'\"\n [class.justify-center]=\"modeDisplayFile() === 'full'\"\n [class.items-center]=\"modeDisplayFile() === 'short'\">\n <libs_ui-components-label class=\"flex w-full\"\n [labelLeft]=\"item().name\"\n [zIndexPopover]=\"zIndex() + 1\"\n [labelLeftClass]=\"'libs-ui-font-h6m ' + ((disable() || readonly() || item().isUploading || item().error) ? 'text-[#6a7383]' : 'text-[#071631]')\"\n [classInclude]=\"modeDisplayFile() === 'short' ? '!mb-0' : ''\" />\n\n @if (!ignoreShowSizeFile()) {\n <div class=\"text-[#9ca2ad] libs-ui-font-h7r shrink-0\"\n [class.flex]=\"modeDisplayFile() === 'full'\"\n [class.items-center]=\"modeDisplayFile() === 'short'\"\n [class.ml-[12px]]=\"modeDisplayFile() === 'short'\">\n {{ item().size }}\n </div>\n }\n </div>\n </div>\n @if (item().isUploading && item().percentUploading) {\n <div class=\"flex items-center ml-[16px]\"\n [class.mr-[26px]]=\"modeDisplayFile() === 'full'\">\n <div class=\"w-[120px] h-[4px] rounded-[4px] bg-[#f8f9fa] relative\">\n <div class=\"absolute top-0 left-0 h-[4px] rounded-[4px] bg-[#00bc62]\"\n [style.width.px]=\"(item().percentUploading ?? 0)*1.2\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"flex ml-[16px]\">\n @if (!ignoreIconPreview()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classIconLeft]=\"'libs-ui-icon-eye-outline !mr-0'\"\n [popover]=\"{config:{ content: 'i18n_preview', zIndex: zIndex()+1}}\"\n [classInclude]=\"'!p-0' + (ignoreIconRemove() && !ignoreIconEdit() ? '' : ' !mr-[12px]')\"\n [disable]=\"item().isUploading || disable() || readonly() \"\n (outClick)=\"handlerOpenPreviewFile(item())\" />\n }\n @if (item().type === 'image' && !item().error && !ignoreIconEdit()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classIconLeft]=\"'libs-ui-icon-edit-line !mr-0'\"\n [popover]=\"{config:{ content: 'i18n_edit', zIndex: zIndex()+1}}\"\n [classInclude]=\"'!p-0' + (ignoreIconRemove() ? '' : ' !mr-[12px]')\"\n [disable]=\"item().isUploading || disable() || readonly() \"\n (outClick)=\"handlerEditImage($event, item)\" />\n }\n @if (!ignoreIconRemove()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classIconLeft]=\"'libs-ui-icon-close !mr-0'\"\n [popover]=\"{config: {content: 'i18n_delete', zIndex: zIndex()+1}}\"\n [classInclude]=\"'!p-0'\"\n [disable]=\"item().isUploading || disable() || readonly() \"\n (outClick)=\"handlerRemoveFile($event, item)\" />\n }\n </div>\n </div>\n @if (item().error && (multiple() || showPopupUploadWhenHasFileAndModeSingle())) {\n <div class=\"mt-[8px] text-[#ee2d41] libs-ui-font-h7r\">{{ (item().error || ' ') | translate }}</div>\n }\n }\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil"],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-inputs-upload.mjs","sources":["../../../../../../libs-ui/components/inputs/upload/src/pipes/calc-duration-video.pipe.ts","../../../../../../libs-ui/components/inputs/upload/src/pipes/check-file-extension.pipe.ts","../../../../../../libs-ui/components/inputs/upload/src/avatar/avatar.component.ts","../../../../../../libs-ui/components/inputs/upload/src/avatar/avatar.component.html","../../../../../../libs-ui/components/inputs/upload/src/defines/helper.define.ts","../../../../../../libs-ui/components/inputs/upload/src/upload-drop-file.directive.ts","../../../../../../libs-ui/components/inputs/upload/src/upload-file.directive.ts","../../../../../../libs-ui/components/inputs/upload/src/upload.component.ts","../../../../../../libs-ui/components/inputs/upload/src/upload.component.html","../../../../../../libs-ui/components/inputs/upload/src/libs-ui-components-inputs-upload.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiPipesInputsUploadCalcDurationVideoPipe',\n standalone: true\n})\nexport class LibsUiPipesInputsUploadCalcDurationVideoPipe implements PipeTransform {\n\n transform(duration: number) {\n if (!duration) {\n return '0:0';\n }\n duration = Math.round(duration);\n if (duration >= 3600) {\n const hour = Math.floor(duration / 3600);\n const minute = Math.floor((duration - (hour * 3600)) / 60);\n const second = duration - (hour * 3600 + minute * 60);\n\n return `${hour}:${minute < 10 ? `0${minute}` : minute}:${second < 10 ? `0${second}` : second}`;\n }\n if (duration >= 60) {\n const minute = Math.floor(duration / 60);\n const second = duration - (minute * 60);\n\n return `${minute}:${second < 10 ? `0${second}` : second}`;\n }\n\n return `0:${duration}`;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IFile } from '@libs-ui/interfaces-types';\nimport { DocumentExtList, getFileExtension, ImageExtList, VideoExtList } from '@libs-ui/utils';\n\n@Pipe({\n name: 'LibsUiPipesInputsUploadCheckFileExtensionPipe',\n standalone: true\n})\nexport class LibsUiPipesInputsUploadCheckFileExtensionPipe implements PipeTransform {\n\n transform(file: IFile, type: 'image' | 'video' | 'word' | 'xlsx' | 'pdf' | 'pptx' | 'other') {\n const fileExtension = getFileExtension(file);\n\n if (!fileExtension) {\n return false;\n }\n switch (type) {\n case 'image':\n\n return ImageExtList.includes(fileExtension);\n\n case 'video':\n\n return VideoExtList.includes(fileExtension);\n\n case 'word':\n return ['doc', 'docx', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'].includes(fileExtension)\n\n case 'xlsx':\n return ['xls', 'xlsx', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'].includes(fileExtension)\n\n case 'pdf':\n return ['pdf', 'application/pdf'].includes(fileExtension)\n\n case 'pptx':\n return ['ppt', 'pptx', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'].includes(fileExtension)\n\n case 'other':\n return ![...ImageExtList, ...VideoExtList, ...DocumentExtList].includes(fileExtension);\n }\n }\n\n}\n","import { AsyncPipe, NgComponentOutlet } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, Inject, input, model, Optional, output } from \"@angular/core\";\nimport { LibsUiComponentsSpinnerComponent } from \"@libs-ui/components-spinner\";\nimport { LibsUiIconsGetIconComponentPipe } from \"@libs-ui/icons\";\nimport { IEvent, IFile } from \"@libs-ui/interfaces-types\";\nimport { LibsUiPipesSecurityTrustPipe } from \"@libs-ui/pipes-security-trust\";\nimport { LINK_IMAGE_ERROR_TOKEN_INJECT } from \"@libs-ui/utils\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { LibsUiPipesInputsUploadCalcDurationVideoPipe } from \"../pipes/calc-duration-video.pipe\";\nimport { LibsUiPipesInputsUploadCheckFileExtensionPipe } from \"../pipes/check-file-extension.pipe\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-upload-avatar',\n templateUrl: './avatar.component.html',\n standalone: true,\n imports: [\n NgComponentOutlet, AsyncPipe, TranslateModule,\n LibsUiComponentsSpinnerComponent,\n LibsUiPipesSecurityTrustPipe,\n LibsUiPipesInputsUploadCalcDurationVideoPipe,\n LibsUiPipesInputsUploadCheckFileExtensionPipe,\n LibsUiIconsGetIconComponentPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsUploadAvatarComponent {\n readonly item = model.required<IFile>();\n readonly showVideoDuration = input<boolean>();\n readonly disable = input<boolean>();\n readonly size = input<number>();\n readonly outOpenPreview = output<IFile>();\n\n constructor(@Optional() @Inject(LINK_IMAGE_ERROR_TOKEN_INJECT) private linkImageError: string) {\n }\n\n protected async handlerImageError(event: Event) {\n if (!this.linkImageError) {\n return;\n }\n (event as IEvent).target.src = this.linkImageError;\n }\n\n protected handlerImageClick(event: Event) {\n event.stopPropagation();\n this.outOpenPreview.emit(this.item());\n }\n}\n","<div class=\"flex mr-[12px] bg-[#ffffff] rounded-[4px]\"\n [class.libs-ui-disable]=\"disable() || item().isUploading || item().error\">\n @if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'image') {\n <div [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"relative\">\n @if (item().url || item().origin_url; as url) {\n <img [src]=\"url\"\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"rounded-[4px] cursor-pointer\"\n alt\n (error)=\"handlerImageError($event)\"\n (click)=\"handlerImageClick($event)\" />\n } @else {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'video') {\n <div class=\"relative\"\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\">\n @if (item().url || item().origin_url) {\n <video #videoRef\n [style.width.px]=\"size || 32\"\n [style.height.px]=\"size || 32\"\n class=\"rounded-[4px]\"\n preload=\"metadata\"\n [src]=\"(item().url || item().origin_url || '') | LibsUiPipesSecurityTrustPipe:'resourceUrl'\"></video>\n <div class=\"absolute w-full h-full top-0 bg-[#001433] opacity-40 rounded-[4px]\">\n </div>\n <div class=\"absolute w-full h-full flex items-center justify-center top-0\">\n <i class=\"text-[#ffffff] libs-ui-icon-play-solid before:!text-[10px]\"></i>\n </div>\n @if (showVideoDuration()) {\n <div\n class=\"flex text-[5px] absolute bottom-0 right-0 py-[2px] px-[4px] rounded-[4px] bg-[#000000] text-[#ffffff]\">\n {{ videoRef.duration | LibsUiPipesInputsUploadCalcDurationVideoPipe }}\n </div>\n }\n } @else {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'pdf') {\n <ng-container *ngComponentOutlet=\"'pdf'|LibsUiIconsGetIconComponentPipe|async\" />\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'word') {\n <ng-container *ngComponentOutlet=\"'word'|LibsUiIconsGetIconComponentPipe|async\" />\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'pptx') {\n <ng-container *ngComponentOutlet=\"'pptx'|LibsUiIconsGetIconComponentPipe|async\" />\n }\n @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe:'xlsx') {\n <ng-container *ngComponentOutlet=\"'xlsx'|LibsUiIconsGetIconComponentPipe|async\" />\n }\n @else {\n <div [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"flex items-center justify-center\">\n <i class=\"libs-ui-icon-file before:!text-[19px]\"\n [class.text-[#6a7383]]=\"!item().isUploading && !item().error\"\n [class.text-[#071631]]=\"disable() || item().isUploading || item().error\"></i>\n </div>\n }\n</div>\n","import { getLabelBySizeFile } from '@libs-ui/utils';\nimport { IUploadDescriptionFormatAndSizeFile, TYPE_FILE_UPLOAD } from '../interfaces/upload.interface';\n\nexport const getDescriptionFormatAndSizeFileDefault = (type: TYPE_FILE_UPLOAD, maxImageSize: number, maxVideoSize: number, maxDocumentSize: number, maxAudioSize: number): IUploadDescriptionFormatAndSizeFile[] => {\n const image = {\n message: 'i18n_note_upload_image_volume',\n interpolateParams: { value: getLabelBySizeFile(maxImageSize, 0) }\n };\n const video = {\n message: 'i18n_note_upload_video_volume',\n interpolateParams: { value: getLabelBySizeFile(maxVideoSize, 0) }\n };\n const document = {\n message: 'i18n_note_upload_file_volume',\n interpolateParams: { value: getLabelBySizeFile(maxDocumentSize, 0) }\n };\n const audio = {\n message: 'i18n_note_upload_audio_volume',\n interpolateParams: { value: getLabelBySizeFile(maxAudioSize, 0) }\n };\n\n const typeSplit = type.split('_');\n const description = [];\n\n if (typeSplit.includes('image')) {\n description.push(image);\n }\n if (typeSplit.includes('audio')) {\n description.push(audio);\n }\n if (typeSplit.includes('video')) {\n description.push(video);\n }\n if (typeSplit.includes('document')) {\n description.push(document);\n }\n\n return description;\n};","import { AfterViewInit, Directive, ElementRef, input, OnDestroy, output } from '@angular/core';\nimport { IEvent } from '@libs-ui/interfaces-types';\nimport { checkMouseOverInContainer, isTypeFile } from '@libs-ui/utils';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsInputsUploadDropFileDirective]',\n standalone: true\n})\nexport class LibsUiComponentsInputsUploadDropFileDirective implements AfterViewInit, OnDestroy {\n\n private onDestroy = new Subject<void>();\n\n readonly multiple = input<boolean, boolean | undefined>(true, { transform: (value) => value ?? true });\n\n readonly outDragOver = output<IEvent>();\n readonly outDragLeave = output<IEvent>();\n readonly outDrop = output<IEvent>();\n readonly outDropFiles = output<File[]>();\n readonly outDropFile = output<File>();\n\n constructor(\n private elementRef: ElementRef\n ) {\n }\n\n ngAfterViewInit() {\n fromEvent<IEvent>(this.elementRef.nativeElement, 'dragover').pipe(takeUntil(this.onDestroy)).subscribe((e: IEvent) => {\n e.stopPropagation();\n e.preventDefault();\n this.outDragOver.emit(e);\n });\n fromEvent<IEvent>(this.elementRef.nativeElement, 'dragleave').pipe(takeUntil(this.onDestroy)).subscribe((e: IEvent) => {\n e.stopPropagation();\n e.preventDefault();\n if (checkMouseOverInContainer(e, this.elementRef.nativeElement)) {\n return;\n }\n this.outDragLeave.emit(e);\n });\n\n fromEvent<IEvent>(this.elementRef.nativeElement, 'drop').pipe(takeUntil(this.onDestroy)).subscribe((e: IEvent) => {\n e.stopPropagation();\n e.preventDefault();\n this.outDrop.emit(e);\n\n const fileList = Array.from<File>(e.dataTransfer?.files || e.clipboardData?.files || []).filter(isTypeFile);\n\n if (!fileList || !fileList.length) {\n return;\n }\n\n if (this.multiple()) {\n this.outDropFiles.emit(fileList);\n\n return;\n }\n this.outDropFile.emit(fileList[0]);\n });\n }\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}","import { AfterViewInit, Directive, ElementRef, inject, input, OnDestroy, output } from '@angular/core';\nimport { IEvent } from '@libs-ui/interfaces-types';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsInputsUploadDirective]',\n standalone: true\n})\nexport class LibsUiComponentsInputsUploadDirective implements AfterViewInit, OnDestroy {\n private onDestroy = new Subject<void>();\n\n readonly multiple = input<boolean, boolean | undefined>(true, { transform: val => val ?? true });\n readonly accessFiles = input<string, string | undefined>('image/x-png,image/jpg,image/jpeg,image/PNG,image/x-PNG,image/JPG,image/JPEG', { transform: val => val ?? 'image/x-png,image/jpg,image/jpeg,image/PNG,image/x-PNG,image/JPG,image/JPEG' });\n\n readonly outUploadFiles = output<File[]>();\n readonly outUploadFile = output<File>();\n\n private elementRef = inject(ElementRef);\n\n\n ngAfterViewInit() {\n fromEvent<IEvent>(this.elementRef.nativeElement, 'click').pipe(takeUntil(this.onDestroy)).subscribe((e: IEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n const inputElementUpload = document.createElement('input');\n inputElementUpload.type = 'file';\n inputElementUpload.accept = this.accessFiles();\n inputElementUpload.multiple = this.multiple();\n inputElementUpload.style.display = 'none';\n inputElementUpload.click();\n fromEvent<IEvent>(inputElementUpload, 'change').pipe(takeUntil(this.onDestroy)).subscribe((event: IEvent) => {\n const files = Array.from<File>(event.dataTransfer?.files || event.target?.files || []);\n inputElementUpload.remove();\n if (!files?.length) {\n return;\n }\n if (this.multiple()) {\n this.outUploadFiles.emit(files);\n\n return;\n }\n this.outUploadFile.emit(files[0]);\n });\n });\n }\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ComponentRef, computed, effect, ElementRef, inject, input, OnDestroy, OnInit, output, signal, untracked, viewChild, WritableSignal } from '@angular/core';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsGalleryViewerComponent } from '@libs-ui/components-gallery';\nimport { ISaveFile, LibsUiComponentsImageEditorComponent } from '@libs-ui/components-image-editor';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { LibsUiComponentsPreviewFileComponent } from '@libs-ui/components-preview-file';\nimport { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';\nimport { IAspectRatio, IFile, IIsValidRequired, IMessageTranslate } from '@libs-ui/interfaces-types';\nimport { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';\nimport { LibsUiNotificationService } from '@libs-ui/services-notification';\nimport { AudioExtList, convertBlobToFile, convertFileToBase64_ObjectUrl, DocumentExtList, downloadFileByUrl, ERROR_MESSAGE_EMPTY_VALID, getFileExtension, getLabelBySizeFile, ImageExtList, isIncludeAudioExtList, isIncludeDocumentExtList, isIncludeImageExtList, isIncludeVideoExtList, isTypeAudio, isTypeImage, isTypeVideo, uuid, VideoExtList } from '@libs-ui/utils';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { LibsUiComponentsInputsUploadAvatarComponent } from './avatar/avatar.component';\nimport { getDescriptionFormatAndSizeFileDefault } from './defines/helper.define';\nimport { IUploadConfigDownloadSampleFile, IUploadDescriptionFormatAndSizeFile, IUploadFunctionControlEvent, TYPE_FILE_UPLOAD, TYPE_MODE_FILE_DISPLAY } from './interfaces/upload.interface';\nimport { LibsUiComponentsInputsUploadDropFileDirective } from './upload-drop-file.directive';\nimport { LibsUiComponentsInputsUploadDirective } from './upload-file.directive';\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-upload',\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss'],\n standalone: true,\n imports: [TranslateModule,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsLabelComponent,\n LibsUiComponentsInputsUploadAvatarComponent,\n LibsUiComponentsScrollOverlayDirective,\n LibsUiComponentsInputsUploadDirective,\n LibsUiComponentsInputsUploadDropFileDirective\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsUploadComponent implements OnInit, AfterViewInit, OnDestroy {\n // #region PROPERTIES\n private imageEditorComponentRef?: ComponentRef<LibsUiComponentsImageEditorComponent>;\n private previewFileComponentRef?: ComponentRef<LibsUiComponentsPreviewFileComponent>;\n private previewFileImageComponentRef?: ComponentRef<LibsUiComponentsGalleryViewerComponent>;\n protected isDragOver = signal(false);\n protected fileList = signal<Array<WritableSignal<IFile>>>([]);\n protected accessFiles = signal<string>('');\n protected messageError = signal<string | undefined>(undefined);\n protected descriptionFormatAndSizeFileComputed = computed<Array<IUploadDescriptionFormatAndSizeFile>>(() => {\n if (this.descriptionFormatAndSizeFile()?.length) {\n return this.descriptionFormatAndSizeFile() as unknown as Array<IUploadDescriptionFormatAndSizeFile>;\n }\n return getDescriptionFormatAndSizeFileDefault(this.fileType(), this.maxImageSize(), this.maxVideoSize(), this.maxDocumentSize(), this.maxAudioSize());\n });\n\n private onDestroy = new Subject<void>();\n // #endregion\n\n // #region INPUTS\n readonly originFiles = input<Array<WritableSignal<IFile>>, Array<WritableSignal<IFile>> | undefined>([], { transform: val => val ?? [] });\n readonly fileType = input<TYPE_FILE_UPLOAD, TYPE_FILE_UPLOAD | undefined>('image_video_document', { transform: val => val ?? 'image_video_document' });\n readonly multiple = input<boolean>();\n readonly canUploadIfHasExistFile = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly canSetAvatar = input<boolean | undefined>(false);\n readonly limitFile = input<number, number | undefined>(10, { transform: val => val ?? 10 });\n readonly maxTotalSize = input<number, number | undefined>(10 * 1024 * 1024, { transform: val => val ?? 10 * 1024 * 1024 });\n readonly maxImageSize = input<number, number | undefined>(5 * 1024 * 1024, { transform: val => val ?? 5 * 1024 * 1024 });\n readonly maxVideoSize = input<number, number | undefined>(10 * 1024 * 1024, { transform: val => val ?? 10 * 1024 * 1024 });\n readonly maxDocumentSize = input<number, number | undefined>(10 * 1024 * 1024, { transform: val => val ?? 10 * 1024 * 1024 });\n readonly maxAudioSize = input<number, number | undefined>(10 * 1024 * 1024, { transform: val => val ?? 10 * 1024 * 1024 });\n readonly imageExtList = input<string[], string[] | undefined>(ImageExtList, { transform: val => val ?? ImageExtList });\n readonly videoExtList = input<string[], string[] | undefined>(VideoExtList, { transform: val => val ?? VideoExtList });\n readonly documentExtList = input<string[], string[] | undefined>(DocumentExtList, { transform: val => val ?? DocumentExtList });\n readonly audioExtList = input<string[], string[] | undefined>(AudioExtList, { transform: val => val ?? AudioExtList });\n readonly classIncludeListItem = input<string>();\n readonly validRequired = input<IIsValidRequired>();\n readonly disable = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly readonly = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly aspectRatio = input<IAspectRatio>();\n readonly zIndex = input<number, number | undefined>(1200, { transform: val => val ?? 1200 });\n readonly ignoreShowSizeFile = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly allowShowPushMessageMaxSizeError = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly messageTypeFileError = input<string, string | undefined>('i18n_the_file_support_format_is_not_correct', { transform: val => val || 'i18n_the_file_support_format_is_not_correct' });\n readonly messageMaxSizeError = input<string, string | undefined>('i18n_file_size_exceeds_the_allowed_limit', { transform: val => val || 'i18n_file_size_exceeds_the_allowed_limit' });\n readonly messageFileUploadError = input<string, string | undefined>('i18n_invalid_file_upload', { transform: val => val || 'i18n_invalid_file_upload' });\n readonly messageTotalFileExceedsError = input<string, string | undefined>('i18n_file_number_exceeds_the_allowed_limit_please_delete_the_file', { transform: val => val || 'i18n_file_number_exceeds_the_allowed_limit_please_delete_the_file' })\n readonly configDescriptionInputUpload = input<IMessageTranslate, IMessageTranslate | undefined>({ message: 'i18n_drag_file_here_to_upload_or_select_file' }, {\n transform: val => val ?? { message: 'i18n_drag_file_here_to_upload_or_select_file' }\n });\n\n readonly modeDisplayFile = input<TYPE_MODE_FILE_DISPLAY, TYPE_MODE_FILE_DISPLAY | undefined>('full', { transform: val => val || 'full' });\n readonly descriptionFormatAndSizeFile = input<Array<IUploadDescriptionFormatAndSizeFile>>();\n readonly showVideoDuration = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly labelConfig = input<ILabel>();\n readonly showPopupUploadWhenHasFileAndModeSingle = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly ignoreIconRemove = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly ignoreIconEdit = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly ignoreIconPreview = input<boolean, boolean | undefined>(true, { transform: val => val ?? true });\n readonly classIncludeFileContent = input<string>();\n readonly showBorderErrorAllItemWhenError = input<boolean, boolean | undefined>(false, { transform: val => val ?? false });\n readonly configDownloadSampleFile = input<IUploadConfigDownloadSampleFile>();\n // #endregion\n\n // #region OUTPUTS\n readonly outClose = output<boolean>();\n readonly outFileChanged = output<Array<WritableSignal<IFile>>>();\n readonly outFileRemoved = output<WritableSignal<IFile>>();\n readonly outFunctionsControl = output<IUploadFunctionControlEvent>();\n // #endregion\n\n // #region VIEW CHILDREN\n readonly uploadRef = viewChild<ElementRef>('upload');\n readonly uploadInputRef = viewChild<ElementRef>('uploadInput');\n // #endregion\n\n // #region INJECTIONS\n private dynamicComponentService = inject(LibsUiDynamicComponentService);\n private translateService = inject(TranslateService);\n private notificationService = inject(LibsUiNotificationService);\n // #endregion\n\n constructor() {\n effect(() => {\n if (this.originFiles()) {\n untracked(() => {\n this.fileList.set([...this.originFiles()]);\n })\n }\n });\n }\n\n // #region LIFECYCLE HOOKS\n ngOnInit() {\n this.outFunctionsControl.emit({\n checkIsValid: this.validate.bind(this),\n removeAll: this.removeAllFile.bind(this),\n uploading: async (process, id) => {\n const fileUploading = this.fileList().find(file => file().id === id);\n\n if (fileUploading) {\n fileUploading.update(file => ({ ...file, percentUploading: process.percent, isUploading: process.percent !== 100 }));\n }\n },\n setMessageError: async (message, id) => {\n this.messageError.set(message);\n if (id) {\n const fileError = this.fileList().find(file => file().id === id);\n\n if (fileError) {\n fileError.update(file => ({ ...file, error: message }));\n }\n }\n },\n handlerUploadFile: this.showUploadPopup.bind(this)\n });\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.initAccessFiles();\n }, 0);\n }\n // #endregion\n\n // #region INITIALIZATION\n protected async initAccessFiles() {\n const accessExts: string[] = [];\n const typeSplit = this.fileType().split('_');\n\n if (typeSplit.includes('image')) {\n accessExts.push(...this.imageExtList());\n }\n if (typeSplit.includes('document')) {\n accessExts.push(...this.documentExtList());\n }\n if (typeSplit.includes('video')) {\n accessExts.push(...this.videoExtList());\n }\n if (typeSplit.includes('audio')) {\n accessExts.push(...this.audioExtList());\n }\n this.accessFiles.set(accessExts.map(ext => `.${ext}`).join(','));\n }\n // #endregion\n\n\n // #region FILE OPERATIONS\n protected async handlerSetClassDrag(toogle: boolean) {\n this.uploadRef()?.nativeElement.classList.toggle('libs-ui-components-inputs-upload-drag-over', toogle);\n }\n\n protected async handleUploadFiles(files: Array<File>) {\n if (this.maxTotalSize()) {\n let total = 0;\n\n for (let i = 0; i < files.length; i++) {\n total += files[i].size;\n }\n\n if (this.maxTotalSize() < total) {\n this.notificationService.showCompTypeTextError(this.translateService.instant('i18n_size_not_number_mb', { number: this.maxTotalSize() / 1024 / 1024 }), { timeRemove: 3000 });\n\n return;\n }\n }\n\n let errorExceedsMaxFile = false;\n if (!files || !files.length) {\n return;\n }\n if (!this.multiple() && this.fileList().length && !this.canUploadIfHasExistFile()) {\n return;\n }\n\n const remainFileTotal = this.limitFile() - this.fileList().length;\n if (files.length > remainFileTotal) {\n errorExceedsMaxFile = true;\n this.messageError.set(this.messageTotalFileExceedsError());\n }\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const isImage = isTypeImage(file);\n const isVideo = isTypeVideo(file);\n const isAudio = isTypeAudio(file);\n const newFile: IFile = {\n name: file.name,\n file: file,\n size: getLabelBySizeFile(file.size),\n type: isImage ? 'image' : isVideo ? 'video' : isAudio ? 'audio' : 'document',\n id: uuid()\n };\n if (!(await this.checkValidFileExtension(file))) {\n if (!errorExceedsMaxFile) {\n this.messageError.set(this.multiple() ? this.messageFileUploadError() : this.messageTypeFileError());\n }\n newFile.error = this.messageTypeFileError();\n await this.pushFileInList(file, newFile);\n continue;\n }\n if (!(await this.checkValidFileSize(file))) {\n if (!errorExceedsMaxFile) {\n this.messageError.set(this.multiple() ? this.messageFileUploadError() : this.messageMaxSizeError());\n }\n newFile.error = this.messageMaxSizeError();\n if (!this.multiple() && this.allowShowPushMessageMaxSizeError()) {\n this.notificationService.showCompTypeTextError(this.messageMaxSizeError());\n\n return;\n }\n await this.pushFileInList(file, newFile);\n continue;\n }\n await this.pushFileInList(file, newFile);\n }\n if (this.canSetAvatar() && this.fileList().length && !this.fileList().find(file => file().isAvatar)) {\n this.fileList.update(fileList => {\n const itemImage = fileList.find(file => file().type === 'image');\n if (itemImage) {\n itemImage.update(file => ({ ...file, isAvatar: true }));\n }\n return [...fileList];\n });\n }\n this.outFileChanged.emit(this.fileList());\n this.validate();\n }\n\n private async pushFileInList(file: File, newFile: IFile) {\n newFile.url = await convertFileToBase64_ObjectUrl(file) as string;\n\n this.fileList.update(fileList => {\n fileList.splice(0, this.canUploadIfHasExistFile() ? 1 : 0, signal(newFile));\n return [...fileList];\n });\n }\n\n protected async handlerOpenPreviewFile(item: IFile) {\n if (item.type === 'document') {\n this.previewFileDocument(item);\n return;\n }\n this.previewFileImage(item);\n }\n\n private async previewFileDocument(item: IFile) {\n if (this.previewFileComponentRef) {\n return;\n }\n this.previewFileComponentRef = this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsPreviewFileComponent);\n this.previewFileComponentRef.setInput('data', item);\n this.previewFileComponentRef.setInput('zIndex', this.zIndex() + 1);\n this.previewFileComponentRef.instance.outClose.subscribe(() => {\n this.dynamicComponentService.remove(this.previewFileComponentRef);\n this.previewFileComponentRef = undefined;\n });\n this.dynamicComponentService.addToBody(this.previewFileComponentRef);\n }\n\n private async previewFileImage(item: IFile) {\n if (this.previewFileImageComponentRef) {\n return;\n }\n this.previewFileImageComponentRef = this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsGalleryViewerComponent);\n const url = item.url || item.origin_url;\n this.previewFileImageComponentRef.setInput('images', [{ url }]);\n this.previewFileImageComponentRef.setInput('imageSelected', { url });\n this.previewFileImageComponentRef.setInput('fieldDisplaySrcImage', 'url');\n this.previewFileImageComponentRef.setInput('singleImage', true);\n this.previewFileImageComponentRef.instance.outClose.subscribe(() => {\n this.dynamicComponentService.remove(this.previewFileImageComponentRef);\n this.previewFileImageComponentRef = undefined;\n });\n this.dynamicComponentService.addToBody(this.previewFileImageComponentRef);\n }\n\n protected async handlerEditImage(event: Event, item: WritableSignal<IFile>) {\n event.stopPropagation();\n this.showEditModal(item);\n }\n\n protected async handlerRemoveFile(event: Event, item: WritableSignal<IFile>) {\n event.stopPropagation();\n this.removeFile(item);\n if (this.originFiles().find(file => file().url === item().url)) {\n this.outFileRemoved.emit(item);\n }\n this.validate();\n if (!this.multiple() && this.showPopupUploadWhenHasFileAndModeSingle()) {\n setTimeout(() => {\n this.showUploadPopup();\n }, 0);\n }\n }\n\n protected async removeFile(fileItem: WritableSignal<IFile>) {\n this.fileList.update(fileList => fileList.filter(item => item().id !== fileItem().id));\n if (this.canSetAvatar() && fileItem().isAvatar && this.fileList().length) {\n this.fileList.update(fileList => {\n fileList[0].update(file => ({ ...file, isAvatar: true }));\n\n return [...fileList];\n });\n\n }\n this.outFileChanged.emit(this.fileList());\n }\n\n protected async showEditModal(fileItem: WritableSignal<IFile>) {\n if (this.imageEditorComponentRef) {\n return;\n }\n const fileDataUrl = fileItem().url || fileItem().origin_url || '';\n this.imageEditorComponentRef = this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsImageEditorComponent);\n\n this.imageEditorComponentRef.setInput('imgSrc', fileDataUrl);\n this.imageEditorComponentRef.setInput('zIndex', this.zIndex() + 1);\n this.imageEditorComponentRef.setInput('nameFile', fileItem().name);\n this.imageEditorComponentRef.setInput('aspectRatio', this.aspectRatio());\n this.imageEditorComponentRef.instance.outClose.subscribe(() => {\n this.dynamicComponentService.remove(this.imageEditorComponentRef);\n this.imageEditorComponentRef = undefined;\n });\n\n this.imageEditorComponentRef.instance.outSaveFile.subscribe(async (result: ISaveFile) => {\n const messageError = !(await this.checkValidFileSize(result.file)) ? this.messageMaxSizeError() : undefined;\n const nameFile = fileItem().file?.name || fileItem().name;\n fileItem.update(data => ({ ...data, file: convertBlobToFile(result.file, nameFile), name: nameFile, origin_url: undefined, size: getLabelBySizeFile(result.file.size), error: messageError, url: result.url, isUpdate: true }));\n this.outFileChanged.emit(this.fileList());\n this.imageEditorComponentRef?.instance.outClose.emit({ isClickButtonClose: true });\n });\n this.dynamicComponentService.addToBody(this.imageEditorComponentRef);\n }\n\n protected async checkValidFileExtension(file: File) {\n const extension = getFileExtension(file);\n\n if (!extension) {\n return false;\n }\n const isImage = isTypeImage(file);\n const isVideo = isTypeVideo(file);\n const isAudio = isTypeAudio(file);\n const validImage = isIncludeImageExtList(extension, this.imageExtList());\n const validVideo = isIncludeVideoExtList(extension, this.videoExtList());\n const validAudio = isIncludeAudioExtList(extension, this.audioExtList());\n const validDocument = isIncludeDocumentExtList(extension, this.documentExtList());\n\n const typeSplit = this.fileType().split('_');\n\n if (isImage && typeSplit.includes('image')) {\n return validImage;\n }\n if (isVideo && typeSplit.includes('video')) {\n return validVideo;\n }\n if (isAudio && typeSplit.includes('audio')) {\n return validAudio;\n }\n if (typeSplit.includes('document')) {\n return validDocument;\n }\n\n return false;\n }\n\n protected async checkValidFileSize(file: File | Blob) {\n const isImage = isTypeImage(file);\n const isVideo = isTypeVideo(file);\n const isAudio = isTypeAudio(file);\n const validImage = file.size <= this.maxImageSize();\n const validVideo = file.size <= this.maxVideoSize();\n const validAudio = file.size <= this.maxAudioSize();\n const validDocument = file.size <= this.maxDocumentSize();\n\n const typeSplit = this.fileType().split('_');\n\n if (isImage && typeSplit.includes('image')) {\n return validImage;\n }\n if (isVideo && typeSplit.includes('video')) {\n return validVideo;\n }\n if (isAudio && typeSplit.includes('audio')) {\n return validAudio;\n }\n if (typeSplit.includes('document')) {\n return validDocument;\n }\n\n return false;\n }\n\n protected async validate() {\n if (this.validRequired()?.isRequired && !this.fileList().length) {\n this.messageError.set(this.validRequired()?.message || ERROR_MESSAGE_EMPTY_VALID);\n\n return false;\n }\n if (this.multiple() && this.fileList().length > this.limitFile()) {\n this.messageError.set(this.messageTotalFileExceedsError());\n\n return false;\n }\n const fileError = this.fileList().find(item => item().error);\n\n if (fileError) {\n this.messageError.set(this.multiple() ? this.messageFileUploadError() : fileError().error);\n\n return false;\n }\n this.messageError.set(undefined);\n\n return true;\n }\n\n protected async handlerSetAvatar(event: Event, file: WritableSignal<IFile>) {\n event.stopPropagation();\n\n this.fileList().forEach(item => {\n if (item().id === file().id) {\n item.update(file => ({ ...file, isAvatar: true }));\n return;\n }\n item.update(file => ({ ...file, isAvatar: false }));\n });\n this.outFileChanged.emit(this.fileList());\n }\n\n private async removeAllFile() {\n this.fileList.set([]);\n this.messageError.set(undefined);\n }\n\n protected async handlerDownloadSampleFile(event: Event) {\n event.stopPropagation();\n const config = this.configDownloadSampleFile();\n if (!config) {\n return;\n }\n if (config?.callBack) {\n config.callBack();\n\n return;\n }\n if (config?.url) {\n downloadFileByUrl(config.url, config.title);\n }\n }\n\n private async showUploadPopup() {\n this.uploadInputRef()?.nativeElement.click();\n this.uploadInputRef()?.nativeElement.setAttribute('accept', this.accessFiles());\n }\n\n // #endregion\n\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}","<div class=\"flex flex-col w-full h-full\">\n <div>\n @if (labelConfig();as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft || disable() || readonly() \"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight || disable() || readonly() \"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable() || readonly() \"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable() || readonly() \"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"labelConfig.count\" />\n }\n @if ((!configDownloadSampleFile()?.position || configDownloadSampleFile()?.position === 'top') && configDownloadSampleFile();as configDownloadSampleFile) {\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classLabel]=\"'libs-ui-font-h7m'\"\n [classInclude]=\"'!mb-[8px] !p-0'\"\n [classIconLeft]=\"'libs-ui-icon-attachment before:!text-[12px]'\"\n [label]=\"configDownloadSampleFile?.title || ' '\"\n (outClick)=\"handlerDownloadSampleFile($event)\" />\n }\n @if (multiple() || !showPopupUploadWhenHasFileAndModeSingle() || (!fileList().length && !multiple())) {\n <div #upload\n LibsUiComponentsInputsUploadDirective\n LibsUiComponentsInputsUploadDropFileDirective\n class=\"libs-ui-components-inputs-upload\"\n [class.libs-ui-components-inputs-upload-disable]=\"disable() || readonly() || (!multiple() && fileList().length && !canUploadIfHasExistFile())\"\n [class.libs-ui-components-inputs-upload-readonly]=\"readonly()\"\n [class.libs-ui-components-inputs-upload-error]=\"messageError()\"\n [multiple]=\"multiple()\"\n [accessFiles]=\"accessFiles()\"\n (outUploadFiles)=\"handleUploadFiles($event)\"\n (outUploadFile)=\"handleUploadFiles([$event])\"\n (outDragOver)=\"handlerSetClassDrag(true)\"\n (outDragLeave)=\"handlerSetClassDrag(false)\"\n (outDrop)=\"handlerSetClassDrag(false)\"\n (outDropFiles)=\"handleUploadFiles($event)\"\n (outDropFile)=\"handleUploadFiles([$event])\">\n <div class=\"flex items-center\">\n <div class=\"mr-[16px]\">\n <i class=\"libs-ui-components-inputs-upload-icon libs-ui-icon-file-upload before:!text-[32px]\"></i>\n </div>\n <div class=\"libs-ui-components-inputs-upload-description\">\n <div class=\"mb-[4px] libs-ui-font-h6m\"\n [innerHTML]=\"(configDescriptionInputUpload().message || '') | translate:configDescriptionInputUpload().interpolateParams\">\n </div>\n @for (item of descriptionFormatAndSizeFileComputed(); track item; let last = $last) {\n <div class=\"libs-ui-font-h7r\"\n [class.mb-[4px]]=\"!last\"\n [innerHTML]=\"item.message | translate:item.interpolateParams\">\n </div>\n }\n </div>\n </div>\n @if (multiple()) {\n <input #uploadInput\n class=\"upload-input hidden\"\n type=\"file\"\n name=\"files[]\"\n multiple\n [accept]=\"accessFiles()\" />\n } @else {\n <input #uploadInput\n class=\"upload-input hidden\"\n type=\"file\"\n name=\"files[]\"\n [accept]=\"accessFiles()\" />\n }\n </div>\n }\n @if (messageError() && (multiple() || !showPopupUploadWhenHasFileAndModeSingle() || (!fileList().length && !multiple()))) {\n <div class=\"mt-[8px] text-[#ee2d41] libs-ui-font-h7r\">\n {{ (messageError() || '') | translate:{ value: limitFile() } }}\n </div>\n }\n @if (configDownloadSampleFile()?.position === 'bottom' && configDownloadSampleFile();as configDownloadSampleFile) {\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classLabel]=\"'libs-ui-font-h7m'\"\n [classInclude]=\"'!mt-[8px] !p-0'\"\n [classIconLeft]=\"'libs-ui-icon-attachment before:!text-[12px]'\"\n [label]=\"configDownloadSampleFile.title || ' '\"\n (moClick)=\"handlerDownloadSampleFile($event)\" />\n }\n </div>\n @if (fileList().length) {\n <div LibsUiComponentsScrollOverlayDirective\n class=\"relative w-full h-full px-[10px] libs-ui-components-inputs-upload-view-list {{ classIncludeFileContent() || '' }}\"\n [class.mt-[12px]]=\"multiple() || !showPopupUploadWhenHasFileAndModeSingle()\">\n <ng-content select=\"[label-file]\"></ng-content>\n @for (item of fileList(); track item(); let first = $first) {\n <div class=\"libs-ui-components-inputs-upload-view-list-item {{ classIncludeListItem() || '' }}\"\n [class.libs-ui-components-inputs-upload-file-full]=\"modeDisplayFile() === 'full'\"\n [class.libs-ui-components-inputs-upload-file-short]=\"modeDisplayFile() === 'short'\"\n [class.libs-ui-border-error-general]=\"item().error || (messageError() && showBorderErrorAllItemWhenError())\"\n [class.mt-0]=\"first && !multiple() && !showPopupUploadWhenHasFileAndModeSingle()\">\n\n <div class=\"flex w-full\">\n <div class=\"flex items-center\">\n @if (canSetAvatar() && item().type === 'image') {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classIconLeft]=\"'!mr-0' + (item().isAvatar ? ' libs-ui-icon-check-circle-solid before:!text-[#00bc62]': ' libs-ui-icon-check-circle-outline') + ((disable() || readonly() || item().isUploading || !!item().error) ? ' libs-ui-disable' : '')\"\n [popover]=\"{config:{ content: item().isAvatar ? 'i18n_avatar' : 'i18n_choose_as_your_avatar', zIndex: zIndex()}}\"\n [classInclude]=\"'!mr-[12px] !p-0'\"\n [disable]=\"disable() || readonly() || item().isUploading || !!item().error\"\n (outClick)=\"handlerSetAvatar($event, item)\" />\n }\n </div>\n <div class=\"flex\"\n [class.w-[calc(100%-28px)]]=\"canSetAvatar()\"\n [class.w-full]=\"!canSetAvatar()\">\n @if (modeDisplayFile() === 'full') {\n <libs_ui-components-inputs-upload-avatar [disable]=\"disable() || readonly() \"\n [(item)]=\"item\"\n [showVideoDuration]=\"showVideoDuration()\"\n (outOpenPreview)=\"handlerOpenPreviewFile($event)\" />\n }\n <div class=\"relative w-full\">\n <div class=\"flex absolute w-full h-full flex-col\"\n [class.flex-col]=\"modeDisplayFile() === 'full'\"\n [class.justify-center]=\"modeDisplayFile() === 'full'\"\n [class.items-center]=\"modeDisplayFile() === 'short'\">\n <libs_ui-components-label class=\"flex w-full\"\n [labelLeft]=\"item().name\"\n [zIndexPopover]=\"zIndex() + 1\"\n [labelLeftClass]=\"'libs-ui-font-h6m ' + ((disable() || readonly() || item().isUploading || item().error) ? 'text-[#6a7383]' : 'text-[#071631]')\"\n [classInclude]=\"modeDisplayFile() === 'short' ? '!mb-0' : ''\" />\n\n @if (!ignoreShowSizeFile()) {\n <div class=\"text-[#9ca2ad] libs-ui-font-h7r shrink-0\"\n [class.flex]=\"modeDisplayFile() === 'full'\"\n [class.items-center]=\"modeDisplayFile() === 'short'\"\n [class.ml-[12px]]=\"modeDisplayFile() === 'short'\">\n {{ item().size }}\n </div>\n }\n </div>\n </div>\n @if (item().isUploading && item().percentUploading) {\n <div class=\"flex items-center ml-[16px]\"\n [class.mr-[26px]]=\"modeDisplayFile() === 'full'\">\n <div class=\"w-[120px] h-[4px] rounded-[4px] bg-[#f8f9fa] relative\">\n <div class=\"absolute top-0 left-0 h-[4px] rounded-[4px] bg-[#00bc62]\"\n [style.width.px]=\"(item().percentUploading ?? 0)*1.2\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"flex ml-[16px]\">\n @if (!ignoreIconPreview()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classIconLeft]=\"'libs-ui-icon-eye-outline !mr-0'\"\n [popover]=\"{config:{ content: 'i18n_preview', zIndex: zIndex()+1}}\"\n [classInclude]=\"'!p-0' + (ignoreIconRemove() && !ignoreIconEdit() ? '' : ' !mr-[12px]')\"\n [disable]=\"item().isUploading || disable() || readonly() \"\n (outClick)=\"handlerOpenPreviewFile(item())\" />\n }\n @if (item().type === 'image' && !item().error && !ignoreIconEdit()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classIconLeft]=\"'libs-ui-icon-edit-line !mr-0'\"\n [popover]=\"{config:{ content: 'i18n_edit', zIndex: zIndex()+1}}\"\n [classInclude]=\"'!p-0' + (ignoreIconRemove() ? '' : ' !mr-[12px]')\"\n [disable]=\"item().isUploading || disable() || readonly() \"\n (outClick)=\"handlerEditImage($event, item)\" />\n }\n @if (!ignoreIconRemove()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classIconLeft]=\"'libs-ui-icon-close !mr-0'\"\n [popover]=\"{config: {content: 'i18n_delete', zIndex: zIndex()+1}}\"\n [classInclude]=\"'!p-0'\"\n [disable]=\"item().isUploading || disable() || readonly() \"\n (outClick)=\"handlerRemoveFile($event, item)\" />\n }\n </div>\n </div>\n @if (item().error && (multiple() || showPopupUploadWhenHasFileAndModeSingle())) {\n <div class=\"mt-[8px] text-[#ee2d41] libs-ui-font-h7r\">{{ (item().error || ' ') | translate }}</div>\n }\n }\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil"],"mappings":";;;;;;;;;;;;;;;;;;;;MAMa,4CAA4C,CAAA;AAEvD,IAAA,SAAS,CAAC,QAAgB,EAAA;QACxB,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,KAAK;;AAEd,QAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/B,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AAC1D,YAAA,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC;AAErD,YAAA,OAAO,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,MAAM,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,GAAG,MAAM,CAAA,CAAA,EAAI,MAAM,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,GAAG,MAAM,EAAE;;AAEhG,QAAA,IAAI,QAAQ,IAAI,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;AAEvC,YAAA,OAAO,GAAG,MAAM,CAAA,CAAA,EAAI,MAAM,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,MAAM,CAAE,CAAA,GAAG,MAAM,EAAE;;QAG3D,OAAO,CAAA,EAAA,EAAK,QAAQ,CAAA,CAAE;;wGArBb,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAA5C,4CAA4C,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,8CAAA,EAAA,CAAA;;4FAA5C,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBAJxD,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,8CAA8C;AACpD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCGY,6CAA6C,CAAA;IAExD,SAAS,CAAC,IAAW,EAAE,IAAoE,EAAA;AACzF,QAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAE5C,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,OAAO,KAAK;;QAEd,QAAQ,IAAI;AACV,YAAA,KAAK,OAAO;AAEV,gBAAA,OAAO,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;AAE7C,YAAA,KAAK,OAAO;AAEV,gBAAA,OAAO,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;AAE7C,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,yEAAyE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;AAEjJ,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,mEAAmE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;AAEjJ,YAAA,KAAK,KAAK;gBACR,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;AAE3D,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,+BAA+B,EAAE,2EAA2E,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;AAE9J,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,eAAe,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;;;wGA9BjF,6CAA6C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAA7C,6CAA6C,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,+CAAA,EAAA,CAAA;;4FAA7C,6CAA6C,EAAA,UAAA,EAAA,CAAA;kBAJzD,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,+CAA+C;AACrD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCmBY,2CAA2C,CAAA;AAOiB,IAAA,cAAA;AAN9D,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAS;IAC9B,iBAAiB,GAAG,KAAK,EAAW;IACpC,OAAO,GAAG,KAAK,EAAW;IAC1B,IAAI,GAAG,KAAK,EAAU;IACtB,cAAc,GAAG,MAAM,EAAS;AAEzC,IAAA,WAAA,CAAuE,cAAsB,EAAA;QAAtB,IAAc,CAAA,cAAA,GAAd,cAAc;;IAG3E,MAAM,iBAAiB,CAAC,KAAY,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB;;QAED,KAAgB,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc;;AAG1C,IAAA,iBAAiB,CAAC,KAAY,EAAA;QACtC,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;;AAnB5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2CAA2C,kBAOtB,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAPlD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2CAA2C,qrBC1BxD,ygGAoEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDnDI,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAE,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EAC7C,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gCAAgC,4FAChC,4BAA4B,EAAA,IAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAC5B,4CAA4C,EAC5C,IAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,6CAA6C,iFAC7C,+BAA+B,EAAA,IAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAItB,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBAfvD,SAAS;+BAEE,yCAAyC,EAAA,UAAA,EAEvC,IAAI,EACP,OAAA,EAAA;wBACP,iBAAiB,EAAE,SAAS,EAAE,eAAe;wBAC7C,gCAAgC;wBAChC,4BAA4B;wBAC5B,4CAA4C;wBAC5C,6CAA6C;wBAC7C,+BAA+B;qBAChC,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ygGAAA,EAAA;;0BASlC;;0BAAY,MAAM;2BAAC,6BAA6B;;;AE9BxD,MAAM,sCAAsC,GAAG,CAAC,IAAsB,EAAE,YAAoB,EAAE,YAAoB,EAAE,eAAuB,EAAE,YAAoB,KAA2C;AACjN,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,OAAO,EAAE,+BAA+B;QACxC,iBAAiB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC;KAChE;AACD,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,OAAO,EAAE,+BAA+B;QACxC,iBAAiB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC;KAChE;AACD,IAAA,MAAM,QAAQ,GAAG;AACf,QAAA,OAAO,EAAE,8BAA8B;QACvC,iBAAiB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC;KACnE;AACD,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,OAAO,EAAE,+BAA+B;QACxC,iBAAiB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC;KAChE;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IACjC,MAAM,WAAW,GAAG,EAAE;AAEtB,IAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEzB,IAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEzB,IAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEzB,IAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAClC,QAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAG5B,IAAA,OAAO,WAAW;AACpB,CAAC;;MC5BY,6CAA6C,CAAA;AAa9C,IAAA,UAAA;AAXF,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;AAE9B,IAAA,QAAQ,GAAG,KAAK,CAA+B,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC;IAE7F,WAAW,GAAG,MAAM,EAAU;IAC9B,YAAY,GAAG,MAAM,EAAU;IAC/B,OAAO,GAAG,MAAM,EAAU;IAC1B,YAAY,GAAG,MAAM,EAAU;IAC/B,WAAW,GAAG,MAAM,EAAQ;AAErC,IAAA,WAAA,CACU,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;;IAIpB,eAAe,GAAA;QACb,SAAS,CAAS,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAS,KAAI;YACnH,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,SAAC,CAAC;QACF,SAAS,CAAS,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAS,KAAI;YACpH,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE;YAClB,IAAI,yBAAyB,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBAC/D;;AAEF,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,SAAC,CAAC;QAEF,SAAS,CAAS,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAS,KAAI;YAC/G,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAEpB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAO,CAAC,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAE3G,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACjC;;AAGF,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAEhC;;YAEF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpC,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;;wGAtDhB,6CAA6C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA7C,6CAA6C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA7C,6CAA6C,EAAA,UAAA,EAAA,CAAA;kBALzD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,iDAAiD;AAC3D,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCAY,qCAAqC,CAAA;AACxC,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;AAE9B,IAAA,QAAQ,GAAG,KAAK,CAA+B,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACvF,IAAA,WAAW,GAAG,KAAK,CAA6B,6EAA6E,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,6EAA6E,EAAE,CAAC;IAE1O,cAAc,GAAG,MAAM,EAAU;IACjC,aAAa,GAAG,MAAM,EAAQ;AAE/B,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAGvC,eAAe,GAAA;QACb,SAAS,CAAS,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAS,KAAI;YAChH,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE;YAElB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC1D,YAAA,kBAAkB,CAAC,IAAI,GAAG,MAAM;AAChC,YAAA,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9C,YAAA,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7C,YAAA,kBAAkB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;YACzC,kBAAkB,CAAC,KAAK,EAAE;YAC1B,SAAS,CAAS,kBAAkB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAa,KAAI;gBAC1G,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAO,KAAK,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBACtF,kBAAkB,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;oBAClB;;AAEF,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;oBAE/B;;gBAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,aAAC,CAAC;AACJ,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;;wGAzChB,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MC0BY,qCAAqC,CAAA;;AAExC,IAAA,uBAAuB;AACvB,IAAA,uBAAuB;AACvB,IAAA,4BAA4B;AAC1B,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,IAAA,QAAQ,GAAG,MAAM,CAA+B,EAAE,CAAC;AACnD,IAAA,WAAW,GAAG,MAAM,CAAS,EAAE,CAAC;AAChC,IAAA,YAAY,GAAG,MAAM,CAAqB,SAAS,CAAC;AACpD,IAAA,oCAAoC,GAAG,QAAQ,CAA6C,MAAK;AACzG,QAAA,IAAI,IAAI,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE;AAC/C,YAAA,OAAO,IAAI,CAAC,4BAA4B,EAA2D;;QAErG,OAAO,sCAAsC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACvJ,KAAC,CAAC;AAEM,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;;;AAI9B,IAAA,WAAW,GAAG,KAAK,CAAyE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;AAChI,IAAA,QAAQ,GAAG,KAAK,CAAiD,sBAAsB,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAC7I,QAAQ,GAAG,KAAK,EAAW;AAC3B,IAAA,uBAAuB,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AACxG,IAAA,YAAY,GAAG,KAAK,CAAsB,KAAK,CAAC;AAChD,IAAA,SAAS,GAAG,KAAK,CAA6B,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;IAClF,YAAY,GAAG,KAAK,CAA6B,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IACjH,YAAY,GAAG,KAAK,CAA6B,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IAC/G,YAAY,GAAG,KAAK,CAA6B,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IACjH,eAAe,GAAG,KAAK,CAA6B,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IACpH,YAAY,GAAG,KAAK,CAA6B,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;AACjH,IAAA,YAAY,GAAG,KAAK,CAAiC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC7G,IAAA,YAAY,GAAG,KAAK,CAAiC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC7G,IAAA,eAAe,GAAG,KAAK,CAAiC,eAAe,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;AACtH,IAAA,YAAY,GAAG,KAAK,CAAiC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7G,oBAAoB,GAAG,KAAK,EAAU;IACtC,aAAa,GAAG,KAAK,EAAoB;AACzC,IAAA,OAAO,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AACxF,IAAA,QAAQ,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;IACzF,WAAW,GAAG,KAAK,EAAgB;AACnC,IAAA,MAAM,GAAG,KAAK,CAA6B,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACnF,IAAA,kBAAkB,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AACnG,IAAA,gCAAgC,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AACjH,IAAA,oBAAoB,GAAG,KAAK,CAA6B,6CAA6C,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,6CAA6C,EAAE,CAAC;AACnL,IAAA,mBAAmB,GAAG,KAAK,CAA6B,0CAA0C,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,0CAA0C,EAAE,CAAC;AAC5K,IAAA,sBAAsB,GAAG,KAAK,CAA6B,0BAA0B,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAC/I,IAAA,4BAA4B,GAAG,KAAK,CAA6B,mEAAmE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,mEAAmE,EAAE,CAAC;IACvO,4BAA4B,GAAG,KAAK,CAAmD,EAAE,OAAO,EAAE,8CAA8C,EAAE,EAAE;QAC3J,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,8CAA8C;AACnF,KAAA,CAAC;AAEO,IAAA,eAAe,GAAG,KAAK,CAA6D,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;IAChI,4BAA4B,GAAG,KAAK,EAA8C;AAClF,IAAA,iBAAiB,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;IAClG,WAAW,GAAG,KAAK,EAAU;AAC7B,IAAA,uCAAuC,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AACxH,IAAA,gBAAgB,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AACjG,IAAA,cAAc,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AAC/F,IAAA,iBAAiB,GAAG,KAAK,CAA+B,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAChG,uBAAuB,GAAG,KAAK,EAAU;AACzC,IAAA,+BAA+B,GAAG,KAAK,CAA+B,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;IAChH,wBAAwB,GAAG,KAAK,EAAmC;;;IAInE,QAAQ,GAAG,MAAM,EAAW;IAC5B,cAAc,GAAG,MAAM,EAAgC;IACvD,cAAc,GAAG,MAAM,EAAyB;IAChD,mBAAmB,GAAG,MAAM,EAA+B;;;AAI3D,IAAA,SAAS,GAAG,SAAS,CAAa,QAAQ,CAAC;AAC3C,IAAA,cAAc,GAAG,SAAS,CAAa,aAAa,CAAC;;;AAItD,IAAA,uBAAuB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAC/D,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,IAAA,mBAAmB,GAAG,MAAM,CAAC,yBAAyB,CAAC;;AAG/D,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACtB,SAAS,CAAC,MAAK;AACb,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C,iBAAC,CAAC;;AAEN,SAAC,CAAC;;;IAIJ,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,YAAA,SAAS,EAAE,OAAO,OAAO,EAAE,EAAE,KAAI;gBAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;gBAEpE,IAAI,aAAa,EAAE;AACjB,oBAAA,aAAa,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC;;aAEvH;AACD,YAAA,eAAe,EAAE,OAAO,OAAO,EAAE,EAAE,KAAI;AACrC,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC9B,IAAI,EAAE,EAAE;oBACN,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;oBAEhE,IAAI,SAAS,EAAE;AACb,wBAAA,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;;;aAG5D;YACD,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI;AAClD,SAAA,CAAC;;IAGJ,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,eAAe,EAAE;SACvB,EAAE,CAAC,CAAC;;;;AAKG,IAAA,MAAM,eAAe,GAAA;QAC7B,MAAM,UAAU,GAAa,EAAE;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AAE5C,QAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;;AAEzC,QAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAClC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;;AAE5C,QAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;;AAEzC,QAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;;QAEzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;;IAMxD,MAAM,mBAAmB,CAAC,MAAe,EAAA;AACjD,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,4CAA4C,EAAE,MAAM,CAAC;;IAG9F,MAAM,iBAAiB,CAAC,KAAkB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,KAAK,GAAG,CAAC;AAEb,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,gBAAA,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;;AAGxB,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,EAAE;AAC/B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBAE7K;;;QAIJ,IAAI,mBAAmB,GAAG,KAAK;QAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3B;;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE;YACjF;;AAGF,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;AACjE,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,eAAe,EAAE;YAClC,mBAAmB,GAAG,IAAI;YAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;;AAE5D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACrB,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;AACjC,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;AACjC,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;AACjC,YAAA,MAAM,OAAO,GAAU;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU;gBAC5E,EAAE,EAAE,IAAI;aACT;YACD,IAAI,EAAE,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC/C,IAAI,CAAC,mBAAmB,EAAE;oBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;;AAEtG,gBAAA,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;gBAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;gBACxC;;YAEF,IAAI,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC1C,IAAI,CAAC,mBAAmB,EAAE;oBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;;AAErG,gBAAA,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE;gBAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,gCAAgC,EAAE,EAAE;oBAC/D,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAE1E;;gBAEF,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;gBACxC;;YAEF,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;;AAE1C,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;AACnG,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAG;AAC9B,gBAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;gBAChE,IAAI,SAAS,EAAE;AACb,oBAAA,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;AAEzD,gBAAA,OAAO,CAAC,GAAG,QAAQ,CAAC;AACtB,aAAC,CAAC;;QAEJ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE;;AAGT,IAAA,MAAM,cAAc,CAAC,IAAU,EAAE,OAAc,EAAA;QACrD,OAAO,CAAC,GAAG,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAW;AAEjE,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAG;YAC9B,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3E,YAAA,OAAO,CAAC,GAAG,QAAQ,CAAC;AACtB,SAAC,CAAC;;IAGM,MAAM,sBAAsB,CAAC,IAAW,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC9B;;AAEF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;;IAGrB,MAAM,mBAAmB,CAAC,IAAW,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAChC;;QAEF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,oCAAoC,CAAC;QACzH,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AACnD,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAK;YAC5D,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;AACjE,YAAA,IAAI,CAAC,uBAAuB,GAAG,SAAS;AAC1C,SAAC,CAAC;QACF,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC;;IAG9D,MAAM,gBAAgB,CAAC,IAAW,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,4BAA4B,EAAE;YACrC;;QAEF,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,sCAAsC,CAAC;QAChI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU;AACvC,QAAA,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC;QACpE,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,sBAAsB,EAAE,KAAK,CAAC;QACzE,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;QAC/D,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAK;YACjE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACtE,YAAA,IAAI,CAAC,4BAA4B,GAAG,SAAS;AAC/C,SAAC,CAAC;QACF,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC;;AAGjE,IAAA,MAAM,gBAAgB,CAAC,KAAY,EAAE,IAA2B,EAAA;QACxE,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;;AAGhB,IAAA,MAAM,iBAAiB,CAAC,KAAY,EAAE,IAA2B,EAAA;QACzE,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE;AAC9D,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;QAEhC,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,uCAAuC,EAAE,EAAE;YACtE,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,eAAe,EAAE;aACvB,EAAE,CAAC,CAAC;;;IAIC,MAAM,UAAU,CAAC,QAA+B,EAAA;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AACtF,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AACxE,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAG;gBAC9B,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzD,gBAAA,OAAO,CAAC,GAAG,QAAQ,CAAC;AACtB,aAAC,CAAC;;QAGJ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;IAGjC,MAAM,aAAa,CAAC,QAA+B,EAAA;AAC3D,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAChC;;AAEF,QAAA,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,UAAU,IAAI,EAAE;QACjE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,oCAAoC,CAAC;QAEzH,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;AAC5D,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC;AAClE,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAK;YAC5D,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;AACjE,YAAA,IAAI,CAAC,uBAAuB,GAAG,SAAS;AAC1C,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,MAAiB,KAAI;YACtF,MAAM,YAAY,GAAG,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,SAAS;AAC3G,YAAA,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC,IAAI;YACzD,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/N,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AACpF,SAAC,CAAC;QACF,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC;;IAG5D,MAAM,uBAAuB,CAAC,IAAU,EAAA;AAChD,QAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAExC,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,KAAK;;AAEd,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;AACjC,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;AACjC,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACxE,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACxE,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACxE,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAEjF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QAE5C,IAAI,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAA,OAAO,UAAU;;QAEnB,IAAI,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAA,OAAO,UAAU;;QAEnB,IAAI,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAA,OAAO,UAAU;;AAEnB,QAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAClC,YAAA,OAAO,aAAa;;AAGtB,QAAA,OAAO,KAAK;;IAGJ,MAAM,kBAAkB,CAAC,IAAiB,EAAA;AAClD,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;AACjC,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;AACjC,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;QAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QAE5C,IAAI,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAA,OAAO,UAAU;;QAEnB,IAAI,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAA,OAAO,UAAU;;QAEnB,IAAI,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAA,OAAO,UAAU;;AAEnB,QAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAClC,YAAA,OAAO,aAAa;;AAGtB,QAAA,OAAO,KAAK;;AAGJ,IAAA,MAAM,QAAQ,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AAC/D,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,IAAI,yBAAyB,CAAC;AAEjF,YAAA,OAAO,KAAK;;AAEd,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE;YAChE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;AAE1D,YAAA,OAAO,KAAK;;AAEd,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC;QAE5D,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,SAAS,EAAE,CAAC,KAAK,CAAC;AAE1F,YAAA,OAAO,KAAK;;AAEd,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AAEhC,QAAA,OAAO,IAAI;;AAGH,IAAA,MAAM,gBAAgB,CAAC,KAAY,EAAE,IAA2B,EAAA;QACxE,KAAK,CAAC,eAAe,EAAE;QAEvB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,IAAG;YAC7B,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD;;AAEF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACrD,SAAC,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;AAGnC,IAAA,MAAM,aAAa,GAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;;IAGxB,MAAM,yBAAyB,CAAC,KAAY,EAAA;QACpD,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,EAAE;QAC9C,IAAI,CAAC,MAAM,EAAE;YACX;;AAEF,QAAA,IAAI,MAAM,EAAE,QAAQ,EAAE;YACpB,MAAM,CAAC,QAAQ,EAAE;YAEjB;;AAEF,QAAA,IAAI,MAAM,EAAE,GAAG,EAAE;YACf,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;;;AAIvC,IAAA,MAAM,eAAe,GAAA;QAC3B,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,CAAC,KAAK,EAAE;AAC5C,QAAA,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;;;IAMjF,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;;wGA5chB,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qCAAqC,EClClD,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gCAAA,EAAA,EAAA,iBAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uCAAA,EAAA,EAAA,iBAAA,EAAA,yCAAA,EAAA,UAAA,EAAA,yCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,+BAAA,EAAA,EAAA,iBAAA,EAAA,iCAAA,EAAA,UAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,wBAAA,EAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,o+VAqMA,ED7KY,MAAA,EAAA,CAAA,m8HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,4FACvB,sCAAsC,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,mCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtC,8BAA8B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,6BAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,kCAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC9B,2CAA2C,EAC3C,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sCAAsC,EACtC,QAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qCAAqC,uKACrC,6CAA6C,EAAA,QAAA,EAAA,iDAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIpC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAhBjD,SAAS;AAEE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,EAGhC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,eAAe;wBACvB,sCAAsC;wBACtC,8BAA8B;wBAC9B,2CAA2C;wBAC3C,sCAAsC;wBACtC,qCAAqC;wBACrC;qBACD,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,o+VAAA,EAAA,MAAA,EAAA,CAAA,m8HAAA,CAAA,EAAA;;;AEhCjD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@libs-ui/components-inputs-upload",
3
- "version": "0.2.225",
3
+ "version": "0.2.227",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0",
7
- "@libs-ui/components-spinner": "^0.2.225",
8
- "@libs-ui/icons": "^0.2.225",
9
- "@libs-ui/interfaces-types": "^0.2.225",
10
- "@libs-ui/pipes-security-trust": "^0.2.225",
11
- "@libs-ui/utils": "^0.2.225",
7
+ "@libs-ui/components-spinner": "^0.2.227",
8
+ "@libs-ui/icons": "^0.2.227",
9
+ "@libs-ui/interfaces-types": "^0.2.227",
10
+ "@libs-ui/pipes-security-trust": "^0.2.227",
11
+ "@libs-ui/utils": "^0.2.227",
12
12
  "@ngx-translate/core": "^15.0.0",
13
- "@libs-ui/components-buttons-button": "^0.2.225",
14
- "@libs-ui/components-gallery": "^0.2.225",
15
- "@libs-ui/components-image-editor": "^0.2.225",
16
- "@libs-ui/components-label": "^0.2.225",
17
- "@libs-ui/components-preview-file": "^0.2.225",
18
- "@libs-ui/components-scroll-overlay": "^0.2.225",
19
- "@libs-ui/services-dynamic-component": "^0.2.225",
20
- "@libs-ui/services-notification": "^0.2.225",
13
+ "@libs-ui/components-buttons-button": "^0.2.227",
14
+ "@libs-ui/components-gallery": "^0.2.227",
15
+ "@libs-ui/components-image-editor": "^0.2.227",
16
+ "@libs-ui/components-label": "^0.2.227",
17
+ "@libs-ui/components-preview-file": "^0.2.227",
18
+ "@libs-ui/components-scroll-overlay": "^0.2.227",
19
+ "@libs-ui/services-dynamic-component": "^0.2.227",
20
+ "@libs-ui/services-notification": "^0.2.227",
21
21
  "rxjs": "~7.8.0"
22
22
  },
23
23
  "sideEffects": false,