import { __decorate, __metadata } from "tslib";
import { Directive, Input, HostBinding, forwardRef, ContentChildren, QueryList, IterableDiffers } from '@angular/core';
import { coerceBoolean } from '@eui/base';
import { ECLBaseDirective } from '../ecl-base.directive';
import { EclTagComponent } from '../ecl-tag';
import * as i0 from "@angular/core";
export class EclOrderedListDirective extends ECLBaseDirective {
    constructor() {
        super(...arguments);
        this.cmpClass = true;
    }
}
/** @nocollapse */ /** @nocollapse */ EclOrderedListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclOrderedListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ /** @nocollapse */ EclOrderedListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: EclOrderedListDirective, selector: "[eclOrderedList]", host: { properties: { "class.ecl-ordered-list": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclOrderedListDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[eclOrderedList]'
                }]
        }], propDecorators: { cmpClass: [{
                type: HostBinding,
                args: ['class.ecl-ordered-list']
            }] } });
export class EclOrderedListItemDirective extends ECLBaseDirective {
    constructor() {
        super(...arguments);
        this.cmpClass = true;
    }
}
/** @nocollapse */ /** @nocollapse */ EclOrderedListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclOrderedListItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ /** @nocollapse */ EclOrderedListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: EclOrderedListItemDirective, selector: "[eclOrderedListItem]", host: { properties: { "class.ecl-ordered-list__item": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclOrderedListItemDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[eclOrderedListItem]'
                }]
        }], propDecorators: { cmpClass: [{
                type: HostBinding,
                args: ['class.ecl-ordered-list__item']
            }] } });
export class EclUnorderedListDirective extends ECLBaseDirective {
    constructor() {
        super(...arguments);
        this.cmpClass = true;
        this.isDivider = false;
        this.isNoBullet = false;
    }
}
/** @nocollapse */ /** @nocollapse */ EclUnorderedListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclUnorderedListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ /** @nocollapse */ EclUnorderedListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: EclUnorderedListDirective, selector: "[eclUnorderedList]", inputs: { isDivider: "isDivider", isNoBullet: "isNoBullet" }, host: { properties: { "class.ecl-unordered-list": "this.cmpClass", "class.ecl-unordered-list--divider": "this.isDivider", "class.ecl-unordered-list--no-bullet": "this.isNoBullet" } }, usesInheritance: true, ngImport: i0 });
__decorate([
    coerceBoolean,
    __metadata("design:type", Object)
], EclUnorderedListDirective.prototype, "isDivider", void 0);
__decorate([
    coerceBoolean,
    __metadata("design:type", Object)
], EclUnorderedListDirective.prototype, "isNoBullet", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclUnorderedListDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[eclUnorderedList]'
                }]
        }], propDecorators: { cmpClass: [{
                type: HostBinding,
                args: ['class.ecl-unordered-list']
            }], isDivider: [{
                type: Input
            }, {
                type: HostBinding,
                args: ['class.ecl-unordered-list--divider']
            }], isNoBullet: [{
                type: Input
            }, {
                type: HostBinding,
                args: ['class.ecl-unordered-list--no-bullet']
            }] } });
export class EclUnorderedListItemDirective extends ECLBaseDirective {
    constructor() {
        super(...arguments);
        this.cmpClass = true;
    }
}
/** @nocollapse */ /** @nocollapse */ EclUnorderedListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclUnorderedListItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ /** @nocollapse */ EclUnorderedListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: EclUnorderedListItemDirective, selector: "[eclUnorderedListItem]", host: { properties: { "class.ecl-unordered-list__item": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclUnorderedListItemDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[eclUnorderedListItem]'
                }]
        }], propDecorators: { cmpClass: [{
                type: HostBinding,
                args: ['class.ecl-unordered-list__item']
            }] } });
