var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
import { Directive, ViewContainerRef, ContentChildren } from '@angular/core';
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-ng-base';
var input = ['name', 'size', 'type'];
/**
 * 'e-files' directive represent a file of angular uploader
 * It must be contained in a Uploader component(`ejs-uploader`).
 * ```html
 * <ejs-uploader id='fileupload' multiple=true>
 *   <e-files>
 *    <e-file name='Java' size=23000 type='pdf'></e-file>
 *    <e-file name='C++' size=30000 type='.docx'></e-file>
 *   </e-files>
 * </ejs-uploader>
 * ```
 */
var UploadedFilesDirective = /** @class */ (function (_super) {
    __extends(UploadedFilesDirective, _super);
    function UploadedFilesDirective(viewContainerRef) {
        var _this = _super.call(this) || this;
        _this.viewContainerRef = viewContainerRef;
        setValue('currentInstance', _this, _this.viewContainerRef);
        return _this;
    }
    UploadedFilesDirective.decorators = [
        { type: Directive, args: [{
                    selector: 'e-files>e-uploadedfiles',
                    inputs: input,
                    queries: {}
                },] },
    ];
    /** @nocollapse */
    UploadedFilesDirective.ctorParameters = function () { return [
        { type: ViewContainerRef, },
    ]; };
    return UploadedFilesDirective;
}(ComplexBase));
export { UploadedFilesDirective };
/**
 * UploadedFiles Array Directive
 * @private
 */
var FilesDirective = /** @class */ (function (_super) {
    __extends(FilesDirective, _super);
    function FilesDirective() {
        return _super.call(this, 'files') || this;
    }
    FilesDirective.decorators = [
        { type: Directive, args: [{
                    selector: 'ejs-uploader>e-files',
                    queries: {
                        children: new ContentChildren(UploadedFilesDirective)
                    },
                },] },
    ];
    /** @nocollapse */
    FilesDirective.ctorParameters = function () { return []; };
    return FilesDirective;
}(ArrayBase));
export { FilesDirective };
//# sourceMappingURL=files.directive.js.map