{"version":3,"file":"igniteui-angular-wrappers.mjs","sources":["../../../projects/igniteui-angular-wrappers/src/lib/iggrid/column.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/feature.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridmulticolumnheaders.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridsorting.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridfiltering.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridpaging.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridupdating.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridgroupby.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridcolumnmoving.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridhiding.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridcellmerging.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridresponsive.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridresizing.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridselection.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridrowselectors.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridsummaries.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridcolumnfixing.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridtooltips.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridfeatures/iggridappendrowsondemand.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/features.directive.ts","../../../projects/igniteui-angular-wrappers/src/lib/igcontrolbase/igcontrolbase.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggridbase.ts","../../../projects/igniteui-angular-wrappers/src/lib/iggrid/iggrid.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igtreegrid/igtreegrid.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/ighierarchicalgrid/ighierarchicalgrid.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igcombo/igcombo.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igeditorbase.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igcheckboxeditor.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igcurrencyeditor.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igdateeditor.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igdatepicker.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igtimepicker.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igmaskeditor.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/ignumericeditor.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igpercenteditor.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igeditors/igtexteditor.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igtree/igtree.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igcontrolbase/igcontentcontrolbase.ts","../../../projects/igniteui-angular-wrappers/src/lib/igdialog/igdialog.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igsplitter/igsplitter.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/iglayoutmanager/iglayoutmanager.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igtilemanager/igtilemanager.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/ightmleditor/ightmleditor.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igvalidator/igvalidator.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igpivotdataselector/igpivotdataselector.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igpivotgrid/igpivotgrid.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igdatachart/igdatachart.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igpiechart/igpiechart.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igdoughnutchart/igdoughnutchart.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igfunnelchart/igfunnelchart.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igradialgauge/igradialgauge.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igzoombar/igzoombar.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igmap/igmap.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igsparkline/igsparkline.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igbulletgraph/igbulletgraph.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/iglineargauge/iglineargauge.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igqrcodebarcode/igqrcodebarcode.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igupload/igupload.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igpopover/igpopover.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/ignotifier/ignotifier.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igrating/igrating.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igvideoplayer/igvideoplayer.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igradialmenu/igradialmenu.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igsplitbutton/igsplitbutton.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igspreadsheet/igspreadsheet.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igscheduler/igscheduler.component.ts","../../../projects/igniteui-angular-wrappers/src/lib/igniteui-angular-wrappers.module.ts","../../../projects/igniteui-angular-wrappers/src/public-api.ts","../../../projects/igniteui-angular-wrappers/src/igniteui-angular-wrappers.ts"],"sourcesContent":["import { ElementRef, Directive } from '@angular/core';\n\ndeclare var jQuery: any;\n\n@Directive({\n    selector: 'column',\n    inputs: ['headerText', 'key', 'formatter', 'format', 'dataType', 'width', 'hidden', 'template', 'unbound', 'group', 'rowspan', 'formula', 'unboundValues', 'unboundValuesUpdateMode', 'headerCssClass', 'columnCssClass'],\n    standalone: false\n})\nexport class Column {\n  public _settings: any = {};\n  private _el: any;\n\n  constructor(el: ElementRef) {\n    this._el = el;\n    const self = this;\n    let i;\n    const settings = ['headerText', 'key', 'formatter', 'format', 'dataType', 'width', 'hidden', 'template', 'unbound', 'group', 'rowspan', 'formula', 'unboundValues', 'unboundValuesUpdateMode', 'headerCssClass', 'columnCssClass'];\n    for (i = 0; i < settings.length; i++) {\n      Object.defineProperty(self, settings[i], {\n        set: self.createColumnsSetter(settings[i]),\n        get: self.createColumnsGetter(settings[i]),\n        enumerable: true,\n        configurable: true\n      });\n    }\n  }\n\n  createColumnsSetter(name) {\n    return function(value) {\n      const grid = jQuery(this._el.nativeElement.parentElement).find('table[role=\\'grid\\']');\n      const columns = grid.igGrid('option', 'columns');\n      this._settings[name] = value;\n\n      if (jQuery.ui.igGrid &&\n        jQuery.ui.igGrid.prototype.options &&\n        jQuery.ui.igGrid.prototype.options.hasOwnProperty('columns') &&\n        grid.data('igGrid')) {\n        // reapply all column settings when a column setting is changed\n        grid.igGrid('option', 'columns', columns);\n      }\n    };\n  }\n\n  createColumnsGetter(name) {\n    return () => {\n      return this._settings[name];\n    };\n  }\n}\n","import { ElementRef, EventEmitter, Directive, OnInit } from '@angular/core';\n\ndeclare var jQuery: any;\n\n@Directive()\nexport class Feature<Model> implements OnInit {\n    public _el: any;\n    public _settings: any = {};\n    public initSettings: Model;\n    public name: string;\n    private _events: any;\n    private featureName: string;\n\n    constructor(el: ElementRef) {\n        this._el = el;\n        this.name = this.normalizeName(el.nativeElement.nodeName.toLowerCase());\n        this.featureName = 'igGrid' + this.name;\n        for (const propt in jQuery.ui['igGrid' + this.name].prototype.events) {\n          if (jQuery.ui['igGrid' + this.name].prototype.events.hasOwnProperty(propt)) {\n            this[propt] = new EventEmitter();\n          }\n        }\n    }\n\n    cloneObject(obj: any): any {\n        const clone = {};\n        for (const i in obj) {\n            if (obj[i] != null) {\n                if (!i.startsWith('_') && typeof obj[i] === 'object') {\n                    clone[i] = this.cloneObject(obj[i]);\n                } else {\n                    clone[i] = obj[i];\n                }\n            }\n        }\n        return clone;\n    }\n\n    ngOnInit() {\n        const self = this;\n        this.initSettings = this.cloneObject(this);\n        let evtName;\n        this._events = new Map<string, string>();\n        const grid = jQuery(this._el.nativeElement).closest('ig-grid').find('table');\n\n        // event binding for features\n        for (const propt in jQuery.ui[this.featureName].prototype.events) {\n          if (jQuery.ui[this.featureName].prototype.events.hasOwnProperty(propt)) {\n            evtName = this.featureName.toLowerCase() + propt.toLowerCase();\n            this._events[evtName] = propt;\n            jQuery(grid).on(evtName, (evt, ui) => {\n                this[this._events[evt.type]].emit({ event: evt, ui });\n            });\n          }\n        }\n        for (const setting in jQuery.ui[this.featureName].prototype.options) {\n          if (jQuery.ui[this.featureName].prototype.options.hasOwnProperty(setting)) {\n            Object.defineProperty(this, setting, {\n                set: this.createFeatureSetter(setting),\n                get: this.createFeatureGetter(setting),\n                enumerable: true,\n                configurable: true\n            });\n          }\n        }\n        const propNames = Object.getOwnPropertyNames(jQuery.ui[this.featureName].prototype);\n        propNames.forEach(name => {\n          if (name.indexOf('_') !== 0 && typeof jQuery.ui[this.featureName].prototype[name] === 'function') {\n              Object.defineProperty(self, name, {\n                  get: this.createMethodGetter(name)\n              });\n          }\n        });\n    }\n\n    createFeatureSetter(name) {\n        return function(value) {\n            const grid = jQuery(this._el.nativeElement).closest('ig-grid').find('table[role=\\'grid\\']');\n            this._settings[name] = value;\n\n            if (jQuery.ui[this.featureName] &&\n                jQuery.ui[this.featureName].prototype.options &&\n                jQuery.ui[this.featureName].prototype.options.hasOwnProperty(name) &&\n                grid.data(this.featureName)) {\n                grid[this.featureName]('option', name, value);\n            }\n        };\n    }\n\n    createFeatureGetter(name) {\n        return () => {\n            return this._settings[name];\n        };\n    }\n    createMethodGetter(name) {\n        return () => {\n            let grid = jQuery(this._el.nativeElement).closest('ig-grid').find('table[role=\\'grid\\']');\n            if (grid.length === 0) {\n                grid = jQuery(this._el.nativeElement).closest('ig-hierarchical-grid').find('table[role=\\'grid\\']');\n            }\n            const feature = grid.data(this.featureName);\n            return jQuery.proxy(feature[name], feature);\n        };\n    }\n\n    normalizeName(str) {\n        // convert hyphen to camelCase\n        const name = str.replace(/-([a-z])/g, group => group[1].toUpperCase());\n        return name.charAt(0).toUpperCase() + name.slice(1);\n    }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\nimport { Column } from '../column.directive';\n\n\n@Directive({\n    selector: 'multi-column-headers',\n    inputs: ['inherit'],\n    outputs: ['groupCollapsing', 'groupCollapsed', 'groupExpanding', 'groupExpanded'],\n    standalone: false\n})\nexport class IgGridMultiColumnHeadersFeature extends Feature<IgGridMultiColumnHeaders> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Destroys the widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Collapses an expanded group. If the group is collapsed, the method does nothing.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     */\n    /* istanbul ignore next */\n    public collapseGroup(groupKey: string, callback?: () => void): void { return; }\n    /**\n     * Expands a collapsed group. If the group is expanded, the method does nothing.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     */\n    /* istanbul ignore next */\n    public expandGroup(groupKey: string, callback?: () => void): void { return; }\n    /**\n     * Returns multicolumn headers array. if there aren\"t multicolumn headers returns undefined.\n     */\n    /* istanbul ignore next */\n    public getMultiColumnHeaders(): Array<Column> { return; }\n    /**\n     * Toggles a collapsible group.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     */\n    /* istanbul ignore next */\n    public toggleGroup(groupKey: string, callback?: () => void): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'sorting',\n    inputs: ['disabled', 'create', 'type', 'caseSensitive', 'applySortedColumnCss', 'sortUrlKey', 'sortUrlKeyAscValue', 'sortUrlKeyDescValue', 'mode', 'customSortFunction', 'firstSortDirection', 'sortedColumnTooltip', 'modalDialogSortOnClick', 'modalDialogSortByButtonText', 'modalDialogResetButtonLabel', 'modalDialogCaptionButtonDesc', 'modalDialogCaptionButtonAsc', 'modalDialogCaptionButtonUnsort', 'modalDialogWidth', 'modalDialogHeight', 'modalDialogAnimationDuration', 'featureChooserText', 'unsortedColumnTooltip', 'columnSettings', 'modalDialogCaptionText', 'modalDialogButtonApplyText', 'modalDialogButtonCancelText', 'featureChooserSortAsc', 'featureChooserSortDesc', 'persist', 'sortingDialogContainment', 'dialogWidget', 'inherit'],\n    outputs: ['columnSorting', 'columnSorted', 'modalDialogOpening', 'modalDialogOpened', 'modalDialogMoving', 'modalDialogClosing', 'modalDialogClosed', 'modalDialogContentsRendering', 'modalDialogContentsRendered', 'modalDialogSortingChanged', 'modalDialogButtonUnsortClick', 'modalDialogSortClick', 'modalDialogButtonApplyClick', 'modalDialogButtonResetClick'],\n    standalone: false\n})\nexport class IgGridSortingFeature extends Feature<IgGridSorting> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Sorts the data in a grid column  and updates the UI.\n     *\n     * @param index     Column key (string) or index (number) - for multi-row grid only column key can be used.\n     * Specifies the column which we want to sort. If the mode is multiple, previous sorting states are not cleared.\n     * @param direction     Specifies sorting direction (ascending or descending)\n     * @param header header\n     */\n    /* istanbul ignore next */\n    public sortColumn(index: object, direction: object, header: object): void { return; }\n\n    /**\n     * Sorts the data in grid columns and updates the UI.\n     */\n    /* istanbul ignore next */\n    public sortMultiple(): void { return; }\n\n    /**\n     * Removes current sorting(for all sorted columns) and updates the UI.\n     */\n    /* istanbul ignore next */\n    public clearSorting(): void { return; }\n\n    /**\n     * Removes sorting for the grid column with the specified columnKey/columnIndex and updates the UI.\n     *\n     * @param index     Column key (string) or index (number) - for multi-row grid only column key can be used.\n     * Specifies the column for which we want to remove sorting. If the mode is multiple, previous sorting states are not cleared.\n     * @param header    header\n     */\n    /* istanbul ignore next */\n    public unsortColumn(index: object, header: object): void { return; }\n\n    /**\n     * Destroys the sorting feature. Unbinds events, removes added sorting elements, etc.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Opens the multiple sorting dialog.\n     */\n    /* istanbul ignore next */\n    public openMultipleSortingDialog(): void { return; }\n\n    /**\n     * Closes the multiple sorting dialog.\n     */\n    /* istanbul ignore next */\n    public closeMultipleSortingDialog(): void { return; }\n\n    /**\n     * Renders content of multiple sorting dialog - sorted and unsorted columns.\n     *\n     * @param isToCallEvents - if specified client events should be fired\n     */\n    /* istanbul ignore next */\n    public renderMultipleSortingDialogContent(isToCallEvents: object): void { return; }\n\n    /**\n     * Remove clear button for multiple sorting dialog\n     */\n    /* istanbul ignore next */\n    public removeDialogClearButton(): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'filtering',\n    inputs: ['disabled', 'create', 'caseSensitive', 'filterSummaryAlwaysVisible', 'renderFC', 'filterSummaryTemplate', 'filterDropDownAnimations', 'filterDropDownAnimationDuration', 'filterDropDownWidth', 'filterDropDownHeight', 'filterExprUrlKey', 'filterDropDownItemIcons', 'columnSettings', 'type', 'filterDelay', 'mode', 'advancedModeEditorsVisible', 'advancedModeHeaderButtonLocation', 'filterDialogWidth', 'filterDialogHeight', 'filterDialogFilterDropDownDefaultWidth', 'filterDialogExprInputDefaultWidth', 'filterDialogColumnDropDownDefaultWidth', 'renderFilterButton', 'filterButtonLocation', 'nullTexts', 'labels', 'tooltipTemplate', 'filterDialogAddConditionTemplate', 'filterDialogAddConditionDropDownTemplate', 'filterDialogFilterTemplate', 'filterDialogFilterConditionTemplate', 'filterDialogAddButtonWidth', 'filterDialogOkCancelButtonWidth', 'filterDialogMaxFilterCount', 'filterDialogContainment', 'showEmptyConditions', 'showNullConditions', 'featureChooserText', 'featureChooserTextHide', 'featureChooserTextAdvancedFilter', 'dialogWidget', 'persist', 'inherit'],\n    outputs: ['dataFiltering', 'dataFiltered', 'dropDownOpening', 'dropDownOpened', 'dropDownClosing', 'dropDownClosed', 'filterDialogOpening', 'filterDialogOpened', 'filterDialogMoving', 'filterDialogFilterAdding', 'filterDialogFilterAdded', 'filterDialogClosing', 'filterDialogClosed', 'filterDialogContentsRendering', 'filterDialogContentsRendered', 'filterDialogFiltering'],\n    standalone: false\n})\nexport class IgGridFilteringFeature extends Feature<IgGridFiltering> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Destroys the filtering widget - remove fitler row, unbinds events, returns the grid to its previous state.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Returns the count of data records that match filtering conditions\n     */\n    /* istanbul ignore next */\n    public getFilteringMatchesCount(): number { return; }\n\n    /**\n     * Toggle filter row when mode is simple or\n     * [advancedModeEditorsVisible](ui.iggridfiltering#options:advancedModeEditorsVisible) is true. Otherwise show/hide advanced dialog.\n     *\n     * @param event     Column key\n     */\n    /* istanbul ignore next */\n    public toggleFilterRowByFeatureChooser(event: string): void { return; }\n\n    /**\n     * Applies filtering programmatically and updates the UI by default.\n     *\n     * @param expressions An array of filtering expressions, each one having the format {fieldName: , expr: , cond: , logic: }\n     * where  fieldName is the key of the column, expr is the actual expression string with which we would like to filter,\n     * logic is 'AND' or 'OR', and cond is one of the following strings: \"equals\", \"doesNotEqual\", \"contains\", \"doesNotContain\",\n     * \"greaterThan\", \"lessThan\", \"greaterThanOrEqualTo\", \"lessThanOrEqualTo\", \"true\", \"false\", \"null\", \"notNull\", \"empty\", \"notEmpty\",\n     * \"startsWith\", \"endsWith\", \"today\", \"yesterday\", \"on\", \"notOn\", \"thisMonth\", \"lastMonth\", \"nextMonth\", \"before\", \"after\", \"thisYear\",\n     * \"lastYear\", \"nextYear\". The difference between the empty and null filtering conditions is that empty includes null, NaN, and\n     * undefined, as well as the empty string.\n     * @param updateUI     specifies whether the filter row should be also updated once the grid is filtered\n     * @param addedFromAdvanced specifies whether the filter is added from advanced filtering\n     */\n    /* istanbul ignore next */\n    public filter(expressions: any[], updateUI?: boolean, addedFromAdvanced?: boolean): void { return; }\n\n    /**\n     * Check whether filterCondition requires or not filtering expression\n     *  e.g. if filterCondition is \"lastMonth\", \"thisMonth\", \"null\", \"notNull\", \"true\", \"false\", etc.\n     * then filtering expression is NOT required\n     *\n     * @param filterCondition    filtering condition - e.g. \"true\", \"false\",  \"yesterday\", \"empty\", \"null\", etc.\n     */\n    /* istanbul ignore next */\n    public requiresFilteringExpression(filterCondition: string): boolean { return; }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'paging',\n    inputs: ['disabled', 'create', 'pageSize', 'recordCountKey', 'pageSizeUrlKey', 'pageIndexUrlKey', 'currentPageIndex', 'type', 'showPageSizeDropDown', 'pageSizeDropDownLabel', 'pageSizeDropDownTrailingLabel', 'pageSizeDropDownLocation', 'showPagerRecordsLabel', 'pagerRecordsLabelTemplate', 'nextPageLabelText', 'prevPageLabelText', 'firstPageLabelText', 'lastPageLabelText', 'showFirstLastPages', 'showPrevNextPages', 'currentPageDropDownLeadingLabel', 'currentPageDropDownTrailingLabel', 'currentPageDropDownTooltip', 'pageSizeDropDownTooltip', 'pagerRecordsLabelTooltip', 'prevPageTooltip', 'nextPageTooltip', 'firstPageTooltip', 'lastPageTooltip', 'pageTooltipFormat', 'pageSizeList', 'pageCountLimit', 'visiblePageCount', 'defaultDropDownWidth', 'delayOnPageChanged', 'persist', 'inherit'],\n    outputs: ['pageIndexChanging', 'pageIndexChanged', 'pageSizeChanging', 'pageSizeChanged', 'pagerRendering', 'pagerRendered'],\n    standalone: false\n})\nexport class IgGridPagingFeature extends Feature<IgGridPaging> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Gets/Sets the current page index, delegates data binding and paging to [$.ig.DataSource](ig.datasource).\n     *\n     * @param index     The page index to go to.\n     */\n    /* istanbul ignore next */\n    public pageIndex(index?: number): number { return; }\n\n    /**\n     * Gets/Sets the page size. If no parameter is specified, just returns the current page size.\n     *\n     * @param size     The new page size.\n     */\n    /* istanbul ignore next */\n    public pageSize(size?: number): number { return; }\n\n    /**\n     * Destroys the igGridPaging feature by removing all elements in the pager area,\n     * unbinding events, and resetting data to discard data filtering on paging.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'updating',\n    inputs: ['disabled', 'create', 'columnSettings', 'editMode', 'enableDeleteRow', 'enableAddRow', 'validation', 'doneLabel',\n        'doneTooltip', 'cancelLabel', 'cancelTooltip', 'addRowLabel', 'addRowTooltip', 'deleteRowLabel', 'deleteRowTooltip', 'showDoneCancelButtons', 'enableDataDirtyException', 'startEditTriggers', 'horizontalMoveOnEnter', 'excelNavigationMode', 'saveChangesSuccessHandler', 'saveChangesErrorHandler', 'swipeDistance', 'wrapAround', 'rowEditDialogOptions', 'dialogWidget', 'inherit'],\n    outputs: ['editRowStarting', 'editRowStarted', 'editRowEnding', 'editRowEnded', 'editCellStarting', 'editCellStarted', 'editCellEnding', 'editCellEnded', 'rowAdding', 'rowAdded', 'rowDeleting', 'rowDeleted', 'dataDirty', 'generatePrimaryKeyValue', 'rowEditDialogBeforeOpen', 'rowEditDialogAfterOpen', 'rowEditDialogBeforeClose', 'rowEditDialogAfterClose', 'rowEditDialogContentsRendered'],\n    standalone: false\n})\nexport class IgGridUpdatingFeature extends Feature<IgGridUpdating> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Sets a cell value for the specified cell. It also creates a transaction and updates the UI.\n     * \t\t\tIf the specified cell is currently in edit mode, the function will set the desired value in the cell's editor instead.\n     *\n     * @param rowId    The primary key of the row the cell is a child of.\n     * @param colKey    The column key of the cell.\n     * @param value    The new value for the cell.\n     */\n    /* istanbul ignore next */\n    public setCellValue(rowId: object, colKey: string, value: object): void { return; }\n\n    /**\n     * Sets values for specified cells in a row. It also creates a transaction and updates the UI.\n     * \t\t\tIf the specified row is currently in edit mode, the function will set the desired values in the row's editors instead.\n     *\n     * @param rowId    The primary key of the row to update.\n     * @param values    Pairs of values in the format { column1Key: value1, column2Key: value2, ... } .\n     */\n    /* istanbul ignore next */\n    public updateRow(rowId: any, values: object): void { return; }\n\n    /**\n     * Adds a new row to the grid. It also creates a transaction and updates the UI.\n     *\n     * @param values    Pairs of values in the format { column1Key: value1, column2Key: value2, ... } .\n     */\n    /* istanbul ignore next */\n    public addRow(values: object): void { return; }\n\n    /**\n     * Deletes a row from the grid. It also creates a transaction and updates the UI.\n     *\n     * @param rowId    The primary key of the row to delete.\n     */\n    /* istanbul ignore next */\n    public deleteRow(rowId: any): void { return; }\n\n    /**\n     * Starts editing for the row or cell specified (depending on the [editMode](ui.iggridupdating#options:editMode)).\n     *\n     * @param rowId    The row id.\n     * @param column    The column key or index.\n     * @param raiseEvents    Specifies whether or not updating events should be raised for this operation.\n     */\n    /* istanbul ignore next */\n    public startEdit(rowId: object, column: object, raiseEvents?: boolean): boolean { return; }\n\n    /**\n     * Starts editing for adding a new row.\n     *\n     * @param raiseEvents    Specifies whether or not updating events should be raised for this operation.\n     */\n    /* istanbul ignore next */\n    public startAddRowEdit(raiseEvents?: boolean): boolean { return; }\n\n    /**\n     * Ends the currently active edit mode.\n     *\n     * @param update    Specifies if the edit process should accept the current changes. Default is 'false'.\n     * @param raiseEvents    Specifies whether or not updating events should be raised for this operation.\n     */\n    /* istanbul ignore next */\n    public endEdit(update?: boolean, raiseEvents?: boolean): boolean { return; }\n\n    /**\n     * Finds and returns the key of the first column the editor for which has invalid value.\n     */\n    /* istanbul ignore next */\n    public findInvalid(): string { return; }\n\n    /**\n     * Checks if the grid is in edit mode.\n     */\n    /* istanbul ignore next */\n    public isEditing(): boolean { return; }\n\n    /**\n     * Gets the editor for a column by the column key. That method can be used only after the editor has been created.\n     *\n     * @param key    The key of the column.\n     */\n    /* istanbul ignore next */\n    public editorForKey(key: string): object { return; }\n\n    /**\n     * Gets the editor for a column by the cell it resides in. If allowed the function can create the editor if it has not been created yet.\n     *\n     * @param cell    Reference to the jQuery-wrapped TD object of the grid that the editor belongs to.\n     * @param create    Requests to create the editor if it has not been created yet.\n     */\n    /* istanbul ignore next */\n    public editorForCell(cell: string, create?: boolean): object { return; }\n\n    /**\n     * Destroys igGridUpdating.\n     */\n    /* istanbul ignore next */\n    public destroy(): object { return; }\n\n    /**\n     * Shows the delete button for specific row.\n     *\n     * @param row    A jQuery object of the targeted row.\n     */\n    /* istanbul ignore next */\n    public showDeleteButtonFor(row: object): void { return; }\n\n    /**\n     * Hides the delete button.\n     */\n    /* istanbul ignore next */\n    public hideDeleteButton(): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'group-by',\n    inputs: ['disabled', 'create', 'groupByAreaVisibility', 'initialExpand', 'emptyGroupByAreaContent', 'emptyGroupByAreaContentSelectColumns', 'expansionIndicatorVisibility', 'groupByLabelWidth', 'labelDragHelperOpacity', 'indentation', 'defaultSortingDirection', 'groupedColumns', 'resultResponseKey', 'groupedRowTextTemplate', 'type', 'groupByUrlKey', 'groupByUrlKeyAscValue', 'groupByUrlKeyDescValue', 'summarySettings', 'columnSettings', 'expandTooltip', 'collapseTooltip', 'removeButtonTooltip', 'modalDialogGroupByOnClick', 'modalDialogGroupByButtonText', 'modalDialogCaptionButtonDesc', 'modalDialogCaptionButtonAsc', 'modalDialogCaptionButtonUngroup', 'modalDialogCaptionText', 'modalDialogDropDownLabel', 'modalDialogRootLevelHierarchicalGrid', 'modalDialogDropDownButtonCaption', 'modalDialogClearAllButtonLabel', 'emptyGroupByAreaContentSelectColumnsCaption', 'modalDialogDropDownWidth', 'modalDialogDropDownAreaWidth', 'modalDialogAnimationDuration', 'modalDialogWidth', 'modalDialogHeight', 'modalDialogButtonApplyText', 'modalDialogButtonCancelText', 'useGridColumnFormatter', 'persist', 'groupByDialogContainment', 'dialogWidget', 'inherit'],\n    outputs: ['groupedColumnsChanging', 'groupedColumnsChanged', 'modalDialogMoving', 'modalDialogClosing', 'modalDialogClosed', 'modalDialogOpening', 'modalDialogOpened', 'modalDialogContentsRendering', 'modalDialogContentsRendered', 'modalDialogButtonApplyClick', 'modalDialogButtonResetClick', 'modalDialogGroupingColumn', 'modalDialogGroupColumn', 'modalDialogUngroupingColumn', 'modalDialogUngroupColumn', 'modalDialogSortGroupedColumn'],\n    standalone: false\n})\nexport class IgGridGroupByFeature extends Feature<IgGridGroupBy> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Open groupby modal dialog\n     */\n    /* istanbul ignore next */\n    public openGroupByDialog(): void { return; }\n\n    /**\n     * Close groupby modal dialog\n     */\n    /* istanbul ignore next */\n    public closeGroupByDialog(): void { return; }\n\n    /**\n     * Render groupby modal dialog and its content\n     */\n    /* istanbul ignore next */\n    public renderGroupByModalDialog(): void { return; }\n\n    /**\n     * Open layouts dropdown\n     */\n    /* istanbul ignore next */\n    public openDropDown(): void { return; }\n\n    /**\n     * Close layouts dropdown\n     */\n    /* istanbul ignore next */\n    public closeDropDown(): void { return; }\n\n    /**\n     * Check whether column with specified key and layout is grouped\n     *\n     * @param key    key of the column\n     * @param layout    layout name\n     */\n    /* istanbul ignore next */\n    public checkColumnIsGrouped(key: string, layout: string): void { return; }\n\n    /**\n     * Get grouped data by value for the specific column.\n     * NOTE: Before calling this function the data(that is passed as an argument) should be sorted by colKey.\n     *\n     * @param data    data (sorted by colKey) that is used to get the records from.\n     * @param colKey    key of the column for which grouping will be applied.\n     * @param idval    value of the column by which grouping will be applied.\n     */\n    /* istanbul ignore next */\n    public getGroupedData(data: any[], colKey: string, idval?: string): any[] { return; }\n\n    /**\n     * Adds a column to the group by columns list, executes the group by operation and updates the view.\n     */\n    /* istanbul ignore next */\n    public groupByColumns(): object { return; }\n\n    /**\n     * Groups by a column\n     *\n     * @param key    Column Key - group by the column with the specified key\n     * @param layout    layout is an optional parameter.\n     * If set it means the grouped column is not in the root level but is a child layout column\n     * @param sortingDirection    if not set it is taken from option defaultSortingDirection\n     */\n    /* istanbul ignore next */\n    public groupByColumn(key: string, layout?: string, sortingDirection?: object): void { return; }\n\n    /**\n     * Removes the specified column from the group by columns list, executes the group by operation and updates the view.\n     *\n     * @param key    Column Key - ungroup by the column with the specified key\n     * @param layout    Layout is an optional parameter.\n     * If set it means the grouped column is not in the root level but is a child layout column.\n     */\n    /* istanbul ignore next */\n    public ungroupByColumn(key: string, layout?: string): void { return; }\n\n    /**\n     * Expand group row with specified id\n     *\n     * @param rowId    data-id attribute of the group row in the DOM\n     */\n    /* istanbul ignore next */\n    public expand(rowId: string): void { return; }\n\n    /**\n     * Expand group row with specified id\n     *\n     * @param rowId    data-id attribute of the group row in the DOM\n     */\n    /* istanbul ignore next */\n    public collapse(rowId: string): void { return; }\n\n    /**\n     * Clears the group by columns list and updates the view.\n     */\n    /* istanbul ignore next */\n    public ungroupAll(): void { return; }\n\n    /**\n     * Destroys the group by feature object.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'column-moving',\n    inputs: ['disabled', 'create', 'columnSettings', 'mode', 'moveType', 'addMovingDropdown', 'movingDialogWidth', 'movingDialogHeight', 'movingDialogAnimationDuration', 'movingAcceptanceTolerance', 'movingScrollTolerance', 'scrollSpeedMultiplier', 'scrollDelta', 'hideHeaderContentsDuringDrag', 'dragHelperOpacity', 'movingDialogCaptionButtonDesc', 'movingDialogCaptionButtonAsc', 'movingDialogCaptionText', 'movingDialogDisplayText', 'movingDialogDropTooltipText', 'movingDialogDropTooltipMarkup', 'dropDownMoveLeftText', 'dropDownMoveRightText', 'dropDownMoveFirstText', 'dropDownMoveLastText', 'movingToolTipMove', 'featureChooserSubmenuText', 'columnMovingDialogContainment', 'dialogWidget', 'inherit'],\n    outputs: ['columnDragStart', 'columnDragEnd', 'columnDragCanceled', 'columnMoving', 'columnMoved', 'movingDialogOpening', 'movingDialogOpened', 'movingDialogDragged', 'movingDialogClosing', 'movingDialogClosed', 'movingDialogContentsRendering', 'movingDialogContentsRendered', 'movingDialogMoveUpButtonPressed', 'movingDialogMoveDownButtonPressed', 'movingDialogDragColumnMoving', 'movingDialogDragColumnMoved'],\n    standalone: false\n})\nexport class IgGridColumnMovingFeature extends Feature<IgGridColumnMoving> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Restoring overwritten functions\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Moves a visible column at a specified place, in front or behind a target column or at a target index\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param column    An identifier of the column to be moved.\n     * It can be a key, a Multi-Column Header identificator, or an index in a number format.\n     * The latter is not supported when the grid contains multi-column headers.\n     * @param target An identifier of a column where the moved column should move to or an index at which the moved column should\n     * be moved to. In the case of a column identifier the column will be moved after it by default.\n     * @param after    Specifies whether the column moved should be moved after or before the target column.\n     * @param inDom    Specifies whether the column moving will be enacted through DOM manipulation or through rerendering of the grid.\n     * @param callback    Specifies a custom function to be called when the column is moved.\n     */\n    /* istanbul ignore next */\n    public moveColumn(column: object, target: object, after?: boolean, inDom?: boolean, callback?: () => void): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'hiding',\n    inputs: ['disabled', 'create', 'columnSettings', 'hiddenColumnIndicatorHeaderWidth', 'columnChooserContainment', 'columnChooserWidth', 'columnChooserHeight', 'dropDownAnimationDuration', 'columnChooserCaptionText', 'columnChooserDisplayText', 'hiddenColumnIndicatorTooltipText', 'columnHideText', 'columnChooserShowText', 'columnChooserHideText', 'columnChooserHideOnClick', 'columnChooserResetButtonLabel', 'columnChooserAnimationDuration', 'columnChooserButtonApplyText', 'columnChooserButtonCancelText', 'dialogWidget', 'inherit'],\n    outputs: ['columnHiding', 'columnHidingRefused', 'columnShowingRefused', 'multiColumnHiding', 'columnHidden', 'columnShowing', 'columnShown', 'columnChooserOpening', 'columnChooserOpened', 'columnChooserMoving', 'columnChooserClosing', 'columnChooserClosed', 'columnChooserContentsRendering', 'columnChooserContentsRendered', 'columnChooserButtonApplyClick', 'columnChooserButtonResetClick'],\n    standalone: false\n})\nexport class IgGridHidingFeature extends Feature<IgGridHiding> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Destroys the hiding widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Shows the Column Chooser dialog. If it is visible the method does nothing.\n     */\n    /* istanbul ignore next */\n    public showColumnChooser(): void { return; }\n\n    /**\n     * Hides the Column Chooser dialog. If it is not visible the method does nothing.\n     */\n    /* istanbul ignore next */\n    public hideColumnChooser(): void { return; }\n\n    /**\n     * Shows a hidden column. If the column is not hidden the method does nothing.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param column    An identifier for the column.\n     * If a number is provided it will be used as a column index else if a strings is provided it will be used as a column key.\n     * @param isMultiColumnHeader    If it is true then the column is of type multicolumnheader.\n     * An identifier for the column should be of type string.\n     * @param callback    Specifies a custom function to be called when the column(s) is shown(optional)\n     */\n    /* istanbul ignore next */\n    public showColumn(column: object, isMultiColumnHeader?: boolean, callback?: () => void): void { return; }\n\n    /**\n     * Hides a visible column. If the column is hidden the method does nothing.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param column An identifier for the column.\n     * If a number is provided it will be used as a column index else if a strings is provided it will be used as a column key.\n     * @param isMultiColumnHeader    If it is true then the column is of type multicolumnheader.\n     * An identifier for the column should be of type string.\n     * @param callback    Specifies a custom function to be called when the column is hidden(optional)\n     */\n    /* istanbul ignore next */\n    public hideColumn(column: object, isMultiColumnHeader?: boolean, callback?: () => void): void { return; }\n\n    /**\n     * Hides visible columns specified by the array. If the column is hidden the method does nothing.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param columns    An array of identifiers for the columns.\n     * If a number is provided it will be used as a column index else if a strings is provided it will be used as a column key.\n     * @param callback    Specifies a custom function to be called when all columns are hidden(optional)\n     */\n    /* istanbul ignore next */\n    public hideMultiColumns(columns: any[], callback?: () => void): void { return; }\n\n    /**\n     * Show visible columns specified by the array. If the column is shown the method does nothing.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param columns An array of identifiers for the columns.\n     * If a number is provided it will be used as a column index else if a strings is provided it will be used as a column key.\n     * @param callback    Specifies a custom function to be called when all columns are shown(optional)\n     */\n    /* istanbul ignore next */\n    public showMultiColumns(columns: any[], callback?: () => void): void { return; }\n\n    /**\n     * Gets whether the reset button in the column chooser dialog is to be rendered or not.\n     */\n    /* istanbul ignore next */\n    public isToRenderButtonReset(): void { return; }\n\n    /**\n     * Reset hidden/shown column to initial state of dialog(when it is opened)\n     */\n    /* istanbul ignore next */\n    public resetHidingColumnChooser(): void { return; }\n\n    /**\n     * Renders the Reset button in the Column Chooser dialog.\n     */\n    /* istanbul ignore next */\n    public renderColumnChooserResetButton(): void { return; }\n\n    /**\n     * Remove Reset button in column chooser modal dialog\n     */\n    /* istanbul ignore next */\n    public removeColumnChooserResetButton(): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'cell-merging',\n    inputs: ['disabled', 'create', 'initialState', 'inherit'],\n    outputs: ['cellsMerging', 'cellsMerged'],\n    standalone: false\n})\nexport class IgGridCellMergingFeature extends Feature<IgGridCellMerging> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Feature } from '../feature';\nimport { ElementRef, Directive } from '@angular/core';\n\n@Directive({\n    selector: 'responsive',\n    inputs: ['disabled', 'create', 'columnSettings', 'reactOnContainerWidthChanges', 'forceResponsiveGridWidth', 'responsiveSensitivity', 'responsiveModes', 'enableVerticalRendering', 'windowWidthToRenderVertically', 'propertiesColumnWidth', 'valuesColumnWidth', 'allowedColumnWidthPerType', 'singleColumnTemplate', 'inherit'],\n    outputs: ['responsiveColumnHiding', 'responsiveColumnHidden', 'responsiveColumnShowing', 'responsiveColumnShown', 'responsiveModeChanged'],\n    standalone: false\n})\nexport class IgGridResponsiveFeature extends Feature<IgGridResponsive> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Destroys the responsive widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Returns the currently active responsive mode.\n     */\n    /* istanbul ignore next */\n    public getCurrentResponsiveMode(): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'resizing',\n    inputs: ['disabled', 'create', 'allowDoubleClickToResize', 'deferredResizing', 'columnSettings', 'handleThreshold', 'inherit'],\n    outputs: ['columnResizing', 'columnResizingRefused', 'columnResized'],\n    standalone: false\n})\nexport class IgGridResizingFeature extends Feature<IgGridResizing> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Destroys the resizing widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Resizes a column to a specified width in pixels, percents or auto if no width is specified.\n     *\n     * @param column    An identifier for the column.\n     * If a number is provided it will be used as a columnIndex else if a strings is provided it will be used as a columnKey.\n     * @param width    Width of the column in pixels or percents.\n     * If no width or \"*\" is specified the column will be auto-sized to the width of the data in it (including header and footer cells).\n     */\n    /* istanbul ignore next */\n    public resize(column: object, width?: object): void { return; }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'selection',\n    inputs: ['disabled', 'create', 'multipleSelection', 'mouseDragSelect', 'mode', 'activation', 'wrapAround', 'skipChildren', 'multipleCellSelectOnClick', 'touchDragSelect', 'persist', 'allowMultipleRangeSelection'],\n    outputs: ['rowSelectionChanging', 'rowSelectionChanged', 'cellSelectionChanging', 'cellSelectionChanged', 'activeCellChanging', 'activeCellChanged', 'activeRowChanging', 'activeRowChanged'],\n    standalone: false\n})\nexport class IgGridSelectionFeature extends Feature<IgGridSelection> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Destroys the selection widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Clears all selected cells, selected rows, active cell and active row. Also updates the UI accordingly\n     */\n    /* istanbul ignore next */\n    public clearSelection(): void { return; }\n\n    /**\n     * Selects a cell by row/col\n     *\n     * @param row     Row index\n     * @param col     Column index\n     * @param isFixed     If the cell is part of the fixed or unfixed area of the grid.\n     */\n    /* istanbul ignore next */\n    public selectCell(row: number, col: number, isFixed?: boolean): void { return; }\n\n    /**\n     * Selects a cell by row id/column key\n     *\n     * @param id     Row Id\n     * @param colKey     Column key\n     */\n    /* istanbul ignore next */\n    public selectCellById(id: object, colKey: string): void { return; }\n\n    /**\n     * Deselects a cell by row/col\n     *\n     * @param row     Row index\n     * @param col     Column index\n     * @param isFixed     If the cell is part of the fixed or unfixed area of the grid.\n     */\n    /* istanbul ignore next */\n    public deselectCell(row: number, col: number, isFixed?: boolean): void { return; }\n\n    /**\n     * Deselects a cell by row id/column key\n     *\n     * @param id     Row Id\n     * @param colKey     Column key\n     */\n    /* istanbul ignore next */\n    public deselectCellById(id: object, colKey: string): void { return; }\n\n    /**\n     * Selects a row by index\n     *\n     * @param index     Row index\n     */\n    /* istanbul ignore next */\n    public selectRow(index: number): void { return; }\n\n    /**\n     * Selects a row by row id\n     *\n     * @param id     Row Id\n     */\n    /* istanbul ignore next */\n    public selectRowById(id: object): void { return; }\n\n    /**\n     * Deselects a row by index\n     *\n     * @param index     Row index\n     */\n    /* istanbul ignore next */\n    public deselectRow(index: number): void { return; }\n\n    /**\n     * Deselects a row by row id\n     *\n     * @param id     Row Id\n     */\n    /* istanbul ignore next */\n    public deselectRowById(id: object): void { return; }\n\n    /**\n     * Returns an array of selected cells in arbitrary order where every objects has the format\n     * { element: , row: , index: , rowIndex: , columnKey: } .\n     *\n     * \t\t\t\tIf multiple selection is disabled the function will return null.\n     */\n    /* istanbul ignore next */\n    public selectedCells(): any[] { return; }\n\n    /**\n     * Returns an array of selected rows in arbitrary order where every object has the format { element: , index: } .\n     *\n     * \t\t\t\tIf multiple selection is disabled the function will return null.\n     */\n    /* istanbul ignore next */\n    public selectedRows(): any[] { return; }\n\n    /**\n     * Returns the currently selected cell that has the format { element: , row: , index: , rowIndex: , columnKey: }, if any.\n     *\n     * \t\t\t\tIf multiple selection is enabled the function will return null.\n     */\n    /* istanbul ignore next */\n    public selectedCell(): object { return; }\n\n    /**\n     * Returns the currently selected row that has the format { element: , index: }, if any.\n     *\n     * \t\t\t\tIf multiple selection is enabled the function will return null.\n     */\n    /* istanbul ignore next */\n    public selectedRow(): object { return; }\n\n    /**\n     * Returns the currently active (focused) cell that has the format { element: , row: , index: , rowIndex: , columnKey: }, if any.\n     */\n    /* istanbul ignore next */\n    public activeCell(): object { return; }\n\n    /**\n     * Returns the currently active (focused) row that has the format { element: , index: }, if any.\n     */\n    /* istanbul ignore next */\n    public activeRow(): object { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n@Directive({\n    selector: 'row-selectors',\n    inputs: ['disabled', 'create', 'enableRowNumbering', 'enableCheckBoxes', 'rowNumberingSeed', 'rowSelectorColumnWidth', 'requireSelection', 'showCheckBoxesOnFocus', 'inherit', 'enableSelectAllForPaging', 'selectAllForPagingTemplate', 'deselectAllForPagingTemplate'],\n    outputs: ['rowSelectorClicked', 'checkBoxStateChanging', 'checkBoxStateChanged'],\n    standalone: false\n})\nexport class IgGridRowSelectorsFeature extends Feature<IgGridRowSelectors> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n\n@Directive({\n    selector: 'summaries',\n    inputs: ['disabled', 'create', 'type', 'dialogButtonOKText', 'dialogButtonCancelText', 'calculateRenderMode', 'featureChooserText', 'featureChooserTextHide', 'compactRenderingMode', 'defaultDecimalDisplay', 'showSummariesButton', 'summariesResponseKey', 'summaryExprUrlKey', 'callee', 'dropDownHeight', 'dropDownWidth', 'showDropDownButton', 'summaryExecution', 'dropDownDialogAnimationDuration', 'emptyCellText', 'summariesHeaderButtonTooltip', 'resultTemplate', 'isGridFormatter', 'renderSummaryCellFunc', 'columnSettings', 'inherit'],\n    outputs: ['dropDownOpening', 'dropDownOpened', 'dropDownClosing', 'dropDownClosed', 'summariesCalculating', 'summariesCalculated', 'summariesMethodSelectionChanged', 'summariesToggling', 'summariesToggled', 'dropDownOKClicked', 'dropDownCancelClicked'],\n    standalone: false\n})\nexport class IgGridSummariesFeature extends Feature<IgGridSummaries> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Returns whether summaries rows are hidden\n     */\n    /* istanbul ignore next */\n    public isSummariesRowsHidden(): void { return; }\n\n    /**\n     * Calculate summaries\n     */\n    /* istanbul ignore next */\n    public calculateSummaries(): void { return; }\n\n    /**\n     * Remove all summaries dropdown buttons.\n     */\n    /* istanbul ignore next */\n    public clearAllFooterIcons(): void { return; }\n\n    /**\n     * Toggle drop down\n     *\n     * @param columnKey    toggle drop down for the column with the specified key\n     * @param event    event object. Its data should contain current columnKey, isAnimating, buttonId\n     */\n    /* istanbul ignore next */\n    public toggleDropDown(columnKey: string, event: object): void { return; }\n\n    /**\n     * Show/Hide dialog\n     *\n     * @param $dialog     jQuery object representation of dropdown div element\n     */\n    /* istanbul ignore next */\n    public showHideDialog($dialog: object): void { return; }\n\n    /**\n     * Toggle summaries rows\n     *\n     * @param isToShow    Specifies whether to show or not summaries\n     * @param isInternalCall    Optional parameter.Specifies whether this function is called internally by the widget.\n     */\n    /* istanbul ignore next */\n    public toggleSummariesRows(isToShow: boolean, isInternalCall: boolean): void { return; }\n\n    /**\n     * Toggles the checkstate of a checkbox if checkboxMode is not set to off, otherwise does nothing.\n     *\n     * @param $checkbox     Specifies the jQuery object of the checkbox.\n     */\n    /* istanbul ignore next */\n    public toggleCheckstate($checkbox: object): void { return; }\n\n    /**\n     * Select/Unselect specified checkbox\n     *\n     * @param $checkbox     Specifies the jQuery object for checkbox\n     * @param isToSelect     Specify whether to select or not checkbox\n     */\n    /* istanbul ignore next */\n    public selectCheckBox($checkbox: object, isToSelect: boolean): void { return; }\n\n    /**\n     * Summary calculate the whole data for the specified column key,\n     * columnMethods and dataType (used when datasource is remote and dataType is date)\n     *\n     * @param ck    ColumnKey\n     * @param columnMethods    Array of column methods objects\n     * @param data    object which represents result represents dataType for the current column\n     * @param dataType data type\n     */\n    /* istanbul ignore next */\n    public calculateSummaryColumn(ck: string, columnMethods: any[], data: object, dataType: object): void { return; }\n\n    /**\n     * Return a JQUERY object which holds all summaries for all columns\n     */\n    /* istanbul ignore next */\n    public summaryCollection(): void { return; }\n\n    /**\n     * Return a JQUERY object which holds all summaries for column with the specified column key\n     *\n     * @param columnKey column key\n     */\n    /* istanbul ignore next */\n    public summariesFor(columnKey: object): void { return; }\n}\n","import { ElementRef, Directive } from '@angular/core';\nimport { Feature } from '../feature';\n\n\n@Directive({\n    selector: 'column-fixing',\n    inputs: ['disabled', 'create', 'headerFixButtonText', 'headerUnfixButtonText', 'showFixButtons', 'syncRowHeights', 'scrollDelta', 'fixingDirection', 'columnSettings', 'featureChooserTextFixedColumn', 'featureChooserTextUnfixedColumn', 'minimalVisibleAreaWidth', 'fixNondataColumns', 'populateDataRowsAttributes'],\n    outputs: ['columnFixing', 'columnFixed', 'columnUnfixing', 'columnUnfixed', 'columnFixingRefused', 'columnUnfixingRefused'],\n    standalone: false\n})\nexport class IgGridColumnFixingFeature extends Feature<IgGridColumnFixing> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Unfixes a column by specified column identifier - column key or column index.\n     *\n     * @param colIdentifier    An identifier of the column to be unfixed - column index or column key.\n     * @param target    Key of the column where the unfixed column should move to.\n     * @param after    Specifies where the unfixed column should be rendered after or before the target column.\n     * This parameter is disregarded if there is no target column specified.\n     */\n    /* istanbul ignore next */\n    public unfixColumn(colIdentifier: object, target?: string, after?: boolean): object { return; }\n\n    /**\n     * Checks whether the heights of fixed and unfixed tables are equal - if not sync them. Similar check is made for heights of table rows.\n     */\n    /* istanbul ignore next */\n    public checkAndSyncHeights(): void { return; }\n\n    /**\n     * If the 'check' argument is set to true, checks whether the heights of fixed and unfixed tables are equal, if not sync them.\n     * Similar check is made for heights of table rows.\n     * If the clearRowsHeights argument is set to true, clears rows heights before syncing them.\n     *\n     * @param check    If set to true, checks whether the heights of fixed and unfixed tables are equal, if not sync them.\n     * If this argument is set to false sync is performed regardless of the current heights.\n     * @param clearRowsHeights    Clears row heigths for all visible rows.\n     */\n    /* istanbul ignore next */\n    public syncHeights(check?: boolean, clearRowsHeights?: boolean): void { return; }\n\n    /**\n     * Returns whether the column with the specified key is a column group header\n     *  when the [multi-column headers](http://www.igniteui.com/help/iggrid-multicolumnheaders-landingpage) feature is used.\n     *\n     * @param colKey    The key of the column to perform the check for.\n     */\n    /* istanbul ignore next */\n    public isGroupHeader(colKey: string): boolean { return; }\n\n    /**\n     * Checks whether column fixing is allowed for the specified columns.\n     * It should not be allowed if there is only one visible column in the unfixed area.\n     *\n     * @param columns    Array of columns and/or column identifiers - could be column indexes, column keys, column object or mixed.\n     */\n    /* istanbul ignore next */\n    public checkFixingAllowed(columns: any[]): boolean { return; }\n\n    /**\n     * Checks whether unfixing is allowed for the specified columns.\n     * It should not be allowed if there is only one visible column in the fixed area.\n     *\n     * @param columns    Array of columns and/or column identifiers - could be column indexes, column keys, column object or mixed.\n     */\n    /* istanbul ignore next */\n    public checkUnfixingAllowed(columns: any[]): boolean { return; }\n\n    /**\n     * Fixes non-data columns (such as the row numbering column of row selectors) if any and if\n     * [fixingDirection](ui.iggridcolumnfixing#options:fixingDirection) is left. Does nothing if the non-data columns are already fixed.\n     */\n    /* istanbul ignore next */\n    public fixNonDataColumns(): void { return; }\n\n    /**\n     * This function is deprecated - use function fixNonDataColumns.\n     */\n    /* istanbul ignore next */\n    public fixDataSkippedColumns(): void { return; }\n\n    /**\n     * Unfixes non-data columns (such as the row numbering column of row selectors) if any and if\n     * [fixingDirection](ui.iggridcolumnfixing#options:fixingDirection) is left. Does nothing if the non-data columns are already fixed.\n     */\n    /* istanbul ignore next */\n    public unfixNonDataColumns(): void { return; }\n\n    /**\n     * This function is deprecated - use function unfixNonDataColumns.\n     */\n    /* istanbul ignore next */\n    public unfixDataSkippedColumns(): void { return; }\n\n    /**\n     * Unfixes all fixed columns.\n     */\n    /* istanbul ignore next */\n    public unfixAllColumns(): void { return; }\n\n    /**\n     * Syncs rows heights between two collections of rows.\n     *\n     * @param $trs    An array of rows of the first(fixed/unfixed) container.\n     * @param $anotherRows    An array of rows of the second(fixed/unfixed) container.\n     */\n    /* istanbul ignore next */\n    public syncRowsHeights($trs: any[], $anotherRows: any[]): void { return; }\n\n    /**\n     * Calculates widths of the fixed columns.\n     *\n     * @param fCols    Array of grid columns. If not set then the total width of the fixed columns are returned.\n     * @param excludeNonDataColumns If set to true do not calculate the width of non-data fixed columns\n     *                              (like the row selector row numbering column).\n     * @param includeHidden    If set to true calculates width of the hidden fixed columns (their initial width before hiding).\n     */\n    /* istanbul ignore next */\n    public getWidthOfFixedColumns(fCols?: any[], excludeNonDataColumns?: boolean, includeHidden?: boolean): number { return; }\n\n    /**\n     * Destroys the column fixing widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Feature } from '../feature';\nimport { ElementRef, Directive } from '@angular/core';\n\n@Directive({\n    selector: 'tooltips',\n    inputs: ['disabled', 'create', 'visibility', 'style', 'showDelay', 'hideDelay', 'columnSettings', 'fadeTimespan', 'cursorLeftOffset', 'cursorTopOffset', 'inherit'],\n    outputs: ['tooltipShowing', 'tooltipShown', 'tooltipHiding', 'tooltipHidden'],\n    standalone: false\n})\nexport class IgGridTooltipsFeature extends Feature<IgGridTooltips> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Destroys the tooltip widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Returns the ID of the parent div element bounding the ruler and the tooltip container\n     */\n    /* istanbul ignore next */\n    public id(): string { return; }\n}\n","import { Feature } from '../feature';\nimport { ElementRef, Directive } from '@angular/core';\n\n@Directive({\n    selector: 'append-rows-on-demand',\n    inputs: ['type', 'chunkSize', 'recordCountKey', 'chunkSizeUrlKey', 'chunkIndexUrlKey', 'defaultChunkIndex', 'currentChunkIndex', 'loadTrigger', 'loadMoreDataButtonText'],\n    outputs: ['rowsRequesting', 'rowsRequested'],\n    standalone: false\n})\nexport class IgGridAppendRowsOnDemandFeature extends Feature<IgGridAppendRowsOnDemand> {\n    constructor(el: ElementRef) {\n        super(el);\n    }\n\n    /**\n     * Destroys the append rows on demand widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Loads the next chunk of data.\n     */\n    /* istanbul ignore next */\n    public nextChunk(): void { return; }\n}\n","import { Directive, AfterContentInit, ContentChild, ElementRef } from '@angular/core';\nimport { IgGridSortingFeature } from './iggridfeatures/iggridsorting.directive';\nimport { IgGridFilteringFeature } from './iggridfeatures/iggridfiltering.directive';\nimport { IgGridPagingFeature } from './iggridfeatures/iggridpaging.directive';\nimport { IgGridUpdatingFeature } from './iggridfeatures/iggridupdating.directive';\nimport { IgGridGroupByFeature } from './iggridfeatures/iggridgroupby.directive';\nimport { IgGridColumnMovingFeature } from './iggridfeatures/iggridcolumnmoving';\nimport { IgGridHidingFeature } from './iggridfeatures/iggridhiding.directive';\nimport { IgGridCellMergingFeature } from './iggridfeatures/iggridcellmerging.directive';\nimport { IgGridResponsiveFeature } from './iggridfeatures/iggridresponsive.directive';\nimport { IgGridResizingFeature } from './iggridfeatures/iggridresizing.directive';\nimport { IgGridSelectionFeature } from './iggridfeatures/iggridselection.directive';\nimport { IgGridRowSelectorsFeature } from './iggridfeatures/iggridrowselectors.directive';\nimport { IgGridSummariesFeature } from './iggridfeatures/iggridsummaries.directive';\nimport { IgGridColumnFixingFeature } from './iggridfeatures/iggridcolumnfixing.directive';\nimport { IgGridTooltipsFeature } from './iggridfeatures/iggridtooltips.directive';\nimport { IgGridAppendRowsOnDemandFeature } from './iggridfeatures/iggridappendrowsondemand.directive';\nimport { IgGridMultiColumnHeadersFeature } from './iggridfeatures/iggridmulticolumnheaders.directive';\n\n@Directive({\n    selector: 'features',\n    standalone: false\n})\nexport class Features implements AfterContentInit {\n  public allFeatures: Array<any> = new Array<any>();\n\n  @ContentChild(IgGridSortingFeature, { static: true }) sorting: IgGridSortingFeature;\n  @ContentChild(IgGridFilteringFeature, { static: true }) filtering: IgGridFilteringFeature;\n  @ContentChild(IgGridPagingFeature, { static: true }) paging: IgGridPagingFeature;\n  @ContentChild(IgGridUpdatingFeature, { static: true }) updating: IgGridUpdatingFeature;\n  @ContentChild(IgGridGroupByFeature, { static: true }) groupBy: IgGridGroupByFeature;\n  @ContentChild(IgGridColumnMovingFeature, { static: true }) columnMoving: IgGridColumnMovingFeature;\n  @ContentChild(IgGridHidingFeature, { static: true }) hiding: IgGridHidingFeature;\n  @ContentChild(IgGridCellMergingFeature, { static: true }) cellMerging: IgGridCellMergingFeature;\n  @ContentChild(IgGridResponsiveFeature, { static: true }) responsive: IgGridResponsiveFeature;\n  @ContentChild(IgGridResizingFeature, { static: true }) resizing: IgGridResizingFeature;\n  @ContentChild(IgGridSelectionFeature, { static: true }) selection: IgGridSelectionFeature;\n  @ContentChild(IgGridRowSelectorsFeature, { static: true }) rowSelectors: IgGridRowSelectorsFeature;\n  @ContentChild(IgGridSummariesFeature, { static: true }) summaries: IgGridSummariesFeature;\n  @ContentChild(IgGridColumnFixingFeature, { static: true }) columnFixing: IgGridColumnFixingFeature;\n  @ContentChild(IgGridTooltipsFeature, { static: true }) tooltips: IgGridTooltipsFeature;\n  @ContentChild(IgGridAppendRowsOnDemandFeature, { static: true }) appendRowsOnDemand: IgGridAppendRowsOnDemandFeature;\n  @ContentChild(IgGridMultiColumnHeadersFeature, { static: true }) multiColumnHeaders: IgGridMultiColumnHeadersFeature;\n\n  addFeature(name, parent) {\n    const nodeName = name.replace(/([A-Z])/g, (g) => '-' + g[0].toLowerCase());\n    let el = document.createElement(nodeName);\n    el = parent.appendChild(el);\n    const child = new ElementRef(el);\n\n    switch (nodeName) {\n      case 'filtering': this.filtering = new IgGridFilteringFeature(child); break;\n      case 'sorting': this.sorting = new IgGridSortingFeature(child); break;\n      case 'paging': this.paging = new IgGridPagingFeature(child); break;\n      case 'updating': this.updating = new IgGridUpdatingFeature(child); break;\n      case 'group-by': this.groupBy = new IgGridGroupByFeature(child); break;\n      case 'column-moving': this.columnMoving = new IgGridColumnMovingFeature(child); break;\n      case 'hiding': this.hiding = new IgGridHidingFeature(child); break;\n      case 'responsive': this.responsive = new IgGridResponsiveFeature(child); break;\n      case 'cell-merging': this.cellMerging = new IgGridCellMergingFeature(child); break;\n      case 'resizing': this.resizing = new IgGridResizingFeature(child); break;\n      case 'selection': this.selection = new IgGridSelectionFeature(child); break;\n      case 'row-selectors': this.rowSelectors = new IgGridRowSelectorsFeature(child); break;\n      case 'summaries': this.summaries = new IgGridSummariesFeature(child); break;\n      case 'column-fixing': this.columnFixing = new IgGridColumnFixingFeature(child); break;\n      case 'tooltips': this.tooltips = new IgGridTooltipsFeature(child); break;\n      case 'append-rows-on-demand': this.appendRowsOnDemand = new IgGridAppendRowsOnDemandFeature(child); break;\n      case 'multi-column-headers': this.multiColumnHeaders = new IgGridMultiColumnHeadersFeature(child); break;\n    }\n    this[name].ngOnInit();\n    this.allFeatures.push(this[name]);\n\n  }\n  ngAfterContentInit() {\n    this.filtering ? this.allFeatures.push(this.filtering) : this.noop();\n    this.sorting ? this.allFeatures.push(this.sorting) : this.noop();\n    this.paging ? this.allFeatures.push(this.paging) : this.noop();\n    this.updating ? this.allFeatures.push(this.updating) : this.noop();\n    this.groupBy ? this.allFeatures.push(this.groupBy) : this.noop();\n    this.columnMoving ? this.allFeatures.push(this.columnMoving) : this.noop();\n    this.hiding ? this.allFeatures.push(this.hiding) : this.noop();\n    this.responsive ? this.allFeatures.push(this.responsive) : this.noop();\n    this.cellMerging ? this.allFeatures.push(this.cellMerging) : this.noop();\n    this.resizing ? this.allFeatures.push(this.resizing) : this.noop();\n    this.selection ? this.allFeatures.push(this.selection) : this.noop();\n    this.rowSelectors ? this.allFeatures.push(this.rowSelectors) : this.noop();\n    this.summaries ? this.allFeatures.push(this.summaries) : this.noop();\n    this.columnFixing ? this.allFeatures.push(this.columnFixing) : this.noop();\n    this.tooltips ? this.allFeatures.push(this.tooltips) : this.noop();\n    this.appendRowsOnDemand ? this.allFeatures.push(this.appendRowsOnDemand) : this.noop();\n    this.multiColumnHeaders ? this.allFeatures.push(this.multiColumnHeaders) : this.noop();\n  }\n\n  private noop() {}\n}\n","import {\n  ElementRef,\n  EventEmitter,\n  IterableDiffers,\n  DoCheck,\n  SimpleChanges,\n  Input,\n  ChangeDetectorRef,\n  KeyValueDiffers,\n  Renderer2,\n  Directive,\n  OnInit,\n  OnChanges,\n  OnDestroy\n} from '@angular/core';\n\ndeclare var jQuery: any;\n\nconst NODES = {\n    'ig-text-editor': 'div',\n    'ig-numeric-editor': 'input',\n    'ig-percent-editor': 'input',\n    'ig-mask-editor': 'input',\n    'ig-date-picker': 'input',\n    'ig-time-picker': 'input',\n    'ig-date-editor': 'input',\n    'ig-currency-editor': 'input',\n    'ig-checkbox-editor': 'input',\n    'ig-html-editor': 'div',\n    'ig-combo': 'input',\n    'ig-grid': 'table',\n    'ig-tree-grid': 'table',\n    'ig-hierarchical-grid': 'table',\n    'ig-pivot-data-selector': 'div',\n    'ig-pivot-grid': 'table',\n    'ig-data-chart': 'div',\n    'ig-pie-chart': 'div',\n    'ig-doughnut-chart': 'div',\n    'ig-funnel-chart': 'div',\n    'ig-radial-gauge': 'div',\n    'ig-sparkline': 'div',\n    'ig-zoombar': 'div',\n    'ig-map': 'div',\n    'ig-bullet-graph': 'div',\n    'ig-linear-gauge': 'div',\n    'ig-q-r-code-barcode': 'div',\n    'ig-validator': 'div',\n    'ig-upload': 'div',\n    'ig-popover': 'div',\n    'ig-rating': 'div',\n    'ig-video-player': 'div',\n    'ig-radial-menu': 'div',\n    'ig-split-button': 'div',\n    'ig-notifier': 'div',\n    'ig-tree': 'div',\n    'ig-dialog': 'div',\n    'ig-splitter': 'div',\n    'ig-layout-manager': 'div',\n    'ig-tile-manager': 'div',\n    'ig-spreadsheet': 'div',\n    'ig-scheduler': 'div'\n};\n\n@Directive()\nexport class IgControlBase<Model> implements DoCheck, OnInit, OnChanges, OnDestroy {\n    @Input()\n    public options: any = {};\n\n    protected _differs: any;\n    protected _el: any;\n    protected _widgetName: string;\n    protected _differ: any;\n    protected _optsDiffer: any;\n    protected _kvalDiffers: any;\n    protected _events: Map<string, string>;\n    private _evtEmmiters: any = {};\n    private _nativeElement: any;\n    public widgetId: string;\n\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers,\n                public kvalDiffers: KeyValueDiffers, public cdr: ChangeDetectorRef) {\n        this._differs = differs;\n        this._nativeElement = el.nativeElement;\n        this._widgetName = this.convertToCamelCase(el.nativeElement.nodeName.toLowerCase()); // ig-grid -> igGrid\n        this._el = el.nativeElement.appendChild(document.createElement(NODES[el.nativeElement.nodeName.toLowerCase()]));\n\n        for (const propt in jQuery.ui[this._widgetName].prototype.events) {\n          if (jQuery.ui[this._widgetName].prototype.events.hasOwnProperty(propt)) {\n            this[propt] = new EventEmitter();\n            // cahcing the event emmitters for cases when the event name is the same as a method name.\n            this._evtEmmiters[propt] = this[propt];\n          }\n        }\n    }\n\n    createSetter(name) {\n        return function(value) {\n            this.options[name] = value;\n            if (this._config) {\n                this._config[name] = value;\n            }\n            if (jQuery.ui[this._widgetName] &&\n                jQuery.ui[this._widgetName].prototype.options &&\n                jQuery.ui[this._widgetName].prototype.options.hasOwnProperty(name) &&\n                jQuery(this._el).data(this._widgetName)) {\n                jQuery(this._el)[this._widgetName]('option', name, value);\n            }\n        };\n    }\n\n    ngOnInit() {\n        let evtName;\n        const that = this;\n        this._events = new Map<string, string>();\n\n        for (const opt in jQuery.ui[this._widgetName].prototype.options) {\n            // copy root level options into this.options\n            if (this[opt] && typeof this[opt] !== 'function') {\n                this.options[opt] = this[opt];\n            }\n        }\n\n        for (const opt in jQuery.ui[this._widgetName].prototype.options) {\n            if (opt !== 'dataSource') {\n                Object.defineProperty(this, opt, {\n                    set: this.createSetter(opt),\n                    enumerable: true,\n                    configurable: true\n                });\n            }\n        }\n\n        const propNames = jQuery.ui[this._widgetName].prototype;\n        for (const name in propNames) {\n            if (name.indexOf('_') !== 0 && typeof jQuery.ui[this._widgetName].prototype[name] === 'function'\n                && name !== 'dataSource') {\n                Object.defineProperty(that, name, {\n                    get: that.createMethodGetter(name)\n                });\n            }\n        }\n        // events binding\n        for (const propt in jQuery.ui[this._widgetName].prototype.events) {\n          if (jQuery.ui[this._widgetName].prototype.events.hasOwnProperty(propt)) {\n            evtName = this._widgetName.toLowerCase() + propt.toLowerCase();\n            this._events[evtName] = propt;\n            jQuery(this._el).on(evtName, (evt, ui) => {\n                const emmiter = that._evtEmmiters[that._events[evt.type]];\n                emmiter.emit({ event: evt, ui });\n            });\n          }\n        }\n\n        jQuery(this._el).attr('id', this.widgetId);\n        jQuery(this._el)[this._widgetName](this.options);\n    }\n    createMethodGetter(name) {\n        return () => {\n            const widget = jQuery(this._el).data(this._widgetName);\n            return jQuery.proxy(widget[name], widget);\n        };\n    }\n\n    ngDoCheck() {\n        if (this._optsDiffer) {\n            const changes = this._optsDiffer.diff(this.options);\n            if (changes) {\n                changes.forEachChangedItem((change: any) => {\n                    this[change.key] = change.currentValue;\n                });\n            }\n        }\n    }\n    public ngOnChanges(changes: SimpleChanges): void {\n        const opts = 'options';\n        if (opts in changes) {\n            const value = changes[opts].currentValue;\n            // options have been changed. Destroy and re-create widget.\n            if (jQuery(this._el).data(this._widgetName)) {\n                jQuery(this._el)[this._widgetName]('destroy');\n                jQuery(this._el)[this._widgetName](this.options);\n            }\n            try {\n                this._optsDiffer = this.kvalDiffers.find({}).create();\n            } catch (e) {\n                throw new Error('Only binding to object is supported for options property.');\n            }\n        }\n    }\n    public markForCheck() {\n        this.cdr.markForCheck();\n    }\n\n    convertToCamelCase(str) {\n        // convert hyphen to camelCase\n        return str.replace(/-([a-z])/g, group => group[1].toUpperCase());\n    }\n\n    ngOnDestroy() {\n        // igZoombar should be attached to body when being destroyed\n        if (this._widgetName !== 'igZoombar' || document.body.contains(this._el)) {\n            jQuery(this._el)[this._widgetName]('destroy');\n            jQuery(this._el).remove();\n            jQuery(this._nativeElement).remove();\n        }\n    }\n}\n","import { IgControlBase } from '../igcontrolbase/igcontrolbase';\nimport {\n  AfterContentInit,\n  QueryList,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  KeyValueDiffers,\n  IterableDiffers,\n  SimpleChanges,\n  Input,\n  ChangeDetectorRef,\n  Renderer2,\n  Directive,\n  OnInit,\n  OnChanges,\n  DoCheck\n} from '@angular/core';\nimport { Column } from './column.directive';\nimport { Features } from './features.directive';\n\n@Directive()\nexport class IgGridBase<Model> extends IgControlBase<Model> implements AfterContentInit, OnInit, OnChanges, DoCheck {\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const grid = jQuery(this._el).data(this._widgetName);\n        if (grid) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n    @Input()\n    public primaryKey: string;\n\n    protected _changes: any;\n    @ContentChildren(Column) _columns: QueryList<Column>;\n    @ContentChild(Features, {static: true}) featuresList: Features;\n    private _dataSource;\n\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n    }\n    ngAfterContentInit() {\n        if (this._columns && this._columns.length) {\n            if (this.options) {\n                this.options.columns = this._columns.map((c) => c._settings);\n            }\n        }\n        if (this.featuresList) {\n            if (this.options) {\n                this.options.features = this.featuresList.allFeatures.map((c) => c.initSettings);\n            }\n        }\n        if (this.options && this.options.features && !this.featuresList) {\n            this.featuresList = new Features();\n            // populate featuresList\n            this.options.features.forEach(feature => {\n                const featureName = feature.name.charAt(0).toLowerCase() + feature.name.slice(1);\n                this.featuresList.addFeature(featureName, this._el);\n            });\n        }\n        super.ngOnInit();\n    }\n\n    createDataSource(value: any) {\n        return jQuery.extend(true, [], value);\n    }\n\n    deleteRow(id, index) {\n        const element = jQuery(this._el);\n        const tr = element.find('tr[data-id=\\'' + id + '\\']');\n\n        if (tr.length > 0) {\n            tr.remove();\n            jQuery(this._el).data(this._widgetName).dataSource.deleteRow(id, true);\n            jQuery(this._el).data(this._widgetName).dataSource._removeTransactionsByRecordId(id);\n        }\n        this._changes.splice(index, 1);\n    }\n\n    addRow(rowData, index) {\n        let grid;\n        const pkKey = this.primaryKey || this.options.primaryKey;\n        const existingDomRow = jQuery(this._el).find('tr[data-id=\\'' + rowData[pkKey] + '\\']');\n        let widgetName = this._widgetName;\n        let existingRow;\n        let t;\n\n        if (this._widgetName === 'igHierarchicalGrid') {\n            widgetName = 'igGrid';\n        }\n\n        grid = jQuery(this._el).data(widgetName);\n\n        if (existingDomRow.length === 0) {\n            grid.renderNewRow(rowData, rowData[pkKey]);\n        }\n\n        existingRow = grid.dataSource.findRecordByKey(rowData[pkKey]);\n        if (!existingRow) {\n            // add the row without affecting the original DS (scope source)\n            // TODO: trigger rowAdded event?\n            grid.dataSource._addRow(rowData, index);\n            // add transaction\n            t = grid.dataSource._createNewRowTransaction(rowData[pkKey], rowData);\n            grid.dataSource._addTransaction(t);\n            grid.dataSource._removeTransactionByTransactionId(t.tid);\n        }\n        this._changes.push(this.kvalDiffers.find({}).create());\n    }\n    updateRow(rec, currValue, key) {\n        const pkKey = this.primaryKey || this.options.primaryKey;\n        let widgetName = this._widgetName;\n        if (this._widgetName === 'igHierarchicalGrid') {\n            widgetName = 'igGrid';\n        }\n        const element = jQuery(this._el);\n        const grid = element.data(widgetName);\n        const column = grid.columnByKey(key);\n        let newFormattedVal;\n        let td;\n        if (column) {\n            if (column.template) {\n                newFormattedVal = grid._renderTemplatedCell(rec, column);\n            } else {\n                newFormattedVal = grid._renderCell(currValue, column, rec);\n            }\n            td = grid._getCellsByColKey(element.find('tr[data-id=\\'' + rec[pkKey] + '\\']'), key);\n            // if current cell is still in edit mode, exit it.\n            if (jQuery(td).find('input.ui-igedit-input').length > 0) {\n                element.data('igGridUpdating').endEdit();\n            }\n            jQuery(td).html(newFormattedVal);\n            if (grid.options.localSchemaTransform) {\n                rec = grid.dataSource.schema().transform([rec])[0];\n            }\n\n            grid.dataSource.updateRow(rec[pkKey], rec);\n            grid.dataSource._commitTransactionsByRowId(rec[pkKey]);\n        }\n    }\n\n    public ngOnChanges(changes: SimpleChanges): void {\n        const ds = 'dataSource';\n        if (ds in changes) {\n            const value = changes[ds].currentValue;\n            if (value) {\n                try {\n                    this._differ = this._differs.find(value).create();\n                    this._changes = [];\n                    this._dataSource.forEach(item => {\n                      this._changes.push(this.kvalDiffers.find({}).create());\n                    });\n                } catch (e) {\n                    throw new Error('Only binding to arrays is supported.');\n                }\n            }\n        }\n        super.ngOnChanges(changes);\n    }\n    ngDoCheck() {\n        if (this._differ) {\n            const changes = this._differ.diff(this._dataSource);\n            // check if grid is initialized\n            const grid = jQuery(this._el).data(this._widgetName);\n            if (changes && grid) {\n                this.dataSourceApplyChanges(changes);\n            }\n            if (changes && changes.isDirty && grid) {\n                // data source has been changed post initialization.\n                jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n            }\n            if (this._changes && grid) {\n                const pkKey = this.primaryKey || this.options.primaryKey;\n                // check recs\n                for (let i = 0; i < this._dataSource.length; i++) {\n                    const item = this._dataSource[i];\n                    const rowChanges = this._changes[i].diff(item);\n                    if (rowChanges) {\n                        rowChanges.forEachChangedItem((change: any) => {\n                            this.updateRow(item, change.currentValue, change.key);\n                        });\n                    }\n                }\n            }\n        }\n        super.ngDoCheck();\n    }\n    public dataSourceApplyChanges(changes) {\n        const pkKey = this.primaryKey || this.options.primaryKey;\n        changes.forEachAddedItem(r => this.addRow(r.item, r.currentIndex));\n        changes.forEachRemovedItem(r => { this.deleteRow(r.item[pkKey], r.previousIndex); });\n    }\n\n    allRows() { }\n}\n","import { Component, ElementRef, KeyValueDiffers, IterableDiffers, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgGridBase } from './iggridbase';\n\n@Component({\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    selector: 'ig-grid',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'autoAdjustHeight', 'avgRowHeight', 'avgColumnWidth', 'defaultColumnWidth', 'autoGenerateColumns', 'virtualization', 'virtualizationMode', 'requiresDataBinding', 'rowVirtualization', 'columnVirtualization', 'virtualizationMouseWheelStep', 'adjustVirtualHeights', 'templatingEngine', 'columns', 'dataSource', 'dataSourceUrl', 'dataSourceType', 'responseDataKey', 'responseTotalRecCountKey', 'requestType', 'responseContentType', 'showHeader', 'showFooter', 'fixedHeaders', 'fixedFooters', 'caption', 'features', 'tabIndex', 'localSchemaTransform', 'primaryKey', 'serializeTransactionLog', 'autoCommit', 'aggregateTransactions', 'autoFormat', 'renderCheckboxes', 'updateUrl', 'restSettings', 'alternateRowStyles', 'autofitLastColumn', 'enableHoverStyles', 'enableUTCDates', 'mergeUnboundColumns', 'jsonpRequest', 'enableResizeContainerCheck', 'featureChooserIconDisplay', 'scrollSettings'],\n    outputs: ['cellClick', 'cellRightClick', 'dataBinding', 'dataBound', 'rendering', 'rendered', 'dataRendering', 'dataRendered', 'headerRendering', 'headerRendered', 'footerRendering', 'footerRendered', 'headerCellRendered', 'rowsRendering', 'rowsRendered', 'schemaGenerated', 'columnsCollectionModified', 'requestError', 'created', 'destroyed'],\n    standalone: false\n})\nexport class IgGridComponent extends IgGridBase<IgGrid> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiff: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiff, cdr);\n    }\n\n    /**\n     * Returns the element holding the data records\n     */\n    /* istanbul ignore next */\n    public widget(): void { return; }\n\n    /**\n     * Returns whether grid has non-data fixed columns(e.g. row selectors column)\n     */\n    /* istanbul ignore next */\n    public hasFixedDataSkippedColumns(): boolean { return; }\n\n    /**\n     * Returns true if grid has at least one fixed columns(even if a non-data column - like row-selectors column)\n     */\n    /* istanbul ignore next */\n    public hasFixedColumns(): boolean { return; }\n\n    /**\n     * Returns the current fixing direction. NOTE - use only if ColumnFixing feature is enabled\n     * @return left|right\n     */\n    /* istanbul ignore next */\n    public fixingDirection(): string { return; }\n\n    /**\n     * Returns whether the column with identifier colKey is fixed\n     *\n     * @param colKey     An identifier of the column which should be checked. It can be a key or visible index.\n     */\n    /* istanbul ignore next */\n    public isFixedColumn(colKey: object): boolean { return; }\n\n    /**\n     * Called to detect whether grid container is resized.\n     * When autoAdjustHeight is true and height of the grid is changed then the height of grid is re-set.\n     */\n    /* istanbul ignore next */\n    public resizeContainer(): void { return; }\n\n    /**\n     * Returns whether the header identified by colKey is multicolumn header(has children)\n     *\n     * @param colKey     value of the column key\n     */\n    /* istanbul ignore next */\n    public isGroupHeader(colKey: string): object { return; }\n\n    /**\n     * Returns an object that contains information on the passed Dom element\n     *\n     * \t\t\t\trowId - the id of the record associated with the element - if primaryKey is not set this will be null.\n     * \t\t\t\trowIndex - the index (in the DOM) of the row associated with the element.\n     * \t\t\t\trecordIndex - index of the data record associated with this element in the current dataView.\n     * \t\t\t\tcolumnObject  - the column object associated with this element ( if the element is tr this will be null)\n     *\n     * @param elem    The Dom element or jQuery object which can be a TD or TR element from the grid.\n     */\n    /* istanbul ignore next */\n    public getElementInfo(elem: Element): object { return; }\n\n    /**\n     * Returns the ID of the TABLE element where data records are rendered\n     */\n    /* istanbul ignore next */\n    public id(): string { return; }\n\n    /**\n     * Returns the DIV that is the topmost container of the grid widget\n     */\n    /* istanbul ignore next */\n    public container(): Element { return; }\n\n    /**\n     * Returns the table that contains the header cells\n     */\n    /* istanbul ignore next */\n    public headersTable(): Element { return; }\n\n    /**\n     * Returns the table that contains the footer cells\n     */\n    /* istanbul ignore next */\n    public footersTable(): Element { return; }\n\n    /**\n     * Returns the DIV that is used as a scroll container for the grid contents\n     */\n    /* istanbul ignore next */\n    public scrollContainer(): Element { return; }\n\n    /**\n     * Returns the DIV that is the topmost container of the fixed grid - contains fixed columns(in ColumnFixing scenario)\n     */\n    /* istanbul ignore next */\n    public fixedContainer(): Element { return; }\n\n    /**\n     * Returns the DIV that is the topmost container of the fixed body grid - contains fixed columns(in ColumnFixing scenario)\n     */\n    /* istanbul ignore next */\n    public fixedBodyContainer(): Element { return; }\n\n    /**\n     * Returns container(jQuery representation) containing fixed footer - contains fixed columns(in ColumnFixing scenario)\n     */\n    /* istanbul ignore next */\n    public fixedFooterContainer(): object { return; }\n\n    /**\n     * Returns container(jQuery representation) containing fixed header - contains fixed columns(in ColumnFixing scenario)\n     */\n    /* istanbul ignore next */\n    public fixedHeaderContainer(): object { return; }\n\n    /**\n     * Returns the table that contains the FIXED header cells - contains fixed columns(in ColumnFixing scenario)\n     */\n    /* istanbul ignore next */\n    public fixedHeadersTable(): Element { return; }\n\n    /**\n     * Returns the table that contains the footer cells - contains fixed columns(in ColumnFixing scenario)\n     */\n    /* istanbul ignore next */\n    public fixedFootersTable(): Element { return; }\n\n    /**\n     * Returns the cell TD element at the specified location\n     *\n     * @param x     The column index.\n     * @param y     The row index.\n     * @param isFixed     Optional parameter - if true get cell TD at the specified location from the fixed table\n     */\n    /* istanbul ignore next */\n    public cellAt(x: number, y: number, isFixed: boolean): Element { return; }\n\n    /**\n     * Returns the cell TD element by row id and column key\n     *\n     * @param rowId     The id of the row.\n     * @param columnKey     The column key.\n     */\n    /* istanbul ignore next */\n    public cellById(rowId: object, columnKey: string): Element { return; }\n\n    /**\n     * Returns the fixed table - contains fixed columns(in ColumnFixing scenario). If there aren't fixed columns returns the grid table\n     */\n    /* istanbul ignore next */\n    public fixedTable(): object { return; }\n\n    /**\n     * Gets all immediate children of the current grid\n     */\n    /* istanbul ignore next */\n    public immediateChildrenWidgets(): any[] { return; }\n\n    /**\n     * Gets all children of the current grid, recursively\n     */\n    /* istanbul ignore next */\n    public childrenWidgets(): any[] { return; }\n\n    /**\n     * Gets all children's elements of the current grid, recursively\n     */\n    /* istanbul ignore next */\n    public children(): any[] { return; }\n\n    /**\n     * Gets all immediate children's elements of the current grid\n     */\n    /* istanbul ignore next */\n    public immediateChildren(): any[] { return; }\n\n    /**\n     * Returns the row (TR element) at the specified index. jQuery selectors aren't used for performance reasons\n     *\n     * @param i     The row index.\n     */\n    /* istanbul ignore next */\n    public rowAt(i: number): Element { return; }\n\n    /**\n     * Returns the row TR element by row id\n     *\n     * @param rowId     The id of the row.\n     * @param isFixed     Specify search in the fixed container.\n     */\n    /* istanbul ignore next */\n    public rowById(rowId: object, isFixed?: boolean): Element { return; }\n\n    /**\n     * Returns the fixed row (TR element) at the specified index.\n     * jQuery selectors aren't used for performance reasons(in ColumnFixing scenario - only when there is at least one fixed column)\n     *\n     * @param i     The row index.\n     */\n    /* istanbul ignore next */\n    public fixedRowAt(i: number): Element { return; }\n\n    /**\n     * Returns a list of all fixed TR elements holding data in the grid,\n     * in ColumnFixing scenario - only when there is at least one fixed column\n     */\n    /* istanbul ignore next */\n    public fixedRows(): any[] { return; }\n\n    /**\n     * Returns a list of all TR elements holding data in the grid,\n     * when there is at least one fixed column returns rows only in the UNFIXED table\n     */\n    /* istanbul ignore next */\n    public rows(): any[] { return; }\n\n    /**\n     * Returns all data fixed rows recursively, not only the immediate ones,\n     * in ColumnFixing scenario - only when there is at least one fixed column\n     */\n    /* istanbul ignore next */\n    public allFixedRows(): any[] { return; }\n\n    /**\n     * Returns all data rows recursively, not only the immediate ones,\n     * when there is at least one fixed column returns rows only in the UNFIXED table\n     */\n    /* istanbul ignore next */\n    public allRows(): any[] { return; }\n\n    /**\n     * Returns a column object by the specified column key\n     *\n     * @param key     The column key.\n     */\n    /* istanbul ignore next */\n    public columnByKey(key: string): object { return; }\n\n    /**\n     * Returns a column object by the specified header text. If there are multiple matches, returns the first one.\n     *\n     * @param text     The column header text.\n     */\n    /* istanbul ignore next */\n    public columnByText(text: string): object { return; }\n\n    /**\n     * Returns an array of selected cells in arbitrary order where every objects has the format\n     * { element: , row: , index: , rowIndex: , columnKey: } .\n     * \t\t\t\tIf multiple selection is disabled the function will return null.\n     */\n    /* istanbul ignore next */\n    public selectedCells(): any[] { return; }\n\n    /**\n     * Returns an array of selected rows in arbitrary order where every object has the format { element: , index: }.\n     * \t\t\t\tIf multiple selection is disabled the function will return null.\n     */\n    /* istanbul ignore next */\n    public selectedRows(): any[] { return; }\n\n    /**\n     * Returns the currently selected cell that has the format { element: , row: , index: , rowIndex: , columnKey: }, if any.\n     * \t\t\t\tIf multiple selection is enabled the function will return null.\n     */\n    /* istanbul ignore next */\n    public selectedCell(): object { return; }\n\n    /**\n     * Returns the currently selected row that has the format { element: , index: }, if any.\n     * \t\t\t\tIf multiple selection is enabled the function will return null.\n     */\n    /* istanbul ignore next */\n    public selectedRow(): object { return; }\n\n    /**\n     * Returns the currently active (focused) cell that has the format { element: , row: , index: , rowIndex: , columnKey: }, if any.\n     */\n    /* istanbul ignore next */\n    public activeCell(): object { return; }\n\n    /**\n     * Returns the currently active (focused) row that has the format { element: , index: }, if any.\n     */\n    /* istanbul ignore next */\n    public activeRow(): object { return; }\n\n    /**\n     * Retrieves a cell value using the row index and the column key.\n     * If a primaryKey is defined, rowId is assumed to be the row Key (not index).\n     * If primary key is not defined, then rowId is converted to a number and is used as a row index.\n     *\n     * @param rowId     Row index or row key (primary key).\n     * @param colKey     The column key.\n     */\n    /* istanbul ignore next */\n    public getCellValue(rowId: any, colKey: string): any { return; }\n\n    /**\n     * Returns the cell text. If colKey is a number, the index of the column is used (instead of a column name)\n     * - does not apply when using a Multi-Row Layout grid.\n     * This is the actual text (or HTML string) for the contents of the cell.\n     *\n     * @param rowId     Row index or row data key (primary key)\n     * @param colKey     Column key.\n     */\n    /* istanbul ignore next */\n    public getCellText(rowId: object, colKey: string): string { return; }\n\n    /**\n     * Sets a new template for a column after initialization and renders the grid if not explicitly disabled.\n     * This method will replace any existing explicitly set row template and will build one anew from the column ones.\n     *\n     * @param col     An identifier of the column to set template for (index or key)\n     * @param tmpl     The column template to set\n     * @param render     Should the grid rerender after template is set\n     */\n    /* istanbul ignore next */\n    public setColumnTemplate(col: object, tmpl: string, render?: boolean): void { return; }\n\n    /**\n     * Commits all pending transactions to the client data source.\n     * Note that there won't be anything to commit on the UI, since it is updated instantly.\n     * In order to rollback the actual UI, a call to dataBind() is required.\n     *\n     * @param rowId     If specified, will commit only that transaction corresponding to the specified record key.\n     */\n    /* istanbul ignore next */\n    public commit(rowId?: object): void { return; }\n\n    /**\n     * Clears the transaction log (delegates to igDataSource). Note that this does not update the UI.\n     * In case the UI must be updated, set the second parameter \"updateUI\" to true,\n     * which will trigger a call to dataBind() to re-render the contents.\n     *\n     * @param rowId     If specified, will only rollback the transactions with that row id.\n     * @param updateUI     Whether to update the UI or not.\n     */\n    /* istanbul ignore next */\n    public rollback(rowId?: object, updateUI?: boolean): any[] { return; }\n\n    /**\n     * Returns a record by a specified key (requires that primaryKey is set in the settings).\n     * \t\t\t\tThat is a wrapper for this.dataSource.findRecordByKey(key).\n     *\n     * @param key     Primary key of the record\n     */\n    /* istanbul ignore next */\n    public findRecordByKey(key: object): object { return; }\n\n    /**\n     * Returns a standalone object (copy) that represents the committed transactions, but detached from the data source.\n     * \t\t\t\tThat is a wrapper for this.dataSource.getDetachedRecord(t).\n     *\n     * @param t     A transaction object.\n     */\n    /* istanbul ignore next */\n    public getDetachedRecord(t: object): object { return; }\n\n    /**\n     * Returns a list of all transaction objects that are pending to be committed or rolled back to the data source.\n     * \t\t\t\tThat is a wrapper for this.dataSource.pendingTransactions().\n     */\n    /* istanbul ignore next */\n    public pendingTransactions(): any[] { return; }\n\n    /**\n     * Returns a list of all transaction objects that are either pending, or have been committed in the data source.\n     * \t\t\t\tThat is a wrapper for this.dataSource.allTransactions().\n     */\n    /* istanbul ignore next */\n    public allTransactions(): any[] { return; }\n\n    /**\n     * Returns the accumulated transaction log as a string. The purpose of this is to be passed to URLs or used conveniently.\n     * \t\t\t\tThat is a wrapper for this.dataSource.transactionsAsString().\n     */\n    /* istanbul ignore next */\n    public transactionsAsString(): string { return; }\n\n    /**\n     * Invokes an AJAX request to the updateUrl option (if specified) and passes the serialized transaction log\n     * (a serialized JSON string) as part of the POST request.\n     *\n     * @param success    Specifies a custom function to be called when AJAX request to the updateUrl option succeeds(optional)\n     * @param error    Specifies a custom function to be called when AJAX request to the updateUrl option fails(optional)\n     */\n    /* istanbul ignore next */\n    public saveChanges(success: () => void, error: () => void): void { return; }\n\n    /**\n     * Adds a new row (TR) to the grid, by taking a data row object. Assumes the record will have the primary key.\n     *\n     * @param rec     Identifier/key of row. If missing, then number of rows in grid is used.\n     */\n    /* istanbul ignore next */\n    public renderNewRow(rec?: string): void { return; }\n\n    /**\n     * If the data source points to a local JSON array of data, and it is necessary to reset it at runtime,\n     * it must be done through this API member instead of the options (options.dataSource)\n     *\n     * @param dataSource     New data source object.\n     */\n    /* istanbul ignore next */\n    public dataSourceObject(dataSource: object): void { return; }\n\n    /**\n     * Returns the total number of records in the underlying backend.\n     * If paging or filtering is enabled, this may differ from the number of records in the client-side data source.\n     * In order for this to work, the response JSON/XML must include a property that specifies the total number of records,\n     * which name is specified by options.responseTotalRecCountKey.\n     * This functionality is completely delegated to the data source control.\n     */\n    /* istanbul ignore next */\n    public totalRecordsCount(): number { return; }\n\n    /**\n     * Causes the grid to data bind to the data source (local or remote) , and re-render all of the data as well\n     *\n     * @param internal internal call flag\n     */\n    /* istanbul ignore next */\n    dataBind(internal: object): void { return; }\n\n    /**\n     * Moves a visible column at a specified place, in front or behind a target column or at a target index\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param column An identifier of the column to be moved.\n     * It can be a key, a Multi-Column Header identificator, or an index in a number format.\n     * The latter is not supported when the grid contains multi-column headers.\n     * @param target An identifier of a column where the moved column should move to or an index at which the moved\n     * column should be moved to. In the case of a column identifier the column will be moved after it by default.\n     * @param after    Specifies whether the column moved should be moved after or before the target column.\n     * This parameter is disregarded if there is no target column specified but a target index is used.\n     * @param inDom    Specifies whether the column moving will be enacted through DOM manipulation or through rerendering of the grid.\n     * @param callback    Specifies a custom function to be called when the column is moved.\n     */\n    /* istanbul ignore next */\n    public moveColumn(column: object, target: object, after?: boolean, inDom?: boolean, callback?: () => void): void { return; }\n\n    /**\n     * Shows a hidden column. If the column is not hidden the method does nothing.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param column     An identifier for the column. If a number is provided it will be used as a column index.\n     * If a string is provided it will be used as a column key.\n     * @param callback     Specifies a custom function to be called when the column is shown(optional)\n     */\n    /* istanbul ignore next */\n    public showColumn(column: object, callback: () => void): void { return; }\n\n    /**\n     * Hides a visible column. If the column is hidden the method does nothing.\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param column An identifier for the column.\n     * If a number is provided it will be used as a column index else if a string is provided it will be used as a column key.\n     * @param callback Specifies a custom function to be called when the column is hidden(optional)\n     */\n    /* istanbul ignore next */\n    public hideColumn(column: object, callback: () => void): void { return; }\n\n    /**\n     * Gets unbound values for the specified column key. If key is not specified returns all unboundvalues\n     *\n     * @param key     column key\n     */\n    /* istanbul ignore next */\n    public getUnboundValues(key: string): object { return; }\n\n    /**\n     * Sets unbound values for the unbound column with the specified key.\n     * If removeOldValues is true then values(if any) for the unbound columns are re-set with the new values\n     *\n     * @param key key of the unbound column\n     * @param values array of values to be set on unbound values\n     * @param removeOldValues if true removes current unbound values(if any) for the specified column and apply the new ones specified\n     * in parameter values. Otherwise merge current values with the specified in parameter values\n     */\n    /* istanbul ignore next */\n    public setUnboundValues(key: string, values: any[], removeOldValues: object): void { return; }\n\n    /**\n     * Sets unbound value for the unbound cell by the specified column key and row primary key.\n     *\n     * @param col     key of the unbound column\n     * @param rowId     primary key value of the row\n     * @param val     value to be set on unbound cell\n     * @param notToRender     if false will re-render the row\n     */\n    /* istanbul ignore next */\n    public setUnboundValueByPK(col: string, rowId: string, val: object, notToRender: object): void { return; }\n\n    /**\n     * Returns an unbound column with the specified key. If not found returns null\n     *\n     * @param key    a column key\n     */\n    /* istanbul ignore next */\n    public getUnboundColumnByKey(key: string): object { return; }\n\n    /**\n     * Returns whether there is vertical scrollbar. Because of perfrormance issues in older Internet Explorer especially 8,9 -\n     * there is no need to check if height is not set - there is no scrollbar OR if row virtualization is enabled -\n     * it is supposed there is vertical scrollbar\n     */\n    /* istanbul ignore next */\n    public hasVerticalScrollbar(): object { return; }\n\n    /**\n     * Auto resize columns that have property width set to \"*\" so content to be auto-fitted(not shrinked/cutted).\n     * Auto-resizing is applied ONLY for visible columns\n     */\n    /* istanbul ignore next */\n    public autoSizeColumns(): void { return; }\n\n    /**\n     * Calculates the width of the column so its content to be auto-fitted to the width of the data in it\n     * (the content should NOT be shrinked/cutted)\n     *\n     * @param columnIndex    Visible column index\n     */\n    /* istanbul ignore next */\n    public calculateAutoFitColumnWidth(columnIndex: number): number { return; }\n\n    /**\n     * Get visible index by specified column key. If column is not found or is hidden then returns -1.\n     * \t\t\t\tNote: Method does not count column groups (Multi-Column Headers).\n     *\n     * @param columnKey     columnKey\n     * @param includeDataSkip     Optional parameter - if set to true include non data columns\n     * (like expander column, row selectors column, etc.) in calculations\n     */\n    /* istanbul ignore next */\n    public getVisibleIndexByKey(columnKey: string, includeDataSkip: boolean): number { return; }\n\n    /**\n     * When called the method re-renders the whole grid(also rebinds to the data source) and renders the cols object\n     *\n     * @param cols an array of column objects\n     */\n    /* istanbul ignore next */\n    public renderMultiColumnHeader(cols: any[]): void { return; }\n\n    /**\n     * Scroll to the specified row or specified position(in pixels)\n     *\n     * @param scrollerPosition An identifier of the vertical scroll position.\n     * When it is string then it is interpreted as pixels otherwise it is the row number\n     */\n    /* istanbul ignore next */\n    public virtualScrollTo(scrollerPosition: object): void { return; }\n\n    /**\n     * Returns column object and visible index for the table cell(TD) which is passed as argument\n     *\n     * @param $td     cell(TD) - either DOM TD element or jQuery object\n     */\n    /* istanbul ignore next */\n    public getColumnByTD($td: object): object { return; }\n\n    /**\n     * Destroy is part of the jQuery UI widget API and does the following:\n     * \t\t\t\t1. Remove custom CSS classes that were added.\n     * \t\t\t\t2. Unwrap any wrapping elements such as scrolling divs and other containers.\n     * \t\t\t\t3. Unbind all events that were bound.\n     *\n     * @param notToCallDestroy flag whether to propagate the destroy call\n     */\n    /* istanbul ignore next */\n    public destroy(notToCallDestroy: object): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2, Input } from '@angular/core';\nimport { IgGridBase } from '../iggrid/iggridbase';\n\n@Component({\n    selector: 'ig-tree-grid',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'autoAdjustHeight', 'avgRowHeight', 'avgColumnWidth', 'defaultColumnWidth', 'autoGenerateColumns', 'virtualization', 'virtualizationMode', 'requiresDataBinding', 'rowVirtualization', 'columnVirtualization', 'virtualizationMouseWheelStep', 'adjustVirtualHeights', 'templatingEngine', 'columns', 'dataSource', 'dataSourceUrl', 'dataSourceType', 'responseDataKey', 'responseTotalRecCountKey', 'requestType', 'responseContentType', 'showHeader', 'showFooter', 'fixedHeaders', 'fixedFooters', 'caption', 'features', 'tabIndex', 'localSchemaTransform', 'primaryKey', 'serializeTransactionLog', 'autoCommit', 'aggregateTransactions', 'autoFormat', 'renderCheckboxes', 'updateUrl', 'restSettings', 'alternateRowStyles', 'autofitLastColumn', 'enableHoverStyles', 'enableUTCDates', 'mergeUnboundColumns', 'jsonpRequest', 'enableResizeContainerCheck', 'featureChooserIconDisplay', 'scrollSettings', 'indentation', 'initialIndentationLevel', 'showExpansionIndicator', 'expandTooltipText', 'collapseTooltipText', 'foreignKey', 'initialExpandDepth', 'foreignKeyRootValue', 'renderExpansionIndicatorColumn', 'renderFirstDataCellFunction', 'childDataKey', 'renderExpansionCellFunction', 'enableRemoteLoadOnDemand', 'dataSourceSettings'],\n    outputs: ['cellClick', 'cellRightClick', 'dataBinding', 'dataBound', 'rendering', 'rendered', 'dataRendering', 'dataRendered', 'headerRendering', 'headerRendered', 'footerRendering', 'footerRendered', 'headerCellRendered', 'rowsRendering', 'rowsRendered', 'schemaGenerated', 'columnsCollectionModified', 'requestError', 'created', 'destroyed', 'rowExpanding', 'rowExpanded', 'rowCollapsing', 'rowCollapsed'],\n    standalone: false\n})\nexport class IgTreeGridComponent extends IgGridBase<IgTreeGrid> {\n    @Input()\n    public childDataKey: string;\n\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    deleteRow(id) {\n        const element = jQuery(this._el);\n        const tr = element.find('tr[data-id=\\'' + id + '\\']');\n        const dataLevel = tr.attr('aria-level');\n        if (tr.length > 0) {\n\n            element.data(this._widgetName).dataSource.deleteRow(id, true);\n            element.data(this._widgetName).dataSource._removeTransactionsByRecordId(id);\n\n            let trs = tr.nextUntil('tr[data-level=' + dataLevel + ']');\n            if (trs.length === 0) {\n                trs = tr.nextAll('tr[data-level]');\n            }\n\n            tr.remove();\n            trs.remove();\n        }\n    }\n\n    updateRow(rec, currValue, key) {\n        const element = jQuery(this._el);\n        const grid = element.data(this._widgetName);\n        const childDataKey = this.childDataKey || this.options.childDataKey;\n        const column = element.data(this._widgetName).columnByKey(key);\n        if (!column && key === childDataKey) {\n            // we have an hierarchical data source and one of the nested collections has changed.\n            grid.dataBind();\n        } else {\n            super.updateRow(rec, currValue, key);\n        }\n    }\n\n    public markForCheck() {\n        super.markForCheck();\n        const childDataKey = this.childDataKey || this.options.childDataKey;\n        if (childDataKey) {\n            this.dataBind();\n        }\n    }\n\n    /**\n     * Clears the transaction log (delegates to igDataSource).\n     * Note that this does not update the UI. In case the UI must be updated,\n     * set the second parameter \"updateUI\" to true, which will trigger a call to dataBind() to re-render the contents.\n     *\n     * @param rowId     If specified, will only rollback the transactions with that row id.\n     * @param updateUI     Whether to update the UI or not.\n     */\n    /* istanbul ignore next */\n    public rollback(rowId?: object, updateUI?: boolean): any[] { return; }\n\n    /**\n     * Causes the treegrid to data bind to the data source (local or remote) , and re-render all of the data\n     */\n    /* istanbul ignore next */\n    public dataBind(): void { return; }\n\n    /**\n     * Toggle row by specified row or row identifier\n     *\n     * @param row     jQuery table row object or a row id.\n     * @param callback     Specifies a custom function to be called when row is expanded/collapsed.\n     * The callback has 4 arguments- a reference to the current context(this),\n     * object that holds 2 properties(unfixedRow - DOM representation of the unfixed row,\n     * fixedRow - DOM representation of the fixed row, if there is no fixed columns it is undefined),\n     * reference to the dataRecord, expand - specifies whether row is expanded\n     */\n    /* istanbul ignore next */\n    public toggleRow(row: object, callback?: () => void): void { return; }\n\n    /**\n     * Expands a parent row by specified row or row identifier\n     *\n     * @param row     jQuery table row object or a row id.\n     * @param callback     Specifies a custom function to be called when row is expanded/collapsed.\n     * The callback has 4 arguments- a reference to the current context(this),\n     * object that holds 2 properties(unfixedRow - DOM representation of the unfixed row,\n     * fixedRow - DOM representation of the fixed row, if there is no fixed columns it is undefined),\n     * reference to the dataRecord, expand - specifies whether row is expanded\n     */\n    /* istanbul ignore next */\n    public expandRow(row: object, callback?: () => void): void { return; }\n\n    /**\n     * Collapses a parent row by specified row or row identifier\n     *\n     * @param row     jQuery table row object, raw DOM row object or a row id.\n     * @param callback     Specifies a custom function to be called when row is expanded/collapsed.\n     * The callback has 4 arguments- a reference to the current context(this),\n     * object that holds 2 properties(unfixedRow - DOM representation of the unfixed row,\n     * fixedRow - DOM representation of the fixed row, if there is no fixed columns it is undefined),\n     * reference to the dataRecord, expand - specifies whether row is expanded\n     */\n    /* istanbul ignore next */\n    public collapseRow(row: object, callback?: () => void): void { return; }\n\n    /**\n     * Adds a new row (TR) to the grid as a child of a specific row, by taking a data row object.\n     * Assumes the record will have the primary key.\n     *\n     * @param rec     The data row JavaScript object.\n     * @param parentId     Identifier/key of the targeted parent row. If missing, then the new row is rendered to the bottom of the grid.\n     */\n    /* istanbul ignore next */\n    public renderNewChild(rec: object, parentId?: string): void { return; }\n\n    /**\n     * Destroys igTreeGrid\n     */\n    /* istanbul ignore next */\n    public destroy(): object { return; }\n}\n","import {\n  Component,\n  IterableDiffers,\n  KeyValueDiffers,\n  ChangeDetectorRef,\n  ElementRef,\n  ChangeDetectionStrategy,\n  Renderer2,\n  Input\n} from '@angular/core';\nimport { IgGridBase } from '../iggrid/iggridbase';\n\ndeclare var jQuery: any;\n\n@Component({\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    selector: 'ig-hierarchical-grid',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'initialDataBindDepth', 'initialExpandDepth', 'odata', 'rest', 'maxDataBindDepth', 'defaultChildrenDataProperty', 'autoGenerateLayouts', 'expandCollapseAnimations', 'expandColWidth', 'pathSeparator', 'animationDuration', 'expandTooltip', 'collapseTooltip', 'columnLayouts', 'width', 'height', 'autoAdjustHeight', 'avgRowHeight', 'avgColumnWidth', 'defaultColumnWidth', 'autoGenerateColumns', 'virtualization', 'virtualizationMode', 'requiresDataBinding', 'rowVirtualization', 'columnVirtualization', 'virtualizationMouseWheelStep', 'adjustVirtualHeights', 'templatingEngine', 'columns', 'dataSource', 'dataSourceUrl', 'dataSourceType', 'responseDataKey', 'responseTotalRecCountKey', 'requestType', 'responseContentType', 'showHeader', 'showFooter', 'fixedHeaders', 'fixedFooters', 'caption', 'features', 'tabIndex', 'localSchemaTransform', 'primaryKey', 'serializeTransactionLog', 'autoCommit', 'aggregateTransactions', 'autoFormat', 'renderCheckboxes', 'updateUrl', 'restSettings', 'alternateRowStyles', 'autofitLastColumn', 'enableHoverStyles', 'enableUTCDates', 'mergeUnboundColumns', 'jsonpRequest', 'enableResizeContainerCheck', 'featureChooserIconDisplay', 'scrollSettings'],\n    outputs: ['rowExpanding', 'rowExpanded', 'rowCollapsing', 'rowCollapsed', 'childrenPopulating', 'childrenPopulated',\n        'childGridRendered', 'childGridCreating', 'childGridCreated', 'cellClick', 'cellRightClick', 'dataBinding', 'dataBound', 'rendering', 'rendered', 'dataRendering', 'dataRendered', 'headerRendering', 'headerRendered', 'footerRendering', 'footerRendered', 'headerCellRendered', 'rowsRendering', 'rowsRendered', 'schemaGenerated', 'columnsCollectionModified', 'requestError', 'created', 'destroyed'],\n    standalone: false\n})\nexport class IgHierarchicalGridComponent extends IgGridBase<IgHierarchicalGrid> {\n    @Input()\n    public childrenDataProperty: string;\n\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    deleteRow(id) {\n        const element = jQuery(this._el);\n        const tr = element.find('tr[data-id=\\'' + id + '\\']');\n        const childContainer = tr.next('tr[data-container]');\n\n        if (tr.length > 0) {\n            tr.remove();\n            childContainer.remove();\n            element.data('igGrid').dataSource.deleteRow(id, true);\n            element.data('igGrid').dataSource._removeTransactionsByRecordId(id);\n        }\n    }\n    updateRow(rec, currValue, key) {\n        const element = jQuery(this._el);\n        const childrenDataProperty = this.childrenDataProperty || this.options.childrenDataProperty;\n\n        const childGrids = element.data(this._widgetName).allChildrenWidgets().filter(widget => {\n            const parentRow = widget.closest('tr[data-container]').prev();\n            const parentGridPK = parentRow.closest('.ui-iggrid-table').data('igGrid').options.primaryKey;\n            return (childrenDataProperty === key ||\n                parentRow.next('[data-container]').find('table[role=\\'grid\\']').attr('id').contains('_' + key + '_'))\n                && parentRow.attr('data-id') === rec[parentGridPK];\n        });\n        if (childGrids.length > 0) {\n          childGrids.each((index, grid) => grid.dataBind());\n        } else {\n            super.updateRow(rec, currValue, key);\n        }\n    }\n    public markForCheck() {\n        super.markForCheck();\n        const element = jQuery(this._el);\n        const childGrids = element.data(this._widgetName).allChildrenWidgets().filter(widget => true);\n        childGrids.each((index, grid) => grid.dataBind());\n    }\n    /**\n     * Data binds the hierarchical grid. No child grids will be created or rendered by default, unless there is initialExpandDepth >= 0 set.\n     */\n    /* istanbul ignore next */\n    public dataBind(): void { return; }\n\n    /**\n     * Returns the element of the root grid (igGrid)\n     */\n    /* istanbul ignore next */\n    public root(): object { return; }\n\n    /**\n     * Returns the widget object of the root grid (igGrid)\n     */\n    /* istanbul ignore next */\n    public rootWidget(): object { return; }\n\n    /**\n     * Returns a flat list of all child grid elements (recursive)\n     */\n    /* istanbul ignore next */\n    public allChildren(): object { return; }\n\n    /**\n     * Expands or collapses (toggles) a parent row\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param element     accepts a dom element, or a jquery wrapped dom element that should be a TR and should specify a parent row\n     * @param callback     Specifies a custom function to be called when parent row is toggled(optional).\n     * Takes 2 arguments - first is hierarchical grid object, second is the row element that was toggled\n     */\n    /* istanbul ignore next */\n    public toggle(element: Element, callback?: () => void): void { return; }\n\n    /**\n     * Expands (toggles) a parent row\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param id     accepts a dom element, or a jquery wrapped dom element that should be a TR and should specify a parent row\n     * @param callback     Specifies a custom function to be called when parent row is expanded(optional).\n     * Takes 2 arguments first is hierarchical grid object, second is the row element that was expanded\n     */\n    /* istanbul ignore next */\n    public expand(id: Element, callback?: () => void): void { return; }\n\n    /**\n     * Collapses a parent row\n     * Note: This method is asynchronous which means that it returns immediately and any subsequent code will execute in parallel.\n     * This may lead to runtime errors. To avoid them put the subsequent code in the callback parameter provided by the method.\n     *\n     * @param id accepts a dom element, or a jquery wrapped dom element that should be a TR and should specify a parent row\n     * @param callback Specifies a custom function to be called when parent row is expanded(optional).\n     * Takes 2 arguments - first is hierarchical grid object, second is the row element that was collapsed\n     */\n    /* istanbul ignore next */\n    public collapse(id: Element, callback?: () => void): void { return; }\n\n    /**\n     * Checks if a parent row is currently collapsed\n     *\n     * @param element     accepts a dom element, or a jquery wrapped dom element that should be a TR and should specify a parent row\n     */\n    /* istanbul ignore next */\n    public collapsed(element: Element): boolean { return; }\n\n    /**\n     * Checks if a parent row is populated with data\n     *\n     * @param element     accepts a dom element, or a jquery wrapped dom element that should be a TR and should specify a parent row\n     */\n    /* istanbul ignore next */\n    public populated(element: Element): boolean { return; }\n\n    /**\n     * Commits pending transactions to the client data source for main and all child grids.\n     */\n    /* istanbul ignore next */\n    public commit(): void { return; }\n\n    /**\n     * Clears the transaction log (delegates to igDataSource). Note that this does not update the UI.\n     * In case the UI must be updated, set the second parameter \"updateUI\" to true, which will trigger a call to dataBind()\n     * to re-render the contents.\n     *\n     * @param rebind     Whether to perform a rebind.\n     */\n    /* istanbul ignore next */\n    public rollback(rebind?: boolean): void { return; }\n\n    /**\n     * Posts to the settings.updateUrl using $.ajax, by serializing the changes as url params\n     *\n     * @param success    Specifies a custom function to be called when AJAX request to the updateUrl option succeeds(optional)\n     * @param error    Specifies a custom function to be called when AJAX request to the updateUrl option fails(optional)\n     */\n    /* istanbul ignore next */\n    public saveChanges(success: () => void, error: () => void): void { return; }\n\n    /**\n     * Destroys the hierarchical grid by recursively destroying all child grids\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import {\n  Component,\n  Optional,\n  ElementRef,\n  IterableDiffers,\n  KeyValueDiffers,\n  ChangeDetectorRef,\n  SimpleChanges,\n  Input,\n  Renderer2,\n  OnInit,\n  OnChanges,\n  DoCheck\n} from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\nimport { ControlValueAccessor, NgModel } from '@angular/forms';\n\ndeclare var jQuery: any;\n\n@Component({\n    selector: 'ig-combo',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'dropDownWidth', 'dataSource', 'dataSourceType', 'dataSourceUrl', 'responseTotalRecCountKey', 'responseDataKey', 'responseDataType', 'responseContentType', 'requestType', 'valueKey', 'textKey', 'itemTemplate', 'headerTemplate', 'footerTemplate', 'inputName', 'animationShowDuration', 'animationHideDuration', 'dropDownAttachedToBody', 'filteringType', 'filterExprUrlKey', 'filteringCondition', 'filteringLogic', 'noMatchFoundText', 'loadOnDemandSettings', 'visibleItemsCount', 'placeHolder', 'mode', 'virtualization', 'multiSelection', 'grouping', 'validatorOptions', 'highlightMatchesMode', 'caseSensitive', 'autoSelectFirstMatch', 'autoComplete', 'allowCustomValue', 'closeDropDownOnBlur', 'delayInputChangeProcessing', 'tabIndex', 'dropDownOnFocus', 'closeDropDownOnSelect', 'selectItemBySpaceKey', 'initialSelectedItems', 'preventSubmitOnEnter', 'format', 'suppressKeyboard', 'enableClearButton', 'dropDownButtonTitle', 'clearButtonTitle', 'dropDownOrientation'],\n    outputs: ['rendered', 'dataBinding', 'dataBound', 'filtering', 'filtered', 'itemsRendering', 'itemsRendered', 'dropDownOpening', 'dropDownOpened', 'dropDownClosing', 'dropDownClosed', 'selectionChanging', 'selectionChanged'],\n    standalone: false\n})\nexport class IgComboComponent extends IgControlBase<IgCombo> implements ControlValueAccessor, OnInit, OnChanges, DoCheck {\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n    }\n\n    private _dataSource: any;\n\n    protected _model: any;\n    private _changes: any;\n\n    constructor(@Optional() public model: NgModel, el: ElementRef, renderer: Renderer2,\n                differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n        if (model) {\n            model.valueAccessor = this;\n            this._model = model;\n        }\n    }\n\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n\n        if (this._model) {\n            if (this.options.allowCustomValue) {\n                jQuery(this._el).on('input', evt => {\n                    // D.K. #324 Do not override the model value if the text value is representing the same model value\n                    const item = jQuery(this._el).data('igCombo').itemsFromValue(this._model.model);\n                    if (!item ||\n                        item.data && item.data[this.options.textKey] !== evt.target.value) {\n                        this._model.viewToModelUpdate(evt.target.value);\n                    }\n                });\n\n                jQuery(this._el).closest('.ui-igcombo-wrapper').find('.ui-igcombo-clear').on('click', () => {\n                    if (this.options.multiSelection && this.options.multiSelection.enabled) {\n                        this._model.viewToModelUpdate([]);\n                    } else {\n                        this._model.viewToModelUpdate(null);\n                    }\n                });\n            }\n\n            // D.P. #244 only attach selectionchanged handler if there's a model to update\n            jQuery(this._el).on(this._widgetName.toLowerCase() + 'selectionchanged', (evt, ui) => {\n                const items = ui.items;\n                const valueKey = ui.owner.options.valueKey;\n\n                if (items.length <= 0 && !ui.owner.options.multiSelection.enabled) {\n                    if (!ui.owner.options.allowCustomValue) {\n                        this._model.viewToModelUpdate(null);\n                    }\n                    return;\n                }\n\n                if (ui.owner.options.multiSelection.enabled) {\n                    this._model.viewToModelUpdate(items.map(item => {\n                        return item.data[valueKey];\n                    }));\n                } else {\n                    this._model.viewToModelUpdate(items[0].data[valueKey]);\n                }\n            });\n            // manually call writeValue, because the LifeCycle has been changed and writeValue is executed before ngOnInit\n            this.writeValue(this._model.value);\n        }\n    }\n    writeValue(value) {\n        if (!!jQuery(this._el).data(this._widgetName)) {\n            jQuery(this._el)[this._widgetName]('value', value);\n        }\n    }\n\n    onChange = (_: any) => {\n    }\n    onTouched = () => {\n    }\n\n    registerOnChange(fn: () => any): void {\n        this.onChange = fn;\n    }\n\n    registerOnTouched(fn: () => any): void {\n        this.onTouched = fn;\n    }\n\n    dataSourceApplyChanges(changes) {\n        // dataSource has changed.\n        const element = jQuery(this._el);\n        if (element[this._widgetName]) {\n            element[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n        if (this.model && this.model.value) {\n            this.writeValue(this.model.value);\n        }\n    }\n    updateComboItem(rec, val, key, index) {\n        const element = jQuery(this._el);\n        const comboItem = element.data('igCombo').itemsFromIndex(index);\n        element.data('igCombo')._updateItem(comboItem.element, rec);\n        if (element.data('igCombo').isSelected(comboItem.element)) {\n            // should update the input\n            element.data('igCombo')._updateInputValues(false);\n        }\n\n    }\n    public ngOnChanges(changes: SimpleChanges): void {\n        const ds = 'dataSource';\n        if (ds in changes) {\n            const value = changes[ds].currentValue;\n            if (value) {\n                try {\n                    this._differ = this._differs.find(value).create();\n                    this._changes = [];\n                    this._dataSource.forEach(item => {\n                      this._changes.push(this.kvalDiffers.find({}).create());\n                    });\n                } catch (e) {\n                    throw new Error('Only binding to arrays is supported.');\n                }\n            }\n        }\n        super.ngOnChanges(changes);\n    }\n    ngDoCheck() {\n        if (this._differ) {\n            const changes = this._differ.diff(this._dataSource);\n            // check if grid is initialized\n            const combo = jQuery(this._el).data(this._widgetName);\n            if (changes && combo) {\n                this.dataSourceApplyChanges(changes);\n            }\n            if (this._changes && combo) {\n                // check recs\n                for (let i = 0; i < this._dataSource.length; i++) {\n                    const item = this._dataSource[i];\n                    const recChanges = this._changes[i].diff(item);\n                    if (recChanges) {\n                        recChanges.forEachChangedItem((change: any) => {\n                            this.updateComboItem(item, change.currentValue, change.key, i);\n                        });\n                    }\n                }\n            }\n        }\n        super.ngDoCheck();\n    }\n\n    /**\n     * Performs databinding on the combo box.\n     * The [databinding](ui.igcombo#events:dataBinding) and [dataBound](ui.igcombo#events:dataBound) events are always raised.\n     */\n    /* istanbul ignore next */\n    public dataBind(): object { return; }\n\n    /**\n     * Forces an update of the igCombo value according to the current text in the igCombo input.\n     *\n     * \t\t\t\tThe refresh is primarily intended to be used with [allowCustomValue](ui.igcombo#options:allowCustomValue) set to true.\n     * \t\t\t\tThe refresh will take the current text and, if no selection is applied,\n     *        will set it as igCombo value provided that [allowCustomValue](ui.igcombo#options:allowCustomValue) true.\n     */\n    /* istanbul ignore next */\n    public refreshValue(): object { return; }\n\n    /**\n     * Gets the associated data of an item by value matching it's [valueKey](ui.igcombo#options:valueKey) property.\n     *\n     * @param value Value matching the valueKey property of item to be tested if it is selected\n     */\n    /* istanbul ignore next */\n    public dataForValue(value: object): object { return; }\n\n    /**\n     * Gets the associated data of li element in the combo.\n     *\n     * @param $element jQuery element of item in the drop down list\n     */\n    /* istanbul ignore next */\n    public dataForElement($element: object): object { return; }\n\n    /**\n     * Gets object/s containing data and list item in the combo by element/s.\n     *\n     * @param $element jQuery object with drop down list item element or elements\n     */\n    /* istanbul ignore next */\n    public itemsFromElement($element: object): object { return; }\n\n    /**\n     * Gets object/s containing data and list item in the combo by value/s.\n     *\n     * @param value Value of item in the drop down list or array with values.\n     */\n    /* istanbul ignore next */\n    public itemsFromValue(value: object): object { return; }\n\n    /**\n     * Gets object/s containing data and list item in the combo by index/es.\n     *\n     * @param index Index or array of indexes of items in the drop down list\n     */\n    /* istanbul ignore next */\n    public itemsFromIndex(index: number): object { return; }\n\n    /**\n     * Gets array with data and objects representing li elements in combo box.\n     */\n    /* istanbul ignore next */\n    public items(): any[] { return; }\n\n    /**\n     * Gets array with objects representing the filtered li elements in combo box.\n     */\n    /* istanbul ignore next */\n    public filteredItems(): any[] { return; }\n\n    /**\n     * Gets array with objects representing selected li elements in combo box.\n     */\n    /* istanbul ignore next */\n    public selectedItems(): any[] { return; }\n\n    /**\n     * Triggers filtering.\n     *\n     * @param texts Filter by string, or array of strings.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [filtering](ui.igcombo#events:filtering) and [filtered](ui.igcombo#events:filtered) events.\n     */\n    /* istanbul ignore next */\n    public filter(texts?: object, event?: object): object { return; }\n\n    /**\n     * Clears filtering.\n     *\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [filtering](ui.igcombo#events:filtering) and [filtered](ui.igcombo#events:filtered) events.\n     */\n    /* istanbul ignore next */\n    public clearFiltering(event?: object): object { return; }\n\n    /**\n     * Opens the drop-down.\n     *\n     * @param callback Specifies callback function to be executed when open animation is completed.\n     * @param focusCombo Set to false to not focus combo\"s text input after the drop down is opened.\n     * By default the combo's input is focused.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [dropDownOpening](ui.igcombo#events:dropDownOpening) and [dropDownOpened](ui.igcombo#events:dropDownOpened) events.\n     */\n    /* istanbul ignore next */\n    public openDropDown(callback?: () => void, focusCombo?: boolean, event?: object): object { return; }\n\n    /**\n     * Closes the drop down.\n     *\n     * @param callback Specifies callback function to be executed when close animation is completed.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [dropDownClosing](ui.igcombo#events:dropDownClosing) and [dropDownClosed](ui.igcombo#events:dropDownClosed) events.\n     */\n    /* istanbul ignore next */\n    public closeDropDown(callback?: () => void, event?: object): object { return; }\n\n    /**\n     * Clears the input text, resets highlighting, filtering and selection.\n     *\n     * @param options     object with set of options controlling the behavior of this api method.\n     * focusCombo (boolean): Set to true to focus combo after clearing the input.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public clearInput(options?: object, event?: object): object { return; }\n\n    /**\n     * Verifies whether a specified value is selected.\n     *\n     * @param value Value matching the [valueKey](ui.igcombo#options:valueKey) property of item to be tested if it is selected\n     */\n    /* istanbul ignore next */\n    public isValueSelected(value: object): boolean { return; }\n\n    /**\n     * Verifies whether the li representing the data source's record at the specified index is selected.\n     *\n     * @param index Index of data source record\n     */\n    /* istanbul ignore next */\n    public isIndexSelected(index: object): boolean { return; }\n\n    /**\n     * Selects list item/items from the drop-down list by specified value or array of values.\n     * When called witout params will return the value of the selected item or if\n     * [multiSelection](ui.igcombo#options:multiSelection) is enabled array of selected values.\n     *\n     * @param value Value or array of values matching the valueKey property of item/items to be selected\n     * @param options object with set of options controlling the behavior of this api method.\n     * closeDropDown (boolean): Set to true to close the drop down list after the selection.\n     * focusCombo (boolean): Set to true to focus combo after the selection.\n     * additive (boolean): Set to true to select the item without losing other selection. Works only when multi selection is enabled.\n     * keepFiltering (boolean): Set to true to keep filtering after the selection. By default the filtering is cleared.\n     * keepInputText (boolean): Set to true to keep input text unchanged after the selection. By default input text is updated.\n     * keepHighlighting (boolean): Set to true to keep highlighting unchanged after the selection. By default highlighting is removed.\n     * keepNavItem (boolean): Set to true to keep current navigation item unchanged after the selection.\n     *                        By default the navigation item is changed to the new selected item.\n     * keepScrollPosition (boolean): Set to true to keep current scroll position.\n     *                               By default the scroll position will change so that the last selected item is visible.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public value(value?: object, options?: object, event?: object): any { return; }\n\n    /**\n     * Selects a list item from the drop-down list.\n     *\n     * @param $items jQuery object with item or items to be selected.\n     * @param options object with set of options controlling the behavior of this api method.\n     * closeDropDown (boolean): Set to true to close the drop down list after the selection.\n     * focusCombo (boolean): Set to true to focus combo after the selection.\n     * additive (boolean): Set to true to select the item without losing other selection. Works only when multi selection is enabled.\n     * keepFiltering (boolean): Set to true to keep filtering after the selection. By default the filtering is cleared.\n     * keepInputText (boolean): Set to true to keep input text unchanged after the selection. By default input text is updated.\n     * keepHighlighting (boolean): Set to true to keep highlighting unchanged after the selection. By default highlighting is removed.\n     * keepNavItem (boolean): Set to true to keep current navigation item unchanged after the selection.\n     *                        By default the navigation item is changed to the new selected item.\n     * keepScrollPosition (boolean): Set to true to keep current scroll position.\n     *                               By default the scroll position will change so that the last selected item is visible.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public select($items: object, options?: object, event?: object): object { return; }\n\n    /**\n     * Gets/Sets selected item/s from the drop-down list by specified index.\n     *\n     * @param index Index or array of indexes of items to be selected\n     * @param options object with set of options controlling the behavior of this api method.\n     * closeDropDown (boolean): Set to true to close the drop down list after the selection.\n     * focusCombo (boolean): Set to true to focus combo after the selection.\n     * additive (boolean): Set to true to select the item without losing other selection. Works only when multi selection is enabled.\n     * keepFiltering (boolean): Set to true to keep filtering after the selection. By default the filtering is cleared.\n     * keepInputText (boolean): Set to true to keep input text unchanged after the selection. By default input text is updated.\n     * keepHighlighting (boolean): Set to true to keep highlighting unchanged after the selection. By default highlighting is removed.\n     * keepNavItem (boolean): Set to true to keep current navigation item unchanged after the selection.\n     *                        By default the navigation item is changed to the new selected item.\n     * keepScrollPosition (boolean): Set to true to keep current scroll position.\n     *                               By default the scroll position will change so that the last selected item is visible.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public index(index?: object, options?: object, event?: object): object { return; }\n\n    /**\n     * Selects all items from the drop-down list.\n     *\n     * @param options object with set of options controlling the behavior of this api method.\n     * closeDropDown (boolean): Set to true to close the drop down list after the selection.\n     * focusCombo (boolean): Set to true to focus combo after the selection.\n     * keepFiltering (boolean): Set to true to keep filtering after the selection. By default the filtering is cleared.\n     * keepInputText (boolean): Set to true to keep input text unchanged after the selection. By default input text is updated.\n     * keepHighlighting (boolean): Set to true to keep highlighting unchanged after the selection. By default highlighting is removed.\n     * keepNavItem (boolean): Set to true to keep current navigation item unchanged after the selection.\n     *                        By default the navigation item is changed to the new selected item.\n     * keepScrollPosition (boolean): Set to true to keep current scroll position.\n     *                               By default the scroll position will change so that the last selected item is visible.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public selectAll(options?: object, event?: object): object { return; }\n\n    /**\n     * Deselects a list item from the drop down list by value.\n     *\n     * @param value Value or array of values matching the [valueKey](ui.igcombo#options:valueKey) property of item/items to be deselected\n     * @param options object with set of options controlling the behavior of this api method.\n     * focusCombo (boolean): Set to true to focus combo after the deselection.\n     * keepInputText (boolean): Set to true to keep input text unchanged after the deselection. By default input text is updated.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public deselectByValue(value: object, options?: object, event?: object): object { return; }\n\n    /**\n     * Deselects a list item from the drop down list.\n     *\n     * @param $items jQuery object with item or items to be deselected\n     * @param options object with set of options controlling the behavior of this api method.\n     * focusCombo (boolean): Set to true to focus combo after the deselection.\n     * keepInputText (boolean): Set to true to keep input text unchanged after the deselection. By default input text is updated.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public deselect($items: object, options?: object, event?: object): object { return; }\n\n    /**\n     * Deselects a list item from the drop down list by index.\n     *\n     * @param index Index or array of indexes of items to be selected\n     * @param options object with set of options controlling the behavior of this api method.\n     * focusCombo (boolean): Set to true to focus combo after the deselection.\n     * keepInputText (boolean): Set to true to keep input text unchanged after the deselection. By default input text is updated.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public deselectByIndex(index: object, options?: object, event?: object): object { return; }\n\n    /**\n     * Deselects all selected items from the drop down list.\n     *\n     * @param options object with set of options controlling the behavior of this api method.\n     * focusCombo (boolean): Set to true to focus combo after the deselection.\n     * keepInputText (boolean): Set to true to keep input text unchanged after the deselection. By default input text is updated.\n     * @param event Indicates the browser event which triggered this action (not API).\n     * Calling the method with this param set to \"true\" will trigger\n     * [selectionChanging](ui.igcombo#events:selectionChanging) and [selectionChanged](ui.igcombo#events:selectionChanged) events.\n     */\n    /* istanbul ignore next */\n    public deselectAll(options?: object, event?: object): object { return; }\n\n    /**\n     * Gets/Sets index of active item in list.\n     *\n     * @param index New active index for list. In order to clear active item, use -1.\n     * @return number|object Returns index of active item in list or -1, if parameter is undefined.\n     * Otherwise, it returns reference to this igCombo.\n     */\n    /* istanbul ignore next */\n    public activeIndex(index?: number): number | object { return; }\n\n    /**\n     * Gets/Sets text in text input field.\n     *\n     * @param text New text value for combo's input field.\n     * @return string|object If parameter is undefined, then current text in field is returned.\n     * Otherwise, it returns reference to this igCombo.\n     */\n    /* istanbul ignore next */\n    public text(text?: string): string | object { return; }\n\n    /**\n     * Gets/Sets scrollTop attribute of html element, which scrolls drop-down list of items.\n     *\n     * @param value New value for scroll top in list.\n     * Note: if list is closed and new value is provided, then openDropDown() is called automatically.\n     * @return number|object If parameter is undefined, then scrollTop is returned. Otherwise, it returns reference to this igCombo.\n     */\n    /* istanbul ignore next */\n    public listScrollTop(value?: number): number | object { return; }\n\n    /**\n     * Gets jQuery objects representing all rendered list items in the combo drop down list.\n     */\n    /* istanbul ignore next */\n    public listItems(): object { return; }\n\n    /**\n     * Gets jQuery object of the outer element of the combo.\n     */\n    /* istanbul ignore next */\n    public comboWrapper(): object { return; }\n\n    /**\n     * Gets jQuery object of the drop down associated with this combo widget\n     */\n    /* istanbul ignore next */\n    public dropDown(): object { return; }\n\n    /**\n     * Gets jQuery object of the container that holds the list with items.\n     */\n    /* istanbul ignore next */\n    public list(): object { return; }\n\n    /**\n     * Gets jQuery object of the text input associated with this combo widget.\n     */\n    /* istanbul ignore next */\n    public textInput(): object { return; }\n\n    /**\n     * Gets jQuery object of the value input associated with this combo widget.\n     */\n    /* istanbul ignore next */\n    public valueInput(): object { return; }\n\n    /**\n     * Gets reference to [igValidator](ui.igvalidator) used by igCombo.\n     *\n     * @param destroy Request to destroy validator.\n     */\n    /* istanbul ignore next */\n    public validator(destroy?: boolean): object { return; }\n\n    /**\n     * Trigger validation.\n     */\n    /* istanbul ignore next */\n    public validate(): boolean { return; }\n\n    /**\n     * Returns boolean representing whether the combo drop down list is opened.\n     */\n    /* istanbul ignore next */\n    public dropDownOpened(): boolean { return; }\n\n    /**\n     * Repositions drop down under combo input. Has effect only when the drop down is attached to body.\n     */\n    /* istanbul ignore next */\n    public positionDropDown(): object { return; }\n\n    /**\n     * Destroys the igCombo widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): object { return; }\n}\n","import { IgControlBase } from '../igcontrolbase/igcontrolbase';\nimport { ControlValueAccessor, NgModel } from '@angular/forms';\nimport { ElementRef, IterableDiffers, Optional, KeyValueDiffers, ChangeDetectorRef, Renderer2, Directive, OnInit } from '@angular/core';\n\n@Directive()\nexport class IgEditorBase<Model> extends IgControlBase<Model> implements ControlValueAccessor, OnInit {\n    protected _model: any;\n\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n        if (model) {\n            model.valueAccessor = this;\n            this._model = model;\n        }\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        if (this._model) {\n            jQuery(this._el).on(this._widgetName.toLowerCase() + 'valuechanged', (evt, ui) => {\n                this.onChange(ui.newValue);\n            });\n            if (this._widgetName === 'igTextEditor') {\n                jQuery(this._el).on(this._widgetName.toLowerCase() + 'textchanged', (evt, ui) => {\n                    this.onChange(ui.text);\n                });\n            }\n            jQuery(this._el).on(this._widgetName.toLowerCase() + 'blur', (evt, ui) => {\n                this.onTouched();\n            });\n            // manually call writeValue, because the LifeCycle has been changed and writeValue is executed before ngOnInit\n            this.writeValue(this._model.value);\n        }\n    }\n\n    writeValue(value: any) {\n        if (!!jQuery(this._el).data(this._widgetName) && value !== null) {\n            jQuery(this._el)[this._widgetName]('value', value);\n        }\n    }\n\n    onChange = (_: any) => {\n    }\n    onTouched = () => {\n    }\n\n    registerOnChange(fn: (_: any) => {}): void {\n        this.onChange = fn;\n    }\n\n    registerOnTouched(fn: () => {}): void {\n        this.onTouched = fn;\n    }\n}\n","import { Component, ElementRef, IterableDiffers, Optional, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgEditorBase } from './igeditorbase';\nimport { NgModel } from '@angular/forms';\n\n@Component({\n    selector: 'ig-checkbox-editor',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'checked', 'size', 'iconClass'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged'],\n    standalone: false\n})\nexport class IgCheckboxEditorComponent extends IgEditorBase<IgCheckboxEditor> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n\n    /**\n     * Checks if the value in the editor is valid. Note: This function will not trigger automatic notifications.\n     */\n    /* istanbul ignore next */\n    public isValid(): boolean { return; }\n\n    /**\n     * Gets/Sets Current checked state/Value of the igCheckboxEditor that will be submitted by the HTML form.\n     * 1. If the [value](ui.igcheckboxeditor#options:value) option IS NOT defined,\n     * then 'value' method will match the checked state of the editor.\n     * This option is used when the checkbox is intended to operate as a Boolean editor. In that case the return type is bool.\n     * 2. If the [value](ui.igcheckboxeditor#options:value) option IS defined,\n     * then 'value' method will return the value that will be submitted when the editor is checked and the form is submitted.\n     * To get checked state regardless of the 'value' option, use $(\".selector\").igCheckboxEditor(\"option\", \"checked\");\n     *\n     * @param newValue new value\n     */\n    /* istanbul ignore next */\n    public value(newValue: object): string { return; }\n\n    /**\n     * Toggles the state of the checkbox.\n     */\n    /* istanbul ignore next */\n    public toggle(): void { return; }\n\n    /**\n     * Gets/Sets name attribute applied to the editor element.\n     *\n     * @param newValue The new input name.\n     */\n    /* istanbul ignore next */\n    public inputName(newValue?: string): string { return; }\n\n    /**\n     * Gets the input element of the editor.\n     */\n    /* istanbul ignore next */\n    public field(): string { return; }\n\n    /**\n     * Gets a reference to the jQuery element that wraps the editor.\n     */\n    /* istanbul ignore next */\n    public editorContainer(): string { return; }\n\n    /**\n     * Gets whether the editor has focus.\n     */\n    /* istanbul ignore next */\n    public hasFocus(): boolean { return; }\n\n    /**\n     * Sets focus to the editor after the specified delay.\n     *\n     * @param delay The delay before focusing the editor.\n     */\n    /* istanbul ignore next */\n    public setFocus(delay?: number): void { return; }\n\n    /**\n     * Hides the editor.\n     */\n    /* istanbul ignore next */\n    public hide(): void { return; }\n\n    /**\n     * Shows the editor.\n     */\n    /* istanbul ignore next */\n    public show(): void { return; }\n\n    /**\n     * Gets a reference to [igValidator](ui.igvalidator) used by the editor.\n     */\n    /* istanbul ignore next */\n    public validator(): object { return; }\n\n    /**\n     * Triggers validation for the editor. If validatorOptions are set will also call validate on the [igValidator](ui.igvalidator).\n     */\n    /* istanbul ignore next */\n    public validate(): boolean { return; }\n\n    /**\n     * Destroys the widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, Optional, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgEditorBase } from './igeditorbase';\nimport { NgModel } from '@angular/forms';\n\n@Component({\n    selector: 'ig-currency-editor',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'buttonType', 'listItems', 'listWidth', 'listItemHoverDuration', 'dropDownAttachedToBody', 'dropDownAnimationDuration', 'visibleItemsCount', 'includeKeys', 'excludeKeys', 'textAlign', 'placeHolder', 'selectionOnFocus', 'textMode', 'spinWrapAround', 'isLimitedToListValues', 'revertIfNotValid', 'preventSubmitOnEnter', 'dropDownOrientation', 'maxLength', 'dropDownOnReadOnly', 'toUpper', 'toLower', 'locale', 'suppressNotifications', 'regional', 'negativeSign', 'negativePattern', 'decimalSeparator', 'groupSeparator', 'groups', 'maxDecimals', 'minDecimals', 'dataMode', 'minValue', 'maxValue', 'spinDelta', 'scientificFormat', 'positivePattern', 'currencySymbol'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged', 'dropDownListOpening', 'dropDownListOpened', 'dropDownListClosing', 'dropDownListClosed', 'dropDownItemSelecting', 'dropDownItemSelected', 'textChanged'],\n    standalone: false\n})\nexport class IgCurrencyEditorComponent extends IgEditorBase<IgCurrencyEditor> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n\n    /**\n     * Gets/sets a string that is used as the currency symbol shown with the number in the input.\n     * The value provided as a param is propagated to the currencySymbol option and thus has the same priority as the option.\n     *\n     * @param symbol New currency symbol.\n     */\n    /* istanbul ignore next */\n    public currencySymbol(symbol?: object): string { return; }\n\n    /**\n     * Gets/Sets editor value.\n     *\n     * @param newValue New editor value.\n     */\n    /* istanbul ignore next */\n    public value(newValue?: number): number { return; }\n\n    /**\n     * Finds index of list item by text that matches with the search parameters.\n     *\n     * @param value The text to search for.\n     */\n    /* istanbul ignore next */\n    public findListItemIndex(value: number): number { return; }\n    /* istanbul ignore next */\n    public getSelectedText(): void { return; }\n    /* istanbul ignore next */\n    public getSelectionStart(): void { return; }\n    /* istanbul ignore next */\n    public getSelectionEnd(): void { return; }\n\n    /**\n     * Increments value in editor according to the parameter or selects the previous item from the drop-down list if\n     * [isLimitedToListValues](ui.%%WidgetNameLowered%%#options:isLimitedToListValues) is enabled.\n     *\n     * @param delta Increments value.\n     */\n    /* istanbul ignore next */\n    public spinUp(delta?: number): void { return; }\n\n    /**\n     * Decrements value in editor according to the parameter selects the next item from the drop-down list if\n     * [isLimitedToListValues](ui.%%WidgetNameLowered%%#options:isLimitedToListValues) is enabled.\n     *\n     * @param delta Decrement value.\n     */\n    /* istanbul ignore next */\n    public spinDown(delta?: number): void { return; }\n\n    /**\n     * This method is deprecated in favor of [spinUp](ui.%%WidgetNameLowered%%#options:spinUp).\n     */\n    /* istanbul ignore next */\n    public selectListIndexUp(): void { return; }\n\n    /**\n     * This method is deprecated in favor of [spinDown](ui.%%WidgetNameLowered%%#options:spinDown).\n     */\n    /* istanbul ignore next */\n    public selectListIndexDown(): void { return; }\n\n    /**\n     * Gets current regional.\n     */\n    /* istanbul ignore next */\n    public getRegionalOption(): string { return; }\n\n    /**\n     * Changes the the regional settings of widget element to the language specified in\n     * [options.regional](ui.ignumericeditor#options:regional)\n     * Note that this method is for rare scenarios, use [regional](ui.ignumericeditor#options:regional) option setter\n     */\n    /* istanbul ignore next */\n    public changeRegional(): void { return; }\n}\n","import { IgEditorBase } from './igeditorbase';\nimport { ElementRef, IterableDiffers, Optional, Component, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { NgModel } from '@angular/forms';\n\n@Component({\n    selector: 'ig-date-editor',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'buttonType', 'listItems', 'listWidth', 'listItemHoverDuration', 'dropDownAttachedToBody', 'dropDownAnimationDuration', 'visibleItemsCount', 'includeKeys', 'excludeKeys', 'textAlign', 'placeHolder', 'selectionOnFocus', 'textMode', 'spinWrapAround', 'isLimitedToListValues', 'revertIfNotValid', 'preventSubmitOnEnter', 'dropDownOrientation', 'maxLength', 'dropDownOnReadOnly', 'toUpper', 'toLower', 'locale', 'suppressNotifications', 'regional', 'inputMask', 'dataMode', 'unfilledCharsPrompt', 'padChar', 'emptyChar', 'minValue', 'maxValue', 'dateDisplayFormat', 'dateInputFormat', 'spinDelta', 'limitSpinToCurrentField', 'enableUTCDates', 'centuryThreshold', 'yearShift'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged', 'dropDownListOpening', 'dropDownListOpened', 'dropDownListClosing', 'dropDownListClosed', 'dropDownItemSelecting', 'dropDownItemSelected', 'textChanged'],\n    standalone: false\n})\nexport class IgDateEditorComponent extends IgEditorBase<IgDateEditor> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n\n    /**\n     * Changes the the regional settings of widget element to the language specified in [options.regional](ui.igdateeditor#options:regional)\n     * Note that this method is for rare scenarios, use [regional](ui.igdateeditor#options:regional) option setter\n     */\n    /* istanbul ignore next */\n    public changeRegional(): void { return; }\n\n    /**\n     * Gets/Sets editor value.\n     *\n     * Note! This option doesn't use the dateInputFormat to extract the date\n     *\n     * @param newValue New editor value. Date object can be set as value. String value can be passed and the editor will use\n     * the javascript Date object constructor to create date object and will use it for the comparison.\n     * MVC date format can be used too. For example Date(/\"ticks\"/).\n     */\n    /* istanbul ignore next */\n    public value(newValue?: Date): Date { return; }\n\n    /**\n     * Gets selected date as a date object. This method can be used when dataMode is set as either displayModeText or editModeText.\n     * In such cases the value() method will not return date object and getSelectedDate() can be used to replace that functionality.\n     */\n    /* istanbul ignore next */\n    public getSelectedDate(): Date { return; }\n\n    /**\n     * Sets selected date. This method can be used when dataMode is set as either displayModeText or editModeText.\n     * In such cases the value() cannot accept a date object as a new value and getSelectedDate() can be used to replace that functionality.\n     *\n     * @param date date\n     */\n    /* istanbul ignore next */\n    public selectDate(date: Date): void { return; }\n\n    /**\n     * Increases the date or time period, depending on the current cursor position.\n     *\n     * @param delta The increase delta.\n     */\n    /* istanbul ignore next */\n    public spinUp(delta?: number): void { return; }\n\n    /**\n     * Decreases the date or time period, depending on the current cursor position.\n     *\n     * @param delta The decrease delta.\n     */\n    /* istanbul ignore next */\n    public spinDown(delta?: number): void { return; }\n\n    /**\n     * Returns a reference to the spin up UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinUpButton(): string { return; }\n\n    /**\n     * Returns a reference to the spin down UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinDownButton(): string { return; }\n\n    /**\n     * Checks if the value in the editor is valid. Note: This function will not trigger automatic notifications.\n     */\n    /* istanbul ignore next */\n    public isValid(): boolean { return; }\n    /* istanbul ignore next */\n    public dropDownButton(): void { return; }\n    /* istanbul ignore next */\n    public dropDownContainer(): void { return; }\n    /* istanbul ignore next */\n    public dropDownVisible(): void { return; }\n    /* istanbul ignore next */\n    public findListItemIndex(): void { return; }\n    /* istanbul ignore next */\n    public getSelectedListItem(): void { return; }\n    /* istanbul ignore next */\n    public selectedListIndex(): void { return; }\n    /* istanbul ignore next */\n    public showDropDown(): void { return; }\n    /* istanbul ignore next */\n    public hideDropDown(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, Optional, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgEditorBase } from './igeditorbase';\nimport { NgModel } from '@angular/forms';\n\n\n@Component({\n    selector: 'ig-date-picker',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'buttonType', 'listItems', 'listWidth', 'listItemHoverDuration', 'dropDownAttachedToBody', 'dropDownAnimationDuration', 'visibleItemsCount', 'includeKeys', 'excludeKeys', 'textAlign', 'placeHolder', 'selectionOnFocus', 'textMode', 'spinWrapAround', 'isLimitedToListValues', 'revertIfNotValid', 'preventSubmitOnEnter', 'dropDownOrientation', 'maxLength', 'dropDownOnReadOnly', 'toUpper', 'toLower', 'locale', 'suppressNotifications', 'regional', 'inputMask', 'dataMode', 'unfilledCharsPrompt', 'padChar', 'emptyChar', 'minValue', 'maxValue', 'dateDisplayFormat', 'dateInputFormat', 'spinDelta', 'limitSpinToCurrentField', 'enableUTCDates', 'centuryThreshold', 'yearShift', 'datepickerOptions'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged', 'dropDownListOpening', 'dropDownListOpened', 'dropDownListClosing', 'dropDownListClosed', 'dropDownItemSelecting', 'dropDownItemSelected', 'textChanged', 'itemSelected'],\n    standalone: false\n})\nexport class IgDatePickerComponent extends IgEditorBase<IgDatePicker> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n    /**\n     * Changes the the regional settings of widget element to the language specified in [options.regional](ui.igdatepicker#options:regional)\n     * Note that this method is for rare scenarios, use [regional](ui.igdatepicker#options:regional) option setter\n     */\n    /* istanbul ignore next */\n    public changeRegional(): void { return; }\n\n    /**\n     * Returns a reference to the jQuery calendar used as a picker selector\n     */\n    /* istanbul ignore next */\n    public getCalendar(): string { return; }\n    /* istanbul ignore next */\n    public dropDownContainer(): void { return; }\n    /* istanbul ignore next */\n    public findListItemIndex(): void { return; }\n    /* istanbul ignore next */\n    public getSelectedListItem(): void { return; }\n    /* istanbul ignore next */\n    public selectedListIndex(): void { return; }\n\n    /**\n     * Shows the drop down list.\n     */\n    /* istanbul ignore next */\n    public showDropDown(): void { return; }\n\n    /**\n     * Hides the drop down list.\n     */\n    /* istanbul ignore next */\n    public hideDropDown(): void { return; }\n\n    /**\n     * Returns a reference to the calendar button UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public dropDownButton(): string { return; }\n\n    /**\n     * Returns the visibility state of the calendar.\n     */\n    /* istanbul ignore next */\n    public dropDownVisible(): boolean { return; }\n\n    /**\n     * Destroys the widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Gets/Sets editor value.\n     *\n     * Note! This option doesn't use the dateInputFormat to extract the date\n     *\n     * @param newValue New editor value. Date object can be set as value. String value can be passed and the editor will\n     * use the javascript Date object constructor to create date object and will use it for the comparison.\n     * MVC date format can be used too. For example Date(/\"ticks\"/).\n     */\n    /* istanbul ignore next */\n    public value(newValue?: Date): Date { return; }\n\n    /**\n     * Gets selected date as a date object. This method can be used when dataMode is set as either displayModeText or editModeText.\n     * In such cases the value() method will not return date object and getSelectedDate() can be used to replace that functionality.\n     */\n    /* istanbul ignore next */\n    public getSelectedDate(): Date { return; }\n\n    /**\n     * Sets selected date. This method can be used when dataMode is set as either displayModeText or editModeText.\n     * In such cases the value() cannot accept a date object as a new value and getSelectedDate() can be used to replace that functionality.\n     *\n     * @param date date\n     */\n    /* istanbul ignore next */\n    public selectDate(date: Date): void { return; }\n\n    /**\n     * Increases the date or time period, depending on the current cursor position.\n     *\n     * @param delta The increase delta.\n     */\n    /* istanbul ignore next */\n    public spinUp(delta?: number): void { return; }\n\n    /**\n     * Decreases the date or time period, depending on the current cursor position.\n     *\n     * @param delta The decrease delta.\n     */\n    /* istanbul ignore next */\n    public spinDown(delta?: number): void { return; }\n\n    /**\n     * Returns a reference to the spin up UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinUpButton(): string { return; }\n\n    /**\n     * Returns a reference to the spin down UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinDownButton(): string { return; }\n\n    /**\n     * Checks if the value in the editor is valid. Note: This function will not trigger automatic notifications.\n     */\n    /* istanbul ignore next */\n    public isValid(): boolean { return; }\n}\n","import { Component, ElementRef, IterableDiffers, Optional, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgEditorBase } from './igeditorbase';\nimport { NgModel } from '@angular/forms';\n\n\n@Component({\n    selector: 'ig-time-picker',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'disabled', 'create', 'locale', 'language', 'regional', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'buttonType', 'listItems', 'listWidth', 'listItemHoverDuration', 'dropDownAttachedToBody', 'dropDownAnimationDuration', 'visibleItemsCount', 'includeKeys', 'excludeKeys', 'textAlign', 'placeHolder', 'selectionOnFocus', 'textMode', 'spinWrapAround', 'isLimitedToListValues', 'revertIfNotValid', 'preventSubmitOnEnter', 'dropDownOrientation', 'maxLength', 'dropDownOnReadOnly', 'toUpper', 'toLower', 'suppressNotifications', 'suppressKeyboard', 'inputMask', 'dataMode', 'unfilledCharsPrompt', 'padChar', 'emptyChar', 'minValue', 'maxValue', 'dateDisplayFormat', 'dateInputFormat', 'displayTimeOffset', 'spinDelta', 'limitSpinToCurrentField', 'enableUTCDates', 'centuryThreshold', 'yearShift', 'itemsDelta', 'timeInputFormat', 'timeDisplayFormat'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged', 'dropDownListOpening', 'dropDownListOpened', 'dropDownListClosing', 'dropDownListClosed', 'dropDownItemSelecting', 'dropDownItemSelected', 'textChanged'],\n    standalone: false\n})\nexport class IgTimePickerComponent extends IgEditorBase<IgTimePicker> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n    /**\n     * Gets the selected list item.\n     */\n    /* istanbul ignore next */\n    public getSelectedListItem(): string { return; }\n\n    /**\n     * Returns the visibility state of the calendar.\n     */\n    /* istanbul ignore next */\n    public dropDownVisible(): boolean { return; }\n\n    /**\n     * Returns a reference to the drop-down button UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public dropDownButton(): string { return; }\n\n    /**\n     * Gets reference to jquery object which is used as container of drop-down list.\n     */\n    /* istanbul ignore next */\n    public dropDownContainer(): string { return; }\n\n    /**\n     * Finds index of list item by text that matches with the search parameters.\n     *\n     * @param text The text to search for in the drop down list.\n     * @param matchType The rule that is applied for searching the text.\n     */\n    /* istanbul ignore next */\n    public findListItemIndex(text: string, matchType?: object): number { return; }\n\n    /**\n     * Gets the index of the selected list item. Sets selected item by index.\n     *\n     * @param index The index of the item that needs to be selected.\n     */\n    /* istanbul ignore next */\n    public selectedListIndex(index?: number): number { return; }\n    /* istanbul ignore next */\n    public value(newValue: object): void { return; }\n    /* istanbul ignore next */\n    public selectDate(): void { return; }\n\n    /**\n     * Changes the the regional settings of widget element to the language specified in [options.regional](ui.igdateeditor#options:regional)\n     * Note that this method is for rare scenarios, use [regional](ui.igdateeditor#options:regional) option setter\n     */\n    /* istanbul ignore next */\n    public changeRegional(): void { return; }\n\n    /**\n     * Gets selected date as a date object. This method can be used when dataMode is set as either displayModeText or editModeText.\n     * In such cases the value() method will not return date object and getSelectedDate() can be used to replace that functionality.\n     */\n    /* istanbul ignore next */\n    public getSelectedDate(): Date { return; }\n\n    /**\n     * Increases the date or time period, depending on the current cursor position.\n     *\n     * @param delta The increase delta.\n     */\n    /* istanbul ignore next */\n    public spinUp(delta?: number): void { return; }\n\n    /**\n     * Decreases the date or time period, depending on the current cursor position.\n     *\n     * @param delta The decrease delta.\n     */\n    /* istanbul ignore next */\n    public spinDown(delta?: number): void { return; }\n\n    /**\n     * Returns a reference to the spin up UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinUpButton(): string { return; }\n\n    /**\n     * Returns a reference to the spin down UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinDownButton(): string { return; }\n\n    /**\n     * Checks if the value in the editor is valid. Note: This function will not trigger automatic notifications.\n     */\n    /* istanbul ignore next */\n    public isValid(): boolean { return; }\n}\n","import { IgEditorBase } from './igeditorbase';\nimport { IterableDiffers, Optional, ElementRef, Component, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { NgModel } from '@angular/forms';\n\n@Component({\n    selector: 'ig-mask-editor',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'buttonType', 'listItems', 'listWidth', 'listItemHoverDuration', 'dropDownAttachedToBody', 'dropDownAnimationDuration', 'visibleItemsCount', 'includeKeys', 'excludeKeys', 'textAlign', 'placeHolder', 'selectionOnFocus', 'textMode', 'spinWrapAround', 'isLimitedToListValues', 'revertIfNotValid', 'preventSubmitOnEnter', 'dropDownOrientation', 'maxLength', 'dropDownOnReadOnly', 'toUpper', 'toLower', 'locale', 'suppressNotifications', 'regional', 'inputMask', 'dataMode', 'unfilledCharsPrompt', 'padChar', 'emptyChar'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged', 'dropDownListOpening', 'dropDownListOpened', 'dropDownListClosing', 'dropDownListClosed', 'dropDownItemSelecting', 'dropDownItemSelected', 'textChanged'],\n    standalone: false\n})\nexport class IgMaskEditorComponent extends IgEditorBase<IgMaskEditor> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n    /**\n     * Gets/Sets mask editor value.\n     *\n     * @param newValue New mask editor value.\n     */\n    /* istanbul ignore next */\n    public value(newValue?: string): string { return; }\n    /* istanbul ignore next */\n    public dropDownContainer(): void { return; }\n    /* istanbul ignore next */\n    public showDropDown(): void { return; }\n    /* istanbul ignore next */\n    public hideDropDown(): void { return; }\n    /* istanbul ignore next */\n    public dropDownButton(): void { return; }\n    /* istanbul ignore next */\n    public spinUpButton(): void { return; }\n    /* istanbul ignore next */\n    public spinDownButton(): void { return; }\n    /* istanbul ignore next */\n    public dropDownVisible(): void { return; }\n    /* istanbul ignore next */\n    public findListItemIndex(): void { return; }\n    /* istanbul ignore next */\n    public selectedListIndex(): void { return; }\n    /* istanbul ignore next */\n    public getSelectedListItem(): void { return; }\n    /* istanbul ignore next */\n    public spinUp(): void { return; }\n    /* istanbul ignore next */\n    public spinDown(): void { return; }\n\n    /**\n     * Checks if the value in the editor is valid. Note: This function will not trigger automatic notifications.\n     */\n    /* istanbul ignore next */\n    public isValid(): boolean { return; }\n\n    /**\n     * Changes the all locales into the widget element to the language specified in [options.language](ui.igtexteditor#options:language)\n     * Note that this method is for rare scenarios, see [language](ui.igtexteditor#options:language) or\n     * [locale](ui.igtexteditor#options:locale) option setter\n     */\n    /* istanbul ignore next */\n    public changeLocale(): void { return; }\n\n    /**\n     * Gets the visible text in the editor.\n     */\n    /* istanbul ignore next */\n    public displayValue(): string { return; }\n\n    /**\n     * Returns a reference to the clear button UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public clearButton(): string { return; }\n\n    /**\n     * Gets the selected text from the editor in edit mode. This can be done inside key event handlers, like keydown or keyup.\n     * This method can be used only when the editor is focused.\n     * If you invoke this method in display mode, when the editor input is blurred, the returned value will be an empty string.\n     */\n    /* istanbul ignore next */\n    public getSelectedText(): string { return; }\n\n    /**\n     * Gets the start index of the selected text in the editor.\n     */\n    /* istanbul ignore next */\n    public getSelectionStart(): number { return; }\n\n    /**\n     * Gets the end index of the selected text in the editor.\n     */\n    /* istanbul ignore next */\n    public getSelectionEnd(): number { return; }\n\n    /**\n     * Inserts the text at the location of the caret or over the current selection.\n     * If the editor is focused the method will insert the text over the current selection.\n     * If the editor is not focused the method will set the text as value of the editor.\n     * Note: The method raises [textChanged](ui.igtexteditor#events:textChanged) event.\n     *\n     * @param value The string to be inserted.\n     */\n    /* istanbul ignore next */\n    public insert(value: string): void { return; }\n\n    /**\n     * Selects the text between start and end indices in the editor.\n     * If the parameters are equal, then the method sets location of caret. The method has effect only when the editor has focus.\n     *\n     * @param start Start of the selection.\n     * @param end End of the selection.\n     */\n    /* istanbul ignore next */\n    public select(start: number, end: number): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, Optional, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgEditorBase } from './igeditorbase';\nimport { NgModel } from '@angular/forms';\n\n@Component({\n    selector: 'ig-numeric-editor',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'buttonType', 'listItems', 'listWidth', 'listItemHoverDuration', 'dropDownAttachedToBody', 'dropDownAnimationDuration', 'visibleItemsCount', 'includeKeys', 'excludeKeys', 'textAlign', 'placeHolder', 'selectionOnFocus', 'textMode', 'spinWrapAround', 'isLimitedToListValues', 'revertIfNotValid', 'preventSubmitOnEnter', 'dropDownOrientation', 'maxLength', 'dropDownOnReadOnly', 'toUpper', 'toLower', 'locale', 'suppressNotifications', 'regional', 'negativeSign', 'negativePattern', 'decimalSeparator', 'groupSeparator', 'groups', 'maxDecimals', 'minDecimals', 'dataMode', 'minValue', 'maxValue', 'spinDelta', 'scientificFormat'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged', 'dropDownListOpening', 'dropDownListOpened', 'dropDownListClosing', 'dropDownListClosed', 'dropDownItemSelecting', 'dropDownItemSelected', 'textChanged'],\n    standalone: false\n})\nexport class IgNumericEditorComponent extends IgEditorBase<IgNumericEditor> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n\n    /**\n     * Gets/Sets editor value.\n     *\n     * @param newValue New editor value.\n     */\n    /* istanbul ignore next */\n    public value(newValue?: number): number { return; }\n\n    /**\n     * Finds index of list item by text that matches with the search parameters.\n     *\n     * @param value The text to search for.\n     */\n    /* istanbul ignore next */\n    public findListItemIndex(value: number): number { return; }\n    /* istanbul ignore next */\n    public getSelectedText(): void { return; }\n    /* istanbul ignore next */\n    public getSelectionStart(): void { return; }\n    /* istanbul ignore next */\n    public getSelectionEnd(): void { return; }\n\n    /**\n     * Increments value in editor according to the parameter or selects the previous item from the drop-down list if\n     * [isLimitedToListValues](ui.%%WidgetNameLowered%%#options:isLimitedToListValues) is enabled.\n     *\n     * @param delta Increments value.\n     */\n    /* istanbul ignore next */\n    public spinUp(delta?: number): void { return; }\n\n    /**\n     * Decrements value in editor according to the parameter selects the next item from the drop-down list if\n     * [isLimitedToListValues](ui.%%WidgetNameLowered%%#options:isLimitedToListValues) is enabled.\n     *\n     * @param delta Decrement value.\n     */\n    /* istanbul ignore next */\n    public spinDown(delta?: number): void { return; }\n\n    /**\n     * This method is deprecated in favor of [spinUp](ui.%%WidgetNameLowered%%#options:spinUp).\n     */\n    /* istanbul ignore next */\n    public selectListIndexUp(): void { return; }\n\n    /**\n     * This method is deprecated in favor of [spinDown](ui.%%WidgetNameLowered%%#options:spinDown).\n     */\n    /* istanbul ignore next */\n    public selectListIndexDown(): void { return; }\n\n    /**\n     * Gets current regional.\n     */\n    /* istanbul ignore next */\n    public getRegionalOption(): string { return; }\n\n    /**\n     * Changes the the regional settings of widget element to the language specified in\n     * [options.regional](ui.ignumericeditor#options:regional)\n     * Note that this method is for rare scenarios, use [regional](ui.ignumericeditor#options:regional) option setter\n     */\n    /* istanbul ignore next */\n    public changeRegional(): void { return; }\n\n    /**\n     * Changes the all locales into the widget element to the language specified in [options.language](ui.igtexteditor#options:language)\n     * Note that this method is for rare scenarios, see [language](ui.igtexteditor#options:language) or\n     * [locale](ui.igtexteditor#options:locale) option setter\n     */\n    /* istanbul ignore next */\n    public changeLocale(): void { return; }\n\n    /**\n     * Gets the visible text in the editor.\n     */\n    /* istanbul ignore next */\n    public displayValue(): string { return; }\n\n    /**\n     * Gets reference to jquery object which is used as container of drop-down list.\n     */\n    /* istanbul ignore next */\n    public dropDownContainer(): string { return; }\n\n    /**\n     * Shows the drop down list.\n     */\n    /* istanbul ignore next */\n    public showDropDown(): void { return; }\n\n    /**\n     * Hides the drop down list.\n     */\n    /* istanbul ignore next */\n    public hideDropDown(): void { return; }\n\n    /**\n     * Returns a reference to the drop-down button UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public dropDownButton(): string { return; }\n\n    /**\n     * Returns if the drop-down list is visible.\n     */\n    /* istanbul ignore next */\n    public dropDownVisible(): boolean { return; }\n\n    /**\n     * Returns a reference to the clear button UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public clearButton(): string { return; }\n\n    /**\n     * Gets the index of the selected list item. Sets selected item by index.\n     *\n     * @param index The index of the item that needs to be selected.\n     */\n    /* istanbul ignore next */\n    public selectedListIndex(index?: number): number { return; }\n\n    /**\n     * Gets the selected list item.\n     */\n    /* istanbul ignore next */\n    public getSelectedListItem(): string { return; }\n\n    /**\n     * Inserts the text at the location of the caret or over the current selection.\n     * If the editor is focused the method will insert the text over the current selection.\n     * If the editor is not focused the method will set the text as value of the editor.\n     * Note: The method raises [textChanged](ui.igtexteditor#events:textChanged) event.\n     *\n     * @param value The string to be inserted.\n     */\n    /* istanbul ignore next */\n    public insert(value: string): void { return; }\n\n    /**\n     * Selects the text between start and end indices in the editor.\n     * If the parameters are equal, then the method sets location of caret. The method has effect only when the editor has focus.\n     *\n     * @param start Start of the selection.\n     * @param end End of the selection.\n     */\n    /* istanbul ignore next */\n    public select(start: number, end: number): void { return; }\n\n    /**\n     * Returns a reference to the spin up UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinUpButton(): string { return; }\n\n    /**\n     * Returns a reference to the spin down UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinDownButton(): string { return; }\n}\n","import { Component, ElementRef, IterableDiffers, Optional, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgEditorBase } from './igeditorbase';\nimport { NgModel } from '@angular/forms';\n\n@Component({\n    selector: 'ig-percent-editor',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'buttonType', 'listItems', 'listWidth', 'listItemHoverDuration', 'dropDownAttachedToBody', 'dropDownAnimationDuration', 'visibleItemsCount', 'includeKeys', 'excludeKeys', 'textAlign', 'placeHolder', 'selectionOnFocus', 'textMode', 'spinWrapAround', 'isLimitedToListValues', 'revertIfNotValid', 'preventSubmitOnEnter', 'dropDownOrientation', 'maxLength', 'dropDownOnReadOnly', 'toUpper', 'toLower', 'locale', 'suppressNotifications', 'regional', 'negativeSign', 'negativePattern', 'decimalSeparator', 'groupSeparator', 'groups', 'maxDecimals', 'minDecimals', 'dataMode', 'minValue', 'maxValue', 'spinDelta', 'scientificFormat', 'positivePattern', 'percentSymbol', 'displayFactor'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged', 'dropDownListOpening', 'dropDownListOpened', 'dropDownListClosing', 'dropDownListClosed', 'dropDownItemSelecting', 'dropDownItemSelected', 'textChanged'],\n    standalone: false\n})\nexport class IgPercentEditorComponent extends IgEditorBase<IgPercentEditor> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n\n    /**\n     * Paste text at location of the caret or over the current selection.\n     * Best used during editing, as the method will instead set the text as value\n     * (modified by the [displayFactor](ui.igpercenteditor#options:displayFactor)) if the editor is not focused.\n     * Note: the method raises the [textChanged](ui.igpercenteditor#events:textChanged) event.\n     *\n     * @param value The string to be inserted.\n     */\n    /* istanbul ignore next */\n    public insert(value: string): void { return; }\n\n    /**\n     * Gets/Sets a string that is used as the percent symbol shown with the number in the input.\n     * The value provided as a param is propagated to the [percentSymbol](ui.igpercenteditor#options:percentSymbol)\n     * option and thus has the same priority as the option.\n     *\n     * @param symbol New percent symbol.\n     */\n    /* istanbul ignore next */\n    public percentSymbol(symbol?: object): string { return; }\n\n    /**\n     * Gets/Sets editor value.\n     *\n     * @param newValue New editor value.\n     */\n    /* istanbul ignore next */\n    public value(newValue?: number): number { return; }\n\n    /**\n     * Finds index of list item by text that matches with the search parameters.\n     *\n     * @param value The text to search for.\n     */\n    /* istanbul ignore next */\n    public findListItemIndex(value: number): number { return; }\n    /* istanbul ignore next */\n    public getSelectedText(): void { return; }\n    /* istanbul ignore next */\n    public getSelectionStart(): void { return; }\n    /* istanbul ignore next */\n    public getSelectionEnd(): void { return; }\n\n    /**\n     * Increments value in editor according to the parameter or selects the previous item from the drop-down list if\n     * [isLimitedToListValues](ui.%%WidgetNameLowered%%#options:isLimitedToListValues) is enabled.\n     *\n     * @param delta Increments value.\n     */\n    /* istanbul ignore next */\n    public spinUp(delta?: number): void { return; }\n\n    /**\n     * Decrements value in editor according to the parameter selects the next item from the drop-down list if\n     * [isLimitedToListValues](ui.%%WidgetNameLowered%%#options:isLimitedToListValues) is enabled.\n     *\n     * @param delta Decrement value.\n     */\n    /* istanbul ignore next */\n    public spinDown(delta?: number): void { return; }\n\n    /**\n     * This method is deprecated in favor of [spinUp](ui.%%WidgetNameLowered%%#options:spinUp).\n     */\n    /* istanbul ignore next */\n    public selectListIndexUp(): void { return; }\n\n    /**\n     * This method is deprecated in favor of [spinDown](ui.%%WidgetNameLowered%%#options:spinDown).\n     */\n    /* istanbul ignore next */\n    public selectListIndexDown(): void { return; }\n\n    /**\n     * Gets current regional.\n     */\n    /* istanbul ignore next */\n    public getRegionalOption(): string { return; }\n\n    /**\n     * Changes the the regional settings of widget element to the language specified in\n     * [options.regional](ui.ignumericeditor#options:regional)\n     * Note that this method is for rare scenarios, use [regional](ui.ignumericeditor#options:regional) option setter\n     */\n    /* istanbul ignore next */\n    public changeRegional(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, Optional, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgEditorBase } from './igeditorbase';\nimport { NgModel } from '@angular/forms';\n\n@Component({\n    selector: 'ig-text-editor',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'value', 'tabIndex', 'allowNullValue', 'nullValue', 'inputName', 'readOnly', 'validatorOptions', 'buttonType', 'listItems', 'listWidth', 'listItemHoverDuration', 'dropDownAttachedToBody', 'dropDownAnimationDuration', 'visibleItemsCount', 'includeKeys', 'excludeKeys', 'textAlign', 'placeHolder', 'selectionOnFocus', 'textMode', 'spinWrapAround', 'isLimitedToListValues', 'revertIfNotValid', 'preventSubmitOnEnter', 'dropDownOrientation', 'maxLength', 'dropDownOnReadOnly', 'toUpper', 'toLower', 'locale', 'suppressNotifications'],\n    outputs: ['rendering', 'rendered', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'blur', 'focus', 'keydown', 'keypress', 'keyup', 'valueChanging', 'valueChanged', 'dropDownListOpening', 'dropDownListOpened', 'dropDownListClosing', 'dropDownListClosed', 'dropDownItemSelecting', 'dropDownItemSelected', 'textChanged'],\n    standalone: false\n})\nexport class IgTextEditorComponent extends IgEditorBase<IgTextEditor> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers,\n                cdr: ChangeDetectorRef, @Optional() public model: NgModel) {\n      super(el, renderer, differs, kvalDiffers, cdr, model);\n    }\n\n    /**\n     * Changes the all locales into the widget element to the language specified in [options.language](ui.igtexteditor#options:language)\n     * Note that this method is for rare scenarios, see [language](ui.igtexteditor#options:language) or\n     * [locale](ui.igtexteditor#options:locale) option setter\n     */\n    /* istanbul ignore next */\n    public changeLocale(): void { return; }\n\n    /**\n     * Gets the visible text in the editor.\n     */\n    /* istanbul ignore next */\n    public displayValue(): string { return; }\n\n    /**\n     * Gets reference to jquery object which is used as container of drop-down list.\n     */\n    /* istanbul ignore next */\n    public dropDownContainer(): string { return; }\n\n    /**\n     * Shows the drop down list.\n     */\n    /* istanbul ignore next */\n    public showDropDown(): void { return; }\n\n    /**\n     * Hides the drop down list.\n     */\n    /* istanbul ignore next */\n    public hideDropDown(): void { return; }\n\n    /**\n     * Returns a reference to the drop-down button UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public dropDownButton(): string { return; }\n\n    /**\n     * Returns if the drop-down list is visible.\n     */\n    /* istanbul ignore next */\n    public dropDownVisible(): boolean { return; }\n\n    /**\n     * Returns a reference to the clear button UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public clearButton(): string { return; }\n\n    /**\n     * Finds index of list item by text that matches with the search parameters.\n     *\n     * @param text The text to search for in the drop down list.\n     * @param matchType The rule that is applied for searching the text.\n     */\n    /* istanbul ignore next */\n    public findListItemIndex(text: string, matchType?: object): number { return; }\n\n    /**\n     * Gets the index of the selected list item. Sets selected item by index.\n     *\n     * @param index The index of the item that needs to be selected.\n     */\n    /* istanbul ignore next */\n    public selectedListIndex(index?: number): number { return; }\n\n    /**\n     * Gets the selected list item.\n     */\n    /* istanbul ignore next */\n    public getSelectedListItem(): string { return; }\n\n    /**\n     * Gets the selected text from the editor in edit mode. This can be done inside key event handlers, like keydown or keyup.\n     * This method can be used only when the editor is focused.\n     * If you invoke this method in display mode, when the editor input is blurred, the returned value will be an empty string.\n     */\n    /* istanbul ignore next */\n    public getSelectedText(): string { return; }\n\n    /**\n     * Gets the start index of the selected text in the editor.\n     */\n    /* istanbul ignore next */\n    public getSelectionStart(): number { return; }\n\n    /**\n     * Gets the end index of the selected text in the editor.\n     */\n    /* istanbul ignore next */\n    public getSelectionEnd(): number { return; }\n\n    /**\n     * Inserts the text at the location of the caret or over the current selection.\n     * If the editor is focused the method will insert the text over the current selection.\n     * If the editor is not focused the method will set the text as value of the editor.\n     * Note: The method raises [textChanged](ui.igtexteditor#events:textChanged) event.\n     *\n     * @param value The string to be inserted.\n     */\n    /* istanbul ignore next */\n    public insert(value: string): void { return; }\n\n    /**\n     * Selects the text between start and end indices in the editor.\n     * If the parameters are equal, then the method sets location of caret. The method has effect only when the editor has focus.\n     *\n     * @param start Start of the selection.\n     * @param end End of the selection.\n     */\n    /* istanbul ignore next */\n    public select(start: number, end: number): void { return; }\n\n    /**\n     * Selects the previous item from the drop-down list.\n     */\n    /* istanbul ignore next */\n    public spinUp(): void { return; }\n\n    /**\n     * Selects the next item from the drop-down list.\n     */\n    /* istanbul ignore next */\n    public spinDown(): void { return; }\n\n    /**\n     * Returns a reference to the spin up UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinUpButton(): string { return; }\n\n    /**\n     * Returns a reference to the spin down UI element of the editor.\n     */\n    /* istanbul ignore next */\n    public spinDownButton(): string { return; }\n\n    /**\n     * Gets/Sets name attribute applied to the editor element.\n     *\n     * @param newValue The new input name.\n     */\n    /* istanbul ignore next */\n    public inputName(newValue?: string): string { return; }\n\n    public value(newValue: object): void { return; }\n\n    /**\n     * Gets the input element of the editor.\n     */\n    /* istanbul ignore next */\n    public field(): string { return; }\n\n    /**\n     * Gets a reference to the jQuery element that wraps the editor.\n     */\n    /* istanbul ignore next */\n    public editorContainer(): string { return; }\n\n    /**\n     * Gets whether the editor has focus.\n     */\n    /* istanbul ignore next */\n    public hasFocus(): boolean { return; }\n\n    /**\n     * Sets focus to the editor after the specified delay.\n     *\n     * @param delay The delay before focusing the editor.\n     */\n    /* istanbul ignore next */\n    public setFocus(delay?: number): void { return; }\n\n    /**\n     * Hides the editor.\n     */\n    /* istanbul ignore next */\n    public hide(): void { return; }\n\n    /**\n     * Shows the editor.\n     */\n    /* istanbul ignore next */\n    public show(): void { return; }\n\n    /**\n     * Gets a reference to [igValidator](ui.igvalidator) used by the editor.\n     */\n    /* istanbul ignore next */\n    public validator(): object { return; }\n\n    /**\n     * Checks if the value in the editor is valid. Note: This function will not trigger automatic notifications.\n     */\n    /* istanbul ignore next */\n    public isValid(): boolean { return; }\n\n    /**\n     * Triggers validation for the editor. If validatorOptions are set will also call validate on the [igValidator](ui.igvalidator).\n     */\n    /* istanbul ignore next */\n    public validate(): boolean { return; }\n\n    /**\n     * Destroys the widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import {\n  Component,\n  ElementRef,\n  IterableDiffers,\n  KeyValueDiffers,\n  ChangeDetectorRef,\n  SimpleChanges,\n  Input,\n  Renderer2,\n  OnInit,\n  OnChanges,\n  DoCheck\n} from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-tree',\n    template: '<ng-content></ng-content>',\n    inputs: [\n        'widgetId',\n        'options',\n        'changeDetectionInterval',\n        'disabled',\n        'create',\n        'width',\n        'height',\n        'checkboxMode',\n        'singleBranchExpand',\n        'hotTracking',\n        'parentNodeImageUrl',\n        'parentNodeImageClass',\n        'parentNodeImageTooltip',\n        'leafNodeImageUrl',\n        'leafNodeImageClass',\n        'leafNodeImageTooltip',\n        'animationDuration',\n        'pathSeparator',\n        'dataSource',\n        'dataSourceUrl',\n        'dataSourceType',\n        'responseDataKey',\n        'responseDataType',\n        'requestType',\n        'responseContentType',\n        'initialExpandDepth',\n        'loadOnDemand',\n        'bindings',\n        'defaultNodeTarget',\n        'dragAndDrop',\n        'updateUrl',\n        'dragAndDropSettings'\n    ],\n    outputs: ['dataBinding', 'dataBound', 'rendering', 'rendered', 'selectionChanging', 'selectionChanged', 'nodeCheckstateChanging', 'nodeCheckstateChanged', 'nodePopulating', 'nodePopulated', 'nodeCollapsing', 'nodeCollapsed', 'nodeExpanding', 'nodeExpanded', 'nodeClick', 'nodeDoubleClick', 'dragStart', 'drag', 'dragStop', 'nodeDropping', 'nodeDropped'],\n    standalone: false\n})\nexport class IgTreeComponent extends IgControlBase<IgTree> implements OnInit, OnChanges, DoCheck {\n    private _dataSource: any;\n    private _changes: any;\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n    }\n\n    @Input()\n    public bindings: IgTreeBindings;\n\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    ngOnInit() {\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n    public ngOnChanges(changes: SimpleChanges): void {\n        const ds = 'dataSource';\n        // const options = \"options\";\n        if (ds in changes) {\n            const value = changes[ds].currentValue;\n            if (!this._differ && value) {\n                try {\n                    this._differ = this._differs.find(value).create();\n                    this._changes = [];\n                    this._dataSource.forEach(item => {\n                      this._changes.push(this.kvalDiffers.find({}).create());\n                    });\n                } catch (e) {\n                    throw new Error('Only binding to arrays is supported.');\n                }\n            }\n        }\n        super.ngOnChanges(changes);\n    }\n    ngDoCheck() {\n        if (this._differ) {\n            const changes = this._differ.diff(this._dataSource);\n            // check if control is initialized\n            const elem = jQuery(this._el).data(this._widgetName);\n            if (changes && elem) {\n                this.dataSourceApplyChanges(changes);\n            }\n            if (this._changes && elem) {\n                // check recs\n                for (let i = 0; i < this._dataSource.length; i++) {\n                    const item = this._dataSource[i];\n                    const rowChanges = this._changes[i].diff(item);\n                    if (rowChanges) {\n                        rowChanges.forEachChangedItem((change: any) => {\n                            this.updateItem(item, change.currentValue, change.key);\n                        });\n                    }\n                }\n            }\n        }\n        super.ngDoCheck();\n    }\n\n    addItem(item, index) {\n        this.dataBind();\n        this._changes.push(this.kvalDiffers.find({}).create());\n\n    }\n    deleteItem(item, index) {\n        this.dataBind();\n        this._changes.splice(index, 1);\n    }\n    dataSourceApplyChanges(changes) {\n        changes.forEachAddedItem(r => this.addItem(r.item, r.currentIndex));\n        changes.forEachRemovedItem(r => { this.deleteItem(r.item, r.previousIndex); });\n\n    }\n    updateItem(item, value, key) {\n        this.dataBind();\n    }\n\n    public markForCheck() {\n        super.markForCheck();\n        const bindings = this.bindings || this.options.bindings;\n        if (bindings && bindings.childDataProperty) {\n            this.dataBind();\n        }\n    }\n\n    /**\n     * Performs databinding on the igTree.\n     */\n    /* istanbul ignore next */\n    public dataBind(): void { return; }\n\n    /**\n     * Toggles the checkstate of a node if checkboxMode is not set to off, otherwise does nothing.\n     *\n     * @param node     Specifies the node element the checkbox of which would be toggled.\n     * @param event     Indicates the browser event which triggered this action, if this is not an API call.\n     */\n    /* istanbul ignore next */\n    public toggleCheckstate(node: object, event?: object): void { return; }\n\n    /**\n     * Toggles the collapse/expand state for the specified node.\n     *\n     * @param node     Specifies the node element the checkbox of which would be toggled.\n     * @param event     Indicates the browser event which triggered this action, if this is not an API call.\n     */\n    /* istanbul ignore next */\n    public toggle(node: object, event?: object): void { return; }\n\n    /**\n     * Expands the tree down to the specified node and selects the node if specified.\n     *\n     * @param node     Specifies the node element down to which the tree would be expanded.\n     * @param toSelect     Specifies the whether to select the node after expanding to it.\n     */\n    /* istanbul ignore next */\n    public expandToNode(node: object, toSelect?: boolean): void { return; }\n\n    /**\n     * Expands the specified node.\n     *\n     * @param node     Specifies the node element to expand.\n     */\n    /* istanbul ignore next */\n    public expand(node: object): void { return; }\n\n    /**\n     * Collapses the specified node.\n     *\n     * @param node     Specifies the node element to collapse.\n     */\n    /* istanbul ignore next */\n    public collapse(node: object): void { return; }\n\n    /**\n     * Retrieves the parent node element of the specified node element.\n     *\n     * @param node     Specifies the jQuery selected node element to collapse.\n     */\n    /* istanbul ignore next */\n    public parentNode(node: object): object { return; }\n\n    /**\n     * Retrieves the jQuery element of the node with the specified path.\n     *\n     * @param nodePath     Specifies the path to the required node.\n     */\n    /* istanbul ignore next */\n    public nodeByPath(nodePath: string): object { return; }\n\n    /**\n     * Retrieves the jQuery element of the node with the specified value.\n     *\n     * @param value     Specifies the value of the required node.\n     */\n    /* istanbul ignore next */\n    public nodesByValue(value: string): object { return; }\n\n    /**\n     * Retrieves all the node objects for the nodes that have their checkboxes checked.\n     */\n    /* istanbul ignore next */\n    public checkedNodes(): any[] { return; }\n\n    /**\n     * Retrieves all the node objects for the nodes that have their checkboxes unchecked.\n     */\n    /* istanbul ignore next */\n    public uncheckedNodes(): any[] { return; }\n\n    /**\n     * Retrieves all the node objects for the nodes that have their checkboxes partially checked.\n     */\n    /* istanbul ignore next */\n    public partiallyCheckedNodes(): any[] { return; }\n\n    /**\n     * Selects a node.\n     *\n     * @param node     Specifies the node element to be selected.\n     * @param event     Indicates the browser event which triggered this action, if this is not an API call.\n     */\n    /* istanbul ignore next */\n    public select(node: object, event?: object): void { return; }\n\n    /**\n     * Deselects the specified node.\n     *\n     * @param node     Specifies the node element to be deselected.\n     */\n    /* istanbul ignore next */\n    public deselect(node: object): void { return; }\n\n    /**\n     * Deselects all the selected nodes.\n     */\n    /* istanbul ignore next */\n    public clearSelection(): void { return; }\n\n    /**\n     * Retrieves the node object for the selected node.\n     */\n    /* istanbul ignore next */\n    public selectedNode(): object { return; }\n\n    /**\n     * Retrieves all node objects with the specified text (case sensitive).\n     *\n     * @param text     The text to search for.\n     * @param parent     The node element to start the search from. If not specified then search would start from the root of the tree.\n     */\n    /* istanbul ignore next */\n    public findNodesByText(text: string, parent?: object): any[] { return; }\n\n    /**\n     * Retrieves all node objects for the immediate children of the specified parent with the specified text (case sensitive).\n     *\n     * @param text     The text to search for.\n     * @param parent     The node element the children of which would be searched.\n     */\n    /* istanbul ignore next */\n    public findImmediateNodesByText(text: string, parent?: object): any[] { return; }\n\n    /**\n     * Retrieves the n-th jQuery node element child of the specified parent.\n     *\n     * @param index     Specifies the index the node at which to be retrieved.\n     * @param parent     The parent node element to start the search from.\n     */\n    /* istanbul ignore next */\n    public nodeByIndex(index: number, parent?: object): object { return; }\n\n    /**\n     * Retrieves a node object for the specified node element.\n     *\n     * @param element     Specifies the node element.\n     */\n    /* istanbul ignore next */\n    public nodeFromElement(element: object): object { return; }\n\n    /**\n     * Retrieves a node object collection of the immediate children of the provided node element.\n     *\n     * @param parent     Specifies the node element.\n     */\n    /* istanbul ignore next */\n    public children(parent: object): any[] { return; }\n\n    /**\n     * Retrieves a node object collection of the immediate children of the node with the provided path.\n     *\n     * @param path     Specifies the path of the node the children of which are to be retrieved.\n     */\n    /* istanbul ignore next */\n    public childrenByPath(path: string): any[] { return; }\n\n    /**\n     * Returns true if the provided node element is selected and false otherwise.\n     *\n     * @param node     Specifies the node element.\n     */\n    /* istanbul ignore next */\n    public isSelected(node: object): boolean { return; }\n\n    /**\n     * Returns true if the provided node element is expanded and false otherwise.\n     *\n     * @param node     Specifies the node element.\n     */\n    /* istanbul ignore next */\n    public isExpanded(node: object): boolean { return; }\n\n    /**\n     * Returns true if the provided node element has its checkbox checkstate checked and false otherwise.\n     *\n     * @param node     Specifies the node element.\n     */\n    /* istanbul ignore next */\n    public isChecked(node: object): boolean { return; }\n\n    /**\n     * Returns the specified node checkstate.\n     *\n     * @param node     Specifies the node element.\n     */\n    /* istanbul ignore next */\n    public checkState(node: object): string { return; }\n\n    /**\n     * Adds a new array of nodes to the tree. New nodes are appended to the root or to a specified parent node, at a specified index.\n     *\n     * @param node     Specifies the data used to create the new nodeс.\n     * @param parent     Specifies the element of the parent node the nodes are to be appended to.\n     * @param nodeIndex     Specifies the index at which the nodes to be inserted.\n     */\n    /* istanbul ignore next */\n    public addNode(node: object, parent?: object, nodeIndex?: number): void { return; }\n\n    /**\n     * Removes the node with with the specified path and all of its children.\n     *\n     * @param path     Specifies the path of the node to be removed.\n     */\n    /* istanbul ignore next */\n    public removeAt(path: string): void { return; }\n\n    /**\n     * Removing all the nodes with the specified value.\n     *\n     * @param value     Specifies the value of the nodes to be removed.\n     */\n    /* istanbul ignore next */\n    public removeNodesByValue(value: string): void { return; }\n\n    /**\n     * Performs a UI update on the provided node element with the provided data.\n     *\n     * @param element     Specifies the node to be updated.\n     * @param data     Specifies the new data item the node would update according to.\n     */\n    /* istanbul ignore next */\n    public applyChangesToNode(element: object, data: object): void { return; }\n\n    /**\n     * Returns the transaction log stack.\n     */\n    /* istanbul ignore next */\n    public transactionLog(): any[] { return; }\n\n    /**\n     * Returns the data for the node with specified path.\n     *\n     * @param path     Specifies the node path for which the data is returned.\n     */\n    /* istanbul ignore next */\n    public nodeDataFor(path: string): object { return; }\n\n    /**\n     * Destructor for the igTree widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { IgControlBase } from './igcontrolbase';\nimport { ElementRef, KeyValueDiffers, IterableDiffers, ChangeDetectorRef, Renderer2, Directive, OnInit } from '@angular/core';\n\n\n@Directive()\nexport class IgContentControlBase<Model> extends IgControlBase<Model> implements OnInit {\n  private childNodes: Array<any>;\n\n  constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n    super(el, renderer, differs, kvalDiffers, cdr);\n    this.childNodes = el.nativeElement.childNodes;\n  }\n\n  ngOnInit() {\n    jQuery(this._el).append(this.childNodes);\n    super.ngOnInit();\n  }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgContentControlBase } from '../igcontrolbase/igcontentcontrolbase';\n\n@Component({\n    selector: 'ig-dialog',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'mainElement', 'state', 'pinned', 'closeOnEscape', 'showCloseButton', 'showMaximizeButton', 'showMinimizeButton', 'showPinButton', 'pinOnMinimized', 'imageClass', 'headerText', 'showHeader', 'showFooter', 'footerText', 'dialogClass', 'container', 'height', 'width', 'minHeight', 'minWidth', 'maxHeight', 'maxWidth', 'draggable', 'position', 'resizable', 'tabIndex', 'openAnimation', 'closeAnimation', 'zIndex', 'modal', 'trackFocus', 'closeButtonTitle', 'minimizeButtonTitle', 'maximizeButtonTitle', 'pinButtonTitle', 'unpinButtonTitle', 'restoreButtonTitle', 'temporaryUrl', 'enableHeaderFocus', 'enableDblclick'],\n    outputs: ['stateChanging', 'stateChanged', 'animationEnded', 'focus', 'blur'],\n    standalone: false\n})\nexport class IgDialogComponent extends IgContentControlBase<IgDialog> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    /**\n     * Destroys the igDialog and moves the target element to its original parent.\n     */\n    /* istanbul ignore next */\n    public destroy(): object { return; }\n\n    /**\n     * Gets/Sets the state of the editor.\n     * \t\t\t\tNote: If the state of the dialog changes, then stateChanging and stateChanged events are raised.\n     *\n     * @param state     New state.\n     */\n    /* istanbul ignore next */\n    public state(state?: string): string { return; }\n\n    /**\n     * Gets reference to the dynamically created DIV element which represents the dialog.\n     */\n    /* istanbul ignore next */\n    public mainElement(): Element { return; }\n\n    /**\n     * Closes the dialog if it is opened.\n     * \t\t\t\tNotes:\n     * \t\t\t\t1. If the state of the dialog changes, then stateChanging and stateChanged events are raised.\n     * \t\t\t\t2. That method does not change minimized or maximized state of the dialog.\n     * \t\t\t\tIt means that method \"open\" will open the dialog and keep previous minimized or maximized state.\n     *\n     * @param e     Browser event: internal use only.\n     */\n    /* istanbul ignore next */\n    public close(e?: object): object { return; }\n\n    /**\n     * Opens the dialog if it is closed. Notes:\n     * \t\t\t\t1. If the state of the dialog changes, then stateChanging and stateChanged events are raised.\n     * \t\t\t\t2. That method does not change minimized or maximized state of the dialog.\n     * It means that if the dialog was in minimized or maximized stated when closed by \"close\" method,\n     * then the dialog will open in minimized or maximized state respectively.\n     */\n    /* istanbul ignore next */\n    public open(): object { return; }\n\n    /**\n     * Minimizes the dialog if it is not minimized.\n     * \t\t\t\tNote: If the state of the dialog changes, then stateChanging and stateChanged events are raised.\n     */\n    /* istanbul ignore next */\n    public minimize(): object { return; }\n\n    /**\n     * Maximizes the dialog if it is not maximized.\n     * \t\t\t\tNote: If the state of the dialog changes, then stateChanging and stateChanged events are raised.\n     */\n    /* istanbul ignore next */\n    public maximize(): object { return; }\n\n    /**\n     * Sets the normal state for the dialog if it was maximized or minimized.\n     * \t\t\t\tNote: If the state of the dialog changes, then stateChanging and stateChanged events are raised.\n     */\n    /* istanbul ignore next */\n    public restore(): object { return; }\n\n    /**\n     * Pins the dialog if it is not pinned.\n     * \t\t\t\tWhen the dialog is pinned, then the html element of the dialog is moved to the original container where the target elemen\n     *  was located and position:absolute is removed.\n     * \t\t\t\tThe pinned dialog does not support modal state, maximized state and it can not be moved.\n     * \t\t\t\tNotes:\n     * \t\t\t\t1. If the parent element of the original target-element is invisible, then the pinned dialog becomes invisible as well.\n     * \t\t\t\t2. If the state of the dialog changes, then stateChanging and stateChanged events are raised.\n     */\n    /* istanbul ignore next */\n    public pin(): object { return; }\n\n    /**\n     * Unpins the dialog if it is pinned.\n     * \t\t\t\tNote: If the state of the dialog changes, then stateChanging and stateChanged events are raised.\n     */\n    /* istanbul ignore next */\n    public unpin(): object { return; }\n\n    /**\n     * Gets a reference to the top modal dialog.\n     */\n    /* istanbul ignore next */\n    public getTopModal(): object { return; }\n\n    /**\n     * Checks if the dialog is modal and if it is currently active.\n     */\n    /* istanbul ignore next */\n    public isTopModal(): boolean { return; }\n\n    /**\n     * Moves a not modal dialog to the top.\n     *\n     * @param e     Original event of browser.\n     */\n    /* istanbul ignore next */\n    public moveToTop(e?: object): object { return; }\n\n    /**\n     * Retrieves the igDialog content container or sets its content to be the new content provided.\n     *\n     * @param newContent     The new html content provided as a string. If the parameter is provided then the method acts as a setter.\n     */\n    /* istanbul ignore next */\n    public content(newContent?: string): object { return; }\n}\n","import { ElementRef, IterableDiffers, Component, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgContentControlBase } from '../igcontrolbase/igcontentcontrolbase';\n\n@Component({\n    selector: 'ig-splitter',\n    template: '<ng-content></ng-content>',\n    inputs: [\n        'widgetId',\n        'options',\n        'changeDetectionInterval',\n        'disabled',\n        'create',\n        'width',\n        'height',\n        'orientation',\n        'panels',\n        'dragDelta',\n        'resizeOtherSplitters'\n    ],\n    outputs: ['collapsed', 'expanded', 'resizeStarted', 'resizing', 'resizeEnded', 'layoutRefreshing', 'layoutRefreshed'],\n    standalone: false\n})\nexport class IgSplitterComponent extends IgContentControlBase<IgSplitter> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n\n    /**\n     * Returns the element that represents this widget.\n     */\n    /* istanbul ignore next */\n    public widget(): object { return; }\n\n\n    /**\n     * Expand the specified panel by index.\n     *\n     * @param index Specifies the index of the panel to expand.\n     */\n    /* istanbul ignore next */\n    public expandAt(index: object): void { return; }\n\n\n    /**\n     * Collapse the specified panel.\n     *\n     * @param index Specifies the index of the panel to collapse.\n     */\n    /* istanbul ignore next */\n    public collapseAt(index: object): void { return; }\n\n\n    /**\n     * Retrieves the jQuery element of the first panel.\n     */\n    /* istanbul ignore next */\n    public firstPanel(): object { return; }\n\n\n    /**\n     * Retrieves the jQuery element of the second panel.\n     */\n    /* istanbul ignore next */\n    public secondPanel(): object { return; }\n\n\n    /**\n     * Refresh splitter layout, use this method to re-render the splitter if some changes to the layout are applied.\n     */\n    /* istanbul ignore next */\n    public refreshLayout(): void { return; }\n\n\n    /**\n     * You can set new size of the first panel after the splitter is rendered.\n     *\n     * @param size Specifies the new size of the first panel.\n     */\n    /* istanbul ignore next */\n    public setFirstPanelSize(size: object): void { return; }\n\n\n    /**\n     * You can set new size of the second panel after the splitter is rendered.\n     *\n     * @param size Specifies the new size of the second panel.\n     */\n    /* istanbul ignore next */\n    public setSecondPanelSize(size: object): void { return; }\n\n    /**\n     * Destroys the igSplitter widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { ElementRef, IterableDiffers, Component, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgContentControlBase } from '../igcontrolbase/igcontentcontrolbase';\n\n@Component({\n    selector: 'ig-layout-manager',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'borderLayout', 'gridLayout', 'height', 'itemCount', 'items', 'layoutMode', 'width'],\n    outputs: ['internalResized', 'internalResizing', 'itemRendered', 'itemRendering', 'rendered'],\n    standalone: false\n})\nexport class IgLayoutManagerComponent extends IgContentControlBase<IgLayoutManager> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n\n    /**\n     * Triggers recalculation of the layout dimensions. Layouts may not need to be reflowed manually,\n     * if their sizes are in percentages (i.e. they are responsive by default)\n     * This can be particularly useful with a grid layout, when the container has percentage sizes,\n     * but items are calculated in pixels and positioned absolutely in the container.\n     *\n     * @param forceReflow Indicates whether the reflow should be forced.\n     * Useful in cases where the items size and position was changed manually.\n     * @param animationDuration The animation duration to be used for this reflow only. Supported only for Grid Layout mode.\n     * @param event Indicates the browser even which triggered this action (not API).\n     */\n    /* istanbul ignore next */\n    public reflow(forceReflow?: boolean, animationDuration?: number, event?: object): void { return; }\n\n    /**\n     * Destroy is part of the jQuery UI widget API and does the following:\n     * 1. Remove custom CSS classes that were added.\n     * 2. Remove any elements that were added at widget's initialization and after that, which didn't below to the original markup\n     * 3. Unbind all events that were bound.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { ElementRef, IterableDiffers, Component, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\nimport { IgContentControlBase } from '../igcontrolbase/igcontentcontrolbase';\n\n@Component({\n    selector: 'ig-tile-manager',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'columnWidth', 'columnHeight', 'cols', 'rows', 'marginLeft', 'marginTop', 'rearrangeItems', 'items', 'dataSource', 'minimizedState', 'maximizedState', 'maximizedTileIndex', 'rightPanelCols', 'rightPanelTilesWidth', 'rightPanelTilesHeight', 'showRightPanelScroll', 'splitterOptions', 'preventMaximizingSelector', 'animationDuration', 'dataSourceUrl', 'responseDataKey', 'responseDataType', 'dataSourceType', 'requestType', 'responseContentType'],\n    outputs: ['dataBinding', 'dataBound', 'rendering', 'rendered', 'tileRendering', 'tileRendered', 'tileMaximizing', 'tileMaximized', 'tileMinimizing', 'tileMinimized'],\n    standalone: false\n})\nexport class IgTileManagerComponent extends IgContentControlBase<IgTileManager> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const widget = jQuery(this._el).data(this._widgetName);\n        if (widget) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n\n    private _dataSource: any;\n\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    /**\n     * Maximizes a given tile.\n     *\n     * @param $tileToMaximize Specifies the jQuery object of the tile element to be maximized.\n     * @param animDuration Specifies the animation duration for this maximizing.\n     * @param event Indicates the browser even which triggered this action (not API).\n     */\n    /* istanbul ignore next */\n    public maximize($tileToMaximize: object, animDuration?: number, event?: object): void { return; }\n\n    /**\n     * Minimizes the maximized tile. Has no effect if no maximized tile is present.\n     *\n     * @param animDuration Specifies the animation duration for this minimize.\n     * @param event Indicates the browser even which triggered this action (not API).\n     */\n    /* istanbul ignore next */\n    public minimize(animDuration?: number, event?: object): void { return; }\n\n    /**\n     * Returns the maximized tile or null if such is not present.\n     * @return object|null Returns the maximized tile or null if such is not present.\n     */\n    /* istanbul ignore next */\n    public maximizedTile(): object { return; }\n\n    /**\n     * Returns an array with the tiles in minimized state or null if such are not present.\n     * @return object|null Returns an array with the tiles in minimized state or null if such are not present.\n     */\n    /* istanbul ignore next */\n    public minimizedTiles(): object { return; }\n\n    /**\n     * Returns the splitter associated with this tile manager or\n     *                 null if the tile manager was instantiated with maximizedTileIndex.\n     * @return object|null Returns the splitter associated with this tile manager or null\n     * if the tile manager was instantiated with maximizedTileIndex.\n     */\n    /* istanbul ignore next */\n    public splitter(): object { return; }\n\n    /**\n     * Returns the [layout manager](ui.iglayoutmanager) associated with current tile manager.\n     */\n    /* istanbul ignore next */\n    public layoutManager(): object { return; }\n\n    /**\n     * Reflow the tile manager. Rearranging the tiles to fit in the container\n     *\n     * @param forceReflow Indicates whether the reflow should be forced.\n     * Useful in cases where the items size and position was changed manually.\n     * @param animationDuration The animation duration to be used for this reflow only.\n     * @param event Indicates the browser even which triggered this action (not API).\n     */\n    /* istanbul ignore next */\n    public reflow(forceReflow?: object, animationDuration?: number, event?: object): void { return; }\n\n    /**\n     * Returns the element that represents this widget.\n     */\n    /* istanbul ignore next */\n    public widget(): object { return; }\n\n    /**\n     * Causes the TileManager to data bind to the data source (local or remote) , and re-render all of the data as well.\n     */\n    /* istanbul ignore next */\n    public dataBind(): void { return; }\n\n    /**\n     * Deletes the widget instance (client object). It is no longer accessible and all its event handlers stop working.\n     * Destroys all child widgets. Removes auto-generated HTML content, which is outside the widget, e.g. detached popups, dropdowns, etc.\n     */\n    /* istanbul ignore next */\n    public destroy(): object { return; }\n}\n","import { Component, ElementRef, IterableDiffers, Optional, NgZone, KeyValueDiffers, ChangeDetectorRef, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\nimport { ControlValueAccessor, NgModel } from '@angular/forms';\n\ndeclare var jQuery: any;\n\n@Component({\n    selector: 'ig-html-editor',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'showFormattingToolbar', 'showTextToolbar', 'showInsertObjectToolbar', 'showCopyPasteToolbar', 'width', 'height', 'toolbarSettings', 'customToolbars', 'inputName', 'value'],\n    outputs: ['rendered', 'rendering', 'actionExecuting', 'actionExecuted', 'toolbarCollapsing', 'toolbarCollapsed', 'toolbarExpanding', 'toolbarExpanded', 'cut', 'copy', 'paste', 'undo', 'redo', 'workspaceResized'],\n    standalone: false\n})\nexport class IgHtmlEditorComponent extends IgControlBase<IgHtmlEditor> implements ControlValueAccessor, OnInit {\n    protected _model: any;\n    protected _zone: any;\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers,\n                @Optional() public model: NgModel, private zone: NgZone, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n        if (model) {\n            model.valueAccessor = this;\n            this._zone = zone;\n            this._model = model;\n        }\n    }\n    ngOnInit() {\n        super.ngOnInit();\n        if (this._model) {\n            const iframe = jQuery(this._el).find('iframe')[0].contentWindow.document;\n            jQuery(iframe).find('body[contenteditable=true]').on('keyup', (evt, ui) => {\n                this._model.viewToModelUpdate(jQuery(evt.target).html());\n                this._zone.run(() => {\n                    this._model.viewToModelUpdate(jQuery(evt.target).html());\n                });\n            });\n        }\n\n    }\n    writeValue(value: any) {\n        if (!!jQuery(this._el).data(this._widgetName) && value !== null &&\n          value !== jQuery(this._el)[this._widgetName]('getContent', 'html')) {\n            jQuery(this._el)[this._widgetName]('setContent', value, 'html');\n        }\n    }\n\n    onChange = (_: any) => {\n    }\n    onTouched = () => {\n    }\n\n    registerOnChange(fn: (_: any) => {}): void {\n        this.onChange = fn;\n    }\n\n    registerOnTouched(fn: () => {}): void {\n        this.onTouched = fn;\n    }\n\n    /**\n     * Returns the element on which the widget was instantiated\n     */\n    /* istanbul ignore next */\n    public widget(): void { return; }\n\n    /**\n     * Resizes the height of the workspace\n     */\n    /* istanbul ignore next */\n    public resizeWorkspace(): void { return; }\n\n    /**\n     * Gets the content of the html editor.\n     *\n     * @param format Returns the content as html or plain text. Values can be \"text\" or \"html\".\n     */\n    /* istanbul ignore next */\n    public getContent(format: string): string { return; }\n\n    /**\n     * Sets the content of the html editor.\n     *\n     * @param content The content which will be set.\n     * @param format The content type: \"text\" or \"html\".\n     */\n    /* istanbul ignore next */\n    public setContent(content: string, format: string): void { return; }\n\n    /**\n     * Destroys the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Executes htmleditor commands.\n     *\n     * @param actionName The command name.\n     * @param args Additional parameter for the command.\n     */\n    /* istanbul ignore next */\n    public executeAction(actionName: string, args?: object): void { return; }\n\n    /**\n     * Returns true/false if the editor contents were modified or not.\n     */\n    /* istanbul ignore next */\n    public isDirty(): object { return; }\n\n    /**\n     * Returns the window object associated with the Html Editor's content editable area\n     */\n    /* istanbul ignore next */\n    public contentWindow(): object { return; }\n\n    /**\n     * Returns the document object associated with the Html Editor's content editable area\n     */\n    /* istanbul ignore next */\n    public contentDocument(): object { return; }\n\n    /**\n     * Returns the content editable associated with this Html Editor\n     */\n    /* istanbul ignore next */\n    public contentEditable(): object { return; }\n\n    /**\n     * Returns Selection object that represent the current selection in the content editable\n     */\n    /* istanbul ignore next */\n    public selection(): object { return; }\n\n    /**\n     * Returns Range object that represent the current range in the content editable\n     */\n    /* istanbul ignore next */\n    public range(): object { return; }\n\n    /**\n     * Inserts the provided content at the position of the caret.\n     *\n     * @param element Accepts html string, DOM element or a jQuery object.\n     */\n    /* istanbul ignore next */\n    public insertAtCaret(element: object): void { return; }\n}\n","import { Component, IterableDiffers, ElementRef, KeyValueDiffers, ChangeDetectorRef, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\ndeclare var jQuery: any;\n\n@Component({\n    selector: 'ig-validator',\n    template: '<ng-content></ng-content>',\n    inputs: [\n        'widgetId',\n        'options',\n        'changeDetectionInterval',\n        'disabled',\n        'create',\n        'onchange',\n        'onblur',\n        'onsubmit',\n        'required',\n        'number',\n        'date',\n        'email',\n        'lengthRange',\n        'valueRange',\n        'creditCard',\n        'pattern',\n        'messageTarget',\n        'errorMessage',\n        'successMessage',\n        'threshold',\n        'equalTo',\n        'custom',\n        'fields',\n        'notificationOptions',\n        'requiredIndication',\n        'optionalIndication'\n    ],\n    outputs: [\n        'validating',\n        'validated',\n        'success',\n        'error',\n        'errorShowing',\n        'errorHiding',\n        'errorShown',\n        'errorHidden',\n        'successShowing',\n        'successHiding',\n        'successShown',\n        'successHidden',\n        'formValidating',\n        'formValidated',\n        'formError',\n        'formSuccess'\n    ],\n    standalone: false\n})\nexport class IgValidatorComponent extends IgControlBase<IgValidator> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    ngOnInit() {\n        let evtName;\n        this._el = jQuery(document).find('#' + this.widgetId);\n        jQuery(this._el)[this._widgetName](this.options);\n        this._events = new Map<string, string>();\n\n        for (const propt in jQuery.ui[this._widgetName].prototype.events) {\n          if (jQuery.ui[this._widgetName].prototype.events.hasOwnProperty(prompt)) {\n            evtName = this._widgetName.toLowerCase() + propt.toLowerCase();\n            this._events[evtName] = propt;\n            jQuery(this._el).on(evtName, (evt, ui) => {\n                this[this._events[evt.type]].emit({ event: evt, ui });\n            });\n          }\n        }\n    }\n\n    /**\n     * Trigger validation and show errors for invalid fields.\n     *\n     * @param field    Optional field object, its selector or zero-based index to check.\n     *  Only has effect with fields collection and skips other fields.\n     */\n    /* istanbul ignore next */\n    public validate(field?: object): boolean { return; }\n\n    /**\n     * Trigger validation but do not display error messages.\n     *\n     * @param field    Optional field object, its selector or zero-based index to check.\n     * Only has effect with fields collection and skips other fields.\n     */\n    /* istanbul ignore next */\n    public isValid(field?: object): boolean { return; }\n\n    /**\n     * Hide any possible message(s) (either messageTarget or igNotifier).\n     * \t\t\tNote: When the validator has a fields colleciton, not passing a field will hide messages on all fields.\n     *\n     * @param field    Optional field object, its selector or zero-based index to hide message for.\n     */\n    /* istanbul ignore next */\n    public hide(field?: object): void { return; }\n\n    /**\n     * Gets all current error messages for invalid field(s).\n     * Note that this method does not valdiate and states and messages are only updated on validation, so\n     * this can be used on formValidated event or after validate/isValid method calls.\n     *\n     * @param field    Optional field object, selector or zero-based index for a single field to get error message for.\n     */\n    /* istanbul ignore next */\n    public getErrorMessages(field?: object): any[] { return; }\n\n    /**\n     * Check for currently displayed message(s). Takes an optional field.\n     * \t\t\tNote: When the validator has a fields colleciton, not passing a\n     *      field will return a cumulative true even if just one field has a visible message.\n     *\n     * @param field    Optional field object, selector or zero-based index for a single field to get error message for.\n     */\n    /* istanbul ignore next */\n    public isMessageDisplayed(field?: object): boolean { return; }\n\n    /**\n     * Gets the notifier for the igValidator or for a single filed.\n     *\n     * @param field    Optional field object, its selector or zero-based index to get notifier for.\n     */\n    /* istanbul ignore next */\n    public notifier(field?: object): object { return; }\n\n    /**\n     * Adds an new input to the fields collection and initializes it with the validator.\n     * Note: Additional fields are only accepted if the validator has been created with the collection.\n     *\n     * @param field    An object with the field selector and options.\n     */\n    /* istanbul ignore next */\n    public addField(field: object): void { return; }\n\n    /**\n     * Removes an input from the fields collection.\n     *\n     * @param field    The field object to remove, its zero-based index or selector.\n     */\n    /* istanbul ignore next */\n    public removeField(field: object): void { return; }\n\n    /**\n     * Updates a field in the validator collection.\n     * Used to reinitialize field in case a control has been created after the validator or to pass in new options.\n     *\n     * @param field    The field object to update, its zero-based index or selector.\n     * @param fieldOptions    New options to apply to the field.\n     */\n    /* istanbul ignore next */\n    public updateField(field: object, fieldOptions?: object): void { return; }\n\n    /**\n     * Destroys the validator widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-pivot-data-selector',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'dataSource', 'dataSourceOptions', 'deferUpdate', 'dragAndDropSettings', 'dropDownParent', 'disableRowsDropArea', 'disableColumnsDropArea', 'disableMeasuresDropArea', 'disableFiltersDropArea', 'customMoveValidation'],\n    outputs: ['dataSelectorRendered', 'dataSourceInitialized', 'dataSourceUpdated', 'deferUpdateChanged', 'dragStart', 'drag', 'dragStop', 'metadataDropping', 'metadataDropped', 'metadataRemoving', 'metadataRemoved', 'filterDropDownOpening', 'filterDropDownOpened', 'filterMembersLoaded', 'filterDropDownOk', 'filterDropDownClosing', 'filterDropDownClosed'],\n    standalone: false\n})\nexport class IgPivotDataSelectorComponent extends IgControlBase<IgPivotDataSelector> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    @Input()\n    public set dataSource(value: any) {\n            this._dataSource = value;\n            const widget = jQuery(this._el).data(this._widgetName);\n            if (widget) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n\n\n\n    private _dataSource: any;\n    public option(): void { return; }\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    /**\n     * Updates the data source.\n     */\n    /* istanbul ignore next */\n    public update(): void { return; }\n    /**\n     * Destroy is part of the jQuery UI widget API and does the following:\n     *                 1. Remove custom CSS classes that were added.\n     *                 2. Unwrap any wrapping elements such as scrolling divs and other containers.\n     *                 3. Unbind all events that were bound.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-pivot-grid',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'dataSource', 'dataSourceOptions', 'deferUpdate', 'isParentInFrontForColumns', 'isParentInFrontForRows', 'compactColumnHeaders', 'compactRowHeaders', 'rowHeadersLayout', 'compactColumnHeaderIndentation', 'compactRowHeaderIndentation', 'rowHeaderLinkGroupIndentation', 'treeRowHeaderIndentation', 'defaultRowHeaderWidth', 'allowSorting', 'firstSortDirection', 'allowHeaderRowsSorting', 'allowHeaderColumnsSorting', 'levelSortDirections', 'defaultLevelSortBehavior', 'firstLevelSortDirection', 'gridOptions', 'dragAndDropSettings', 'dropDownParent', 'disableRowsDropArea', 'disableColumnsDropArea', 'disableMeasuresDropArea', 'disableFiltersDropArea', 'hideRowsDropArea', 'hideColumnsDropArea', 'hideMeasuresDropArea', 'hideFiltersDropArea', 'customMoveValidation'],\n    outputs: ['dataSourceInitialized', 'dataSourceUpdated', 'pivotGridHeadersRendered', 'pivotGridRendered', 'tupleMemberExpanding', 'tupleMemberExpanded', 'tupleMemberCollapsing', 'tupleMemberCollapsed', 'sorting', 'sorted', 'headersSorting', 'headersSorted', 'dragStart', 'drag', 'dragStop', 'metadataDropping', 'metadataDropped', 'metadataRemoving', 'metadataRemoved', 'filterDropDownOpening', 'filterDropDownOpened', 'filterMembersLoaded', 'filterDropDownOk', 'filterDropDownClosing', 'filterDropDownClosed'],\n    standalone: false\n})\nexport class IgPivotGridComponent extends IgControlBase<IgPivotGrid> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const widget = jQuery(this._el).data(this._widgetName);\n        if (widget) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n\n    private _dataSource: any;\n    public option(): void { return; }\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    /**\n     * Returns the igGrid instance used to render the OLAP data.\n     */\n    /* istanbul ignore next */\n    public grid(): object { return; }\n    /**\n     * Triggers an update on the data source and the igPivotGrid.\n     */\n    /* istanbul ignore next */\n    public updateGrid(): void { return; }\n    /**\n     * Expands a member from the data source and returns true if the expand succeeds.\n     * If the data source has a pending update, the method will return false.\n     * Note that igPivotGrid to will display the expanded result after the data source is updated.\n     *\n     * @param tupleLocation The name of the parent axis - 'columnAxis' or 'rowAxis'.\n     * @param tupleIndex The index of the containing tuple.\n     * This index should correspond to the position of the tuple in the original unsorted result of the data source.\n     * @param memberIndex The index of the member in the tuple.\n     * This index should correspond to the position of the member in the original unsorted result of the data source.\n     * @param shouldUpdate A flag indicating whether the data source should be updated after the expand.\n     */\n    /* istanbul ignore next */\n    public expandTupleMember(tupleLocation: string, tupleIndex: number, memberIndex: number, shouldUpdate?: boolean): boolean { return; }\n    /**\n     * Collapses a member from the data source and returns true if the collapse succeeds.\n     * If the data source has a pending update, the method will return false.\n     * Note that igPivotGrid to will display the expanded result after the data source is updated.\n     *\n     * @param tupleLocation The name of the parent axis - 'columnAxis' or 'rowAxis'.\n     * @param tupleIndex The index of the containing tuple.\n     * This index should correspond to the position of the tuple in the original unsorted result of the data source.\n     * @param memberIndex The index of the member in the tuple.\n     * This index should correspond to the position of the member in the original unsorted result of the data source.\n     * @param shouldUpdate A flag indicating whether the data source should be updated after the expand.\n     */\n    /* istanbul ignore next */\n    public collapseTupleMember(tupleLocation: string, tupleIndex: number, memberIndex: number, shouldUpdate?: boolean): boolean { return; }\n    /**\n     * Returns an array with the applied sort directions on the igPivotGrid's columns.\n     * The returned array contains objects with the following properties:\n     *             memberNames: The names of the members in the tuple.\n     *             tupleIndex: The index of the tuple on the column axis in the original unsorted result.\n     *             sortDirection: The direction of the sort - ascending or descending.\n     */\n    /* istanbul ignore next */\n    public appliedColumnSortDirections(): any[] { return; }\n    /**\n     * Returns an array with the applied level sort direction items, which were used for the sorting of the header cells.\n     * The returned array contains objects with the following properties:\n     *             levelUniqueName: Specifies the unique name of the level, which was sorted.\n     *             sortDirection: The direction of the header sort - ascending or descending.\n     */\n    /* istanbul ignore next */\n    public appliedLevelSortDirections(): any[] { return; }\n    /**\n     * Destroy is part of the jQuery UI widget API and does the following:\n     *             1. Remove custom CSS classes that were added.\n     *             2. Unwrap any wrapping elements such as scrolling divs and other containers.\n     *             3. Unbind all events that were bound.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-data-chart',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'isPagePanningAllowed', 'syncChannel', 'synchronizeVertically', 'synchronizeHorizontally', 'crosshairPoint', 'windowRect', 'horizontalZoomable', 'verticalZoomable', 'windowResponse', 'windowRectMinWidth', 'overviewPlusDetailPaneVisibility', 'crosshairVisibility', 'plotAreaBackground', 'defaultInteraction', 'dragModifier', 'panModifier', 'previewRect', 'windowPositionHorizontal', 'windowPositionVertical', 'windowScaleHorizontal', 'windowScaleVertical', 'circleMarkerTemplate', 'triangleMarkerTemplate', 'pyramidMarkerTemplate', 'squareMarkerTemplate', 'diamondMarkerTemplate', 'pentagonMarkerTemplate', 'hexagonMarkerTemplate', 'tetragramMarkerTemplate', 'pentagramMarkerTemplate', 'hexagramMarkerTemplate', 'topMargin', 'leftMargin', 'rightMargin', 'bottomMargin', 'autoMarginWidth', 'autoMarginHeight', 'isSquare', 'gridMode', 'brushes', 'markerBrushes', 'outlines', 'markerOutlines', 'width', 'height', 'size', 'dataSource', 'dataSourceUrl', 'dataSourceType', 'responseDataKey', 'isSurfaceInteractionDisabled', 'animateSeriesWhenAxisRangeChanges', 'title', 'subtitle', 'titleTextStyle', 'titleTopMargin', 'titleLeftMargin', 'titleRightMargin', 'titleBottomMargin', 'subtitleTextStyle', 'subtitleTopMargin', 'subtitleLeftMargin', 'subtitleRightMargin', 'subtitleBottomMargin', 'titleTextColor', 'subtitleTextColor', 'titleHorizontalAlignment', 'subtitleHorizontalAlignment', 'highlightingTransitionDuration', 'useTiledZooming', 'preferHigherResolutionTiles', 'pixelScalingRatio', 'zoomTileCacheSize', 'contentHitTestMode', 'legend', 'axes', 'series', 'theme'],\n    outputs: ['tooltipShowing', 'tooltipShown', 'tooltipHiding', 'tooltipHidden', 'browserNotSupported', 'seriesCursorMouseMove', 'seriesMouseLeftButtonDown', 'seriesMouseLeftButtonUp', 'seriesMouseMove', 'seriesMouseEnter', 'seriesMouseLeave', 'windowRectChanged', 'gridAreaRectChanged', 'refreshCompleted', 'axisRangeChanged', 'typicalBasedOn', 'progressiveLoadStatusChanged', 'assigningCategoryStyle', 'assigningCategoryMarkerStyle'],\n    standalone: false\n})\nexport class IgDataChartComponent extends IgControlBase<IgDataChart> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const chart = jQuery(this._el).data(this._widgetName);\n        if (chart) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n\n    private _dataSource: any;\n\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    public option(): void { return; }\n\n    /**\n     * Returns the element holding the chart.\n     */\n    /* istanbul ignore next */\n    public widget(): void { return; }\n\n    /**\n     * Returns the ID of parent element holding the chart.\n     */\n    /* istanbul ignore next */\n    public id(): string { return; }\n\n    /**\n     * Exports the chart to a PNG image.\n     *\n     * @param width     The width of the image.\n     * @param height     The height of the image.\n     */\n    /* istanbul ignore next */\n    public exportImage(width?: object, height?: object): object { return; }\n\n    /**\n     * Destroys the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Notify the chart that styles it draws colors from may have been updated.\n     */\n    /* istanbul ignore next */\n    public styleUpdated(): object { return; }\n\n    /**\n     * Resets the zoom level of the chart to default.\n     */\n    /* istanbul ignore next */\n    public resetZoom(): object { return; }\n\n    /**\n     * Adds a new item to the data source and notifies the chart.\n     *\n     * @param item     The item that we want to add to the data source.\n     * @param targetName     The name of the series or axis bound to the data source.\n     * This is required only when the data is bound to series or axis.\n     * If the data is bound to dataSource of igDataChart, the second parameter should not be set.\n     */\n    /* istanbul ignore next */\n    public addItem(item: object, targetName: string): void { return; }\n\n    /**\n     * Inserts a new item to the data source and notifies the chart.\n     *\n     * @param item     the new item that we want to insert in the data source.\n     * @param index     The index in the data source where the new item will be inserted.\n     * @param targetName     The name of the series or axis bound to the data source.\n     */\n    /* istanbul ignore next */\n    public insertItem(item: object, index: number, targetName: string): void { return; }\n\n    /**\n     * Deletes an item from the data source and notifies the chart.\n     *\n     * @param index     The index in the data source from where the item will be been removed.\n     * @param targetName     The name of the series or axis bound to the data source.\n     * This is required only when the data is bound to series or axis.\n     * If the data is bound to dataSource of igDataChart, the second parameter should not be set.\n     */\n    /* istanbul ignore next */\n    public removeItem(index: number, targetName: string): void { return; }\n\n    /**\n     * Updates an item in the data source and notifies the chart.\n     *\n     * @param index     The index of the item in the data source that we want to change.\n     * @param item     The new item object that will be set in the data source.\n     * @param targetName     The name of the series or axis bound to the data source.\n     */\n    /* istanbul ignore next */\n    public setItem(index: number, item: object, targetName: string): void { return; }\n\n    /**\n     * Notifies the chart that an item has been set in an associated data source.\n     *\n     * @param dataSource     The data source in which the change happened.\n     * @param index     The index in the items source that has been changed.\n     * @param newItem     the new item that has been set in the collection.\n     * @param oldItem     the old item that has been overwritten in the collection.\n     */\n    /* istanbul ignore next */\n    public notifySetItem(dataSource: object, index: number, newItem: object, oldItem: object): object { return; }\n\n    /**\n     * Notifies the chart that the items have been cleared from an associated data source.\n     * \t\t\t\tIt's not necessary to notify more than one target of a change if they share the same items source.\n     *\n     * @param dataSource     The data source in which the change happened.\n     */\n    /* istanbul ignore next */\n    public notifyClearItems(dataSource: object): object { return; }\n\n    /**\n     * Notifies the target axis or series that an item has been inserted at the specified index in its data source.\n     * \t\t\t\tIt's not necessary to notify more than one target of a change if they share the same items source.\n     *\n     * @param dataSource     The data source in which the change happened.\n     * @param index     The index in the items source where the new item has been inserted.\n     * @param newItem     the new item that has been set in the collection.\n     */\n    /* istanbul ignore next */\n    public notifyInsertItem(dataSource: object, index: number, newItem: object): object { return; }\n\n    /**\n     * Notifies the target axis or series that an item has been removed from the specified index in its data source.\n     * \t\t\t\tIt's not necessary to notify more than one target of a change if they share the same items source.\n     *\n     * @param dataSource     The data source in which the change happened.\n     * @param index     The index in the items source from where the old item has been removed.\n     * @param oldItem     the old item that has been removed from the collection.\n     */\n    /* istanbul ignore next */\n    public notifyRemoveItem(dataSource: object, index: number, oldItem: object): object { return; }\n\n    /**\n     * Notifies the target axis or series that it should scroll the requested data item into view.\n     *\n     * @param targetName     The name of the axis or series notify.\n     * @param item     The data item to bring into view, if possible.\n     */\n    /* istanbul ignore next */\n    public scrollIntoView(targetName: string, item: object): object { return; }\n\n    /**\n     * Notifies the target axis that it should scale the requested value into chart space from axis space.\n     * \t\t\t\tFor example you can use this method if you want to find where value 50 of the x axis stands scaled to chart's width.\n     *\n     * @param targetName     The name of the axis to notify.\n     * @param unscaledValue     The value in axis space to translate into chart space.\n     */\n    /* istanbul ignore next */\n    public scaleValue(targetName: string, unscaledValue: number): number { return; }\n\n    /**\n     * Notifies the target axis that it should unscale the requested value into axis space from chart space.\n     * \t\t\t\tFor example you can use this method if you want to find what is the value of x axis unscaled from 0 width of the chart.\n     *\n     * @param targetName     The name of the axis to notify.\n     * @param scaledValue     The value in chart space to translate into axis space.\n     */\n    /* istanbul ignore next */\n    public unscaleValue(targetName: string, scaledValue: number): number { return; }\n\n    /**\n     * For the target axis, if using enhanced interval management and precise interval fitting,\n     * this will reset the cached maximum label width, and recalculate using the current labels.\n     *\n     * @param targetName     The name of the axis to notify.\n     */\n    /* istanbul ignore next */\n    public resetCachedEnhancedInterval(targetName: string): object { return; }\n\n    /**\n     * Notifies the target series that something that affects its visual properties has changed and the visual output needs a repaint.\n     *\n     * @param targetName     The name of the series to notify.\n     */\n    /* istanbul ignore next */\n    public notifyVisualPropertiesChanged(targetName: string): object { return; }\n\n    /**\n     * Forces any pending deferred work to render on the chart before continuing\n     */\n    /* istanbul ignore next */\n    public flush(): void { return; }\n\n    /**\n     * Exports visual data from the chart to aid in unit testing\n     */\n    /* istanbul ignore next */\n    public exportVisualData(): void { return; }\n\n    /**\n     * Gets the actual minimum value of the target numeric or date time axis\n     *\n     * @param targetName    The name of the axis from which to get the minimum value.\n     */\n    /* istanbul ignore next */\n    public getActualMinimumValue(targetName: string): void { return; }\n\n    /**\n     * Gets the actual maximum value of the target numeric or date time axis\n     *\n     * @param targetName    The name of the axis from which to get the maximum value.\n     */\n    /* istanbul ignore next */\n    public getActualMaximumValue(targetName: string): void { return; }\n\n    /**\n     * Gets the actual interval of the target numeric or date time axis\n     *\n     * @param targetName    The name of the axis from which to get the interval.\n     */\n    /* istanbul ignore next */\n    public getActualInterval(targetName: string): void { return; }\n\n    /**\n     * Creates a print preview page with the chart, hiding all other elements on the page.\n     */\n    /* istanbul ignore next */\n    public print(): void { return; }\n\n    /**\n     * Indicates that a series should render, even though no option has been modified that would normally cause it to refresh.\n     *\n     * @param targetName     The name of the series to render.\n     * @param animate     Whether the change should be animated, if possible.\n     */\n    /* istanbul ignore next */\n    public renderSeries(targetName: string, animate: boolean): void { return; }\n\n    /**\n     * Gets the item item index associated with the specified world position.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     */\n    /* istanbul ignore next */\n    public getItemIndex(targetName: string, worldPoint: object): number { return; }\n\n    /**\n     * Gets the item that is the best match for the specified world coordinates.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     */\n    /* istanbul ignore next */\n    public getItem(targetName: string, worldPoint: object): object { return; }\n\n    /**\n     * For a category plotted series, gets the current width of the items within the categories.\n     * This only returns a value if the items have some form of width (e.g. columns, bars, etc.) otherwise 0 is returned.\n     *\n     * @param targetName    The name of the series to target.\n     */\n    /* istanbul ignore next */\n    public getItemSpan(targetName: string): number { return; }\n\n    /**\n     * If possible, will return the best available main value of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesValue(targetName: string, worldPoint: object, useInterpolation: boolean, skipUnknowns: boolean): number { return; }\n\n    /**\n     * If possible, will return the best available value bounding box within the series that has the best value\n     * match for the world position provided.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     */\n    /* istanbul ignore next */\n    public getSeriesValueBoundingBox(targetName: string, worldPoint: object): object { return; }\n\n    /**\n     * If possible, will return the best available value fine grained bounding boxes within the series that have the best value\n     * match for the world position provided.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     */\n    /* istanbul ignore next */\n    public getSeriesValueFineGrainedBoundingBoxes(targetName: string, worldPoint: object): object { return; }\n\n    /**\n     * If possible, will return the best available main value position of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesValuePosition(targetName: string, worldPoint: object, useInterpolation: boolean, skipUnknowns: boolean): object {\n      return;\n    }\n\n    /**\n     * If possible, will return the best available main value position of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The series pixel position (in the form {x: [number], y: [number]}\n     * that represents a position within the pixel space of the series.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesValuePositionFromSeriesPixel(targetName: string,\n                                                 seriesPoint: object,\n                                                 useInterpolation: boolean,\n                                                 skipUnknowns: boolean): object { return; }\n\n    /**\n     * If possible, will return the best available main value of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The series pixel position (in the form {x: [number], y: [number]} )\n     * that represents a position in the pixel space of the series.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesValueFromSeriesPixel(targetName: string,\n                                         seriesPoint: object,\n                                         useInterpolation: boolean,\n                                         skipUnknowns: boolean): number { return; }\n\n    /**\n     * If possible, will return the best available value bounding box within the series that has the best value\n     * match for the given series pixel coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The series pixel position (in the form {x: [number], y: [number]} )\n     * that represents a position in the pixel space of the series.\n     */\n    /* istanbul ignore next */\n    public getSeriesValueBoundingBoxFromSeriesPixel(targetName: string, seriesPoint: object): object { return; }\n\n    /**\n     * If possible, will return the best available value fine grained bounding boxes within the series that have the best value\n     * match for series pixel position provided.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The series pixel position (in the form {x: [number], y: [number]} )\n     * that represents a position in the pixel space of the series.\n     */\n    /* istanbul ignore next */\n    public getSeriesValueFineGrainedBoundingBoxesFromSeriesPixel(targetName: string, worldPoint: object): object { return; }\n\n    /**\n     * If possible, will return the best available high value of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesHighValue(targetName: string, worldPoint: object, useInterpolation: boolean, skipUnknowns: boolean): number { return; }\n\n    /**\n     * If possible, will return the best available high value position of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesHighValuePosition(targetName: string,\n                                      worldPoint: object,\n                                      useInterpolation: boolean,\n                                      skipUnknowns: boolean): object { return; }\n\n    /**\n     * If possible, will return the best available high value position of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The series pixel position (in the form {x: [number], y: [number]}\n     * that represents a position within the pixel space of the series.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesHighValuePositionFromSeriesPixel(targetName: string,\n                                                     seriesPoint: object,\n                                                     useInterpolation: boolean,\n                                                     skipUnknowns: boolean): object { return; }\n\n    /**\n     * If possible, will return the best available high value of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The series pixel position (in the form {x: [number], y: [number]} )\n     * that represents a position in the pixel space of the series.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesHighValueFromSeriesPixel(targetName: string,\n                                             seriesPoint: object,\n                                             useInterpolation: boolean,\n                                             skipUnknowns: boolean): number { return; }\n\n    /**\n     * If possible, will return the best available low value of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesLowValue(targetName: string, worldPoint: object, useInterpolation: boolean, skipUnknowns: boolean): number { return; }\n\n    /**\n     * If possible, will return the best available low value position of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesLowValuePosition(targetName: string,\n                                     worldPoint: object,\n                                     useInterpolation: boolean,\n                                     skipUnknowns: boolean): object { return; }\n\n    /**\n     * If possible, will return the best available low value position of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The series pixel position (in the form {x: [number], y: [number]}\n     * that represents a position within the pixel space of the series.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesLowValuePositionFromSeriesPixel(targetName: string,\n                                                    seriesPoint: object,\n                                                    useInterpolation: boolean,\n                                                    skipUnknowns: boolean): object { return; }\n\n    /**\n     * If possible, will return the best available low value of the series for a given world coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The series pixel position (in the form {x: [number], y: [number]} )\n     * that represents a position in the pixel space of the series.\n     * @param useInterpolation    If true, interpolation should be used to get in-between values,\n     * rather than only the actual values in the data set.\n     * @param skipUnknowns    If true, unknown values should be skipped.\n     */\n    /* istanbul ignore next */\n    public getSeriesLowValueFromSeriesPixel(targetName: string,\n                                            seriesPoint: object,\n                                            useInterpolation: boolean,\n                                            skipUnknowns: boolean): number { return; }\n\n    /**\n     * Gets the item item index associated with the specified series pixel coordinate.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The world position (in the form {x: [number from 0 to 1], y: [number from 0 to 1]} )\n     * that represents a position in the space of the axes.\n     */\n    /* istanbul ignore next */\n    public getItemIndexFromSeriesPixel(targetName: string, seriesPoint: object): number { return; }\n\n    /**\n     * Gets the item that is the best match for the specified world coordinates.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The series pixel position (in the form {x: [number], y: [number]} )\n     * that represents a position in the pixel space of the series.\n     */\n    /* istanbul ignore next */\n    public getItemFromSeriesPixel(targetName: string, seriesPoint: object): object { return; }\n\n    /**\n     * Gets the category offset for a series, if applicable.\n     *\n     * @param targetName    The name of the series to target.\n     */\n    /* istanbul ignore next */\n    public getSeriesOffsetValue(targetName: string): number { return; }\n\n    /**\n     * Gets the category width for a series, if applicable.\n     *\n     * @param targetName    The name of the series to target.\n     */\n    /* istanbul ignore next */\n    public getSeriesCategoryWidth(targetName: string): number { return; }\n\n    /**\n     * Replays the transition in animation for a series, if applicable.\n     *\n     * @param targetName    The name of the series to target.\n     */\n    /* istanbul ignore next */\n    public replayTransitionIn(targetName: string): object { return; }\n\n    /**\n     * Simulates a hover interaction over a given point in the viewport of a series.\n     *\n     * @param targetName    The name of the series to target.\n     * @param seriesPoint    The point at which to hover. Should have an x property with type number and a y property with type number.\n     */\n    /* istanbul ignore next */\n    public simulateHover(targetName: string, seriesPoint: object): object { return; }\n\n    /**\n     * Moves the cursor point of the target annotation layer to the desired world coordinates.\n     *\n     * @param targetName    The name of the series to target.\n     * @param worldPoint    The point to which to move the cursor.\n     * Should have an x property with type number and a y property with type number.\n     */\n    /* istanbul ignore next */\n    public moveCursorPoint(targetName: string, worldPoint: object): object { return; }\n\n    /**\n     * Manually starts a tiled zoom if one isn't already running.\n     */\n    /* istanbul ignore next */\n    public startTiledZoomingIfNecessary(): void { return; }\n\n    /**\n     * Manually ends a tiled zoom if one is running.\n     */\n    /* istanbul ignore next */\n    public endTiledZoomingIfRunning(): void { return; }\n\n    /**\n     * Clears the tile zoom tile cache so that new tiles will be generated. Only applies if the viewer is using a tile based zoom.\n     */\n    /* istanbul ignore next */\n    public clearTileZoomCache(): void { return; }\n}\n\n","import { IgControlBase } from '../igcontrolbase/igcontrolbase';\nimport { ElementRef, IterableDiffers, Component, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'ig-pie-chart',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'dataSource', 'dataSourceUrl', 'dataSourceType', 'responseDataKey', 'valueMemberPath', 'labelMemberPath', 'dataValue', 'dataLabel', 'labelsPosition', 'labelOuterColor', 'labelInnerColor', 'selectionMode', 'selectedItem', 'selectedItems', 'leaderLineVisibility', 'leaderLineType', 'leaderLineMargin', 'othersCategoryThreshold', 'formatLabel', 'othersCategoryStyle', 'othersCategoryType', 'othersCategoryText', 'explodedRadius', 'radiusFactor', 'allowSliceSelection', 'allowSliceExplosion', 'explodedSlices', 'selectedSlices', 'showTooltip', 'tooltipTemplate', 'legend', 'labelExtent', 'startAngle', 'sweepDirection', 'selectedStyle', 'brushes', 'outlines', 'legendItemTemplate', 'legendItemBadgeTemplate', 'textStyle', 'theme'],\n    outputs: ['tooltipShowing', 'tooltipShown', 'tooltipHiding', 'tooltipHidden', 'browserNotSupported', 'sliceClick', 'labelClick', 'selectedItemChanging', 'selectedItemChanged', 'selectedItemsChanging', 'selectedItemsChanged'],\n    standalone: false\n})\nexport class IgPieChartComponent extends IgControlBase<IgPieChart> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n    private _dataSource: any;\n    public option(): void { return; }\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const chart = jQuery(this._el).data(this._widgetName);\n        if (chart) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    /**\n     * Adds a new item to the data source and notifies the chart.\n     *\n     * @param item     the new item that will be added to the data source.\n     */\n    /* istanbul ignore next */\n    public addItem(item: object): void { return; }\n    /**\n     * Inserts a new item to the data source and notifies the chart.\n     *\n     * @param item     the new item that will be inserted in the data source.\n     * @param index     The index in the data source where the new item will be inserted.\n     */\n    /* istanbul ignore next */\n    public insertItem(item: object, index: number): void { return; }\n    /**\n     * Deletes an item from the data source and notifies the chart.\n     *\n     * @param index     The index in the data source from where the item will be been removed.\n     */\n    /* istanbul ignore next */\n    public removeItem(index: number): void { return; }\n    /**\n     * Updates an item in the data source and notifies the chart.\n     *\n     * @param index     The index in the data source that we want to change.\n     * @param item     the new item that we want to set in the data source.\n     */\n    /* istanbul ignore next */\n    public setItem(index: number, item: object): void { return; }\n    /**\n     * Exports the chart to a PNG image.\n     *\n     * @param width     The width of the image.\n     * @param height     The height of the image.\n     */\n    /* istanbul ignore next */\n    public exportImage(width?: object, height?: object): object { return; }\n    /**\n     * Destroys the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n    /**\n     * Returns the ID of parent element holding the chart.\n     */\n    /* istanbul ignore next */\n    public id(): string { return; }\n    /**\n     * Returns the element holding the chart.\n     */\n    /* istanbul ignore next */\n    public widget(): void { return; }\n    /**\n     * Creates a print preview page with the chart, hiding all other elements on the page.\n     */\n    /* istanbul ignore next */\n    public print(): void { return; }\n    /**\n     * Exports visual data from the pie chart to aid in unit testing\n     */\n    /* istanbul ignore next */\n    public exportVisualData(): void { return; }}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-doughnut-chart',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'tooltipTemplate', 'maxRecCount', 'dataSource', 'dataSourceType', 'dataSourceUrl', 'responseTotalRecCountKey', 'responseDataKey', 'series', 'allowSliceSelection', 'isSurfaceInteractionDisabled', 'allowSliceExplosion', 'innerExtent', 'selectedStyle'],\n    outputs: ['dataBinding', 'dataBound', 'updateTooltip', 'hideTooltip', 'tooltipShowing', 'tooltipShown', 'tooltipHiding',\n        'tooltipHidden', 'browserNotSupported', 'sliceClick', 'holeDimensionsChanged'],\n    standalone: false\n})\nexport class IgDoughnutChartComponent extends IgControlBase<IgDoughnutChart> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const chart = jQuery(this._el).data(this._widgetName);\n        if (chart) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n\n    private _dataSource: any;\n\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    /**\n     * Adds a new series to the doughnut chart.\n     *\n     * @param seriesObj     The series object to be added.\n     */\n    /* istanbul ignore next */\n    public addSeries(seriesObj: object): void { return; }\n\n    /**\n     * Removes the specified series from the doughnut chart.\n     *\n     * @param seriesObj     The series object identifying the series to be removed.\n     */\n    /* istanbul ignore next */\n    public removeSeries(seriesObj: object): void { return; }\n\n    /**\n     * Updates the series with the specified name with the specified new property values.\n     *\n     * @param value     The series object identifying the series to be updated.\n     */\n    /* istanbul ignore next */\n    public updateSeries(value: object): void { return; }\n\n    /**\n     * Returns the center of the doughnut chart.\n     */\n    /* istanbul ignore next */\n    public getCenterCoordinates(): object { return; }\n\n    /**\n     * Returns the radius of the chart's hole.\n     */\n    /* istanbul ignore next */\n    public getHoleRadius(): number { return; }\n\n    /**\n     * Returns information about how the doughnut chart is rendered.\n     */\n    /* istanbul ignore next */\n    public exportVisualData(): object { return; }\n\n    /**\n     * Causes all of the series that have pending changes e.g. by changed property values to be rendered immediately.\n     */\n    /* istanbul ignore next */\n    public flush(): void { return; }\n\n    /**\n     * Destroys the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-funnel-chart',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'tooltipTemplate', 'maxRecCount', 'dataSource', 'dataSourceType', 'dataSourceUrl', 'responseTotalRecCountKey', 'responseDataKey', 'bezierPoints', 'legend', 'valueMemberPath', 'brushes', 'outlines', 'bottomEdgeWidth', 'innerLabelMemberPath', 'outerLabelMemberPath', 'innerLabelVisibility', 'outerLabelVisibility', 'outerLabelAlignment', 'funnelSliceDisplay', 'formatInnerLabel', 'formatOuterLabel', 'transitionDuration', 'isInverted', 'useBezierCurve', 'allowSliceSelection', 'useUnselectedStyle', 'selectedSliceStyle', 'unselectedSliceStyle', 'legendItemBadgeTemplate', 'useOuterLabelsForLegend', 'textStyle', 'outerLabelTextStyle', 'outlineThickness', 'pixelScalingRatio', 'outerLabelTextColor', 'textColor'],\n    outputs: ['dataBinding', 'dataBound', 'updateTooltip', 'hideTooltip', 'sliceClicked'],\n    standalone: false\n})\nexport class IgFunnelChartComponent extends IgControlBase<IgFunnelChart> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const chart = jQuery(this._el).data(this._widgetName);\n        if (chart) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n\n    private _dataSource: any;\n\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    /**\n     * Gets array of selected slice items.\n     *\n     * @param selection     Array or selected slice items.\n     * @return array|object If parameter is undefined, then array of selected items is returned.\n     * Otherwise, it returns reference to igFunnelChart.\n     */\n    /* istanbul ignore next */\n    public selectedSliceItems(selection?: any[]): any[] { return; }\n\n    /**\n     * Gets sets array of indexes of selected slices.\n     *\n     * @param selection     Array or selected slice indexes.\n     * @return array|object     If parameter is undefined, then array of selected indexes is returned.\n     * Otherwise, it returns reference to igFunnelChart.\n     */\n    /* istanbul ignore next */\n    public selectedSliceIndexes(selection?: any[]): any[] { return; }\n\n    /**\n     * Checks if slice is selected.\n     *\n     * @param slice     Index of slice or reference to slice-data-item.\n     */\n    /* istanbul ignore next */\n    public isSelected(slice: object): boolean { return; }\n\n    /**\n     * Toggles selected state of slice.\n     *\n     * @param slice     Index of slice or reference to slice-data-item.\n     */\n    /* istanbul ignore next */\n    public toggleSelection(slice: object): object { return; }\n    public exportVisualData(): void { return; }\n\n    /**\n     * Destroys widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-radial-gauge',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'ranges', 'rangeBrushes', 'rangeOutlines', 'minimumValue', 'maximumValue', 'interval', 'centerX', 'centerY', 'value', 'scaleStartAngle', 'scaleEndAngle', 'scaleSweepDirection', 'transitionDuration', 'transitionEasingFunction', 'needleBrush', 'needleOutline', 'needleStartExtent', 'needleEndExtent', 'needleShape', 'needleStartWidthRatio', 'needleEndWidthRatio', 'needleBaseFeatureWidthRatio', 'needleBaseFeatureExtent', 'needlePointFeatureWidthRatio', 'needlePointFeatureExtent', 'needlePivotWidthRatio', 'needlePivotInnerWidthRatio', 'needlePivotShape', 'scaleStartExtent', 'needlePivotBrush', 'needlePivotOutline', 'needleStrokeThickness', 'needlePivotStrokeThickness', 'scaleEndExtent', 'labelExtent', 'labelInterval', 'tickStartExtent', 'tickEndExtent', 'tickStrokeThickness', 'tickBrush', 'fontBrush', 'minorTickStartExtent', 'minorTickEndExtent', 'minorTickStrokeThickness', 'minorTickBrush', 'minorTickCount', 'scaleBrush', 'backingBrush', 'backingOutline', 'backingStrokeThickness', 'backingOuterExtent', 'backingOversweep', 'scaleOversweep', 'scaleOversweepShape', 'backingCornerRadius', 'backingInnerExtent', 'backingShape', 'radiusMultiplier', 'duplicateLabelOmissionStrategy', 'isNeedleDraggingEnabled', 'isNeedleDraggingConstrained', 'font', 'transitionProgress', 'pixelScalingRatio'],\n    outputs: ['formatLabel', 'alignLabel', 'valueChanged'],\n    standalone: false\n})\nexport class IgRadialGaugeComponent extends IgControlBase<IgRadialGauge> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    /**\n     * Returns a string containing the names of all the ranges delimited with a \\n symbol.\n     */\n    /* istanbul ignore next */\n    public getRangeNames(): string { return; }\n\n    /**\n     * Adds a new range to the radial gauge.\n     *\n     * @param value value\n     */\n    /* istanbul ignore next */\n    public addRange(value: object): void { return; }\n\n    /**\n     * Removes a specified range.\n     *\n     * @param value value\n     */\n    /* istanbul ignore next */\n    public removeRange(value: object): void { return; }\n\n    /**\n     * Updates the range.\n     *\n     * @param value value\n     */\n    /* istanbul ignore next */\n    public updateRange(value: object): void { return; }\n\n    /**\n     * Clears the ranges in the radial gauge.\n     */\n    /* istanbul ignore next */\n    public clearRanges(): void { return; }\n\n    /**\n     * Scales a value on the gauge's main scale to an angle around the center point of the gauge, in radians.\n     *\n     * @param value value\n     */\n    /* istanbul ignore next */\n    public scaleValue(value: object): void { return; }\n\n    /**\n     * Unscales a value from an angle in radians to the represented value along the main scale of the gauge.\n     *\n     * @param value value\n     */\n    /* istanbul ignore next */\n    public unscaleValue(value: object): void { return; }\n\n    /**\n     * Gets the value for the main scale of the gauge for a given point within the bounds of the gauge.\n     *\n     * @param x x-coordinate\n     * @param y y-coordinate\n     */\n    /* istanbul ignore next */\n    public getValueForPoint(x: object, y: object): number { return; }\n\n    /**\n     * Gets the point on the gauge for a given scale value and extent.\n     *\n     * @param value value\n     * @param extent extent\n     */\n    /* istanbul ignore next */\n    public getPointForValue(value: object, extent: object): void { return; }\n\n    /**\n     * Returns true if the main gauge needle bounding box contains the point provided, otherwise false.\n     *\n     * @param x x-coordinate\n     * @param y y-coordinate\n     */\n    /* istanbul ignore next */\n    public needleContainsPoint(x: object, y: object): void { return; }\n\n    /**\n     * Exports the visual data for the radial gauge.\n     */\n    /* istanbul ignore next */\n    public exportVisualData(): void { return; }\n\n    /**\n     * Flushes the gauge.\n     */\n    /* istanbul ignore next */\n    public flush(): void { return; }\n\n    /**\n     * Destroys widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Returns true if the style was updated for the radial gauge.\n     */\n    /* istanbul ignore next */\n    public styleUpdated(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-zoombar',\n    template: '<ng-content></ng-content>',\n    inputs: [\n        'widgetId',\n        'options',\n        'changeDetectionInterval',\n        'disabled',\n        'create',\n        'target',\n        'clone',\n        'width',\n        'height',\n        'zoomAction',\n        'zoomWindowMoveDistance',\n        'defaultZoomWindow',\n        'zoomWindowMinWidth',\n        'hoverStyleAnimationDuration',\n        'windowPanDuration',\n        'tabIndex'\n    ],\n    outputs: [\n        'zoomChanging',\n        'zoomChanged',\n        'providerCreated',\n        'windowDragStarting',\n        'windowDragStarted',\n        'windowDragging',\n        'windowDragEnding',\n        'windowDragEnded',\n        'windowResizing',\n        'windowResized'\n    ],\n    standalone: false\n})\nexport class IgZoombarComponent extends IgControlBase<IgZoombar> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    /**\n     * Destroys the Zoombar widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Returns the main zoombar element\n     */\n    /* istanbul ignore next */\n    public widget(): void { return; }\n\n    /**\n     * Returns the ID of the element the zoombar is initialized on\n     */\n    /* istanbul ignore next */\n    public id(): string { return; }\n\n    /**\n     * Returns the DIV that is the topmost container of the zoombar widget\n     */\n    /* istanbul ignore next */\n    public container(): Element { return; }\n\n    /**\n     * Returns the element the clone widget is initialized on\n     */\n    /* istanbul ignore next */\n    public clone(): Element { return; }\n\n    /**\n     * Gets or sets the current zoom window\n     *\n     * @param left     The left parameter of the new zoom window in percentages\n     * @param width     The width parameter of the new zoom window in percentages\n     */\n    /* istanbul ignore next */\n    public zoom(left?: number, width?: number): object { return; }\n}\n","import { Component, IterableDiffers, ElementRef, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-map',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'dataSource', 'dataSourceUrl', 'dataSourceType', 'responseDataKey', 'autoMarginWidth', 'autoMarginHeight', 'crosshairVisibility', 'crosshairPoint', 'plotAreaBackground', 'defaultInteraction', 'dragModifier', 'panModifier', 'previewRect', 'windowRect', 'zoomable', 'windowScale', 'windowResponse', 'windowRectMinWidth', 'windowPositionHorizontal', 'windowPositionVertical', 'circleMarkerTemplate', 'triangleMarkerTemplate', 'pyramidMarkerTemplate', 'squareMarkerTemplate', 'diamondMarkerTemplate', 'pentagonMarkerTemplate', 'hexagonMarkerTemplate', 'tetragramMarkerTemplate', 'pentagramMarkerTemplate', 'hexagramMarkerTemplate', 'overviewPlusDetailPaneBackgroundImageUri', 'useTiledZooming', 'preferHigherResolutionTiles', 'zoomTileCacheSize', 'backgroundContent', 'series', 'theme'],\n    outputs: ['tooltipShowing', 'tooltipShown', 'tooltipHiding', 'tooltipHidden', 'browserNotSupported', 'seriesCursorMouseMove', 'seriesMouseLeftButtonDown', 'seriesMouseLeftButtonUp', 'seriesMouseMove', 'seriesMouseEnter', 'seriesMouseLeave', 'windowRectChanged', 'gridAreaRectChanged', 'refreshCompleted', 'triangulationStatusChanged'],\n    standalone: false\n})\nexport class IgMapComponent extends IgControlBase<IgMap> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const map = jQuery(this._el).data(this._widgetName);\n        if (map) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n\n    private _dataSource: any;\n    public option(): void { return; }\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    /**\n     * Destroys the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n    /**\n     * Returns the ID of parent element holding the map.\n     */\n    /* istanbul ignore next */\n    public id(): string { return; }\n    /**\n     * Exports the map to a PNG image.\n     *\n     * @param width The width of the image.\n     * @param height The height of the image.\n     */\n    /* istanbul ignore next */\n    public exportImage(width?: object, height?: object): object { return; }\n    /**\n     * Notify the map that styles it draws colors from may have been updated.\n     */\n    /* istanbul ignore next */\n    public styleUpdated(): object { return; }\n    /**\n     * Resets the zoom level of the map to default.\n     */\n    /* istanbul ignore next */\n    public resetZoom(): object { return; }\n    /**\n     * Adds a new item to the data source and notifies the map.\n     *\n     * @param item     The item that we want to add to the data source.\n     * @param targetName     The name of the series bound to the data source.\n     */\n    /* istanbul ignore next */\n    public addItem(item: object, targetName: string): void { return; }\n    /**\n     * Inserts a new item to the data source and notifies the map.\n     *\n     * @param item     the new item that we want to insert in the data source.\n     * @param index     The index in the data source where the new item will be inserted.\n     * @param targetName     The name of the series bound to the data source.\n     */\n    /* istanbul ignore next */\n    public insertItem(item: object, index: number, targetName: string): void { return; }\n    /**\n     * Deletes an item from the data source and notifies the map.\n     *\n     * @param index     The index in the data source from where the item will be been removed.\n     * @param targetName     The name of the series bound to the data source.\n     */\n    /* istanbul ignore next */\n    public removeItem(index: number, targetName: string): void { return; }\n    /**\n     * Updates an item in the data source and notifies the map.\n     *\n     * @param index     The index of the item in the data source that we want to change.\n     * @param item     The new item object that will be set in the data source.\n     * @param targetName     The name of the series bound to the data source.\n     */\n    /* istanbul ignore next */\n    public setItem(index: number, item: object, targetName: string): void { return; }\n    /**\n     * Notifies the the map that an item has been set in an associated data source.\n     *\n     * @param dataSource The data source in which the change happened.\n     * @param index The index in the items source that has been changed.\n     * @param newItem the new item that has been set in the collection.\n     * @param oldItem the old item that has been overwritten in the collection.\n     */\n    /* istanbul ignore next */\n    public notifySetItem(dataSource: object, index: number, newItem: object, oldItem: object): object { return; }\n    /**\n     * Notifies the the map that the items have been cleared from an associated data source.\n     *                 It's not necessary to notify more than one target of a change if they share the same items source.\n     *\n     * @param dataSource The data source in which the change happened.\n     */\n    /* istanbul ignore next */\n    public notifyClearItems(dataSource: object): object { return; }\n    /**\n     * Notifies the the target series that an item has been inserted at the specified index in its data source.\n     *                 It's not necessary to notify more than one target of a change if they share the same items source.\n     *\n     * @param dataSource The data source in which the change happened.\n     * @param index The index in the items source where the new item has been inserted.\n     * @param newItem the new item that has been set in the collection.\n     */\n    /* istanbul ignore next */\n    public notifyInsertItem(dataSource: object, index: number, newItem: object): object { return; }\n    /**\n     * Notifies the the target series that an item has been removed from the specified index in its data source.\n     *                 It's not necessary to notify more than one target of a change if they share the same items source.\n     *\n     * @param dataSource The data source in which the change happened.\n     * @param index The index in the items source from where the old item has been removed.\n     * @param oldItem the old item that has been removed from the collection.\n     */\n    /* istanbul ignore next */\n    public notifyRemoveItem(dataSource: object, index: number, oldItem: object): object { return; }\n    /**\n     * Notifies the target series or axis that it should scroll the requested data item into view.\n     *\n     * @param targetName The name of the series or axis notify.\n     * @param item The data item to bring into view, if possible.\n     */\n    /* istanbul ignore next */\n    public scrollIntoView(targetName: string, item: object): object { return; }\n    /**\n     * Either xAxis or yAxis (longitude or latitude) that it should scale the requested value into map space from axis space.\n     * \t\t\t\tFor example you can use this method if you want to find where longitude 50 stands scaled to map's width.\n     *\n     * @param targetName Either xAxis or yAxis to notify.\n     * @param unscaledValue The value in axis space to translate into map space.\n     */\n    /* istanbul ignore next */\n    public scaleValue(targetName: string, unscaledValue: number): number { return; }\n    /**\n     * Either xAxis or yAxis (longitude or latitude) that it should unscale the requested value into axis space from map space.\n     * \t\t\t\tFor example you can use this method if you want to find what is the longitude unscaled from 0 width of the map.\n     *\n     * @param targetName Either xAxis or yAxis to notify.\n     * @param scaledValue The value in map space to translate into axis space.\n     */\n    /* istanbul ignore next */\n    public unscaleValue(targetName: string, scaledValue: number): number { return; }\n    /**\n     * Manually starts a tiled zoom if one isn't already running.\n     */\n    /* istanbul ignore next */\n    public startTiledZoomingIfNecessary(): void { return; }\n    /**\n     * Manually ends a tiled zoom if one is running.\n     */\n    /* istanbul ignore next */\n    public endTiledZoomingIfRunning(): void { return; }\n    /**\n     * Clears the tile zoom tile cache so that new tiles will be generated. Only applies if the viewer is using a tile based zoom..\n     */\n    /* istanbul ignore next */\n    public clearTileZoomCache(): void { return; }\n    /**\n     * Forces any pending deferred work to render on the map before continuing\n     */\n    /* istanbul ignore next */\n    public flush(): void { return; }\n    /**\n     * Exports visual data from the map to aid in unit testing\n     */\n    /* istanbul ignore next */\n    public exportVisualData(): void { return; }\n    /**\n     * Gets the actual minimum value of the target xAxis or yAxis\n     *\n     * @param targetName target name\n     */\n    /* istanbul ignore next */\n    public getActualMinimumValue(targetName: object): void { return; }\n    /**\n     * Gets the actual maximum value of the target xAxis or yAxis\n     *\n     * @param targetName target name\n     */\n    /* istanbul ignore next */\n    public getActualMaximumValue(targetName: object): void { return; }\n    /**\n     * Notifies the map that the container was resized\n     */\n    /* istanbul ignore next */\n    public notifyContainerResized(): void { return; }\n    /**\n     * Zoom in to the geographic region specified, when possible (may need to wait fior map to be initialized).\n     *\n     * @param rect The geographic area rectangle.\n     */\n    /* istanbul ignore next */\n    public zoomToGeographic(rect: object): object { return; }\n    /**\n     * Given the current plot area of the control and a geographic region, get the WindowRect that would encompass that geographic region.\n     *\n     * @param rect The geographic area rectangle.\n     */\n    /* istanbul ignore next */\n    public getGeographicFromZoom(rect: object): object { return; }\n    /**\n     * Given the current plot area of the control and a geographic region, get the WindowRect that would encompass that geographic region.\n     *\n     * @param rect The geographic area rectangle.\n     */\n    /* istanbul ignore next */\n    public getZoomFromGeographic(rect: object): object { return; }\n    /**\n     * Creates a print preview page with the map, hiding all other elements on the page.\n     */\n    /* istanbul ignore next */\n    public print(): void { return; }\n    /**\n     * Indicates that a series should render, even though no option has been modified that would normally cause it to refresh.\n     *\n     * @param targetName     The name of the series to render.\n     * @param animate     Whether the change should be animated, if possible.\n     */\n    /* istanbul ignore next */\n    public renderSeries(targetName: string, animate: boolean): void { return; }}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Input, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-sparkline',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'tooltipTemplate', 'maxRecCount', 'dataSource', 'dataSourceType', 'dataSourceUrl', 'responseTotalRecCountKey', 'responseDataKey', 'brush', 'negativeBrush', 'markerBrush', 'negativeMarkerBrush', 'firstMarkerBrush', 'lastMarkerBrush', 'highMarkerBrush', 'lowMarkerBrush', 'trendLineBrush', 'horizontalAxisBrush', 'verticalAxisBrush', 'normalRangeFill', 'horizontalAxisVisibility', 'verticalAxisVisibility', 'markerVisibility', 'negativeMarkerVisibility', 'firstMarkerVisibility', 'lastMarkerVisibility', 'lowMarkerVisibility', 'highMarkerVisibility', 'normalRangeVisibility', 'displayNormalRangeInFront', 'markerSize', 'firstMarkerSize', 'lastMarkerSize', 'highMarkerSize', 'lowMarkerSize', 'negativeMarkerSize', 'lineThickness', 'valueMemberPath', 'labelMemberPath', 'trendLineType', 'trendLinePeriod', 'trendLineThickness', 'normalRangeMinimum', 'normalRangeMaximum', 'displayType', 'unknownValuePlotting', 'verticalAxisLabel', 'horizontalAxisLabel', 'formatLabel', 'pixelScalingRatio'],\n    outputs: ['dataBinding', 'dataBound', 'updateTooltip', 'hideTooltip'],\n    standalone: false\n})\nexport class IgSparklineComponent extends IgControlBase<IgSparkline> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    @Input()\n    public set dataSource(value: any) {\n        this._dataSource = value;\n        const widget = jQuery(this._el).data(this._widgetName);\n        if (widget) {\n            jQuery(this._el)[this._widgetName]('option', 'dataSource', this._dataSource);\n        }\n    }\n\n    private _dataSource: any;\n\n    ngOnInit() {\n        if (this._dataSource === null || this._dataSource === undefined) {\n            this._dataSource = this.options.dataSource;\n        }\n        if (!this.options.dataSource && this._dataSource) {\n            this.options.dataSource = this._dataSource;\n        }\n        super.ngOnInit();\n    }\n\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Component, IterableDiffers, ElementRef, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n\n@Component({\n    selector: 'ig-bullet-graph',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'ranges', 'rangeToolTipTemplate', 'valueToolTipTemplate', 'targetValueToolTipTemplate', 'orientation', 'rangeBrushes', 'rangeOutlines', 'minimumValue', 'maximumValue', 'targetValue', 'targetValueName', 'value', 'valueName', 'rangeInnerExtent', 'rangeOuterExtent', 'valueInnerExtent', 'valueOuterExtent', 'interval', 'ticksPostInitial', 'ticksPreTerminal', 'labelInterval', 'labelExtent', 'labelsPostInitial', 'labelsPreTerminal', 'minorTickCount', 'tickStartExtent', 'tickEndExtent', 'tickStrokeThickness', 'tickBrush', 'fontBrush', 'valueBrush', 'valueOutline', 'valueStrokeThickness', 'minorTickStartExtent', 'minorTickEndExtent', 'minorTickStrokeThickness', 'minorTickBrush', 'isScaleInverted', 'backingBrush', 'backingOutline', 'backingStrokeThickness', 'backingInnerExtent', 'backingOuterExtent', 'scaleStartExtent', 'scaleEndExtent', 'targetValueBrush', 'targetValueBreadth', 'targetValueInnerExtent', 'targetValueOuterExtent', 'targetValueOutline', 'targetValueStrokeThickness', 'transitionDuration', 'showToolTipTimeout', 'showToolTip', 'font', 'pixelScalingRatio'],\n    outputs: ['formatLabel', 'alignLabel'],\n    standalone: false\n})\nexport class IgBulletGraphComponent extends IgControlBase<IgBulletGraph> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n\n    /**\n     * Returns a string containing the names of all the ranges delimited with a \\n symbol.\n     */\n    /* istanbul ignore next */\n    public getRangeNames(): void { return; }\n\n    /**\n     * Adds a new range to the bullet graph.\n     *\n     * @param value     The range object to be added.\n     */\n    /* istanbul ignore next */\n    public addRange(value: object): void { return; }\n\n    /**\n     * Removes a range from the bullet graph.\n     *\n     * @param value     A JS object with properties set as follows: name: nameOfTheRangeToRemove, remove: true\n     */\n    /* istanbul ignore next */\n    public removeRange(value: object): void { return; }\n\n    /**\n     * Updates the specified range of the bullet graph.\n     *\n     * @param value     The range object to be updated.\n     */\n    /* istanbul ignore next */\n    public updateRange(value: object): void { return; }\n\n    /**\n     * Returns information about how the bullet graph is rendered.\n     */\n    /* istanbul ignore next */\n    public exportVisualData(): object { return; }\n\n    /**\n     * Causes all pending changes of the bullet graph e.g. by changed property values to be rendered immediately.\n     */\n    /* istanbul ignore next */\n    public flush(): void { return; }\n\n    /**\n     * Destroys widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Re-polls the css styles for the widget. Use this method when the css styles have been modified.\n     */\n    /* istanbul ignore next */\n    public styleUpdated(): void { return; }\n\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-linear-gauge',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'ranges', 'rangeToolTipTemplate', 'needleToolTipTemplate', 'orientation', 'rangeBrushes', 'rangeOutlines', 'minimumValue', 'maximumValue', 'value', 'needleShape', 'needleName', 'rangeInnerExtent', 'scaleInnerExtent', 'rangeOuterExtent', 'scaleOuterExtent', 'needleInnerExtent', 'needleOuterExtent', 'needleInnerBaseWidth', 'needleOuterBaseWidth', 'needleInnerPointWidth', 'needleOuterPointWidth', 'needleInnerPointExtent', 'needleOuterPointExtent', 'interval', 'ticksPostInitial', 'ticksPreTerminal', 'labelInterval', 'labelExtent', 'labelsPostInitial', 'labelsPreTerminal', 'minorTickCount', 'tickStartExtent', 'tickEndExtent', 'tickStrokeThickness', 'tickBrush', 'fontBrush', 'needleBreadth', 'needleBrush', 'needleOutline', 'needleStrokeThickness', 'minorTickStartExtent', 'minorTickEndExtent', 'minorTickStrokeThickness', 'minorTickBrush', 'isScaleInverted', 'backingBrush', 'backingOutline', 'backingStrokeThickness', 'backingInnerExtent', 'backingOuterExtent', 'scaleStartExtent', 'scaleEndExtent', 'scaleBrush', 'scaleOutline', 'scaleStrokeThickness', 'isNeedleDraggingEnabled', 'transitionDuration', 'showToolTipTimeout', 'showToolTip', 'font', 'pixelScalingRatio'],\n    outputs: ['formatLabel', 'alignLabel', 'valueChanged'],\n    standalone: false\n})\nexport class IgLinearGaugeComponent extends IgControlBase<IgLinearGauge> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    /**\n     * Returns a string containing the names of all the ranges delimited with a \\n symbol.\n     */\n    /* istanbul ignore next */\n    public getRangeNames(): string { return; }\n\n    /**\n     * Adds a new range to the linear gauge.\n     *\n     * @param value     The range object to be added.\n     */\n    /* istanbul ignore next */\n    public addRange(value: object): void { return; }\n\n    /**\n     * Removes a range from the linear gauge.\n     *\n     * @param value     A JS object with properties set as follows: name: nameOfTheRangeToRemove, remove: true\n     */\n    /* istanbul ignore next */\n    public removeRange(value: object): void { return; }\n\n    /**\n     * Updates the specified range of the linear gauge.\n     *\n     * @param value     The range object to be updated.\n     */\n    /* istanbul ignore next */\n    public updateRange(value: object): void { return; }\n\n    /**\n     * Gets the value for the main scale of the gauge for a given point within the bounds of the gauge.\n     *\n     * @param x x-coordinate\n     * @param y y-coordiante\n     */\n    /* istanbul ignore next */\n    public getValueForPoint(x: object, y: object): number { return; }\n\n    /**\n     * Returns true if the main gauge needle bounding box contains the point provided, otherwise false.\n     *\n     * @param x The x coordinate of the point.\n     * @param y The y coordinate of the point.\n     */\n    /* istanbul ignore next */\n    public needleContainsPoint(x: number, y: number): void { return; }\n\n    /**\n     * Returns information about how the linear gauge is rendered.\n     */\n    /* istanbul ignore next */\n    public exportVisualData(): object { return; }\n\n    /**\n     * Causes all pending changes of the linear gauge e.g. by changed property values to be rendered immediately.\n     */\n    /* istanbul ignore next */\n    public flush(): void { return; }\n\n    /**\n     * Destroys widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Re-polls the css styles for the widget. Use this method when the css styles have been modified.\n     */\n    /* istanbul ignore next */\n    public styleUpdated(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-q-r-code-barcode',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'backingBrush', 'backingOutline', 'backingStrokeThickness', 'barBrush', 'fontBrush', 'font', 'data', 'errorMessageText', 'stretch', 'barsFillMode', 'widthToHeightRatio', 'xDimension', 'errorCorrectionLevel', 'sizeVersion', 'encodingMode', 'eciNumber', 'eciHeaderDisplayMode', 'fnc1Mode', 'applicationIndicator'],\n    outputs: ['errorMessageDisplaying', 'dataChanged'],\n    standalone: false\n})\nexport class IgQRCodeBarcodeComponent extends IgControlBase<IgQRCodeBarcode> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    public option(): void { return; }\n\n    /**\n     * Returns information about how the barcode is rendered.\n     */\n    /* istanbul ignore next */\n    public exportVisualData(): object { return; }\n\n    /**\n     * Causes all pending changes of the barcode e.g. by changed property values to be rendered immediately.\n     */\n    /* istanbul ignore next */\n    public flush(): void { return; }\n\n    /**\n     * Destroys widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Re-polls the css styles for the widget. Use this method when the css styles have been modified.\n     */\n    /* istanbul ignore next */\n    public styleUpdated(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n\n@Component({\n    selector: 'ig-upload',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'autostartupload', 'labelUploadButton', 'labelAddButton', 'labelClearAllButton', 'labelSummaryTemplate', 'labelSummaryProgressBarTemplate', 'labelShowDetails', 'labelHideDetails', 'labelSummaryProgressButtonCancel', 'labelSummaryProgressButtonContinue', 'labelSummaryProgressButtonDone', 'labelProgressBarFileNameContinue', 'errorMessageMaxFileSizeExceeded', 'errorMessageGetFileStatus', 'errorMessageCancelUpload', 'errorMessageNoSuchFile', 'errorMessageOther', 'errorMessageValidatingFileExtension', 'errorMessageAJAXRequestFileSize', 'errorMessageTryToRemoveNonExistingFile', 'errorMessageTryToStartNonExistingFile', 'errorMessageMaxUploadedFiles', 'errorMessageMaxSimultaneousFiles', 'errorMessageDropMultipleFilesWhenSingleModel', 'uploadUrl', 'progressUrl', 'allowedExtensions', 'showFileExtensionIcon', 'css', 'fileExtensionIcons', 'mode', 'multipleFiles', 'maxUploadedFiles', 'maxSimultaneousFilesUploads', 'fileSizeMetric', 'controlId', 'fileSizeDecimalDisplay', 'maxFileSize'],\n    outputs: ['fileSelecting', 'fileSelected', 'fileUploading', 'fileUploaded', 'fileUploadAborted', 'cancelAllClicked', 'onError', 'fileExtensionsValidating', 'onXHRLoad', 'onFormDataSubmit'],\n    standalone: false\n})\nexport class IgUploadComponent extends IgControlBase<IgUpload> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    /**\n     * Return jquery object of fileupload container - html DOM element\n     */\n    /* istanbul ignore next */\n    public container(): void { return; }\n\n    /**\n     * Returns the current widget element\n     */\n    /* istanbul ignore next */\n    public widget(): void { return; }\n\n    /**\n     * Hide finished files\n     */\n    /* istanbul ignore next */\n    public clearAll(): void { return; }\n\n    /**\n     * Append additional data field to formData(before submitting it to the server).\n     * Usually this function is used in the handler of the event onFormDataSubmit.\n     * If the browser supports HTML5 file API formData is instance of FormData,\n     * otherwise(like IE10 and older) formData is jQuery representation of the <form> that should be submitted to the server\n     *\n     * @param formData    If the browser supports HTML5 file API formData is instance of FormData,\n     * otherwise(like IE10 and older) formData is jQuery representation of the <form> that should be submitted to the server\n     * @param field    Data field that should be appended to the formData. The object has 2 properties - value and name.\n     * If the browser supports HTML5 the data field is appended to the formData object.\n     * Otherwise it is appended as input hidden field to the <form>\n     */\n    /* istanbul ignore next */\n    public addDataField(formData: object, field: object): void { return; }\n\n    /**\n     * Append additional data fields to formData(before submitting it to the server).\n     * Usually this function is used in the handler of the event onFormDataSubmit.\n     * If the browser supports HTML5 file API formData is instance of FormData,\n     * otherwise(like IE10 and older) formData is jQuery representation of the <form> that should be submitted to the server\n     *\n     * @param formData    If the browser supports HTML5 file API formData is instance of FormData,\n     * otherwise(like IE10 and older) formData is jQuery representation of the <form> that should be submitted to the server\n     * @param fields    Array of data fields that should be appended to the formData.\n     * Each data field is object with 2 properties - value and name.\n     * If the browser supports HTML5 these data fields are added to the formData.\n     * Otherwise each of these data field is appended as input hidden field to the <form>\n     */\n    /* istanbul ignore next */\n    public addDataFields(formData: object, fields: any[]): void { return; }\n\n    /**\n     * Start uploading file as submitting form with the specified formNumber.\n     *\n     * @param formNumber    id of the upload form\n     */\n    /* istanbul ignore next */\n    public startUpload(formNumber: number): void { return; }\n\n    /**\n     * Cancel upload for the specified file id\n     * \t\t\t formNumber - id of the file to be canceled\n     *\n     * @param formNumber    id of the form which should be cancelled\n     */\n    /* istanbul ignore next */\n    public cancelUpload(formNumber: number): void { return; }\n\n    /**\n     * Destroy the widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Returns the information about uploading files - all files uploaded/uploading/pending\n     */\n    /* istanbul ignore next */\n    public getFileInfoData(): object { return; }\n\n    /**\n     * Cancel all uploading and pending files\n     */\n    /* istanbul ignore next */\n    public cancelAll(): void { return; }\n\n    /**\n     * Returns the information about the file by specified file identifier.\n     * It could be file which is uploading/uploaded or uploading is not started. If there isn\"t file with the specified file id returns null\n     *\n     * @param fileIndex    unique identifier of the file\n     */\n    /* istanbul ignore next */\n    public getFileInfo(fileIndex: number): object { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\ndeclare var jQuery: any;\n\n@Component({\n    selector: 'ig-popover',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'closeOnBlur', 'direction', 'position', 'width', 'height', 'minWidth', 'maxWidth', 'maxHeight', 'animationDuration', 'contentTemplate', 'selectors', 'headerTemplate', 'showOn', 'containment', 'appendTo'],\n    outputs: ['showing', 'shown', 'hiding', 'hidden'],\n    standalone: false\n})\nexport class IgPopoverComponent extends IgControlBase<IgPopover> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n    public option(): void { return; }\n\n    ngOnInit() {\n        const elem = jQuery(document).find('#' + this.widgetId);\n        if (elem.length === 1) {\n            this._el = elem;\n            this._events = new Map<string, string>();\n            // events binding\n            let evtName;\n            for (const propt in jQuery.ui[this._widgetName].prototype.events) {\n              if (jQuery.ui[this._widgetName].prototype.events.hasOwnProperty(propt)) {\n                evtName = this._widgetName.toLowerCase() + propt.toLowerCase();\n                this._events[evtName] = propt;\n                jQuery(this._el).on(evtName, (evt, ui) => {\n                    this[this._events[evt.type]].emit({ event: evt, ui });\n                });\n              }\n            }\n\n            jQuery(this._el)[this._widgetName](this.options);\n        } else {\n            super.ngOnInit();\n        }\n\n    }\n\n    /**\n     * Destroys the popover widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Returns the ID of the element the popover is attached to\n     */\n    /* istanbul ignore next */\n    public id(): string { return; }\n\n    /**\n     * Returns the container for the popover contents\n     */\n    /* istanbul ignore next */\n    public container(): object { return; }\n\n    /**\n     * Shows the popover for the specified target\n     *\n     * @param trg     The element to show popover for.\n     * @param content     The string to set for the popover to show.\n     */\n    /* istanbul ignore next */\n    public show(trg?: Element, content?: string): void { return; }\n\n    /**\n     * Hides the popover for the specified target\n     */\n    /* istanbul ignore next */\n    public hide(): void { return; }\n\n    /**\n     * Gets the currently set content for the popover container\n     */\n    /* istanbul ignore next */\n    public getContent(): string { return; }\n\n    /**\n     * Sets the content for the popover container\n     *\n     * @param newCnt     The popover content to set.\n     */\n    /* istanbul ignore next */\n    public setContent(newCnt: string): void { return; }\n\n    /**\n     * Gets the popover current target\n     */\n    /* istanbul ignore next */\n    public target(): object { return; }\n\n    /**\n     * Gets the current coordinates of the popover\n     */\n    /* istanbul ignore next */\n    public getCoordinates(): object { return; }\n\n    /**\n     * Sets the popover to specific coordinates.\n     *\n     * @param pos     The popover coordinates in pixels.\n     */\n    /* istanbul ignore next */\n    public setCoordinates(pos: object): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2, OnInit } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\ndeclare var jQuery;\n\n@Component({\n    selector: 'ig-notifier',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'closeOnBlur', 'direction', 'position', 'width', 'height', 'minWidth', 'maxWidth', 'maxHeight', 'animationDuration', 'contentTemplate', 'selectors', 'headerTemplate', 'showOn', 'containment', 'appendTo', 'state', 'notifyLevel', 'mode', 'allowCSSOnTarget', 'messages', 'showIcon', 'animationSlideDistance'],\n    outputs: ['showing', 'shown', 'hiding', 'hidden'],\n    standalone: false\n})\n// TODO: change the model from any to IgNotifier when added to igniteui typescript definitions\nexport class IgNotifierComponent extends IgControlBase<IgNotifier> implements OnInit {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    public option(): void { return; }\n\n    ngOnInit() {\n        const elem = jQuery(document).find('#' + this.widgetId);\n        if (elem.length === 1) {\n            this._el = elem;\n            this._events = new Map<string, string>();\n            // events binding\n            let evtName;\n            for (const propt in jQuery.ui[this._widgetName].prototype.events) {\n              if (jQuery.ui[this._widgetName].prototype.events.hasOwnProperty(propt)) {\n                evtName = this._widgetName.toLowerCase() + propt.toLowerCase();\n                this._events[evtName] = propt;\n                jQuery(this._el).on(evtName, (evt, ui) => {\n                    this[this._events[evt.type]].emit({ event: evt, ui });\n                });\n              }\n            }\n\n            jQuery(this._el)[this._widgetName](this.options);\n        } else {\n            super.ngOnInit();\n        }\n    }\n\n    /**\n     * Triggers a notification with a certain state and optional message.\n     * The [notifyLevel](ui.ignotifier#options:notifyLevel) option determines if the notification will be displayed.\n     *\n     * @param state    The state to show notification for.\n     * @param message    Optional message to show, overrides defaults.\n     */\n    /* istanbul ignore next */\n    public notify(state: object, message?: string): void { return; }\n\n    /**\n     * Returns true if the notification is currently visible\n     */\n    /* istanbul ignore next */\n    public isVisible(): void { return; }\n\n    /**\n     * Destroys the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-rating',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'vertical', 'value', 'valueHover', 'voteCount', 'voteWidth', 'voteHeight', 'swapDirection', 'valueAsPercent', 'focusable', 'precision', 'precisionZeroVote', 'roundedDecimalPlaces', 'theme', 'validatorOptions', 'cssVotes'],\n    outputs: ['hoverChange', 'valueChange'],\n    standalone: false\n})\nexport class IgRatingComponent extends IgControlBase<IgRating> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    /**\n     * Gets reference to [igValidator](ui.igvalidator) used by igRating.\n     *\n     * @param destroy     Request to destroy validator.\n     */\n    /* istanbul ignore next */\n    public validator(destroy?: boolean): object { return; }\n\n    /**\n     * Triggers validation.\n     */\n    /* istanbul ignore next */\n    public validate(): boolean { return; }\n\n    /**\n     * Gets/Sets (selected) value.\n     *\n     * @param val     New value which is rendered with selected css.\n     * @return number|object     If parameter is not 'number', then exact value rendered with selected css is returned.\n     * Otherwise, reference to igRating is returned.\n     */\n    /* istanbul ignore next */\n    public value(val: number): number|object { return; }\n\n    /**\n     * Gets/Sets hover value.\n     *\n     * @param val     New value which will be rendered with hover css when rating gets mouse.\n     * @return number|object     If parameter is not \"number\", then last value which was rendered with hover css is returned.\n     * Otherwise, reference to igRating is returned.\n     */\n    /* istanbul ignore next */\n    public valueHover(val?: number): number|object { return; }\n\n    /**\n     * Checks if igRating has focus.\n     */\n    /* istanbul ignore next */\n    public hasFocus(): boolean { return; }\n\n    /**\n     * Sets focus to igRating. That has effect only when options.focusable is enabled.\n     */\n    /* istanbul ignore next */\n    public focus(): object { return; }\n\n    /**\n     * Destroys igRating widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): object { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-video-player',\n    template: '<ng-content></ng-content>',\n    inputs: [\n        'widgetId',\n        'options',\n        'changeDetectionInterval',\n        'disabled',\n        'create',\n        'sources',\n        'width',\n        'height',\n        'posterUrl',\n        'preload',\n        'autoplay',\n        'autohide',\n        'volumeAutohideDelay',\n        'centerButtonHideDelay',\n        'loop',\n        'browserControls',\n        'fullscreen',\n        'volume',\n        'muted',\n        'title',\n        'showSeekTime',\n        'progressLabelFormat',\n        'bookmarks',\n        'relatedVideos',\n        'banners',\n        'commercials'\n    ],\n    outputs: [\n        'ended',\n        'playing',\n        'paused',\n        'buffering',\n        'progress',\n        'waiting',\n        'bookmarkHit',\n        'bookmarkClick',\n        'enterFullScreen',\n        'exitFullScreen',\n        'relatedVideoClick',\n        'bannerVisible',\n        'bannerHidden',\n        'bannerClick',\n        'browserNotSupported'\n    ],\n    standalone: false\n})\nexport class IgVideoPlayerComponent extends IgControlBase<IgVideoPlayer> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    /**\n     * Returns the element on which the widget was instantiated\n     */\n    /* istanbul ignore next */\n    public widget(): void { return; }\n\n    /**\n     * Hide the add message if shown.\n     */\n    /* istanbul ignore next */\n    public hideAdMessage(): void { return; }\n\n    /**\n     * Play a linked commercial for this video.\n     *\n     * @param commercial     Specify the linked commercial to play.\n     */\n    /* istanbul ignore next */\n    public playCommercial(commercial: object): void { return; }\n\n    /**\n     * Shows the ad banner, if there is such.\n     *\n     * @param index    Specify the index of the banner from the banners array.\n     */\n    /* istanbul ignore next */\n    public showBanner(index: number): void { return; }\n\n    /**\n     * Hide the ad banner, if there is such.\n     *\n     * @param index    Specify the index of the banner from the banners array.\n     */\n    /* istanbul ignore next */\n    public hideBanner(index: number): void { return; }\n\n    /**\n     * Resets the commercials, to be shown again.\n     */\n    /* istanbul ignore next */\n    public resetCommercialsShow(): void { return; }\n\n    /**\n     * Toggle control play state. If video is playing it will pause, if video is paused it will play.\n     */\n    /* istanbul ignore next */\n    public togglePlay(): void { return; }\n\n    /**\n     * Start playing current loaded video if any.\n     */\n    /* istanbul ignore next */\n    public play(): void { return; }\n\n    /**\n     * Pause the currently playing video if any.\n     */\n    /* istanbul ignore next */\n    public pause(): void { return; }\n\n    /**\n     * Gets/Sets the current time of the playing video.\n     *\n     * @param val     Specify the playback position in seconds to navigate to.\n     */\n    /* istanbul ignore next */\n    public currentTime(val: number): number { return; }\n\n    /**\n     * Get a screenshot of the current video frame.\n     * It returns a canvas object that you can position and show on the page. This depends on the browser support for canvas.\n     *\n     * @param scaleFactor    Specify scale factor between 0 and 1.\n     */\n    /* istanbul ignore next */\n    public screenshot(scaleFactor?: number): object { return; }\n\n    /**\n     * Get whether the current browser supports video tag.\n     */\n    /* istanbul ignore next */\n    public supportsVideo(): boolean { return; }\n\n    /**\n     * Get whether the current browser supports H.264 codec.\n     */\n    /* istanbul ignore next */\n    public supportsH264BaselineVideo(): boolean { return; }\n\n    /**\n     * Get whether the current browser supports Theora codec.\n     */\n    /* istanbul ignore next */\n    public supportsOggTheoraVideo(): boolean { return; }\n\n    /**\n     * Get whether the current browser supports WEBM codec.\n     */\n    /* istanbul ignore next */\n    public supportsWebmVideo(): boolean { return; }\n\n    /**\n     * Returns whether the currently played video is paused.\n     */\n    /* istanbul ignore next */\n    public paused(): boolean { return; }\n\n    /**\n     * Get whether the current played video has ended.\n     */\n    /* istanbul ignore next */\n    public ended(): boolean { return; }\n\n    /**\n     * Get the current duration of the played video. It may be NaN if duration is still not loaded or the video is a live stream.\n     */\n    /* istanbul ignore next */\n    public duration(): number { return; }\n\n    /**\n     * Get whether the player is seeking to find the new playback position specified.\n     */\n    /* istanbul ignore next */\n    public seeking(): boolean { return; }\n\n    /**\n     * Destroys the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n}\n\n","import { Component, IterableDiffers, ElementRef, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-radial-menu',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'items', 'currentOpenMenuItemName', 'centerButtonContentWidth', 'centerButtonContentHeight', 'centerButtonClosedFill', 'centerButtonClosedStroke', 'centerButtonFill', 'centerButtonHotTrackFill', 'centerButtonHotTrackStroke', 'centerButtonStroke', 'centerButtonStrokeThickness', 'font', 'isOpen', 'menuBackground', 'menuItemOpenCloseAnimationDuration', 'menuItemOpenCloseAnimationEasingFunction', 'menuOpenCloseAnimationDuration', 'menuOpenCloseAnimationEasingFunction', 'minWedgeCount', 'outerRingFill', 'outerRingThickness', 'outerRingStroke', 'outerRingStrokeThickness', 'rotationInDegrees', 'rotationAsPercentageOfWedge', 'wedgePaddingInDegrees', 'pixelScalingRatio'],\n    outputs: ['formatLabel', 'alignLabel', 'valueChanged'],\n    standalone: false\n})\nexport class IgRadialMenuComponent extends IgControlBase<IgRadialMenu> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n    /* istanbul ignore next */\n    public itemOption(itemKey: object, key: object, value: object): void { return; }\n    /* istanbul ignore next */\n    public exportVisualData(): void { return; }\n    /* istanbul ignore next */\n    public flush(): void { return; }\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n    /* istanbul ignore next */\n    public styleUpdated(): void { return; }\n}\n","import { ElementRef, IterableDiffers, Component, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-split-button',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'items', 'defaultItemName', 'swapDefaultEnabled'],\n    outputs: ['click', 'expanded', 'expanding', 'collapsed', 'collapsing'],\n    standalone: false\n})\nexport class IgSplitButtonComponent extends IgControlBase<IgSplitButton> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n      super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n\n    /**\n     * Switch to given igToolbar button.\n     *\n     * @param button . The button jQuery element.\n     */\n    /* istanbul ignore next */\n    public switchToButton(button: object): void { return; }\n\n\n    /**\n     * Toggle widget state between collapsed and expanded.\n     *\n     * @param e The igSplitButton to be expanded/collapsed.\n     */\n    /* istanbul ignore next */\n    public toggle(e: object): object { return; }\n\n\n    /**\n     * Collapse the widget.\n     *\n     * @param e Indicates the browser event which triggered this action (not API).\n     */\n    /* istanbul ignore next */\n    public collapse(e?: object): object { return; }\n\n\n    /**\n     * Expands the widget.\n     *\n     * @param e Indicates the browser event which triggered this action (not API).\n     */\n    /* istanbul ignore next */\n    public expand(e?: object): object { return; }\n\n    /**\n     * Destroy the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n    /* istanbul ignore next */\n    public widget(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-spreadsheet',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'width', 'height', 'activeCell', 'isScrollLocked', 'activeWorksheet', 'allowAddWorksheet', 'allowDeleteWorksheet', 'areGridlinesVisible', 'areHeadersVisible', 'enterKeyNavigationDirection', 'isEnterKeyNavigationEnabled', 'isFormulaBarVisible', 'isInEndMode', 'isUndoEnabled', 'nameBoxWidth', 'selectionMode', 'selectedWorksheets', 'validationInputMessagePosition', 'workbook', 'zoomLevel'],\n    outputs: ['actionExecuted', 'actionExecuting', 'activeCellChanged', 'activePaneChanged', 'activeWorksheetChanged', 'editRangePasswordNeeded', 'hyperlinkExecuting', 'selectionChanged', 'userPromptDisplaying', 'workbookDirtied'],\n    standalone: false\n})\nexport class IgSpreadsheetComponent extends IgControlBase<IgSpreadsheet> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n    /**\n     * Returns an object that represents the pane with the focus.\n     */\n    /* istanbul ignore next */\n    public getActivePane(): object { return; }\n\n    /**\n     * Returns an object that represents the current selection of the active pane.\n     */\n    /* istanbul ignore next */\n    public getActiveSelection(): object { return; }\n\n    /*\n     * Returns an object used to get the formatting of the activeCell and where modifications are applied to the entire active selection.\n     * Any changes made to this object will affect all the objects in the selection. So for example, the\n     * Font.Name may return \"Arial\" because the active cell has that as its resolved font name even though the other\n     * cells are using a different font but if you set the Font.Name of this object to \"Arial\" then all the objects\n     * affected by the selection will have their Font.Name updated to that value.\n    */\n    /* istanbul ignore next */\n    public getActiveSelectionCellRangeFormat(): object { return; }\n\n    /**\n     * Returns a boolean indicating if the user is currently editing the name of the active worksheet.\n     */\n    /* istanbul ignore next */\n    public getIsRenamingWorksheet(): boolean { return; }\n\n    /*\n     * Returns an array of the panes for the activeWorksheet.\n     *\n     *\t\t\t\t returnType=\"ig.spreadsheet.SpreadsheetPane[]\"\n    */\n    /* istanbul ignore next */\n    public getPanes(): void { return; }\n\n    /**\n     * Executes the action associated with the specified id.\n     *\n     * @param action An [enumeration](ig.spreadsheet.SpreadsheetAction) or string that identifies the action to execute.\n     */\n    /* istanbul ignore next */\n    public executeAction(action: object): boolean { return; }\n\n    /**\n     * Forces any pending deferred work to render on the spreadsheet before continuing\n     */\n    /* istanbul ignore next */\n    public flush(): void { return; }\n\n    /**\n     * Destroys the widget.\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Notify the spreadsheet that style information used for rendering the spreadsheet may have been updated.\n     */\n    /* istanbul ignore next */\n    public styleUpdated(): void { return; }\n}\n","import { Component, ElementRef, IterableDiffers, KeyValueDiffers, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { IgControlBase } from '../igcontrolbase/igcontrolbase';\n\n@Component({\n    selector: 'ig-scheduler',\n    template: '<ng-content></ng-content>',\n    inputs: ['widgetId', 'options', 'changeDetectionInterval', 'disabled', 'create', 'views', 'viewMode', 'selectedDate', 'enableTodayButton', 'width', 'height', 'agendaViewSettings', 'monthViewSettings', 'appointmentDialogSuppress'],\n    outputs: ['agendaRangeChanging', 'agendaRangeChanged', 'daySelected', 'monthChanging', 'monthChanged', 'rendering', 'rendered', 'viewChanging', 'viewChanged', 'appointmentDialogOpening', 'appointmentDialogOpened', 'appointmentDialogClosing', 'appointmentDialogClosed', 'appointmentCreating', 'appointmentCreated', 'appointmentDeleting', 'appointmentDeleted', 'appointmentEditing', 'appointmentEdited'],\n    standalone: false\n})\nexport class IgSchedulerComponent extends IgControlBase<IgScheduler> {\n    constructor(el: ElementRef, renderer: Renderer2, differs: IterableDiffers, kvalDiffers: KeyValueDiffers, cdr: ChangeDetectorRef) {\n        super(el, renderer, differs, kvalDiffers, cdr);\n    }\n\n    /**\n     * Gets reference to appointment by id\n     *\n     * @param id id\n     */\n    /* istanbul ignore next */\n    public getAppointmentById(id: object): object { return; }\n\n    /**\n     * Creates a new appointment and renders it to the scheduler\n     *\n     * @param appointment appointment\n     */\n    /* istanbul ignore next */\n    public createAppointment(appointment: object): object { return; }\n\n    /**\n     * Deletes appointment from the appointment collection\n     *\n     * @param appointment\tappointment\n     */\n    /* istanbul ignore next */\n    public deleteAppointment(appointment: object): object { return; }\n\n    /**\n     * Deletes appointment from the appointment collection\n     *\n     * @param appointment\tappointment\n     * @param updateAppoinment\tupdateAppoinment\n     */\n    /* istanbul ignore next */\n    public editAppointment(appointment: object, updateAppoinment: object): object { return; }\n\n    /**\n     * Destroys the widget\n     */\n    /* istanbul ignore next */\n    public destroy(): void { return; }\n\n    /**\n     * Gets reference to the today UI button.\n     */\n    /* istanbul ignore next */\n    public todayButton(): string { return; }\n\n    /**\n     * Gets reference to the previous UI button.\n     */\n    /* istanbul ignore next */\n    public previousButton(): string { return; }\n\n    /**\n     * Gets reference to the date range UI button.\n     */\n    /* istanbul ignore next */\n    public dateRangeButton(): string { return; }\n\n    /**\n     * Gets reference to the next UI button.\n     */\n    /* istanbul ignore next */\n    public nextButton(): string { return; }\n\n    /**\n     * Gets reference to the jQuery calendar UI control.\n     */\n    /* istanbul ignore next */\n    public getCalendar(): string { return; }\n}\n","import {NgModule} from '@angular/core';\nimport { Column } from './iggrid/column.directive';\nimport { IgGridMultiColumnHeadersFeature } from './iggrid/iggridfeatures/iggridmulticolumnheaders.directive';\nimport { IgGridSortingFeature } from './iggrid/iggridfeatures/iggridsorting.directive';\nimport { IgGridFilteringFeature } from './iggrid/iggridfeatures/iggridfiltering.directive';\nimport { IgGridPagingFeature } from './iggrid/iggridfeatures/iggridpaging.directive';\nimport { IgGridUpdatingFeature } from './iggrid/iggridfeatures/iggridupdating.directive';\nimport { IgGridGroupByFeature } from './iggrid/iggridfeatures/iggridgroupby.directive';\nimport { IgGridColumnMovingFeature } from './iggrid/iggridfeatures/iggridcolumnmoving';\nimport { IgGridHidingFeature } from './iggrid/iggridfeatures/iggridhiding.directive';\nimport { IgGridCellMergingFeature } from './iggrid/iggridfeatures/iggridcellmerging.directive';\nimport { IgGridResponsiveFeature } from './iggrid/iggridfeatures/iggridresponsive.directive';\nimport { IgGridResizingFeature } from './iggrid/iggridfeatures/iggridresizing.directive';\nimport { IgGridSelectionFeature } from './iggrid/iggridfeatures/iggridselection.directive';\nimport { IgGridRowSelectorsFeature } from './iggrid/iggridfeatures/iggridrowselectors.directive';\nimport { IgGridSummariesFeature } from './iggrid/iggridfeatures/iggridsummaries.directive';\nimport { IgGridColumnFixingFeature } from './iggrid/iggridfeatures/iggridcolumnfixing.directive';\nimport { IgGridTooltipsFeature } from './iggrid/iggridfeatures/iggridtooltips.directive';\nimport { IgGridAppendRowsOnDemandFeature } from './iggrid/iggridfeatures/iggridappendrowsondemand.directive';\nimport { Features } from './iggrid/features.directive';\nimport { IgGridComponent } from './iggrid/iggrid.component';\nimport { IgTreeGridComponent } from './igtreegrid/igtreegrid.component';\nimport { IgHierarchicalGridComponent } from './ighierarchicalgrid/ighierarchicalgrid.component';\nimport { IgComboComponent } from './igcombo/igcombo.component';\nimport { IgCheckboxEditorComponent } from './igeditors/igcheckboxeditor.component';\nimport { IgCurrencyEditorComponent } from './igeditors/igcurrencyeditor.component';\nimport { IgDateEditorComponent } from './igeditors/igdateeditor.component';\nimport { IgDatePickerComponent } from './igeditors/igdatepicker.component';\nimport { IgTimePickerComponent } from './igeditors/igtimepicker.component';\nimport { IgMaskEditorComponent } from './igeditors/igmaskeditor.component';\nimport { IgNumericEditorComponent } from './igeditors/ignumericeditor.component';\nimport { IgPercentEditorComponent } from './igeditors/igpercenteditor.component';\nimport { IgTextEditorComponent } from './igeditors/igtexteditor.component';\nimport { IgTreeComponent } from './igtree/igtree.component';\nimport { IgDialogComponent } from './igdialog/igdialog.component';\nimport { IgSplitterComponent } from './igsplitter/igsplitter.component';\nimport { IgLayoutManagerComponent } from './iglayoutmanager/iglayoutmanager.component';\nimport { IgTileManagerComponent } from './igtilemanager/igtilemanager.component';\nimport { IgHtmlEditorComponent } from './ightmleditor/ightmleditor.component';\nimport { IgValidatorComponent } from './igvalidator/igvalidator.component';\nimport { IgPivotDataSelectorComponent } from './igpivotdataselector/igpivotdataselector.component';\nimport { IgPivotGridComponent } from './igpivotgrid/igpivotgrid.component';\nimport { IgDataChartComponent } from './igdatachart/igdatachart.component';\nimport { IgPieChartComponent } from './igpiechart/igpiechart.component';\nimport { IgDoughnutChartComponent } from './igdoughnutchart/igdoughnutchart.component';\nimport { IgFunnelChartComponent } from './igfunnelchart/igfunnelchart.component';\nimport { IgRadialGaugeComponent } from './igradialgauge/igradialgauge.component';\nimport { IgZoombarComponent } from './igzoombar/igzoombar.component';\nimport { IgMapComponent } from './igmap/igmap.component';\nimport { IgSparklineComponent } from './igsparkline/igsparkline.component';\nimport { IgBulletGraphComponent } from './igbulletgraph/igbulletgraph.component';\nimport { IgLinearGaugeComponent } from './iglineargauge/iglineargauge.component';\nimport { IgQRCodeBarcodeComponent } from './igqrcodebarcode/igqrcodebarcode.component';\nimport { IgUploadComponent } from './igupload/igupload.component';\nimport { IgPopoverComponent } from './igpopover/igpopover.component';\nimport { IgNotifierComponent } from './ignotifier/ignotifier.component';\nimport { IgRatingComponent } from './igrating/igrating.component';\nimport { IgVideoPlayerComponent } from './igvideoplayer/igvideoplayer.component';\nimport { IgRadialMenuComponent } from './igradialmenu/igradialmenu.component';\nimport { IgSplitButtonComponent } from './igsplitbutton/igsplitbutton.component';\nimport { IgSpreadsheetComponent } from './igspreadsheet/igspreadsheet.component';\nimport { IgSchedulerComponent } from './igscheduler/igscheduler.component';\n\nexport { Column };\nexport { IgGridMultiColumnHeadersFeature };\nexport { IgGridSortingFeature };\nexport { IgGridFilteringFeature };\nexport { IgGridPagingFeature };\nexport { IgGridUpdatingFeature };\nexport { IgGridGroupByFeature };\nexport { IgGridColumnMovingFeature };\nexport { IgGridHidingFeature };\nexport { IgGridCellMergingFeature };\nexport { IgGridResponsiveFeature };\nexport { IgGridResizingFeature };\nexport { IgGridSelectionFeature };\nexport { IgGridRowSelectorsFeature };\nexport { IgGridSummariesFeature };\nexport { IgGridColumnFixingFeature };\nexport { IgGridTooltipsFeature };\nexport { IgGridAppendRowsOnDemandFeature };\nexport { Features };\nexport { IgGridComponent };\nexport { IgTreeGridComponent };\nexport { IgHierarchicalGridComponent };\nexport { IgComboComponent };\nexport { IgCheckboxEditorComponent };\nexport { IgCurrencyEditorComponent };\nexport { IgDateEditorComponent };\nexport { IgDatePickerComponent };\nexport { IgTimePickerComponent };\nexport { IgMaskEditorComponent };\nexport { IgNumericEditorComponent };\nexport { IgPercentEditorComponent };\nexport { IgTextEditorComponent };\nexport { IgTreeComponent };\nexport { IgDialogComponent };\nexport { IgSplitterComponent };\nexport { IgLayoutManagerComponent };\nexport { IgTileManagerComponent };\nexport { IgHtmlEditorComponent };\nexport { IgValidatorComponent };\nexport { IgPivotDataSelectorComponent };\nexport { IgPivotGridComponent };\nexport { IgDataChartComponent };\nexport { IgPieChartComponent };\nexport { IgDoughnutChartComponent };\nexport { IgFunnelChartComponent };\nexport { IgRadialGaugeComponent };\nexport { IgZoombarComponent };\nexport { IgMapComponent };\nexport { IgSparklineComponent };\nexport { IgBulletGraphComponent };\nexport { IgLinearGaugeComponent };\nexport { IgQRCodeBarcodeComponent };\nexport { IgUploadComponent };\nexport { IgPopoverComponent };\nexport { IgNotifierComponent };\nexport { IgRatingComponent };\nexport { IgVideoPlayerComponent };\nexport { IgRadialMenuComponent };\nexport { IgSplitButtonComponent };\nexport { IgSpreadsheetComponent };\nexport { IgSchedulerComponent };\n\n@NgModule({\n  declarations: [Column, IgGridMultiColumnHeadersFeature, IgGridSortingFeature, IgGridFilteringFeature, IgGridPagingFeature,\n    IgGridUpdatingFeature, IgGridGroupByFeature, IgGridColumnMovingFeature, IgGridHidingFeature,\n    IgGridCellMergingFeature, IgGridResponsiveFeature, IgGridResizingFeature, IgGridSelectionFeature,\n    IgGridRowSelectorsFeature, IgGridSummariesFeature, IgGridColumnFixingFeature, IgGridTooltipsFeature,\n    IgGridAppendRowsOnDemandFeature, Features, IgGridComponent, IgTreeGridComponent, IgHierarchicalGridComponent,\n    IgComboComponent, IgCheckboxEditorComponent, IgCurrencyEditorComponent, IgDateEditorComponent, IgDatePickerComponent,\n    IgDatePickerComponent, IgTimePickerComponent, IgMaskEditorComponent, IgNumericEditorComponent, IgPercentEditorComponent,\n    IgTextEditorComponent, IgTreeComponent, IgDialogComponent, IgSplitterComponent, IgLayoutManagerComponent,\n    IgTileManagerComponent, IgHtmlEditorComponent, IgValidatorComponent, IgPivotDataSelectorComponent, IgPivotGridComponent,\n    IgDataChartComponent, IgPieChartComponent, IgDoughnutChartComponent, IgFunnelChartComponent, IgRadialGaugeComponent,\n    IgZoombarComponent, IgMapComponent, IgSparklineComponent, IgBulletGraphComponent, IgLinearGaugeComponent,\n    IgQRCodeBarcodeComponent, IgUploadComponent, IgPopoverComponent, IgNotifierComponent, IgRatingComponent,\n    IgVideoPlayerComponent, IgRadialMenuComponent, IgSplitButtonComponent, IgSpreadsheetComponent, IgSchedulerComponent],\n  exports: [Column, IgGridMultiColumnHeadersFeature, IgGridSortingFeature, IgGridFilteringFeature, IgGridPagingFeature,\n    IgGridUpdatingFeature, IgGridGroupByFeature, IgGridColumnMovingFeature, IgGridHidingFeature, IgGridCellMergingFeature,\n    IgGridResponsiveFeature, IgGridResizingFeature, IgGridSelectionFeature, IgGridRowSelectorsFeature, IgGridSummariesFeature,\n    IgGridColumnFixingFeature, IgGridTooltipsFeature, IgGridAppendRowsOnDemandFeature, Features, IgGridComponent, IgTreeGridComponent,\n    IgHierarchicalGridComponent, IgComboComponent, IgCheckboxEditorComponent, IgCurrencyEditorComponent, IgDateEditorComponent,\n    IgDatePickerComponent, IgDatePickerComponent, IgTimePickerComponent, IgMaskEditorComponent, IgNumericEditorComponent,\n    IgPercentEditorComponent, IgTextEditorComponent, IgTreeComponent, IgDialogComponent, IgSplitterComponent, IgLayoutManagerComponent,\n    IgTileManagerComponent, IgHtmlEditorComponent, IgValidatorComponent, IgPivotDataSelectorComponent, IgPivotGridComponent,\n    IgDataChartComponent, IgPieChartComponent, IgDoughnutChartComponent, IgFunnelChartComponent, IgRadialGaugeComponent,\n    IgZoombarComponent, IgMapComponent, IgSparklineComponent, IgBulletGraphComponent, IgLinearGaugeComponent, IgQRCodeBarcodeComponent,\n    IgUploadComponent, IgPopoverComponent, IgNotifierComponent, IgRatingComponent, IgVideoPlayerComponent, IgRadialMenuComponent,\n    IgSplitButtonComponent, IgSpreadsheetComponent, IgSchedulerComponent]\n})\nexport class IgniteUIModule {}\n","/*\n * Public API Surface of igniteui-angular-wrappers\n */\n\nexport * from './lib/igniteui-angular-wrappers.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}