export class EclDescriptionListDirective extends ECLBaseDirective {
    constructor(differs) {
        super();
        this.differs = differs;
        this.isHorizontal = false;
        this.isTaxonomy = false;
        this.differ = this.differs.find([]).create();
    }
    get cssClasses() {
        return [
            super.getCssClasses('ecl-description-list'),
            this.isHorizontal ? 'ecl-description-list--horizontal' : '',
            this.isTaxonomy ? 'ecl-description-list--taxonomy' : '',
        ].join(' ');
    }
    ngAfterContentInit() {
        this.updateChildElements();
    }
    ngDoCheck() {
        const diff = this.differ.diff(this.eclTagComponents);
        if (diff) {
            diff.forEachAddedItem(change => {
                change.item.class = 'ecl-description-list__tag';
            });
        }
    }
    updateChildElements() {
        if (this.isTaxonomy && this.eclTagComponents) {
            this.eclTagComponents.forEach(eclTagComponent => {
                eclTagComponent.class = 'ecl-description-list__tag';
            });
        }
    }
}
/** @nocollapse */ /** @nocollapse */ EclDescriptionListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclDescriptionListDirective, deps: [{ token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ /** @nocollapse */ EclDescriptionListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: EclDescriptionListDirective, selector: "[eclDescriptionList]", inputs: { isHorizontal: "isHorizontal", isTaxonomy: "isTaxonomy" }, host: { properties: { "class.ecl-description-list--horizontal": "this.isHorizontal", "class.ecl-description-list--taxonomy": "this.isTaxonomy", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclTagComponents", predicate: i0.forwardRef(function () { return EclTagComponent; }), descendants: true }], usesInheritance: true, ngImport: i0 });
__decorate([
    coerceBoolean,
    __metadata("design:type", Boolean)
], EclDescriptionListDirective.prototype, "isHorizontal", void 0);
__decorate([
    coerceBoolean,
    __metadata("design:type", Boolean)
], EclDescriptionListDirective.prototype, "isTaxonomy", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclDescriptionListDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[eclDescriptionList]'
                }]
        }], ctorParameters: function () { return [{ type: i0.IterableDiffers }]; }, propDecorators: { isHorizontal: [{
                type: Input
            }, {
                type: HostBinding,
                args: ['class.ecl-description-list--horizontal']
            }], isTaxonomy: [{
                type: Input
            }, {
                type: HostBinding,
                args: ['class.ecl-description-list--taxonomy']
            }], eclTagComponents: [{
                type: ContentChildren,
                args: [forwardRef(() => EclTagComponent), { descendants: true }]
            }], cssClasses: [{
                type: HostBinding,
                args: ['class']
            }] } });
export class EclDescriptionListTermDirective extends ECLBaseDirective {
    constructor() {
        super(...arguments);
        this.cmpClass = true;
    }
}
/** @nocollapse */ /** @nocollapse */ EclDescriptionListTermDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclDescriptionListTermDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ /** @nocollapse */ EclDescriptionListTermDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: EclDescriptionListTermDirective, selector: "[eclDescriptionListTerm]", host: { properties: { "class.ecl-description-list__term": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclDescriptionListTermDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[eclDescriptionListTerm]'
                }]
        }], propDecorators: { cmpClass: [{
                type: HostBinding,
                args: ['class.ecl-description-list__term']
            }] } });
export class EclDescriptionListDefinitionDirective extends ECLBaseDirective {
    constructor() {
        super(...arguments);
        this.cmpClass = true;
    }
}
/** @nocollapse */ /** @nocollapse */ EclDescriptionListDefinitionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclDescriptionListDefinitionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ /** @nocollapse */ EclDescriptionListDefinitionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: EclDescriptionListDefinitionDirective, selector: "[eclDescriptionListDefinition]", host: { properties: { "class.ecl-description-list__definition": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EclDescriptionListDefinitionDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[eclDescriptionListDefinition]'
                }]
        }], propDecorators: { cmpClass: [{
                type: HostBinding,
                args: ['class.ecl-description-list__definition']
            }] } });
//# sourceMappingURL=data:application/json;base64, 