import * as i0 from '@angular/core';
import { Directive, Input, HostBinding, NgModule } from '@angular/core';
import { isNotNil } from '@angular-ru/cdk/utils';

class AbstractFlexLayoutDirective {
    get classList() {
        return this.elementRef.nativeElement.classList;
    }
}
/** @nocollapse */ AbstractFlexLayoutDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractFlexLayoutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ AbstractFlexLayoutDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractFlexLayoutDirective, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractFlexLayoutDirective, decorators: [{
            type: Directive
        }] });

class FlexBottomIndentDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
        this.bottomIndent = null;
    }
    ngAfterViewInit() {
        this.classList.add(`flex-bottom-indent`);
    }
}
/** @nocollapse */ FlexBottomIndentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexBottomIndentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexBottomIndentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexBottomIndentDirective, selector: "[flex-bottom-indent]", inputs: { bottomIndent: ["flex-bottom-indent", "bottomIndent"] }, host: { properties: { "style.margin-bottom.px": "this.bottomIndent" } }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexBottomIndentDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-bottom-indent]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { bottomIndent: [{
                type: Input,
                args: ['flex-bottom-indent']
            }, {
                type: HostBinding,
                args: ['style.margin-bottom.px']
            }] } });

class FlexColumnDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
        // eslint-disable-next-line @angular-eslint/no-input-rename
        this.flexDirection = null;
    }
    ngAfterViewInit() {
        if (isNotNil(this.flexDirection)) {
            this.elementRef.nativeElement.style.flexDirection = this.flexDirection;
        }
        this.classList.add(`flex-column`);
    }
}
/** @nocollapse */ FlexColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexColumnDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexColumnDirective, selector: "[flex-column]", inputs: { flexDirection: ["flex-direction", "flexDirection"] }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexColumnDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-column]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { flexDirection: [{
                type: Input,
                args: ['flex-direction']
            }] } });

/* eslint-disable @angular-eslint/no-input-rename */
class FlexContainerDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
        this.center = false;
        this.noWrap = false;
        this.fullWidth = false;
    }
    ngAfterViewInit() {
        this.classList.add(`flex-container`);
        if (this.center !== false) {
            this.classList.add(`flex-container--center`);
        }
        if (this.noWrap !== false) {
            this.classList.add(`flex-container__nowrap`);
        }
        if (this.fullWidth !== false) {
            this.classList.add(`flex-container__full-width`);
        }
    }
}
/** @nocollapse */ FlexContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexContainerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexContainerDirective, selector: "[flex-container]", inputs: { center: ["flex-center", "center"], noWrap: ["no-wrap", "noWrap"], fullWidth: ["full-width", "fullWidth"] }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexContainerDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-container]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { center: [{
                type: Input,
                args: ['flex-center']
            }], noWrap: [{
                type: Input,
                args: ['no-wrap']
            }], fullWidth: [{
                type: Input,
                args: ['full-width']
            }] } });

class FlexEndDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
    }
    ngAfterViewInit() {
        this.classList.add(`flex-end`);
    }
}
/** @nocollapse */ FlexEndDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexEndDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexEndDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexEndDirective, selector: "[flex-end]", usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexEndDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-end]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });

class FlexFullWidthDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
    }
    ngAfterViewInit() {
        this.classList.add(`flex__full-width`);
    }
}
/** @nocollapse */ FlexFullWidthDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexFullWidthDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexFullWidthDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexFullWidthDirective, selector: "[flex-full-width]", usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexFullWidthDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-full-width]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });

class FlexInlineDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
    }
    ngAfterViewInit() {
        this.classList.add(`flex-inline`);
    }
}
/** @nocollapse */ FlexInlineDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexInlineDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexInlineDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexInlineDirective, selector: "[flex-inline]", usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexInlineDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-inline]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });

