import * as tslib_1 from "tslib";
import { Output, EventEmitter, Component, ViewContainerRef, Injector, ComponentFactoryResolver, Renderer2, ViewChild, ContentChildren, QueryList, Input, NgZone, ChangeDetectionStrategy } from '@angular/core';
import { Treemap } from "./Treemap";
import { ensureEnum, brushToString, stringToBrush, ensureBool, toSpinal, initializePropertiesFromCss, NamePatcher, fromBrushCollection, toBrushCollection } from "igniteui-angular-core/ES2015/componentUtil";
import { FontInfo } from "igniteui-angular-core/ES2015/FontInfo";
import { AngularRenderer } from "igniteui-angular-core/ES2015/angular-renderer";
import { delegateCombine } from "igniteui-angular-core/ES2015/type";
import { DataChartStylingDefaults } from './DataChartStylingDefaults';
import { IgxTreemapNodeStyleMappingComponent } from './igx-treemap-node-style-mapping-component';
import { TreemapNodeStyleMappingCollection } from './igx-treemap-node-style-mapping-collection';
import { CollectionAdapter } from "igniteui-angular-core/ES2015/componentUtil";
import { NotifyCollectionChangedAction } from "igniteui-angular-core/ES2015/NotifyCollectionChangedAction";
import { TreemapFillScaleMode, TreemapFillScaleMode_$type } from "igniteui-angular-charts/ES2015/TreemapFillScaleMode";
import { TreemapNodeStylingEventArgs } from "igniteui-angular-charts/ES2015/igx-treemap-node-styling-event-args";
import { TreemapOrientation, TreemapOrientation_$type } from './TreemapOrientation';
import { TreemapLayoutType, TreemapLayoutType_$type } from './TreemapLayoutType';
import { TreemapNodePointerEventArgs } from './igx-treemap-node-pointer-event-args';
export const IgxTreemapComponent_PROVIDERS = [];
let IgxTreemapComponent = class IgxTreemapComponent {
    constructor(renderer, _elRef, ngZone, injector, componentFactoryResolver) {
        this.renderer = renderer;
        this._elRef = _elRef;
        this.ngZone = ngZone;
        this.injector = injector;
        this.componentFactoryResolver = componentFactoryResolver;
        /**
        * The style mappings actually present in the chart. Do not directly modify this array.
        * This array's contents can be modified by causing Angular to reproject the child content.
        * Or adding and removing stye mappings from the manual style mapping collection on the styleMappings property.
        */
        this.actualStyleMappings = [];
        this._styleMappings = null;
        this._styleMappingsAdapter = null;
        this._wrapper = null;
        this._root = null;
        this._implementation = null;
        this.__p = null;
        this._hasUserValues = new Set();
        this._stylingContainer = null;
        this._stylingParent = null;
        this._inStyling = false;
        this._nodeStyling = null;
        this._nodePointerOver = null;
        this._nodePointerEnter = null;
        this._nodePointerLeave = null;
        this._nodePointerPressed = null;
        this._nodePointerReleased = null;
        this._zoneRunner = null;
        if (this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this));
        }
        this._implementation = this.createImplementation();
        if (renderer) {
            this.container = renderer.createElement("div");
            renderer.appendChild(_elRef.element.nativeElement, this.container);
            renderer.setStyle(this.container, "display", "block");
            renderer.setStyle(this.container, "width", "100%");
            renderer.setStyle(this.container, "height", "100%");
        }
        var root;
        root = this.container;
        if (this.container != null) {
            root = this.container;
        }
        if (root && root.nativeElement) {
            root = root.nativeElement;
        }
        this._root = root;
        var treemap = this.i;
        this._treeMap = treemap;
        this._styleMappingsAdapter = new CollectionAdapter([], this.i.styleMappings, this.actualStyleMappings, (c) => c.i, (i) => {
            if (this._root && this._root.parentElement) {
                i._styling(this._root, this, this);
            }
        }, (i) => { });
        if (renderer) {
            var ren = new AngularRenderer(root, this.renderer, window.document, this.ngZone, true, DataChartStylingDefaults);
            this._wrapper = ren;
            treemap.provideContainer(ren);
            treemap.notifySizeChanged();
            ren.addSizeWatcher(() => {
                this._treeMap.notifySizeChanged();
            });
        }
    }
    set height(value) {
        this._height = value;
        this.renderer.setStyle(this._elRef.element.nativeElement, "height", value);
        this._treeMap.notifySizeChanged();
    }
    get height() {
        return this._height;
    }
    set width(value) {
        this._width = value;
        this.renderer.setStyle(this._elRef.element.nativeElement, "width", value);
        this._treeMap.notifySizeChanged();
    }
    get width() {
        return this._width;
    }
    /**
     * A collection or manually added axes for the chart.
    */
    get styleMappings() {
        if (this._styleMappings === null) {
            let coll = new TreemapNodeStyleMappingCollection();
            let inner = coll._innerColl;
            inner.addListener((sender, e) => {
                switch (e.action) {
                    case NotifyCollectionChangedAction.Add:
                        this._styleMappingsAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
                        break;
                    case NotifyCollectionChangedAction.Remove:
                        this._styleMappingsAdapter.removeManualItemAt(e.oldStartingIndex);
                        break;
                    case NotifyCollectionChangedAction.Replace:
                        this._styleMappingsAdapter.removeManualItemAt(e.oldStartingIndex);
                        this._styleMappingsAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
                        break;
                    case NotifyCollectionChangedAction.Reset:
                        this._styleMappingsAdapter.clearManualItems();
                        break;
                }
            });
            this._styleMappings = coll;
        }
        return this._styleMappings;
    }
    // supports angular themes or custom properties set in CSS
    updateStyle() {
        this._styling(this._root, this);
    }
    ngOnDestroy() {
        this._treeMap.destroy();
        this._wrapper.destroy();
    }
    ngAfterContentInit() {
        this._styleMappingsAdapter.updateQuery(this.contentStyleMappings);
        this._styling(this._root, this);
        if (this.actualStyleMappings && this.actualStyleMappings.length > 0) {
            var currStyleMapping = this.actualStyleMappings;
            for (var i = 0; i < currStyleMapping.length; i++) {
                currStyleMapping[i]._styling(this._root, this, this);
            }
        }
        this.i.notifySizeChanged();
        this.updateStyle();
    }
    createImplementation() {
        return new Treemap();
    }
    get i() {
        return this._implementation;
    }
    /**
 * Gets or sets path to use to get the values from the items.
*/
    get valueMemberPath() {
        return this.i.d7;
    }
    set valueMemberPath(v) {
        this.i.d7 = v;
    }
    /**
     * Gets or sets the root title to use for breadcrumbs.
    */
    get rootTitle() {
        return this.i.dx;
    }
    set rootTitle(v) {
        this.i.dx = v;
    }
    /**
     * Gets or sets the root title to use for breadcrumbs.
    */
    get breadcrumbSequence() {
        return this.i.ct;
    }
    set breadcrumbSequence(v) {
        this.i.ct = v;
    }
    /**
     * Gets or sets the path to use to get the Parent of the items.
    */
    get parentIdMemberPath() {
        return this.i.du;
    }
    set parentIdMemberPath(v) {
        this.i.du = v;
    }
    /**
     * Gets or sets the path to use to get the Label of the items.
    */
    get labelMemberPath() {
        return this.i.dm;
    }
    set labelMemberPath(v) {
        this.i.dm = v;
    }
    /**
     * Gets or sets the path to use to get the custom value of the items.
    */
    get customValueMemberPath() {
        return this.i.cw;
    }
    set customValueMemberPath(v) {
        this.i.cw = v;
    }
    /**
     * Gets or sets the path to use to get the id of the items.
    */
    get idMemberPath() {
        return this.i.dh;
    }
    set idMemberPath(v) {
        this.i.dh = v;
    }
    /**
     * Gets or sets the (possibly hierarchical) data to assign to the TreeMap.
    */
    get dataSource() {
        return this.i.dataSource;
    }
    set dataSource(v) {
        this.i.dataSource = v;
    }
    /**
     * Gets or sets brushes to use for the fill scale.
    */
    get fillBrushes() {
        return fromBrushCollection(this.i.b);
    }
    set fillBrushes(v) {
        this.i.b = toBrushCollection(v);
    }
    /**
     * Gets or sets mode to use for the fill scale.
    */
    get fillScaleMode() {
        return this.i.d;
    }
    set fillScaleMode(v) {
        this.i.d = ensureEnum(TreemapFillScaleMode_$type, v);
    }
    /**
     * Gets or sets whether the fill scale is logarithmic.
    */
    get isFillScaleLogarithmic() {
        return this.i.a6;
    }
    set isFillScaleLogarithmic(v) {
        this.i.a6 = ensureBool(v);
    }
    /**
     * Gets or sets the logarithm base to use if the fill scale is logarithmic.
    */
    get fillScaleLogarithmBase() {
        return this.i.ci;
    }
    set fillScaleLogarithmBase(v) {
        this.i.ci = +v;
    }
    /**
     * Gets or sets the minimum value to use for the fill scale.
    */
    get fillScaleMinimumValue() {
        return this.i.bz;
    }
    set fillScaleMinimumValue(v) {
        this.i.bz = +v;
    }
    /**
     * Gets or sets the maximum value to use for the fill scale.
    */
    get fillScaleMaximumValue() {
        return this.i.by;
    }
    set fillScaleMaximumValue(v) {
        this.i.by = +v;
    }
    /**
     * Gets or sets the background to use for the header when it is hovered.
    */
    get headerHoverBackground() {
        return brushToString(this.i.fm);
    }
    set headerHoverBackground(v) {
        this.i.fm = stringToBrush(v);
    }
    /**
     * Gets or sets the background to use for the header.
    */
    get headerBackground() {
        return brushToString(this.i.fl);
    }
    set headerBackground(v) {
        this.i.fl = stringToBrush(v);
    }
    /**
     * Gets or sets the text color to use for the header.
    */
    get headerTextColor() {
        return brushToString(this.i.fo);
    }
    set headerTextColor(v) {
        this.i.fo = stringToBrush(v);
    }
    /**
     * Gets or sets the text color to use for the nodes.
    */
    get textColor() {
        return brushToString(this.i.fq);
    }
    set textColor(v) {
        this.i.fq = stringToBrush(v);
    }
    /**
     * Gets or sets the text color to use for the header.
    */
    get headerHoverTextColor() {
        return brushToString(this.i.fn);
    }
    set headerHoverTextColor(v) {
        this.i.fn = stringToBrush(v);
    }
    /**
     * Gets or sets the font to use for content nodes
    */
    get textStyle() {
        if (this.i.an == null) {
            return null;
        }
        return this.i.an.fontString;
    }
    set textStyle(v) {
        let fi = new FontInfo();
        fi.fontString = v;
        this.i.an = fi;
    }
    /**
     * Gets or sets the font to use for header nodes
    */
    get headerTextStyle() {
        if (this.i.am == null) {
            return null;
        }
        return this.i.am.fontString;
    }
    set headerTextStyle(v) {
        let fi = new FontInfo();
        fi.fontString = v;
        this.i.am = fi;
    }
    /**
     * Gets or sets the left margin to use for the header.
    */
    get headerLabelLeftMargin() {
        return this.i.b8;
    }
    set headerLabelLeftMargin(v) {
        this.i.b8 = +v;
    }
    /**
     * Gets or sets the top margin to use for the header.
    */
    get headerLabelTopMargin() {
        return this.i.ca;
    }
    set headerLabelTopMargin(v) {
        this.i.ca = +v;
    }
    /**
     * Gets or sets the right margin to use for the header.
    */
    get headerLabelRightMargin() {
        return this.i.b9;
    }
    set headerLabelRightMargin(v) {
        this.i.b9 = +v;
    }
    /**
     * Gets or sets the bottom margin to use for the header.
    */
    get headerLabelBottomMargin() {
        return this.i.b7;
    }
    set headerLabelBottomMargin(v) {
        this.i.b7 = +v;
    }
    /**
     * Gets or sets the height to use for the header.
    */
    get headerHeight() {
        return this.i.b6;
    }
    set headerHeight(v) {
        this.i.b6 = +v;
    }
    /**
     * Gets or sets the outline to use for the nodes.
    */
    get outline() {
        return brushToString(this.i.fp);
    }
    set outline(v) {
        this.i.fp = stringToBrush(v);
    }
    /**
     * Gets or sets the stroke thickness to use for the node outline.
    */
    get strokeThickness() {
        return this.i.cd;
    }
    set strokeThickness(v) {
        this.i.cd = +v;
    }
    /**
     * Gets or sets the orientation to use for the stripped and slice and dice layout types.
    */
    get layoutOrientation() {
        return this.i.z;
    }
    set layoutOrientation(v) {
        this.i.z = ensureEnum(TreemapOrientation_$type, v);
    }
    /**
     * Gets or sets the type of layout to use for the nodes.
    */
    get layoutType() {
        return this.i.j;
    }
    set layoutType(v) {
        this.i.j = ensureEnum(TreemapLayoutType_$type, v);
    }
    /**
     * Gets or sets the minimum size (width or height) to display a node.
    */
    get minimumDisplaySize() {
        return this.i.cb;
    }
    set minimumDisplaySize(v) {
        this.i.cb = +v;
    }
    /**
     * Gets or sets the number of milliseconds over which changes to the gauge should be animated.
    */
    get transitionDuration() {
        return this.i.ck;
    }
    set transitionDuration(v) {
        this.i.ck = +v;
    }
    /**
     * Gets or sets the scaling value used to affect the pixel density of the control.
     * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
     * to appear blurry.
    */
    get pixelScalingRatio() {
        return this.i.cc;
    }
    set pixelScalingRatio(v) {
        this.i.cc = +v;
    }
    get actualPixelScalingRatio() {
        return this.i.bw;
    }
    set actualPixelScalingRatio(v) {
        this.i.bw = +v;
    }
    get animating() {
        return this.i.a2;
    }
    get hasUserValues() {
        return this._hasUserValues;
    }
    __m(propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    }
    _styling(container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        let genericPrefix = "";
        let typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("TreemapComponent");
        let additionalPrefixes = [];
        let prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        let b = this.i.$type.baseType;
        while (b && b.name != "Object" &&
            b.name != "Base" &&
            b.name != "Control" &&
            b.Name != "DependencyObject" &&
            b.Name != "FrameworkElement") {
            typeName = b.name;
            if (typeName.indexOf("Xam") === 0) {
                typeName = typeName.substring(3);
            }
            let basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            let parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            let parentPrefix = toSpinal(parentTypeName);
            additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-");
            additionalPrefixes.push(parentPrefix + "-" + prefix + "-");
        }
        initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes);
        if (this._otherStyling) {
            this._otherStyling(container, component, parent);
        }
        this._inStyling = false;
    }
    /**
 * Returns visuals as a serialized string.

*/
    exportSerializedVisualData() {
        let iv = this.i.cy();
        return (iv);
    }
    markDirty() {
        this.i.ei();
    }
    onDetachedFromUI() {
        this.i.onDetachedFromUI();
    }
    onAttachedToUI() {
        this.i.onAttachedToUI();
    }
    flush() {
        this.i.eg();
    }
    notifySetItem(source_, index, oldItem, newItem) {
        this.i.em(source_, index, oldItem, newItem);
    }
    /**
     * Manually notifies the treemap's data source that the data it has bound to has been cleared and needs to be re-examined.
     * This should not be called if the data that the pie chart is bound to is already observable.
    
    * @param source_  * The data source.
    */
    notifyClearItems(source_) {
        this.i.ej(source_);
    }
    notifyInsertItem(source_, index, newItem) {
        this.i.ek(source_, index, newItem);
    }
    notifyRemoveItem(source_, index, oldItem) {
        this.i.el(source_, index, oldItem);
    }
    /**
     * Fired when a node is being styled. Provides an opportunity to customize node styling.
    */
    get nodeStyling() {
        if (this._nodeStyling == null) {
            this._nodeStyling = new EventEmitter();
            this.i.nodeStyling = delegateCombine(this.i.nodeStyling, (o, e) => {
                this._runInZone(() => {
                    let outerArgs = new TreemapNodeStylingEventArgs();
                    outerArgs._provideImplementation(e);
                    if (this.beforeNodeStyling) {
                        this.beforeNodeStyling(this, outerArgs);
                    }
                    this._nodeStyling.emit({
                        sender: this,
                        args: outerArgs
                    });
                });
            });
        }
        return this._nodeStyling;
    }
    /**
     * Fired with the pointer is moving over a node.
    */
    get nodePointerOver() {
        if (this._nodePointerOver == null) {
            this._nodePointerOver = new EventEmitter();
            this.i.nodePointerOver = delegateCombine(this.i.nodePointerOver, (o, e) => {
                let outerArgs = new TreemapNodePointerEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeNodePointerOver) {
                    this.beforeNodePointerOver(this, outerArgs);
                }
                this._nodePointerOver.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._nodePointerOver;
    }
    /**
     * Fired when the pointer enters a node.
    */
    get nodePointerEnter() {
        if (this._nodePointerEnter == null) {
            this._nodePointerEnter = new EventEmitter();
            this.i.nodePointerEnter = delegateCombine(this.i.nodePointerEnter, (o, e) => {
                let outerArgs = new TreemapNodePointerEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeNodePointerEnter) {
                    this.beforeNodePointerEnter(this, outerArgs);
                }
                this._nodePointerEnter.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._nodePointerEnter;
    }
    /**
     * Fired when the pointer leaved a node.
    */
    get nodePointerLeave() {
        if (this._nodePointerLeave == null) {
            this._nodePointerLeave = new EventEmitter();
            this.i.nodePointerLeave = delegateCombine(this.i.nodePointerLeave, (o, e) => {
                let outerArgs = new TreemapNodePointerEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeNodePointerLeave) {
                    this.beforeNodePointerLeave(this, outerArgs);
                }
                this._nodePointerLeave.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._nodePointerLeave;
    }
    /**
     * Fired when the pointer is pressed on a node.
    */
    get nodePointerPressed() {
        if (this._nodePointerPressed == null) {
            this._nodePointerPressed = new EventEmitter();
            this.i.nodePointerPressed = delegateCombine(this.i.nodePointerPressed, (o, e) => {
                this._runInZone(() => {
                    let outerArgs = new TreemapNodePointerEventArgs();
                    outerArgs._provideImplementation(e);
                    if (this.beforeNodePointerPressed) {
                        this.beforeNodePointerPressed(this, outerArgs);
                    }
                    this._nodePointerPressed.emit({
                        sender: this,
                        args: outerArgs
                    });
                });
            });
        }
        return this._nodePointerPressed;
    }
    /**
     * Fired when the pointer is released on a node.
    */
    get nodePointerReleased() {
        if (this._nodePointerReleased == null) {
            this._nodePointerReleased = new EventEmitter();
            this.i.nodePointerReleased = delegateCombine(this.i.nodePointerReleased, (o, e) => {
                this._runInZone(() => {
                    let outerArgs = new TreemapNodePointerEventArgs();
                    outerArgs._provideImplementation(e);
                    if (this.beforeNodePointerReleased) {
                        this.beforeNodePointerReleased(this, outerArgs);
                    }
                    this._nodePointerReleased.emit({
                        sender: this,
                        args: outerArgs
                    });
                });
            });
        }
        return this._nodePointerReleased;
    }
    _runInZone(act) {
        if (this._zoneRunner != null) {
            this._zoneRunner(act);
        }
        else {
            act();
        }
    }
};
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "height", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "width", null);
tslib_1.__decorate([
    ViewChild("dynamicContent", { read: ViewContainerRef, static: true }),
    tslib_1.__metadata("design:type", ViewContainerRef)
], IgxTreemapComponent.prototype, "_dynamicContent", void 0);
tslib_1.__decorate([
    ContentChildren(IgxTreemapNodeStyleMappingComponent),
    tslib_1.__metadata("design:type", QueryList)
], IgxTreemapComponent.prototype, "contentStyleMappings", void 0);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "valueMemberPath", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "rootTitle", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "breadcrumbSequence", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "parentIdMemberPath", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "labelMemberPath", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "customValueMemberPath", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "idMemberPath", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Array),
    tslib_1.__metadata("design:paramtypes", [Array])
], IgxTreemapComponent.prototype, "dataSource", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Array),
    tslib_1.__metadata("design:paramtypes", [Array])
], IgxTreemapComponent.prototype, "fillBrushes", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "fillScaleMode", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Boolean),
    tslib_1.__metadata("design:paramtypes", [Boolean])
], IgxTreemapComponent.prototype, "isFillScaleLogarithmic", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "fillScaleLogarithmBase", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "fillScaleMinimumValue", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "fillScaleMaximumValue", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "headerHoverBackground", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "headerBackground", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "headerTextColor", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "textColor", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "headerHoverTextColor", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "textStyle", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "headerTextStyle", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "headerLabelLeftMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "headerLabelTopMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "headerLabelRightMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "headerLabelBottomMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "headerHeight", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxTreemapComponent.prototype, "outline", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "strokeThickness", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "layoutOrientation", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "layoutType", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "minimumDisplaySize", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "transitionDuration", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "pixelScalingRatio", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxTreemapComponent.prototype, "actualPixelScalingRatio", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxTreemapComponent.prototype, "nodeStyling", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxTreemapComponent.prototype, "nodePointerOver", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxTreemapComponent.prototype, "nodePointerEnter", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxTreemapComponent.prototype, "nodePointerLeave", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxTreemapComponent.prototype, "nodePointerPressed", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxTreemapComponent.prototype, "nodePointerReleased", null);
IgxTreemapComponent = tslib_1.__decorate([
    Component({
        selector: 'igx-treemap',
        template: ``,
        changeDetection: ChangeDetectionStrategy.OnPush,
        providers: IgxTreemapComponent_PROVIDERS,
        host: { 'class': 'ig-treemap igx-treemap' },
        styles: [`
		:host {
			display: block;
		}
	`]
    }),
    tslib_1.__metadata("design:paramtypes", [Renderer2,
        ViewContainerRef,
        NgZone,
        Injector,
        ComponentFactoryResolver])
], IgxTreemapComponent);
export { IgxTreemapComponent };
//# sourceMappingURL=igx-treemap-component.js.map