UNPKG

igniteui-webcomponents-charts

Version:

Ignite UI Web Components charting components for building rich data visualizations using TypeScript APIs.

1,670 lines 60.3 kB
import { __extends, __values } from "tslib";
import { Treemap } from "./Treemap";
import { toPoint, ensureEnum, brushToString, stringToBrush, ensureBool, initializePropertiesFromCss, NamePatcher, toSpinal, fromBrushCollection, toBrushCollection, brushCollectionToString, enumToString, getAllPropertyNames, fromSpinal } from "igniteui-webcomponents-core";
import { FontInfo } from "igniteui-webcomponents-core";
import { WebComponentRenderer } from "igniteui-webcomponents-core";
import { delegateCombine, delegateRemove } from "igniteui-webcomponents-core";
import { DataChartStylingDefaults } from './DataChartStylingDefaults';
import { IgcTreemapNodeStyleMappingComponent } from './igc-treemap-node-style-mapping-component';
import { IgcTreemapNodeStyleMappingCollection } from './igc-treemap-node-style-mapping-collection';
import { CollectionAdapter } from "igniteui-webcomponents-core";
import { NotifyCollectionChangedAction } from "igniteui-webcomponents-core";
import { TreemapFillScaleMode_$type } from "./TreemapFillScaleMode";
import { IgcTreemapNodeStylingEventArgs } from "./igc-treemap-node-styling-event-args";
import { TypeRegistrar } from "igniteui-webcomponents-core";
import { RegisterElementHelper } from "igniteui-webcomponents-core";
import { TreemapOrientation_$type } from './TreemapOrientation';
import { TreemapLayoutType_$type } from './TreemapLayoutType';
import { IgcTreemapNodePointerEventArgs } from './igc-treemap-node-pointer-event-args';
import { TreemapHeaderDisplayMode_$type } from './TreemapHeaderDisplayMode';
import { HorizontalAlignment_$type } from "igniteui-webcomponents-core";
import { VerticalAlignment_$type } from "igniteui-webcomponents-core";
import { TreemapLabelHorizontalFitMode_$type } from './TreemapLabelHorizontalFitMode';
import { TreemapLabelVerticalFitMode_$type } from './TreemapLabelVerticalFitMode';
import { TreemapHighlightingMode_$type } from './TreemapHighlightingMode';
import { TreemapHighlightedValueDisplayMode_$type } from './TreemapHighlightedValueDisplayMode';
import { IgcHTMLElement } from "igniteui-webcomponents-core";
var IgcTreemapComponent = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(IgcTreemapComponent, _super);
    function IgcTreemapComponent() {
        var _this = _super.call(this) || this;
        _this.contentStyleMappings = [];
        /**
        * The style mappings actually present in the treemap. 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 style mappings from the manual style mappings collection on the styleMappings property.
        */
        _this.actualStyleMappings = [];
        _this._styleMappings = null;
        _this._styleMappingsAdapter = null;
        _this._disconnected = false;
        _this._settingAttributes = false;
        _this._attached = false;
        _this._queuedSetAttributes = [];
        _this._updatingFromAttribute = false;
        _this.__p = null;
        _this._hasUserValues = new Set();
        _this._stylingContainer = null;
        _this._stylingParent = null;
        _this._inStyling = false;
        _this._nodeStyling = null;
        _this._nodeStyling_wrapped = null;
        _this._nodeRenderStyling = null;
        _this._nodeRenderStyling_wrapped = null;
        _this._nodePointerOver = null;
        _this._nodePointerOver_wrapped = null;
        _this._nodePointerEnter = null;
        _this._nodePointerEnter_wrapped = null;
        _this._nodePointerLeave = null;
        _this._nodePointerLeave_wrapped = null;
        _this._nodePointerPressed = null;
        _this._nodePointerPressed_wrapped = null;
        _this._nodePointerReleased = null;
        _this._nodePointerReleased_wrapped = null;
        if (_this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(_this));
        }
        _this._renderer = new WebComponentRenderer(_this, document, true, DataChartStylingDefaults);
        _this._implementation = _this.createImplementation();
        _this._container = _this._renderer.createElement("div");
        _this._renderer.updateRoot(_this._container);
        //this._renderer.rootWrapper.append(this._container);
        _this._container.setStyleProperty("display", "block");
        _this._container.setStyleProperty("width", "100%");
        _this._container.setStyleProperty("height", "100%");
        var root;
        root = _this._container;
        if (_this._container.getNativeElement() != null) {
            root = _this._container.getNativeElement();
        }
        _this._wrapper = _this._renderer;
        var treemap = _this.i;
        _this._treeMap = treemap;
        _this._styleMappingsAdapter = new CollectionAdapter(_this.contentStyleMappings, _this.i.styleMappings, _this.actualStyleMappings, function (c) { return c.i; }, function (i) {
            if (_this._container && _this._container.getNativeElement().parentElement) {
                i._styling(_this, _this, _this);
            }
        }, function (i) { });
        treemap.provideContainer(_this._renderer);
        treemap.notifySizeChanged();
        var mut = new MutationObserver(function (list) {
            var e_1, _b;
            try {
                for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
                    var mutation = list_1_1.value;
                    if (mutation.type == 'childList') {
                        _this.updateContentStyleMappings();
                    }
                }
            }
            catch (e_1_1) {
                e_1 = { error: e_1_1 };
            }
            finally {
                try {
                    if (list_1_1 && !list_1_1.done && (_b = list_1.return))
                        _b.call(list_1);
                }
                finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
        });
        mut.observe(_this, {
            childList: true
        });
        _this._renderer.addSizeWatcher(function () {
            _this._treeMap.notifySizeChanged();
        });
        return _this;
    }
    Object.defineProperty(IgcTreemapComponent.prototype, "height", {
        get: function () {
            return this._height;
        },
        set: function (value) {
            this._height = value;
            this.style.height = value;
            this.i.notifySizeChanged();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "width", {
        get: function () {
            return this._width;
        },
        set: function (value) {
            this._width = value;
            this.style.width = value;
            this.i.notifySizeChanged();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "styleMappings", {
        /**
         * A collection or manually added axes for the chart.
        */
        get: function () {
            var _this = this;
            if (this._styleMappings === null) {
                var coll = new IgcTreemapNodeStyleMappingCollection();
                var inner = coll._innerColl;
                inner.addListener(function (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;
        },
        enumerable: false,
        configurable: true
    });
    // supports angular themes or custom properties set in CSS
    IgcTreemapComponent.prototype.updateStyle = function () {
        this._styling(this, this);
    };
    IgcTreemapComponent.prototype.destroy = function () {
        this._treeMap.destroy();
        this._wrapper.destroy();
    };
    IgcTreemapComponent.prototype.updateContentStyleMappings = function () {
        this.contentStyleMappings.length = 0;
        for (var i = 0; i < this.children.length; i++) {
            if (this.children[i] instanceof IgcTreemapNodeStyleMappingComponent) {
                this.contentStyleMappings.push(this.children[i]);
            }
        }
        if (this._styleMappingsAdapter != null) {
            this._styleMappingsAdapter.notifyContentChanged();
        }
    };
    IgcTreemapComponent.prototype.createImplementation = function () {
        return new Treemap();
    };
    IgcTreemapComponent.prototype.disconnectedCallback = function () {
        this._disconnected = true;
        if (this.i) {
            this.i.onDetachedFromUI();
        }
    };
    IgcTreemapComponent.prototype.connectedCallback = function () {
        if (this._disconnected) {
            this._disconnected = false;
            if (this.i) {
                this.i.onAttachedToUI();
            }
            return;
        }
        this.classList.add("ig-treemap");
        this.classList.add("igc-treemap");
        this.appendChild(this._renderer.rootWrapper.getNativeElement());
        this._attached = true;
        this.style.display = "block";
        this.style.height = this._height;
        this.style.width = this._width;
        this._flushQueuedAttributes();
        // supports themes or custom properties set in CSS 
        this._styling(this, this);
        for (var i = 0; i < this.actualStyleMappings.length; i++) {
            var s = this.actualStyleMappings[i];
            s._styling(this, this, this);
        }
        this.updateContentStyleMappings();
        this.afterContentInit();
    };
    IgcTreemapComponent.prototype.afterContentInit = function () {
        this.i.notifySizeChanged();
    };
    Object.defineProperty(IgcTreemapComponent.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        } /**
                                     * @hidden
                                     */,
        enumerable: false,
        configurable: true
    });
    IgcTreemapComponent._createFromInternal = function (internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        var name = internal.$type.name;
        var externalName = "Igc" + name + "Component";
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    };
    IgcTreemapComponent.prototype._enqueueSetAttribute = function (attrName, attrValue) {
        this._queuedSetAttributes.push({ attrName: attrName, attrValue: attrValue });
    };
    IgcTreemapComponent.prototype._flushQueuedAttributes = function () {
        this._settingAttributes = true;
        for (var i = 0; i < this._queuedSetAttributes.length; i++) {
            this.setAttribute(this._queuedSetAttributes[i].attrName, this._queuedSetAttributes[i].attrValue);
        }
        this._settingAttributes = false;
        this._queuedSetAttributes.length = 0;
    };
    IgcTreemapComponent.prototype._a = function (attrName, attrValue) {
        if (this._updatingFromAttribute) {
            return;
        }
        if (attrValue) {
            attrValue = attrValue.toString();
        }
        this._settingAttributes = true;
        attrName = toSpinal(attrName);
        if (this._attached) {
            this.setAttribute(attrName, attrValue);
        }
        else {
            this._enqueueSetAttribute(attrName, attrValue);
        }
        this._settingAttributes = false;
    };
    Object.defineProperty(IgcTreemapComponent, "observedAttributes", {
        get: function () {
            if (IgcTreemapComponent._observedAttributesIgcTreemapComponent == null) {
                var names = getAllPropertyNames(IgcTreemapComponent);
                for (var i = 0; i < names.length; i++) {
                    names[i] = toSpinal(names[i]);
                }
                IgcTreemapComponent._observedAttributesIgcTreemapComponent = names;
            }
            return IgcTreemapComponent._observedAttributesIgcTreemapComponent;
        },
        enumerable: false,
        configurable: true
    });
    IgcTreemapComponent.prototype.attributeChangedCallback = function (name, oldValue, newValue) {
        if (this._settingAttributes) {
            return;
        }
        var setName = fromSpinal(name);
        this._updatingFromAttribute = true;
        this[setName] = newValue;
        this._updatingFromAttribute = false;
    };
    IgcTreemapComponent.register = function () {
        if (!IgcTreemapComponent._isElementRegistered) {
            IgcTreemapComponent._isElementRegistered = true;
            RegisterElementHelper.registerElement(IgcTreemapComponent.htmlTagName, IgcTreemapComponent);
        }
    };
    Object.defineProperty(IgcTreemapComponent.prototype, "valueMemberPath", {
        /**
     * Gets or sets path to use to get the values from the items.
    */
        get: function () {
            return this.i.hx;
        },
        set: function (v) {
            this.i.hx = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "rootTitle", {
        /**
         * Gets or sets the root title to use for breadcrumbs.
        */
        get: function () {
            return this.i.hn;
        },
        set: function (v) {
            this.i.hn = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "breadcrumbSequence", {
        /**
         * Gets or sets the root title to use for breadcrumbs.
        */
        get: function () {
            return this.i.fh;
        },
        set: function (v) {
            this.i.fh = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentIdMemberPath", {
        /**
         * Gets or sets the path to use to get the Parent of the items.
        */
        get: function () {
            return this.i.hb;
        },
        set: function (v) {
            this.i.hb = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelMemberPath", {
        /**
         * Gets or sets the path to use to get the Label of the items.
        */
        get: function () {
            return this.i.gt;
        },
        set: function (v) {
            this.i.gt = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "customValueMemberPath", {
        /**
         * Gets or sets the path to use to get the custom value of the items.
        */
        get: function () {
            return this.i.fk;
        },
        set: function (v) {
            this.i.fk = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "idMemberPath", {
        /**
         * Gets or sets the path to use to get the id of the items.
        */
        get: function () {
            return this.i.gj;
        },
        set: function (v) {
            this.i.gj = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "dataSource", {
        /**
         * Gets or sets the (possibly hierarchical) data to assign to the TreeMap.
        */
        get: function () {
            return this.i.dataSource;
        },
        set: function (v) {
            this.i.dataSource = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "highlightedDataSource", {
        /**
         * Gets or sets the data to highlight.
        */
        get: function () {
            return this.i.highlightedDataSource;
        },
        set: function (v) {
            this.i.highlightedDataSource = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "highlightedValueMemberPath", {
        /**
         * Gets or sets the highlighted value mapping property.
        */
        get: function () {
            return this.i.gb;
        },
        set: function (v) {
            this.i.gb = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "highlightedValueOpacity", {
        /**
         * Gets or sets the opacity applied to the node underneath the highlighted value.
        */
        get: function () {
            return this.i.dt;
        },
        set: function (v) {
            this.i.dt = +v;
            this._a("highlightedValueOpacity", this.i.dt);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "highlightedValuesDisplayMode", {
        /**
         * Gets or sets the display mode for highlighted values.
        */
        get: function () {
            return this.i.l;
        },
        set: function (v) {
            this.i.l = ensureEnum(TreemapHighlightedValueDisplayMode_$type, v);
            this._a("highlightedValuesDisplayMode", enumToString(TreemapHighlightedValueDisplayMode_$type, this.i.l));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "fillBrushes", {
        /**
         * Gets or sets brushes to use for the fill scale.
        */
        get: function () {
            return fromBrushCollection(this.i.b);
        },
        set: function (v) {
            this.i.b = toBrushCollection(v);
            this._a("fillBrushes", brushCollectionToString(this.i.b));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "fillScaleMode", {
        /**
         * Gets or sets mode to use for the fill scale.
        */
        get: function () {
            return this.i.d;
        },
        set: function (v) {
            this.i.d = ensureEnum(TreemapFillScaleMode_$type, v);
            this._a("fillScaleMode", enumToString(TreemapFillScaleMode_$type, this.i.d));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "isFillScaleLogarithmic", {
        /**
         * Gets or sets whether the fill scale is logarithmic.
        */
        get: function () {
            return this.i.bx;
        },
        set: function (v) {
            this.i.bx = ensureBool(v);
            this._a("isFillScaleLogarithmic", this.i.bx);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "fillScaleLogarithmBase", {
        /**
         * Gets or sets the logarithm base to use if the fill scale is logarithmic.
        */
        get: function () {
            return this.i.ez;
        },
        set: function (v) {
            this.i.ez = +v;
            this._a("fillScaleLogarithmBase", this.i.ez);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "fillScaleMinimumValue", {
        /**
         * Gets or sets the minimum value to use for the fill scale.
        */
        get: function () {
            return this.i.dl;
        },
        set: function (v) {
            this.i.dl = +v;
            this._a("fillScaleMinimumValue", this.i.dl);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "fillScaleMaximumValue", {
        /**
         * Gets or sets the maximum value to use for the fill scale.
        */
        get: function () {
            return this.i.dk;
        },
        set: function (v) {
            this.i.dk = +v;
            this._a("fillScaleMaximumValue", this.i.dk);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelVerticalFitMode", {
        /**
         * Gets or sets the vertical fit mode to use for the node labels.
        */
        get: function () {
            return this.i.r;
        },
        set: function (v) {
            this.i.r = ensureEnum(TreemapLabelVerticalFitMode_$type, v);
            this._a("labelVerticalFitMode", enumToString(TreemapLabelVerticalFitMode_$type, this.i.r));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelHorizontalFitMode", {
        /**
         * Gets or sets the horizontal fit mode to use for the node labels.
        */
        get: function () {
            return this.i.o;
        },
        set: function (v) {
            this.i.o = ensureEnum(TreemapLabelHorizontalFitMode_$type, v);
            this._a("labelHorizontalFitMode", enumToString(TreemapLabelHorizontalFitMode_$type, this.i.o));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "overlayHeaderHoverBackground", {
        /**
         * Gets or sets the background to use for the overlay header when it is hovered.
        */
        get: function () {
            return brushToString(this.i.jx);
        },
        set: function (v) {
            this.i.jx = stringToBrush(v);
            this._a("overlayHeaderHoverBackground", brushToString(this.i.jx));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerHoverBackground", {
        /**
         * Gets or sets the background to use for the header when it is hovered.
        */
        get: function () {
            return brushToString(this.i.jr);
        },
        set: function (v) {
            this.i.jr = stringToBrush(v);
            this._a("headerHoverBackground", brushToString(this.i.jr));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerBackground", {
        /**
         * Gets or sets the background to use for the header.
        */
        get: function () {
            return brushToString(this.i.jp);
        },
        set: function (v) {
            this.i.jp = stringToBrush(v);
            this._a("headerBackground", brushToString(this.i.jp));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "overlayHeaderBackground", {
        /**
         * Gets or sets the background to use for the overlay header.
        */
        get: function () {
            return brushToString(this.i.jw);
        },
        set: function (v) {
            this.i.jw = stringToBrush(v);
            this._a("overlayHeaderBackground", brushToString(this.i.jw));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerTextColor", {
        /**
         * Gets or sets the text color to use for the header.
        */
        get: function () {
            return brushToString(this.i.ju);
        },
        set: function (v) {
            this.i.ju = stringToBrush(v);
            this._a("headerTextColor", brushToString(this.i.ju));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerDarkTextColor", {
        /**
         * Gets or sets the dark text color to use for the header.
        */
        get: function () {
            return brushToString(this.i.jq);
        },
        set: function (v) {
            this.i.jq = stringToBrush(v);
            this._a("headerDarkTextColor", brushToString(this.i.jq));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "textColor", {
        /**
         * Gets or sets the text color to use for the nodes.
        */
        get: function () {
            return brushToString(this.i.j7);
        },
        set: function (v) {
            this.i.j7 = stringToBrush(v);
            this._a("textColor", brushToString(this.i.j7));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "darkTextColor", {
        /**
         * Gets or sets the dark text color to use for the nodes.
        */
        get: function () {
            return brushToString(this.i.jo);
        },
        set: function (v) {
            this.i.jo = stringToBrush(v);
            this._a("darkTextColor", brushToString(this.i.jo));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerHoverTextColor", {
        /**
         * Gets or sets the text color to use for the header.
        */
        get: function () {
            return brushToString(this.i.jt);
        },
        set: function (v) {
            this.i.jt = stringToBrush(v);
            this._a("headerHoverTextColor", brushToString(this.i.jt));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerHoverDarkTextColor", {
        /**
         * Gets or sets the dark text color to use for the header when hovered.
        */
        get: function () {
            return brushToString(this.i.js);
        },
        set: function (v) {
            this.i.js = stringToBrush(v);
            this._a("headerHoverDarkTextColor", brushToString(this.i.js));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "textStyle", {
        /**
         * Gets or sets the font to use for content nodes
        */
        get: function () {
            if (this.i.a8 == null) {
                return null;
            }
            return this.i.a8.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.a8 = fi;
            this._a("textStyle", this.i.a8 != null ? this.i.a8.fontString : "");
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerTextStyle", {
        /**
         * Gets or sets the font to use for header nodes
        */
        get: function () {
            if (this.i.a6 == null) {
                return null;
            }
            return this.i.a6.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.a6 = fi;
            this._a("headerTextStyle", this.i.a6 != null ? this.i.a6.fontString : "");
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerDisplayMode", {
        /**
         * Gets or sets the font to use for header nodes
        */
        get: function () {
            return this.i.j;
        },
        set: function (v) {
            this.i.j = ensureEnum(TreemapHeaderDisplayMode_$type, v);
            this._a("headerDisplayMode", enumToString(TreemapHeaderDisplayMode_$type, this.i.j));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerLabelLeftMargin", {
        /**
         * Gets or sets the left margin to use for the header.
        */
        get: function () {
            return this.i.dq;
        },
        set: function (v) {
            this.i.dq = +v;
            this._a("headerLabelLeftMargin", this.i.dq);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerLabelTopMargin", {
        /**
         * Gets or sets the top margin to use for the header.
        */
        get: function () {
            return this.i.ds;
        },
        set: function (v) {
            this.i.ds = +v;
            this._a("headerLabelTopMargin", this.i.ds);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerLabelRightMargin", {
        /**
         * Gets or sets the right margin to use for the header.
        */
        get: function () {
            return this.i.dr;
        },
        set: function (v) {
            this.i.dr = +v;
            this._a("headerLabelRightMargin", this.i.dr);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerLabelBottomMargin", {
        /**
         * Gets or sets the bottom margin to use for the header.
        */
        get: function () {
            return this.i.dp;
        },
        set: function (v) {
            this.i.dp = +v;
            this._a("headerLabelBottomMargin", this.i.dp);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "overlayHeaderLabelLeftMargin", {
        /**
         * Gets or sets the left margin to use for the overlay header.
        */
        get: function () {
            return this.i.d3;
        },
        set: function (v) {
            this.i.d3 = +v;
            this._a("overlayHeaderLabelLeftMargin", this.i.d3);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "overlayHeaderLabelTopMargin", {
        /**
         * Gets or sets the top margin to use for the overlay header.
        */
        get: function () {
            return this.i.d5;
        },
        set: function (v) {
            this.i.d5 = +v;
            this._a("overlayHeaderLabelTopMargin", this.i.d5);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "overlayHeaderLabelRightMargin", {
        /**
         * Gets or sets the right margin to use for the overlay header.
        */
        get: function () {
            return this.i.d4;
        },
        set: function (v) {
            this.i.d4 = +v;
            this._a("overlayHeaderLabelRightMargin", this.i.d4);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "overlayHeaderLabelBottomMargin", {
        /**
         * Gets or sets the bottom margin to use for the overlay header.
        */
        get: function () {
            return this.i.d2;
        },
        set: function (v) {
            this.i.d2 = +v;
            this._a("overlayHeaderLabelBottomMargin", this.i.d2);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelLeftMargin", {
        /**
         * Gets or sets the left margin to use for the labels.
        */
        get: function () {
            return this.i.dx;
        },
        set: function (v) {
            this.i.dx = +v;
            this._a("labelLeftMargin", this.i.dx);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelTopMargin", {
        /**
         * Gets or sets the top margin to use for the labels.
        */
        get: function () {
            return this.i.dz;
        },
        set: function (v) {
            this.i.dz = +v;
            this._a("labelTopMargin", this.i.dz);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelRightMargin", {
        /**
         * Gets or sets the right margin to use for the labels.
        */
        get: function () {
            return this.i.dy;
        },
        set: function (v) {
            this.i.dy = +v;
            this._a("labelRightMargin", this.i.dy);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelBottomMargin", {
        /**
         * Gets or sets the bottom margin to use for the labels.
        */
        get: function () {
            return this.i.dw;
        },
        set: function (v) {
            this.i.dw = +v;
            this._a("labelBottomMargin", this.i.dw);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentNodeLeftMargin", {
        /**
         * Gets or sets the left margin to use for the parent nodes.
        */
        get: function () {
            return this.i.d8;
        },
        set: function (v) {
            this.i.d8 = +v;
            this._a("parentNodeLeftMargin", this.i.d8);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentNodeTopMargin", {
        /**
         * Gets or sets the top margin to use for the parent nodes.
        */
        get: function () {
            return this.i.ec;
        },
        set: function (v) {
            this.i.ec = +v;
            this._a("parentNodeTopMargin", this.i.ec);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentNodeRightMargin", {
        /**
         * Gets or sets the right margin to use for the parent nodes.
        */
        get: function () {
            return this.i.ea;
        },
        set: function (v) {
            this.i.ea = +v;
            this._a("parentNodeRightMargin", this.i.ea);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentNodeBottomMargin", {
        /**
         * Gets or sets the bottom margin to use for the parent nodes.
        */
        get: function () {
            return this.i.d6;
        },
        set: function (v) {
            this.i.d6 = +v;
            this._a("parentNodeBottomMargin", this.i.d6);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentNodeLeftPadding", {
        /**
         * Gets or sets the left padding to use for the parent nodes.
        */
        get: function () {
            return this.i.d9;
        },
        set: function (v) {
            this.i.d9 = +v;
            this._a("parentNodeLeftPadding", this.i.d9);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentNodeTopPadding", {
        /**
         * Gets or sets the top padding to use for the parent nodes.
        */
        get: function () {
            return this.i.ed;
        },
        set: function (v) {
            this.i.ed = +v;
            this._a("parentNodeTopPadding", this.i.ed);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentNodeRightPadding", {
        /**
         * Gets or sets the right padding to use for the parent nodes.
        */
        get: function () {
            return this.i.eb;
        },
        set: function (v) {
            this.i.eb = +v;
            this._a("parentNodeRightPadding", this.i.eb);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "parentNodeBottomPadding", {
        /**
         * Gets or sets the bottom padding to use for the parent nodes.
        */
        get: function () {
            return this.i.d7;
        },
        set: function (v) {
            this.i.d7 = +v;
            this._a("parentNodeBottomPadding", this.i.d7);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelHorizontalAlignment", {
        /**
         * Gets or sets the horizontal alignment to use for the node labels.
        */
        get: function () {
            return this.i.ja;
        },
        set: function (v) {
            this.i.ja = ensureEnum(HorizontalAlignment_$type, v);
            this._a("labelHorizontalAlignment", enumToString(HorizontalAlignment_$type, this.i.ja));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "labelVerticalAlignment", {
        /**
         * Gets or sets the vertical alignment to use for the node labels.
        */
        get: function () {
            return this.i.kd;
        },
        set: function (v) {
            this.i.kd = ensureEnum(VerticalAlignment_$type, v);
            this._a("labelVerticalAlignment", enumToString(VerticalAlignment_$type, this.i.kd));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "headerHeight", {
        /**
         * Gets or sets the height to use for the header.
        */
        get: function () {
            return this.i.dn;
        },
        set: function (v) {
            this.i.dn = +v;
            this._a("headerHeight", this.i.dn);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "outline", {
        /**
         * Gets or sets the outline to use for the nodes.
        */
        get: function () {
            return brushToString(this.i.jv);
        },
        set: function (v) {
            this.i.jv = stringToBrush(v);
            this._a("outline", brushToString(this.i.jv));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "strokeThickness", {
        /**
         * Gets or sets the stroke thickness to use for the node outline.
        */
        get: function () {
            return this.i.es;
        },
        set: function (v) {
            this.i.es = +v;
            this._a("strokeThickness", this.i.es);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "nodeOpacity", {
        /**
         * Gets or sets the opacity to use for the nodes.
        */
        get: function () {
            return this.i.d1;
        },
        set: function (v) {
            this.i.d1 = +v;
            this._a("nodeOpacity", this.i.d1);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "layoutOrientation", {
        /**
         * Gets or sets the orientation to use for the stripped and slice and dice layout types.
        */
        get: function () {
            return this.i.al;
        },
        set: function (v) {
            this.i.al = ensureEnum(TreemapOrientation_$type, v);
            this._a("layoutOrientation", enumToString(TreemapOrientation_$type, this.i.al));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "layoutType", {
        /**
         * Gets or sets the type of layout to use for the nodes.
        */
        get: function () {
            return this.i.u;
        },
        set: function (v) {
            this.i.u = ensureEnum(TreemapLayoutType_$type, v);
            this._a("layoutType", enumToString(TreemapLayoutType_$type, this.i.u));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "minimumDisplaySize", {
        /**
         * Gets or sets the minimum size (width or height) to display a node.
        */
        get: function () {
            return this.i.d0;
        },
        set: function (v) {
            this.i.d0 = +v;
            this._a("minimumDisplaySize", this.i.d0);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "transitionDuration", {
        /**
         * Gets or sets the number of milliseconds over which changes to the gauge should be animated.
        */
        get: function () {
            return this.i.e3;
        },
        set: function (v) {
            this.i.e3 = +v;
            this._a("transitionDuration", this.i.e3);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "pixelScalingRatio", {
        /**
         * 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: function () {
            return this.i.ee;
        },
        set: function (v) {
            this.i.ee = +v;
            this._a("pixelScalingRatio", this.i.ee);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "actualPixelScalingRatio", {
        get: function () {
            return this.i.dg;
        },
        set: function (v) {
            this.i.dg = +v;
            this._a("actualPixelScalingRatio", this.i.dg);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "interactionPixelScalingRatio", {
        /**
         * Gets or sets the scaling value used to affect the pixel density of the control while it is animating.
         * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
         * to appear blurry.
        */
        get: function () {
            return this.i.dv;
        },
        set: function (v) {
            this.i.dv = +v;
            this._a("interactionPixelScalingRatio", this.i.dv);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "actualInteractionPixelScalingRatio", {
        /**
         * Gets or sets the resolved scaling value used to affect the pixel density of the control while it is animating.
         * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
         * to appear blurry.
        */
        get: function () {
            return this.i.df;
        },
        set: function (v) {
            this.i.df = +v;
            this._a("actualInteractionPixelScalingRatio", this.i.df);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "highlightingTransitionDuration", {
        /**
         * Gets or sets the number of milliseconds over which the highlighting effect will render.
        */
        get: function () {
            return this.i.e1;
        },
        set: function (v) {
            this.i.e1 = +v;
            this._a("highlightingTransitionDuration", this.i.e1);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "highlightingMode", {
        /**
         * Gets or sets the highlighting mode to use.
        */
        get: function () {
            return this.i.aw;
        },
        set: function (v) {
            this.i.aw = ensureEnum(TreemapHighlightingMode_$type, v);
            this._a("highlightingMode", enumToString(TreemapHighlightingMode_$type, this.i.aw));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "actualHighlightingMode", {
        /**
         * Gets the actual highlighting mode used.
        */
        get: function () {
            return this.i.au;
        },
        set: function (v) {
            this.i.au = ensureEnum(TreemapHighlightingMode_$type, v);
            this._a("actualHighlightingMode", enumToString(TreemapHighlightingMode_$type, this.i.au));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "highlightingFadeOpacity", {
        /**
         * Gets or sets the opacity to use for nodes that are not highlighted when HighlightingMode is set to FadeOthers.
        */
        get: function () {
            return this.i.du;
        },
        set: function (v) {
            this.i.du = +v;
            this._a("highlightingFadeOpacity", this.i.du);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "animating", {
        get: function () {
            return this.i.bs;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "focusItem", {
        /**
         * Gets or sets the item to drill to in the treemap.
        */
        get: function () {
            return this.i.e5;
        },
        set: function (v) {
            this.i.e5 = v;
        },
        enumerable: false,
        configurable: true
    });
    IgcTreemapComponent.prototype.findByName = function (name) {
        if (this.findEphemera) {
            if (name && name.indexOf("@@e:") == 0) {
                return this.findEphemera(name);
            }
        }
        if (this.styleMappings != null && this.styleMappings.findByName && this.styleMappings.findByName(name)) {
            return this.styleMappings.findByName(name);
        }
        return null;
    };
    Object.defineProperty(IgcTreemapComponent.prototype, "hasUserValues", {
        get: function () {
            return this._hasUserValues;
        },
        enumerable: false,
        configurable: true
    });
    IgcTreemapComponent.prototype.__m = function (propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    };
    IgcTreemapComponent.prototype._styling = function (container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        var genericPrefix = "";
        var typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("TreemapComponent");
        var additionalPrefixes = [];
        var prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        var 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);
            }
            var basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            var parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            var 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;
    };
    IgcTreemapComponent.prototype.notifySizeChanged = function () {
        this.i.notifySizeChanged();
    };
    /**
     * Returns visuals as a serialized string.
    
    */
    IgcTreemapComponent.prototype.exportSerializedVisualData = function () {
        var iv = this.i.fn();
        return (iv);
    };
    IgcTreemapComponent.prototype.markDirty = function () {
        this.i.ic();
    };
    IgcTreemapComponent.prototype.onDetachedFromUI = function () {
        this.i.onDetachedFromUI();
    };
    IgcTreemapComponent.prototype.onAttachedToUI = function () {
        this.i.onAttachedToUI();
    };
    IgcTreemapComponent.prototype.flush = function () {
        this.i.h9();
    };
    IgcTreemapComponent.prototype.notifySetItem = function (source_, index, oldItem, newItem) {
        this.i.ii(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.
    */
    IgcTreemapComponent.prototype.notifyClearItems = function (source_) {
        this.i.ie(source_);
    };
    IgcTreemapComponent.prototype.notifyInsertItem = function (source_, index, newItem) {
        this.i.ig(source_, index, newItem);
    };
    IgcTreemapComponent.prototype.notifyRemoveItem = function (source_, index, oldItem) {
        this.i.ih(source_, index, oldItem);
    };
    IgcTreemapComponent.prototype.simulateHover = function (point) {
        this.i.i2(toPoint(point));
    };
    Object.defineProperty(IgcTreemapComponent.prototype, "nodeStyling", {
        /**
         * Fired when a node is being styled. Provides an opportunity to customize node styling.
        */
        get: function () {
            return this._nodeStyling;
        },
        set: function (ev) {
            var _this = this;
            if (this._nodeStyling_wrapped !== null) {
                this.i.nodeStyling = delegateRemove(this.i.nodeStyling, this._nodeStyling_wrapped);
                this._nodeStyling_wrapped = null;
                this._nodeStyling = null;
            }
            this._nodeStyling = ev;
            this._nodeStyling_wrapped = function (o, e) {
                var outerArgs = new IgcTreemapNodeStylingEventArgs();
                outerArgs._provideImplementation(e);
                if (_this.beforeNodeStyling) {
                    _this.beforeNodeStyling(_this, outerArgs);
                }
                if (_this._nodeStyling) {
                    _this._nodeStyling(_this, outerArgs);
                }
            };
            this.i.nodeStyling = delegateCombine(this.i.nodeStyling, this._nodeStyling_wrapped);
            ;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "nodeRenderStyling", {
        /**
         * Fired before a node is rendered for last minute style changes.
        */
        get: function () {
            return this._nodeRenderStyling;
        },
        set: function (ev) {
            var _this = this;
            if (this._nodeRenderStyling_wrapped !== null) {
                this.i.nodeRenderStyling = delegateRemove(this.i.nodeRenderStyling, this._nodeRenderStyling_wrapped);
                this._nodeRenderStyling_wrapped = null;
                this._nodeRenderStyling = null;
            }
            this._nodeRenderStyling = ev;
            this._nodeRenderStyling_wrapped = function (o, e) {
                var outerArgs = new IgcTreemapNodeStylingEventArgs();
                outerArgs._provideImplementation(e);
                if (_this.beforeNodeRenderStyling) {
                    _this.beforeNodeRenderStyling(_this, outerArgs);
                }
                if (_this._nodeRenderStyling) {
                    _this._nodeRenderStyling(_this, outerArgs);
                }
            };
            this.i.nodeRenderStyling = delegateCombine(this.i.nodeRenderStyling, this._nodeRenderStyling_wrapped);
            ;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "nodePointerOver", {
        /**
         * Fired with the pointer is moving over a node.
        */
        get: function () {
            return this._nodePointerOver;
        },
        set: function (ev) {
            var _this = this;
            if (this._nodePointerOver_wrapped !== null) {
                this.i.nodePointerOver = delegateRemove(this.i.nodePointerOver, this._nodePointerOver_wrapped);
                this._nodePointerOver_wrapped = null;
                this._nodePointerOver = null;
            }
            this._nodePointerOver = ev;
            this._nodePointerOver_wrapped = function (o, e) {
                var outerArgs = new IgcTreemapNodePointerEventArgs();
                outerArgs._provideImplementation(e);
                if (_this.beforeNodePointerOver) {
                    _this.beforeNodePointerOver(_this, outerArgs);
                }
                if (_this._nodePointerOver) {
                    _this._nodePointerOver(_this, outerArgs);
                }
            };
            this.i.nodePointerOver = delegateCombine(this.i.nodePointerOver, this._nodePointerOver_wrapped);
            ;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "nodePointerEnter", {
        /**
         * Fired when the pointer enters a node.
        */
        get: function () {
            return this._nodePointerEnter;
        },
        set: function (ev) {
            var _this = this;
            if (this._nodePointerEnter_wrapped !== null) {
                this.i.nodePointerEnter = delegateRemove(this.i.nodePointerEnter, this._nodePointerEnter_wrapped);
                this._nodePointerEnter_wrapped = null;
                this._nodePointerEnter = null;
            }
            this._nodePointerEnter = ev;
            this._nodePointerEnter_wrapped = function (o, e) {
                var outerArgs = new IgcTreemapNodePointerEventArgs();
                outerArgs._provideImplementation(e);
                if (_this.beforeNodePointerEnter) {
                    _this.beforeNodePointerEnter(_this, outerArgs);
                }
                if (_this._nodePointerEnter) {
                    _this._nodePointerEnter(_this, outerArgs);
                }
            };
            this.i.nodePointerEnter = delegateCombine(this.i.nodePointerEnter, this._nodePointerEnter_wrapped);
            ;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "nodePointerLeave", {
        /**
         * Fired when the pointer leaved a node.
        */
        get: function () {
            return this._nodePointerLeave;
        },
        set: function (ev) {
            var _this = this;
            if (this._nodePointerLeave_wrapped !== null) {
                this.i.nodePointerLeave = delegateRemove(this.i.nodePointerLeave, this._nodePointerLeave_wrapped);
                this._nodePointerLeave_wrapped = null;
                this._nodePointerLeave = null;
            }
            this._nodePointerLeave = ev;
            this._nodePointerLeave_wrapped = function (o, e) {
                var outerArgs = new IgcTreemapNodePointerEventArgs();
                outerArgs._provideImplementation(e);
                if (_this.beforeNodePointerLeave) {
                    _this.beforeNodePointerLeave(_this, outerArgs);
                }
                if (_this._nodePointerLeave) {
                    _this._nodePointerLeave(_this, outerArgs);
                }
            };
            this.i.nodePointerLeave = delegateCombine(this.i.nodePointerLeave, this._nodePointerLeave_wrapped);
            ;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "nodePointerPressed", {
        /**
         * Fired when the pointer is pressed on a node.
        */
        get: function () {
            return this._nodePointerPressed;
        },
        set: function (ev) {
            var _this = this;
            if (this._nodePointerPressed_wrapped !== null) {
                this.i.nodePointerPressed = delegateRemove(this.i.nodePointerPressed, this._nodePointerPressed_wrapped);
                this._nodePointerPressed_wrapped = null;
                this._nodePointerPressed = null;
            }
            this._nodePointerPressed = ev;
            this._nodePointerPressed_wrapped = function (o, e) {
                var outerArgs = new IgcTreemapNodePointerEventArgs();
                outerArgs._provideImplementation(e);
                if (_this.beforeNodePointerPressed) {
                    _this.beforeNodePointerPressed(_this, outerArgs);
                }
                if (_this._nodePointerPressed) {
                    _this._nodePointerPressed(_this, outerArgs);
                }
            };
            this.i.nodePointerPressed = delegateCombine(this.i.nodePointerPressed, this._nodePointerPressed_wrapped);
            ;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgcTreemapComponent.prototype, "nodePointerReleased", {
        /**
         * Fired when the pointer is released on a node.
        */
        get: function () {
            return this._nodePointerReleased;
        },
        set: function (ev) {
            var _this = this;
            if (this._nodePointerReleased_wrapped !== null) {
                this.i.nodePointerReleased = delegateRemove(this.i.nodePointerReleased, this._nodePointerReleased_wrapped);
                this._nodePointerReleased_wrapped = null;
                this._nodePointerReleased = null;
            }
            this._nodePointerReleased = ev;
            this._nodePointerReleased_wrapped = function (o, e) {
                var outerArgs = new IgcTreemapNodePointerEventArgs();
                outerArgs._provideImplementation(e);
                if (_this.beforeNodePointerReleased) {
                    _this.beforeNodePointerReleased(_this, outerArgs);
                }
                if (_this._nodePointerReleased) {
                    _this._nodePointerReleased(_this, outerArgs);
                }
            };
            this.i.nodePointerReleased = delegateCombine(this.i.nodePointerReleased, this._nodePointerReleased_wrapped);
            ;
        },
        enumerable: false,
        configurable: true
    });
    IgcTreemapComponent._observedAttributesIgcTreemapComponent = null;
    IgcTreemapComponent.htmlTagName = "igc-treemap";
    IgcTreemapComponent._isElementRegistered = false;
    return IgcTreemapComponent;
}(IgcHTMLElement));
export { IgcTreemapComponent };