/* eslint-disable @angular-eslint/no-input-rename */
class FlexItemDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
        this.wide = false;
        this.equalWidth = false;
    }
    ngAfterViewInit() {
        this.classList.add(`flex__item`);
        if (this.wide !== false) {
            this.classList.add(`flex__item--wide`);
        }
        if (this.equalWidth !== false) {
            this.classList.add(`flex__item--equal-width`);
        }
    }
}
/** @nocollapse */ FlexItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexItemDirective, selector: "[flex-item]", inputs: { wide: ["flex-wide", "wide"], equalWidth: ["flex-equal", "equalWidth"] }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexItemDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-item]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { wide: [{
                type: Input,
                args: ['flex-wide']
            }], equalWidth: [{
                type: Input,
                args: ['flex-equal']
            }] } });

class FlexJustifyNormalDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
    }
    ngAfterViewInit() {
        this.classList.add(`flex-justify-normal`);
    }
}
/** @nocollapse */ FlexJustifyNormalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexJustifyNormalDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexJustifyNormalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexJustifyNormalDirective, selector: "[flex-justify-normal]", usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexJustifyNormalDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-justify-normal]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });

class FlexNoneDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
    }
    ngAfterViewInit() {
        this.classList.add(`flex-none`);
    }
}
/** @nocollapse */ FlexNoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexNoneDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexNoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexNoneDirective, selector: "[flex-none]", usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexNoneDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-none]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });

class FlexSpaceBetweenDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
    }
    ngAfterViewInit() {
        this.classList.add(`flex-space-between`);
    }
}
/** @nocollapse */ FlexSpaceBetweenDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexSpaceBetweenDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexSpaceBetweenDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexSpaceBetweenDirective, selector: "[flex-space-between]", usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexSpaceBetweenDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-space-between]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });

class FlexStartDirective extends AbstractFlexLayoutDirective {
    constructor(elementRef) {
        super();
        this.elementRef = elementRef;
    }
    ngAfterViewInit() {
        this.classList.add(`flex-start`);
    }
}
/** @nocollapse */ FlexStartDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexStartDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ FlexStartDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: FlexStartDirective, selector: "[flex-start]", usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexStartDirective, decorators: [{
            type: Directive,
            args: [{ selector: '[flex-start]' }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });

const DECLARATIONS = [
    FlexContainerDirective,
    FlexNoneDirective,
    FlexColumnDirective,
    FlexItemDirective,
    FlexEndDirective,
    FlexStartDirective,
    FlexInlineDirective,
    FlexFullWidthDirective,
    FlexJustifyNormalDirective,
    FlexSpaceBetweenDirective,
    FlexBottomIndentDirective
];
class FlexLayoutModule {
}
/** @nocollapse */ FlexLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
/** @nocollapse */ FlexLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexLayoutModule, declarations: [FlexContainerDirective,
        FlexNoneDirective,
        FlexColumnDirective,
        FlexItemDirective,
        FlexEndDirective,
        FlexStartDirective,
        FlexInlineDirective,
        FlexFullWidthDirective,
        FlexJustifyNormalDirective,
        FlexSpaceBetweenDirective,
        FlexBottomIndentDirective], exports: [FlexContainerDirective,
        FlexNoneDirective,
        FlexColumnDirective,
        FlexItemDirective,
        FlexEndDirective,
        FlexStartDirective,
        FlexInlineDirective,
        FlexFullWidthDirective,
        FlexJustifyNormalDirective,
        FlexSpaceBetweenDirective,
        FlexBottomIndentDirective] });
/** @nocollapse */ FlexLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexLayoutModule });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: FlexLayoutModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: DECLARATIONS,
                    exports: DECLARATIONS
                }]
        }] });

/**
 * Generated bundle index. Do not edit.
 */

export { FlexBottomIndentDirective, FlexColumnDirective, FlexContainerDirective, FlexEndDirective, FlexFullWidthDirective, FlexInlineDirective, FlexItemDirective, FlexJustifyNormalDirective, FlexLayoutModule, FlexNoneDirective, FlexSpaceBetweenDirective, FlexStartDirective };
//# sourceMappingURL=angular-ru-cdk-flex-layout.mjs.map
