diff --git a/docs/changelog.md b/docs/changelog.md index 9a98d3c2a..8d6e7d995 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,9 @@ # Changelog +## 2.1.3 +- Bug: Fix footer not updating when all removes removed +- Bug: Fix Add/Remove items in array not updating (#255) + ## 2.1.2 - Bug: Fix sizing method being debounced on view inits rather than just window resize. diff --git a/package.json b/package.json index 6d3f0d1df..8571a6171 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular2-data-table", - "version": "2.1.2", + "version": "2.1.3", "description": "angular2-data-table is a Angular2 component for presenting large and complex data.", "main": "release/index.js", "typings": "release/index.d.ts", diff --git a/release/components/datatable.component.d.ts b/release/components/datatable.component.d.ts index bf1b16b1a..af185d29b 100644 --- a/release/components/datatable.component.d.ts +++ b/release/components/datatable.component.d.ts @@ -1,8 +1,8 @@ -import { ElementRef, EventEmitter, OnInit, QueryList, AfterViewInit, TemplateRef } from '@angular/core'; +import { ElementRef, EventEmitter, OnInit, QueryList, AfterViewInit, TemplateRef, DoCheck, KeyValueDiffers } from '@angular/core'; import { ColumnMode, SortType, SelectionType } from '../types'; import { DataTableColumnDirective } from './columns'; import { DatatableRowDetailDirective } from './row-detail'; -export declare class DatatableComponent implements OnInit, AfterViewInit { +export declare class DatatableComponent implements OnInit, AfterViewInit, DoCheck { /** * Gets the rows. * @@ -330,7 +330,7 @@ export declare class DatatableComponent implements OnInit, AfterViewInit { * if the horziontal scrolling is enabled. * * @readonly - * + * @type {boolean} * @memberOf DatatableComponent */ readonly isHorScroll: boolean; @@ -425,12 +425,13 @@ export declare class DatatableComponent implements OnInit, AfterViewInit { private bodyHeight; private rowCount; private offsetX; + private rowDiffer; private _rows; private _columns; private _count; private _columnTemplates; private _rowDetailTemplateChild; - constructor(element: ElementRef); + constructor(element: ElementRef, differs: KeyValueDiffers); /** * Lifecycle hook that is called after data-bound * properties of a directive are initialized. @@ -445,6 +446,12 @@ export declare class DatatableComponent implements OnInit, AfterViewInit { * @memberOf DatatableComponent */ ngAfterViewInit(): void; + /** + * Lifecycle hook that is called when Angular dirty checks a directive. + * + * @memberOf DatatableComponent + */ + ngDoCheck(): void; /** * Toggle the expansion of the row * @@ -502,6 +509,13 @@ export declare class DatatableComponent implements OnInit, AfterViewInit { * @memberOf DatatableComponent */ recalculateDims(): void; + /** + * Recalculates the pages after a update. + * + * + * @memberOf DatatableComponent + */ + recalculatePages(): void; /** * Body triggered a page event. * diff --git a/release/components/datatable.component.js b/release/components/datatable.component.js index cf91a9757..053808b95 100644 --- a/release/components/datatable.component.js +++ b/release/components/datatable.component.js @@ -16,7 +16,7 @@ var columns_1 = require('./columns'); var row_detail_1 = require('./row-detail'); var utils_2 = require('../utils'); var DatatableComponent = (function () { - function DatatableComponent(element) { + function DatatableComponent(element, differs) { /** * List of row objects that should be * represented as selected in the grid. @@ -245,6 +245,7 @@ var DatatableComponent = (function () { this._count = 0; // get ref to elm for measuring this.element = element.nativeElement; + this.rowDiffer = differs.find({}).create(null); } Object.defineProperty(DatatableComponent.prototype, "rows", { /** @@ -380,7 +381,7 @@ var DatatableComponent = (function () { * if the horziontal scrolling is enabled. * * @readonly - * + * @type {boolean} * @memberOf DatatableComponent */ get: function () { @@ -554,6 +555,16 @@ var DatatableComponent = (function () { // tree from freaking out because we are readjusting setTimeout(function () { return _this.recalculate(); }); }; + /** + * Lifecycle hook that is called when Angular dirty checks a directive. + * + * @memberOf DatatableComponent + */ + DatatableComponent.prototype.ngDoCheck = function () { + if (this.rowDiffer.diff(this.rows)) { + this.recalculatePages(); + } + }; /** * Toggle the expansion of the row * @@ -649,6 +660,15 @@ var DatatableComponent = (function () { height = height - this.footerHeight; this.bodyHeight = height; } + this.recalculatePages(); + }; + /** + * Recalculates the pages after a update. + * + * + * @memberOf DatatableComponent + */ + DatatableComponent.prototype.recalculatePages = function () { this.pageSize = this.calcPageSize(); this.rowCount = this.calcRowCount(); }; @@ -848,6 +868,7 @@ var DatatableComponent = (function () { /** @nocollapse */ DatatableComponent.ctorParameters = [ { type: core_1.ElementRef, }, + { type: core_1.KeyValueDiffers, }, ]; DatatableComponent.propDecorators = { 'rows': [{ type: core_1.Input },], diff --git a/release/components/datatable.component.js.map b/release/components/datatable.component.js.map index e469180ce..a07a56325 100644 --- a/release/components/datatable.component.js.map +++ b/release/components/datatable.component.js.map @@ -1 +1 @@ -{"version":3,"file":"datatable.component.js","sourceRoot":"","sources":["../../src/components/datatable.component.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"datatable.component.js","sourceRoot":"","sources":["../../src/components/datatable.component.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/release/components/datatable.component.metadata.json b/release/components/datatable.component.metadata.json index 40f957128..43ff1a9bc 100644 --- a/release/components/datatable.component.metadata.json +++ b/release/components/datatable.component.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":1,"metadata":{"DatatableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"swui-datatable","template":"\n \n \n \n \n \n \n \n \n ","host":{"class":"datatable"}}]}],"members":{"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"scrollbarV":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"scrollbarH":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"rowHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"detailRowHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columnMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"footerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"externalPaging":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"externalSorting":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"limit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"count":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"loadingIndicator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"selectionType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"reorderable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sorts":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"rowDetailTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"cssClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"messages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"rowIdentity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"selectCheck":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"trackByProp":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"scroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"activate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"page":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"detailToggle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"reorder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"resize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"rowContextmenu":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"isFixedHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.fixed-header"]}]}],"isFixedRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.fixed-row"]}]}],"isVertScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.scroll-vertical"]}]}],"isHorScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.scroll-horz"]}]}],"isSelectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.selectable"]}]}],"isCheckboxSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.checkbox-selection"]}]}],"isCellSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.cell-selection"]}]}],"isSingleSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.single-selection"]}]}],"isMultiSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.multi-selection"]}]}],"columnTemplates":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren"},"arguments":[{"__symbolic":"reference","module":"./columns","name":"DataTableColumnDirective"}]}]}],"rowDetailTemplateChild":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild"},"arguments":[{"__symbolic":"reference","module":"./row-detail","name":"DatatableRowDetailDirective"}]}]}],"bodyComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":[{"__symbolic":"reference","module":"./body","name":"DataTableBodyComponent"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"toggleExpandRow":[{"__symbolic":"method"}],"expandAllRows":[{"__symbolic":"method"}],"collapseAllRows":[{"__symbolic":"method"}],"recalculate":[{"__symbolic":"method"}],"onWindowResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["window:resize"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../utils","name":"throttleable"},"arguments":[5]}]}],"recalculateColumns":[{"__symbolic":"method"}],"recalculateDims":[{"__symbolic":"method"}],"onBodyPage":[{"__symbolic":"method"}],"onBodyScroll":[{"__symbolic":"method"}],"onFooterPage":[{"__symbolic":"method"}],"calcPageSize":[{"__symbolic":"method"}],"calcRowCount":[{"__symbolic":"method"}],"onColumnResize":[{"__symbolic":"method"}],"onColumnReorder":[{"__symbolic":"method"}],"onColumnSort":[{"__symbolic":"method"}],"onHeaderSelect":[{"__symbolic":"method"}],"onBodySelect":[{"__symbolic":"method"}]}}}} \ No newline at end of file +{"__symbolic":"module","version":1,"metadata":{"DatatableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"swui-datatable","template":"\n \n \n \n \n \n \n \n \n ","host":{"class":"datatable"}}]}],"members":{"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"scrollbarV":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"scrollbarH":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"rowHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"detailRowHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columnMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"footerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"externalPaging":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"externalSorting":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"limit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"count":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"loadingIndicator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"selectionType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"reorderable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sorts":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"rowDetailTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"cssClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"messages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"rowIdentity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"selectCheck":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"trackByProp":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"scroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"activate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"page":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"detailToggle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"reorder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"resize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"rowContextmenu":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"isFixedHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.fixed-header"]}]}],"isFixedRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.fixed-row"]}]}],"isVertScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.scroll-vertical"]}]}],"isHorScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.scroll-horz"]}]}],"isSelectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.selectable"]}]}],"isCheckboxSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.checkbox-selection"]}]}],"isCellSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.cell-selection"]}]}],"isSingleSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.single-selection"]}]}],"isMultiSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.multi-selection"]}]}],"columnTemplates":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren"},"arguments":[{"__symbolic":"reference","module":"./columns","name":"DataTableColumnDirective"}]}]}],"rowDetailTemplateChild":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild"},"arguments":[{"__symbolic":"reference","module":"./row-detail","name":"DatatableRowDetailDirective"}]}]}],"bodyComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":[{"__symbolic":"reference","module":"./body","name":"DataTableBodyComponent"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"@angular/core","name":"KeyValueDiffers"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"toggleExpandRow":[{"__symbolic":"method"}],"expandAllRows":[{"__symbolic":"method"}],"collapseAllRows":[{"__symbolic":"method"}],"recalculate":[{"__symbolic":"method"}],"onWindowResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["window:resize"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../utils","name":"throttleable"},"arguments":[5]}]}],"recalculateColumns":[{"__symbolic":"method"}],"recalculateDims":[{"__symbolic":"method"}],"recalculatePages":[{"__symbolic":"method"}],"onBodyPage":[{"__symbolic":"method"}],"onBodyScroll":[{"__symbolic":"method"}],"onFooterPage":[{"__symbolic":"method"}],"calcPageSize":[{"__symbolic":"method"}],"calcRowCount":[{"__symbolic":"method"}],"onColumnResize":[{"__symbolic":"method"}],"onColumnReorder":[{"__symbolic":"method"}],"onColumnSort":[{"__symbolic":"method"}],"onHeaderSelect":[{"__symbolic":"method"}],"onBodySelect":[{"__symbolic":"method"}]}}}} \ No newline at end of file diff --git a/release/components/datatable.component.ngfactory.ts b/release/components/datatable.component.ngfactory.ts index b28917fc3..fffb983d7 100644 --- a/release/components/datatable.component.ngfactory.ts +++ b/release/components/datatable.component.ngfactory.ts @@ -15,19 +15,20 @@ import * as import6 from '@angular/core/src/linker/query_list'; import * as import7 from '@angular/core/src/linker/view_type'; import * as import8 from '@angular/core/src/linker/component_factory'; import * as import9 from '@angular/core/src/linker/element_ref'; -import * as import10 from '../directives/visibility.directive.ngfactory'; -import * as import11 from '@angular/core/src/linker/view_container'; -import * as import12 from '../../node_modules/@angular/common/src/directives/ng_if.ngfactory'; -import * as import13 from '../../../src/components/body/body.component'; -import * as import14 from './body/body.component.ngfactory'; -import * as import15 from '@angular/core/src/zone/ng_zone'; -import * as import16 from '@angular/core/src/linker/template_ref'; -import * as import17 from '@angular/common/src/directives/ng_if'; -import * as import18 from '../../../src/directives/visibility.directive'; -import * as import19 from '../../../src/components/header/header.component'; -import * as import20 from './header/header.component.ngfactory'; -import * as import21 from '../../../src/components/footer/footer.component'; -import * as import22 from './footer/footer.component.ngfactory'; +import * as import10 from '@angular/core/src/change_detection/differs/keyvalue_differs'; +import * as import11 from '../directives/visibility.directive.ngfactory'; +import * as import12 from '@angular/core/src/linker/view_container'; +import * as import13 from '../../node_modules/@angular/common/src/directives/ng_if.ngfactory'; +import * as import14 from '../../../src/components/body/body.component'; +import * as import15 from './body/body.component.ngfactory'; +import * as import16 from '@angular/core/src/zone/ng_zone'; +import * as import17 from '@angular/core/src/linker/template_ref'; +import * as import18 from '@angular/common/src/directives/ng_if'; +import * as import19 from '../../../src/directives/visibility.directive'; +import * as import20 from '../../../src/components/header/header.component'; +import * as import21 from './header/header.component.ngfactory'; +import * as import22 from '../../../src/components/footer/footer.component'; +import * as import23 from './footer/footer.component.ngfactory'; export class Wrapper_DatatableComponent { /*private*/ _eventHandler:Function; context:import0.DatatableComponent; @@ -76,9 +77,9 @@ export class Wrapper_DatatableComponent { subscription6:any; subscription7:any; subscription8:any; - constructor(p0:any) { + constructor(p0:any,p1:any) { this._changed = false; - this.context = new import0.DatatableComponent(p0); + this.context = new import0.DatatableComponent(p0,p1); this._expr_0 = import1.UNINITIALIZED; this._expr_1 = import1.UNINITIALIZED; this._expr_2 = import1.UNINITIALIZED; @@ -313,7 +314,10 @@ export class Wrapper_DatatableComponent { ngDoCheck(view:import2.AppView,el:any,throwOnChange:boolean):boolean { var changed:any = this._changed; this._changed = false; - if (!throwOnChange) { if ((view.numberOfChecks === 0)) { this.context.ngOnInit(); } } + if (!throwOnChange) { + if ((view.numberOfChecks === 0)) { this.context.ngOnInit(); } + this.context.ngDoCheck(); + } return changed; } checkHost(view:import2.AppView,componentView:import2.AppView,el:any,throwOnChange:boolean):void { @@ -397,7 +401,7 @@ class View_DatatableComponent_Host0 extends import2.AppView { createInternal(rootSelector:string):import8.ComponentRef { this._el_0 = import3.selectOrCreateRenderHostElement(this.renderer,'swui-datatable',new import3.InlineArray2(2,'class','datatable'),rootSelector,(null as any)); this.compView_0 = new View_DatatableComponent0(this.viewUtils,this,0,this._el_0); - this._DatatableComponent_0_3 = new Wrapper_DatatableComponent(new import9.ElementRef(this._el_0)); + this._DatatableComponent_0_3 = new Wrapper_DatatableComponent(new import9.ElementRef(this._el_0),this.injectorGet(import10.KeyValueDiffers,this.parentIndex)); this._query_DataTableColumnDirective_0_0 = new import6.QueryList(); this._query_DatatableRowDetailDirective_0_1 = new import6.QueryList(); this._query_DatatableRowDetailDirective_0_1.reset(([] as any[])); @@ -443,22 +447,22 @@ export class View_DatatableComponent0 extends import2.AppView; _text_0:any; _el_1:any; - _VisibilityDirective_1_3:import10.Wrapper_VisibilityDirective; + _VisibilityDirective_1_3:import11.Wrapper_VisibilityDirective; _text_2:any; _anchor_3:any; - /*private*/ _vc_3:import11.ViewContainer; + /*private*/ _vc_3:import12.ViewContainer; _TemplateRef_3_5:any; - _NgIf_3_6:import12.Wrapper_NgIf; + _NgIf_3_6:import13.Wrapper_NgIf; _text_4:any; _el_5:any; - compView_5:import2.AppView; - _DataTableBodyComponent_5_3:import14.Wrapper_DataTableBodyComponent; + compView_5:import2.AppView; + _DataTableBodyComponent_5_3:import15.Wrapper_DataTableBodyComponent; _text_6:any; _text_7:any; _anchor_8:any; - /*private*/ _vc_8:import11.ViewContainer; + /*private*/ _vc_8:import12.ViewContainer; _TemplateRef_8_5:any; - _NgIf_8_6:import12.Wrapper_NgIf; + _NgIf_8_6:import13.Wrapper_NgIf; _text_9:any; _text_10:any; constructor(viewUtils:import3.ViewUtils,parentView:import2.AppView,parentIndex:number,parentElement:any) { @@ -469,23 +473,23 @@ export class View_DatatableComponent0 extends import2.AppView(); this._text_0 = this.renderer.createText(parentRenderNode,'\n ',(null as any)); this._el_1 = import3.createRenderElement(this.renderer,parentRenderNode,'div',new import3.InlineArray2(2,'visibility-observer',''),(null as any)); - this._VisibilityDirective_1_3 = new import10.Wrapper_VisibilityDirective(new import9.ElementRef(this._el_1),this.parentView.injectorGet(import15.NgZone,this.parentIndex)); + this._VisibilityDirective_1_3 = new import11.Wrapper_VisibilityDirective(new import9.ElementRef(this._el_1),this.parentView.injectorGet(import16.NgZone,this.parentIndex)); this._text_2 = this.renderer.createText(this._el_1,'\n ',(null as any)); this._anchor_3 = this.renderer.createTemplateAnchor(this._el_1,(null as any)); - this._vc_3 = new import11.ViewContainer(3,1,this,this._anchor_3); - this._TemplateRef_3_5 = new import16.TemplateRef_(this,3,this._anchor_3); - this._NgIf_3_6 = new import12.Wrapper_NgIf(this._vc_3.vcRef,this._TemplateRef_3_5); + this._vc_3 = new import12.ViewContainer(3,1,this,this._anchor_3); + this._TemplateRef_3_5 = new import17.TemplateRef_(this,3,this._anchor_3); + this._NgIf_3_6 = new import13.Wrapper_NgIf(this._vc_3.vcRef,this._TemplateRef_3_5); this._text_4 = this.renderer.createText(this._el_1,'\n ',(null as any)); this._el_5 = import3.createRenderElement(this.renderer,this._el_1,'datatable-body',new import3.InlineArray2(2,'class','datatable-body'),(null as any)); - this.compView_5 = new import14.View_DataTableBodyComponent0(this.viewUtils,this,5,this._el_5); - this._DataTableBodyComponent_5_3 = new import14.Wrapper_DataTableBodyComponent(); + this.compView_5 = new import15.View_DataTableBodyComponent0(this.viewUtils,this,5,this._el_5); + this._DataTableBodyComponent_5_3 = new import15.Wrapper_DataTableBodyComponent(); this._text_6 = this.renderer.createText((null as any),'\n ',(null as any)); this.compView_5.create(this._DataTableBodyComponent_5_3.context); this._text_7 = this.renderer.createText(this._el_1,'\n ',(null as any)); this._anchor_8 = this.renderer.createTemplateAnchor(this._el_1,(null as any)); - this._vc_8 = new import11.ViewContainer(8,1,this,this._anchor_8); - this._TemplateRef_8_5 = new import16.TemplateRef_(this,8,this._anchor_8); - this._NgIf_8_6 = new import12.Wrapper_NgIf(this._vc_8.vcRef,this._TemplateRef_8_5); + this._vc_8 = new import12.ViewContainer(8,1,this,this._anchor_8); + this._TemplateRef_8_5 = new import17.TemplateRef_(this,8,this._anchor_8); + this._NgIf_8_6 = new import13.Wrapper_NgIf(this._vc_8.vcRef,this._TemplateRef_8_5); this._text_9 = this.renderer.createText(this._el_1,'\n ',(null as any)); this._text_10 = this.renderer.createText(parentRenderNode,'\n ',(null as any)); var disposable_0:Function = import3.subscribeToRenderElement(this,this._el_1,new import3.InlineArray2(2,'visible',(null as any)),this.eventHandler(this.handleEvent_1)); @@ -515,12 +519,12 @@ export class View_DatatableComponent0 extends import2.AppView { _el_0:any; - compView_0:import2.AppView; - _DataTableHeaderComponent_0_3:import20.Wrapper_DataTableHeaderComponent; + compView_0:import2.AppView; + _DataTableHeaderComponent_0_3:import21.Wrapper_DataTableHeaderComponent; _text_1:any; - constructor(viewUtils:import3.ViewUtils,parentView:import2.AppView,parentIndex:number,parentElement:any,declaredViewContainer:import11.ViewContainer) { + constructor(viewUtils:import3.ViewUtils,parentView:import2.AppView,parentIndex:number,parentElement:any,declaredViewContainer:import12.ViewContainer) { super(View_DatatableComponent1,renderType_DatatableComponent,import7.ViewType.EMBEDDED,viewUtils,parentView,parentIndex,parentElement,import1.ChangeDetectorStatus.CheckAlways,declaredViewContainer); } createInternal(rootSelector:string):import8.ComponentRef { this._el_0 = import3.createRenderElement(this.renderer,(null as any),'datatable-header',new import3.InlineArray2(2,'class','datatable-header'),(null as any)); - this.compView_0 = new import20.View_DataTableHeaderComponent0(this.viewUtils,this,0,this._el_0); - this._DataTableHeaderComponent_0_3 = new import20.Wrapper_DataTableHeaderComponent(); + this.compView_0 = new import21.View_DataTableHeaderComponent0(this.viewUtils,this,0,this._el_0); + this._DataTableHeaderComponent_0_3 = new import21.Wrapper_DataTableHeaderComponent(); this._text_1 = this.renderer.createText((null as any),'\n ',(null as any)); this.compView_0.create(this._DataTableHeaderComponent_0_3.context); var disposable_0:Function = import3.subscribeToRenderElement(this,this._el_0,new import3.InlineArray8(8,'sort',(null as any),'resize',(null as any),'reorder',(null as any),'select',(null as any)),this.eventHandler(this.handleEvent_0)); @@ -653,7 +657,7 @@ class View_DatatableComponent1 extends import2.AppView { return (null as any); } injectorGetInternal(token:any,requestNodeIndex:number,notFoundResult:any):any { - if (((token === import19.DataTableHeaderComponent) && ((0 <= requestNodeIndex) && (requestNodeIndex <= 1)))) { return this._DataTableHeaderComponent_0_3.context; } + if (((token === import20.DataTableHeaderComponent) && ((0 <= requestNodeIndex) && (requestNodeIndex <= 1)))) { return this._DataTableHeaderComponent_0_3.context; } return notFoundResult; } detectChangesInternal(throwOnChange:boolean):void { @@ -712,16 +716,16 @@ class View_DatatableComponent1 extends import2.AppView { } class View_DatatableComponent2 extends import2.AppView { _el_0:any; - compView_0:import2.AppView; - _DataTableFooterComponent_0_3:import22.Wrapper_DataTableFooterComponent; + compView_0:import2.AppView; + _DataTableFooterComponent_0_3:import23.Wrapper_DataTableFooterComponent; _text_1:any; - constructor(viewUtils:import3.ViewUtils,parentView:import2.AppView,parentIndex:number,parentElement:any,declaredViewContainer:import11.ViewContainer) { + constructor(viewUtils:import3.ViewUtils,parentView:import2.AppView,parentIndex:number,parentElement:any,declaredViewContainer:import12.ViewContainer) { super(View_DatatableComponent2,renderType_DatatableComponent,import7.ViewType.EMBEDDED,viewUtils,parentView,parentIndex,parentElement,import1.ChangeDetectorStatus.CheckAlways,declaredViewContainer); } createInternal(rootSelector:string):import8.ComponentRef { this._el_0 = import3.createRenderElement(this.renderer,(null as any),'datatable-footer',new import3.InlineArray2(2,'class','datatable-footer'),(null as any)); - this.compView_0 = new import22.View_DataTableFooterComponent0(this.viewUtils,this,0,this._el_0); - this._DataTableFooterComponent_0_3 = new import22.Wrapper_DataTableFooterComponent(); + this.compView_0 = new import23.View_DataTableFooterComponent0(this.viewUtils,this,0,this._el_0); + this._DataTableFooterComponent_0_3 = new import23.Wrapper_DataTableFooterComponent(); this._text_1 = this.renderer.createText((null as any),'\n ',(null as any)); this.compView_0.create(this._DataTableFooterComponent_0_3.context); var disposable_0:Function = import3.subscribeToRenderElement(this,this._el_0,new import3.InlineArray2(2,'page',(null as any)),this.eventHandler(this.handleEvent_0)); @@ -734,7 +738,7 @@ class View_DatatableComponent2 extends import2.AppView { return (null as any); } injectorGetInternal(token:any,requestNodeIndex:number,notFoundResult:any):any { - if (((token === import21.DataTableFooterComponent) && ((0 <= requestNodeIndex) && (requestNodeIndex <= 1)))) { return this._DataTableFooterComponent_0_3.context; } + if (((token === import22.DataTableFooterComponent) && ((0 <= requestNodeIndex) && (requestNodeIndex <= 1)))) { return this._DataTableFooterComponent_0_3.context; } return notFoundResult; } detectChangesInternal(throwOnChange:boolean):void { diff --git a/release/index.js b/release/index.js index da6cad0f3..7d9ad2756 100644 --- a/release/index.js +++ b/release/index.js @@ -1,5 +1,5 @@ /** - * angular2-data-table v"2.1.2" (https://github.com/swimlane/angular2-data-table) + * angular2-data-table v"2.1.3" (https://github.com/swimlane/angular2-data-table) * Copyright 2016 * Licensed under MIT */ @@ -1661,7 +1661,7 @@ var columns_1 = __webpack_require__("./src/components/columns/index.ts"); var row_detail_1 = __webpack_require__("./src/components/row-detail/index.ts"); var utils_2 = __webpack_require__("./src/utils/index.ts"); var DatatableComponent = (function () { - function DatatableComponent(element) { + function DatatableComponent(element, differs) { /** * List of row objects that should be * represented as selected in the grid. @@ -1890,6 +1890,7 @@ var DatatableComponent = (function () { this._count = 0; // get ref to elm for measuring this.element = element.nativeElement; + this.rowDiffer = differs.find({}).create(null); } Object.defineProperty(DatatableComponent.prototype, "rows", { /** @@ -2025,7 +2026,7 @@ var DatatableComponent = (function () { * if the horziontal scrolling is enabled. * * @readonly - * + * @type {boolean} * @memberOf DatatableComponent */ get: function () { @@ -2199,6 +2200,16 @@ var DatatableComponent = (function () { // tree from freaking out because we are readjusting setTimeout(function () { return _this.recalculate(); }); }; + /** + * Lifecycle hook that is called when Angular dirty checks a directive. + * + * @memberOf DatatableComponent + */ + DatatableComponent.prototype.ngDoCheck = function () { + if (this.rowDiffer.diff(this.rows)) { + this.recalculatePages(); + } + }; /** * Toggle the expansion of the row * @@ -2294,6 +2305,15 @@ var DatatableComponent = (function () { height = height - this.footerHeight; this.bodyHeight = height; } + this.recalculatePages(); + }; + /** + * Recalculates the pages after a update. + * + * + * @memberOf DatatableComponent + */ + DatatableComponent.prototype.recalculatePages = function () { this.pageSize = this.calcPageSize(); this.rowCount = this.calcRowCount(); }; @@ -2638,7 +2658,7 @@ var DatatableComponent = (function () { ], DatatableComponent.prototype, "isVertScroll", null); __decorate([ core_1.HostBinding('class.scroll-horz'), - __metadata('design:type', Object) + __metadata('design:type', Boolean) ], DatatableComponent.prototype, "isHorScroll", null); __decorate([ core_1.HostBinding('class.selectable'), @@ -2689,7 +2709,7 @@ var DatatableComponent = (function () { class: 'datatable' } }), - __metadata('design:paramtypes', [core_1.ElementRef]) + __metadata('design:paramtypes', [core_1.ElementRef, core_1.KeyValueDiffers]) ], DatatableComponent); return DatatableComponent; }()); diff --git a/release/index.map b/release/index.map index 130bf8a08..36266ab83 100644 --- a/release/index.map +++ b/release/index.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 9daf817d5944c4fd85c3","webpack:///./src/components/body/body-cell.component.ts","webpack:///./src/components/body/body-row-wrapper.component.ts","webpack:///./src/components/body/body-row.component.ts","webpack:///./src/components/body/body.component.ts","webpack:///./src/components/body/index.ts","webpack:///./src/components/body/progress-bar.component.ts","webpack:///./src/components/body/scroller.component.ts","webpack:///./src/components/body/selection.component.ts","webpack:///./src/components/columns/column-cell.directive.ts","webpack:///./src/components/columns/column-header.directive.ts","webpack:///./src/components/columns/column.directive.ts","webpack:///./src/components/columns/index.ts","webpack:///./src/components/datatable.component.ts","webpack:///./src/components/footer/footer.component.ts","webpack:///./src/components/footer/index.ts","webpack:///./src/components/footer/pager.component.ts","webpack:///./src/components/header/header-cell.component.ts","webpack:///./src/components/header/header.component.ts","webpack:///./src/components/header/index.ts","webpack:///./src/components/index.ts","webpack:///./src/components/row-detail/index.ts","webpack:///./src/components/row-detail/row-detail-template.directive.ts","webpack:///./src/components/row-detail/row-detail.directive.ts","webpack:///./src/datatable.module.ts","webpack:///./src/directives/draggable.directive.ts","webpack:///./src/directives/index.ts","webpack:///./src/directives/long-press.directive.ts","webpack:///./src/directives/orderable.directive.ts","webpack:///./src/directives/resizeable.directive.ts","webpack:///./src/directives/visibility.directive.ts","webpack:///./src/index.ts","webpack:///./src/types/click.type.ts","webpack:///./src/types/column-mode.type.ts","webpack:///./src/types/index.ts","webpack:///./src/types/selection.type.ts","webpack:///./src/types/sort-direction.type.ts","webpack:///./src/types/sort.type.ts","webpack:///./src/utils/camel-case.ts","webpack:///./src/utils/column-helper.ts","webpack:///./src/utils/column.ts","webpack:///./src/utils/deep-getter.ts","webpack:///./src/utils/id.ts","webpack:///./src/utils/index.ts","webpack:///./src/utils/keys.ts","webpack:///./src/utils/math.ts","webpack:///./src/utils/prefixes.ts","webpack:///./src/utils/row-height-cache.ts","webpack:///./src/utils/scrollbar-width.ts","webpack:///./src/utils/selection.ts","webpack:///./src/utils/sort.ts","webpack:///./src/utils/throttle.ts","webpack:///./src/utils/translate.ts","webpack:///external \"@angular/core\"","webpack:///external \"rxjs/Rx\"","webpack:///external \"@angular/common\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@angular/common\"), require(\"@angular/core\"), require(\"rxjs/Rx\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"angular2-data-table\", [\"@angular/common\", \"@angular/core\", \"rxjs/Rx\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angular2-data-table\"] = factory(require(\"@angular/common\"), require(\"@angular/core\"), require(\"rxjs/Rx\"));\n\telse\n\t\troot[\"angular2-data-table\"] = factory(root[\"@angular/common\"], root[\"@angular/core\"], root[\"rxjs/Rx\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmory imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmory exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tObject.defineProperty(exports, name, {\n \t\t\tconfigurable: false,\n \t\t\tenumerable: true,\n \t\t\tget: getter\n \t\t});\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9daf817d5944c4fd85c3","import {\r\n Component, Input, PipeTransform, HostBinding, \r\n Output, EventEmitter, HostListener, ElementRef\r\n} from '@angular/core';\r\n\r\nimport { deepValueGetter, Keys } from '../../utils';\r\nimport { SortDirection } from '../../types';\r\n\r\n@Component({\r\n selector: 'datatable-body-cell',\r\n template: `\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n `,\r\n host: {\r\n class: 'datatable-body-cell'\r\n }\r\n})\r\nexport class DataTableBodyCellComponent {\r\n\r\n @Input() row: any;\r\n @Input() column: any;\r\n @Input() rowHeight: number;\r\n @Input() isSelected: boolean;\r\n\r\n @Input() set sorts(val: any[]) {\r\n this._sorts = val;\r\n this.calcSortDir = this.calcSortDir(val);\r\n }\r\n\r\n get sorts(): any[] {\r\n return this._sorts;\r\n }\r\n\r\n @Output() activate: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class.active')\r\n isFocused: boolean = false;\r\n\r\n @HostBinding('class.sort-active')\r\n get isSortActive(): boolean {\r\n return !this.sortDir;\r\n }\r\n\r\n @HostBinding('class.sort-asc')\r\n get isSortAscending(): boolean {\r\n return this.sortDir === SortDirection.asc;\r\n }\r\n\r\n @HostBinding('class.sort-desc')\r\n get isSortDescending(): boolean {\r\n return this.sortDir === SortDirection.desc;\r\n }\r\n\r\n @HostBinding('style.width.px')\r\n get width(): number {\r\n return this.column.width;\r\n }\r\n\r\n @HostBinding('style.height')\r\n get height(): string|number {\r\n const height = this.rowHeight;\r\n if(isNaN(height)) return height;\r\n return height + 'px';\r\n }\r\n\r\n get value(): any {\r\n if (!this.row || !this.column || !this.column.prop) return '';\r\n const val = deepValueGetter(this.row, this.column.prop);\r\n const userPipe: PipeTransform = this.column.pipe;\r\n\r\n if(userPipe) return userPipe.transform(val);\r\n if(val !== undefined) return val;\r\n return '';\r\n }\r\n\r\n private sortDir: SortDirection;\r\n private element: any;\r\n private _sorts: any[];\r\n\r\n constructor(element: ElementRef) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus(): void {\r\n this.isFocused = true;\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur(): void {\r\n this.isFocused = false;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: MouseEvent): void {\r\n this.activate.emit({\r\n type: 'click',\r\n event,\r\n row: this.row,\r\n column: this.column,\r\n value: this.value,\r\n cellElement: this.element\r\n });\r\n }\r\n\r\n @HostListener('dblclick', ['$event'])\r\n onDblClick(event: MouseEvent): void {\r\n this.activate.emit({\r\n type: 'dblclick',\r\n event,\r\n row: this.row,\r\n column: this.column,\r\n value: this.value,\r\n cellElement: this.element\r\n });\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent): void {\r\n const keyCode = event.keyCode;\r\n const isTargetCell = event.target === this.element;\r\n\r\n const isAction =\r\n keyCode === Keys.return ||\r\n keyCode === Keys.down ||\r\n keyCode === Keys.up ||\r\n keyCode === Keys.left ||\r\n keyCode === Keys.right;\r\n\r\n if(isAction && isTargetCell) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n this.activate.emit({\r\n type: 'keydown',\r\n event,\r\n row: this.row,\r\n column: this.column,\r\n value: this.value,\r\n cellElement: this.element\r\n });\r\n }\r\n }\r\n\r\n onCheckboxChange(event): void {\r\n this.activate.emit({\r\n type: 'checkbox',\r\n event,\r\n row: this.row,\r\n column: this.column,\r\n value: this.value,\r\n cellElement: this.element\r\n });\r\n }\r\n\r\n calcSortDir(sorts: any[]): any {\r\n if(!sorts) return;\r\n\r\n const sort = sorts.find((s: any) => {\r\n return s.prop === this.column.prop;\r\n });\r\n\r\n if(sort) return sort.dir;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-cell.component.ts","import { \r\n Component, Input, Output, EventEmitter, HostListener \r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-row-wrapper',\r\n template: `\r\n \r\n
\r\n \r\n \r\n
\r\n `,\r\n host: {\r\n class: 'datatable-row-wrapper'\r\n }\r\n})\r\nexport class DataTableRowWrapperComponent {\r\n\r\n @Input() rowDetailTemplate: any;\r\n @Input() detailRowHeight: any;\r\n @Input() expanded: boolean = false;\r\n @Input() row: any;\r\n @Output() rowContextmenu = new EventEmitter<{event: MouseEvent, row: any}>(false);\r\n\r\n @HostListener('contextmenu', ['$event'])\r\n public onContextmenu($event: MouseEvent): void {\r\n this.rowContextmenu.emit({ event: $event, row: this.row });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-row-wrapper.component.ts","import {\r\n Component, Input, HostBinding, ElementRef, Output, EventEmitter, HostListener\r\n} from '@angular/core';\r\n\r\nimport {\r\n columnsByPin, columnGroupWidths, columnsByPinArr,\r\n translateXY, Keys, scrollbarWidth\r\n} from '../../utils';\r\n\r\n@Component({\r\n selector: 'datatable-body-row',\r\n template: `\r\n \r\n \r\n \r\n \r\n `,\r\n host: {\r\n class: 'datatable-body-row'\r\n }\r\n})\r\nexport class DataTableBodyRowComponent {\r\n\r\n @Input() set columns(val: any[]) {\r\n this._columns = val;\r\n this.recalculateColumns(val);\r\n }\r\n\r\n get columns(): any[] {\r\n return this._columns;\r\n }\r\n\r\n @Input() set innerWidth(val: number) {\r\n this._innerWidth = val;\r\n this.recalculateColumns();\r\n }\r\n\r\n get innerWidth(): number {\r\n return this._innerWidth;\r\n }\r\n\r\n @Input() row: any;\r\n @Input() offsetX: number;\r\n\r\n @HostBinding('style.height.px')\r\n @Input() rowHeight: number;\r\n\r\n @HostBinding('class.active')\r\n @Input() isSelected: boolean;\r\n\r\n @HostBinding('class.datatable-row-even')\r\n get isEvenRow(): boolean {\r\n return this.row.$$index % 2 === 0;\r\n }\r\n\r\n @HostBinding('class.datatable-row-odd')\r\n get isOddRow(): boolean {\r\n return this.row.$$index % 2 !== 0;\r\n }\r\n\r\n @Output() activate: EventEmitter = new EventEmitter();\r\n\r\n private element: any;\r\n private columnGroupWidths: any;\r\n private columnsByPin: any;\r\n private _columns: any[];\r\n private _innerWidth: number;\r\n\r\n constructor(element: ElementRef) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n stylesByGroup(group: string) {\r\n const widths = this.columnGroupWidths;\r\n const offsetX = this.offsetX;\r\n\r\n let styles = {\r\n width: `${widths[group]}px`\r\n };\r\n\r\n if(group === 'left') {\r\n translateXY(styles, offsetX, 0);\r\n } else if(group === 'right') {\r\n const bodyWidth = parseInt(this.innerWidth + '', 0);\r\n const totalDiff = widths.total - bodyWidth;\r\n const offsetDiff = totalDiff - offsetX;\r\n const offset = (offsetDiff + scrollbarWidth) * -1;\r\n translateXY(styles, offset, 0);\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n onActivate(event: any, index: number) {\r\n event.cellIndex = index;\r\n event.rowElement = this.element;\r\n this.activate.emit(event);\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent): void {\r\n const keyCode = event.keyCode;\r\n const isTargetRow = event.target === this.element;\r\n\r\n const isAction =\r\n keyCode === Keys.return ||\r\n keyCode === Keys.down ||\r\n keyCode === Keys.up ||\r\n keyCode === Keys.left ||\r\n keyCode === Keys.right;\r\n\r\n if(isAction && isTargetRow) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n this.activate.emit({\r\n type: 'keydown',\r\n event,\r\n row: this.row,\r\n rowElement: this.element\r\n });\r\n }\r\n }\r\n\r\n recalculateColumns(val: any[] = this.columns) {\r\n const colsByPin = columnsByPin(val);\r\n this.columnsByPin = columnsByPinArr(val);\r\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-row.component.ts","import {\r\n Component, Output, EventEmitter, Input, HostBinding, ViewChild\r\n} from '@angular/core';\r\nimport { translateXY, columnsByPin, columnGroupWidths, RowHeightCache } from '../../utils';\r\nimport { SelectionType } from '../../types';\r\nimport { ScrollerComponent } from './scroller.component';\r\n\r\n@Component({\r\n selector: 'datatable-body',\r\n template: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n host: {\r\n class: 'datatable-body'\r\n }\r\n})\r\nexport class DataTableBodyComponent {\r\n\r\n @Input() scrollbarV: boolean;\r\n @Input() scrollbarH: boolean;\r\n @Input() loadingIndicator: boolean;\r\n @Input() rowHeight: number;\r\n @Input() offsetX: number;\r\n @Input() detailRowHeight: any;\r\n @Input() emptyMessage: string;\r\n @Input() selectionType: SelectionType;\r\n @Input() selected: any[] = [];\r\n @Input() rowIdentity: any;\r\n @Input() rowDetailTemplate: any;\r\n @Input() selectCheck: any;\r\n @Input() trackByProp: string;\r\n\r\n @Input() set pageSize(val: number) {\r\n this._pageSize = val;\r\n this.recalcLayout();\r\n }\r\n\r\n get pageSize(): number {\r\n return this._pageSize;\r\n }\r\n\r\n @Input() set rows(val: any[]) {\r\n this._rows = val;\r\n this.recalcLayout();\r\n }\r\n\r\n get rows(): any[] {\r\n return this._rows;\r\n }\r\n\r\n @Input() set columns(val: any[]) {\r\n this._columns = val;\r\n\r\n const colsByPin = columnsByPin(val);\r\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\r\n }\r\n\r\n get columns(): any[] {\r\n return this._columns;\r\n }\r\n\r\n @Input() set offset(val: number) {\r\n this._offset = val;\r\n this.recalcLayout();\r\n }\r\n\r\n get offset(): number {\r\n return this._offset;\r\n }\r\n\r\n @Input() set rowCount(val: number) {\r\n this._rowCount = val;\r\n this.recalcLayout();\r\n }\r\n\r\n get rowCount(): number {\r\n return this._rowCount;\r\n }\r\n\r\n @Input() innerWidth: number;\r\n\r\n @HostBinding('style.width')\r\n get bodyWidth(): string {\r\n if (this.scrollbarH) {\r\n return this.innerWidth + 'px';\r\n } else {\r\n return '100%';\r\n }\r\n }\r\n\r\n @Input()\r\n @HostBinding('style.height')\r\n set bodyHeight(val) {\r\n if (this.scrollbarV) {\r\n this._bodyHeight = val + 'px';\r\n } else {\r\n this._bodyHeight = 'auto';\r\n }\r\n\r\n this.recalcLayout();\r\n }\r\n\r\n get bodyHeight() {\r\n return this._bodyHeight;\r\n }\r\n\r\n @Output() scroll: EventEmitter = new EventEmitter();\r\n @Output() page: EventEmitter = new EventEmitter();\r\n @Output() activate: EventEmitter = new EventEmitter();\r\n @Output() select: EventEmitter = new EventEmitter();\r\n @Output() detailToggle: EventEmitter = new EventEmitter();\r\n @Output() rowContextmenu = new EventEmitter<{event: MouseEvent, row: any}>(false);\r\n\r\n @ViewChild(ScrollerComponent) scroller: ScrollerComponent;\r\n\r\n /**\r\n * Returns if selection is enabled.\r\n * \r\n * @readonly\r\n * @type {boolean}\r\n * @memberOf DataTableBodyComponent\r\n */\r\n get selectEnabled(): boolean {\r\n return !!this.selectionType;\r\n }\r\n\r\n /**\r\n * Property that would calculate the height of scroll bar\r\n * based on the row heights cache for virtual scroll. Other scenarios\r\n * calculate scroll height automatically (as height will be undefined).\r\n * \r\n * @readonly\r\n * @type {number}\r\n * @memberOf DataTableBodyComponent\r\n */\r\n get scrollHeight(): number {\r\n if(this.scrollbarV) {\r\n return this.rowHeightsCache.query(this.rowCount - 1);\r\n }\r\n }\r\n\r\n private rowHeightsCache: RowHeightCache = new RowHeightCache();\r\n private temp: any[] = [];\r\n private offsetY: number = 0;\r\n private indexes: any = {};\r\n private columnGroupWidths: any;\r\n private rowTrackingFn: any;\r\n\r\n private _rows: any[];\r\n private _bodyHeight: any;\r\n private _columns: any[];\r\n private _rowCount: number;\r\n private _offset: number;\r\n private _pageSize: number;\r\n\r\n constructor() {\r\n // declare fn here so we can get access to the `this` property\r\n this.rowTrackingFn = function(index: number, row: any): any {\r\n if(this.trackByProp) {\r\n return `${row.$$index}-${this.trackByProp}`;\r\n } else {\r\n return row.$$index;\r\n }\r\n }.bind(this);\r\n }\r\n\r\n /**\r\n * Updates the Y offset given a new offset.\r\n * \r\n * @param {number} [offset]\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n updateOffsetY(offset?: number): void {\r\n if(this.scrollbarV && offset) {\r\n // First get the row Index that we need to move to.\r\n const rowIndex = this.pageSize * offset;\r\n offset = this.rowHeightsCache.query(rowIndex - 1);\r\n }\r\n\r\n this.scroller.setOffset(offset || 0);\r\n }\r\n\r\n /**\r\n * Body was scrolled, this is mainly useful for\r\n * when a user is server-side pagination via virtual scroll.\r\n * \r\n * @param {*} event\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n onBodyScroll(event: any): void {\r\n const scrollYPos: number = event.scrollYPos;\r\n const scrollXPos: number = event.scrollXPos;\r\n\r\n // if scroll change, trigger update\r\n // this is mainly used for header cell positions\r\n if(this.offsetY !== scrollYPos || this.offsetX !== scrollXPos) {\r\n this.scroll.emit({\r\n offsetY: scrollYPos,\r\n offsetX: scrollXPos\r\n });\r\n }\r\n\r\n this.offsetY = scrollYPos;\r\n this.offsetX = scrollXPos;\r\n\r\n this.updateIndexes();\r\n this.updatePage(event.direction);\r\n this.updateRows();\r\n }\r\n\r\n /**\r\n * Updates the page given a direction.\r\n * \r\n * @param {string} direction\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n updatePage(direction: string): void {\r\n let offset = this.indexes.first / this.pageSize;\r\n\r\n if(direction === 'up') {\r\n offset = Math.floor(offset);\r\n } else if(direction === 'down') {\r\n offset = Math.ceil(offset);\r\n }\r\n\r\n if(direction !== undefined && !isNaN(offset)) {\r\n this.page.emit({ offset });\r\n }\r\n }\r\n\r\n /**\r\n * Updates the rows in the view port\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n updateRows(): void {\r\n const { first, last } = this.indexes;\r\n let rowIndex = first;\r\n let idx = 0;\r\n let temp: any[] = [];\r\n\r\n while (rowIndex < last && rowIndex < this.rowCount) {\r\n let row = this.rows[rowIndex];\r\n\r\n if(row) {\r\n row.$$index = rowIndex;\r\n temp[idx] = row;\r\n }\r\n\r\n idx++;\r\n rowIndex++;\r\n }\r\n\r\n this.temp = temp;\r\n }\r\n\r\n /**\r\n * Calculate row height based on the expanded state of the row.\r\n * \r\n * @param {*} row the row for which the height need to be calculated.\r\n * @returns {number} height of the row.\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n getRowHeight(row: any): number {\r\n // Adding detail row height if its expanded.\r\n return this.rowHeight +\r\n (row.$$expanded === 1 ? this.detailRowHeight : 0);\r\n }\r\n\r\n /**\r\n * Calculates the styles for the row so that the rows can be moved in 2D space\r\n * during virtual scroll inside the DOM. In the below case the Y position is\r\n * manipulated. As an example, if the height of row 0 is 30 px and row 1 is\r\n * 100 px then following styles are generated:\r\n *\r\n * transform: translate3d(0px, 0px, 0px); -> row0\r\n * transform: translate3d(0px, 30px, 0px); -> row1\r\n * transform: translate3d(0px, 130px, 0px); -> row2\r\n *\r\n * Row heights have to be calculated based on the row heights cache as we wont\r\n * be able to determine which row is of what height before hand. In the above\r\n * case the positionY of the translate3d for row2 would be the sum of all the\r\n * heights of the rows before it (i.e. row0 and row1).\r\n * \r\n * @param {*} row The row that needs to be placed in the 2D space.\r\n * @returns {*} Returns the CSS3 style to be applied\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n getRowsStyles(row: any): any {\r\n const rowHeight = this.getRowHeight(row);\r\n\r\n let styles = {\r\n height: rowHeight + 'px'\r\n };\r\n\r\n if(this.scrollbarV) {\r\n const idx = row ? row.$$index : 0;\r\n\r\n // const pos = idx * rowHeight;\r\n // The position of this row would be the sum of all row heights\r\n // until the previous row position.\r\n const pos = this.rowHeightsCache.query(idx - 1);\r\n\r\n translateXY(styles, 0, pos);\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n /**\r\n * Hides the loading indicator\r\n * \r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n hideIndicator(): void {\r\n setTimeout(() => this.loadingIndicator = false, 500);\r\n }\r\n\r\n /**\r\n * Updates the index of the rows in the viewport\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n updateIndexes(): void {\r\n let first = 0;\r\n let last = 0;\r\n\r\n if (this.scrollbarV) {\r\n // Calculation of the first and last indexes will be based on where the\r\n // scrollY position would be at. The last index would be the one\r\n // that shows up inside the view port the last.\r\n const height = parseInt(this.bodyHeight, 0);\r\n first = this.rowHeightsCache.getRowIndex(this.offsetY);\r\n last = this.rowHeightsCache.getRowIndex(height + this.offsetY) + 1;\r\n } else {\r\n first = Math.max(this.offset * this.pageSize, 0);\r\n last = Math.min((first + this.pageSize), this.rowCount);\r\n }\r\n\r\n this.indexes = { first, last };\r\n }\r\n\r\n /**\r\n * Refreshes the full Row Height cache. Should be used\r\n * when the entire row array state has changed.\r\n * \r\n * @returns {void}\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n refreshRowHeightCache(): void {\r\n if(!this.scrollbarV) return;\r\n\r\n // clear the previous row height cache if already present.\r\n // this is useful during sorts, filters where the state of the\r\n // rows array is changed.\r\n this.rowHeightsCache.clearCache();\r\n\r\n // Initialize the tree only if there are rows inside the tree.\r\n if (this.rows && this.rows.length) {\r\n this.rowHeightsCache.initCache(\r\n this.rows, this.rowHeight, this.detailRowHeight);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the index for the view port\r\n * \r\n * @returns {number}\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n getAdjustedViewPortIndex(): number {\r\n // Capture the row index of the first row that is visible on the viewport.\r\n // If the scroll bar is just below the row which is highlighted then make that as the\r\n // first index.\r\n let viewPortFirstRowIndex = this.indexes.first;\r\n\r\n if (this.scrollbarV) {\r\n const offsetScroll = this.rowHeightsCache.query(viewPortFirstRowIndex - 1);\r\n return offsetScroll <= this.offsetY ? viewPortFirstRowIndex - 1 : viewPortFirstRowIndex;\r\n }\r\n\r\n return viewPortFirstRowIndex;\r\n }\r\n\r\n /**\r\n * Toggle the Expansion of the row i.e. if the row is expanded then it will\r\n * collapse and vice versa. Note that the expanded status is stored as\r\n * a part of the row object itself as we have to preserve the expanded row\r\n * status in case of sorting and filtering of the row set.\r\n * \r\n * @param {*} row The row for which the expansion needs to be toggled.\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n toggleRowExpansion(row: any): void {\r\n // Capture the row index of the first row that is visible on the viewport.\r\n let viewPortFirstRowIndex = this.getAdjustedViewPortIndex();\r\n\r\n // If the detailRowHeight is auto --> only in case of non-virtualized scroll\r\n if(this.scrollbarV) {\r\n const detailRowHeight = this.detailRowHeight * (row.$$expanded ? -1 : 1);\r\n this.rowHeightsCache.update(row.$$index, detailRowHeight);\r\n }\r\n\r\n // Update the toggled row and update the heights in the cache.\r\n row.$$expanded ^= 1;\r\n\r\n this.detailToggle.emit({\r\n rows: [row],\r\n currentIndex: viewPortFirstRowIndex\r\n });\r\n }\r\n\r\n /**\r\n * Expand/Collapse all the rows no matter what their state is.\r\n * \r\n * @param {boolean} expanded When true, all rows are expanded and when false, all rows will be collapsed.\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n toggleAllRows(expanded: boolean): void {\r\n let rowExpanded = expanded ? 1 : 0;\r\n\r\n // Capture the row index of the first row that is visible on the viewport.\r\n let viewPortFirstRowIndex = this.getAdjustedViewPortIndex();\r\n\r\n for(let row of this.rows) {\r\n row.$$expanded = rowExpanded;\r\n }\r\n\r\n if(this.scrollbarV) {\r\n // Refresh the full row heights cache since every row was affected.\r\n this.refreshRowHeightCache();\r\n }\r\n\r\n // Emit all rows that have been expanded.\r\n this.detailToggle.emit({\r\n rows: this.rows,\r\n currentIndex: viewPortFirstRowIndex\r\n });\r\n }\r\n\r\n /**\r\n * Recalculates the table\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n recalcLayout(): void {\r\n this.refreshRowHeightCache();\r\n this.updateIndexes();\r\n this.updateRows();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body.component.ts","export * from './body.component';\r\nexport * from './body-cell.component';\r\nexport * from './body-row.component';\r\nexport * from './progress-bar.component';\r\nexport * from './scroller.component';\r\nexport * from './body-row-wrapper.component';\r\nexport * from './selection.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/index.ts","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-progress',\r\n template: `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ProgressBarComponent {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/progress-bar.component.ts","import {\r\n Component, Input, ElementRef, Output, EventEmitter, Renderer,\r\n OnInit, OnDestroy, HostBinding\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-scroller',\r\n template: `\r\n \r\n `,\r\n host: {\r\n class: 'datatable-scroll'\r\n }\r\n})\r\nexport class ScrollerComponent implements OnInit, OnDestroy {\r\n\r\n @Input() scrollbarV: boolean = false;\r\n @Input() scrollbarH: boolean = false;\r\n\r\n @HostBinding('style.height.px')\r\n @Input() scrollHeight: number;\r\n\r\n @HostBinding('style.width.px')\r\n @Input() scrollWidth: number;\r\n\r\n @Output() scroll: EventEmitter = new EventEmitter();\r\n\r\n private scrollYPos: number = 0;\r\n private scrollXPos: number = 0;\r\n private prevScrollYPos: number = 0;\r\n private prevScrollXPos: number = 0;\r\n private element: any;\r\n private parentElement: any;\r\n private onScrollListener: Function;\r\n\r\n constructor(element: ElementRef, private renderer: Renderer) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n ngOnInit() {\r\n // manual bind so we don't always listen\r\n if(this.scrollbarV || this.scrollbarH) {\r\n this.parentElement = this.element.parentElement.parentElement;\r\n this.onScrollListener = this.renderer.listen(\r\n this.parentElement, 'scroll', this.onScrolled.bind(this));\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if(this.scrollbarV || this.scrollbarH) {\r\n this.onScrollListener();\r\n }\r\n }\r\n\r\n setOffset(offsetY: number) {\r\n if(this.parentElement) {\r\n this.parentElement.scrollTop = offsetY;\r\n }\r\n }\r\n\r\n onScrolled(event: MouseEvent) {\r\n const dom: Element = event.currentTarget;\r\n this.scrollYPos = dom.scrollTop;\r\n this.scrollXPos = dom.scrollLeft;\r\n\r\n requestAnimationFrame(this.updateOffset.bind(this));\r\n }\r\n\r\n updateOffset() {\r\n let direction: string;\r\n if(this.scrollYPos < this.prevScrollYPos) {\r\n direction = 'down';\r\n } else if(this.scrollYPos > this.prevScrollYPos) {\r\n direction = 'up';\r\n }\r\n\r\n this.scroll.emit({\r\n direction,\r\n scrollYPos: this.scrollYPos,\r\n scrollXPos: this.scrollXPos\r\n });\r\n\r\n this.prevScrollYPos = this.scrollYPos;\r\n this.prevScrollXPos = this.scrollXPos;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/scroller.component.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Keys, selectRows, selectRowsBetween } from '../../utils';\r\nimport { SelectionType } from '../../types';\r\n\r\nexport interface Model {\r\n type: string;\r\n event: MouseEvent | KeyboardEvent;\r\n row: any;\r\n rowElement: any;\r\n cellElement: any;\r\n cellIndex: number;\r\n}\r\n\r\n@Component({\r\n selector: 'datatable-selection',\r\n template: `\r\n \r\n `\r\n})\r\nexport class DataTableSelectionComponent {\r\n\r\n @Input() rows: any[];\r\n @Input() selected: any[];\r\n @Input() selectEnabled: boolean;\r\n @Input() selectionType: SelectionType;\r\n @Input() rowIdentity: any;\r\n @Input() selectCheck: any;\r\n\r\n @Output() activate: EventEmitter = new EventEmitter();\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n private prevIndex: number;\r\n\r\n selectRow(event: KeyboardEvent | MouseEvent, index: number, row: any): void {\r\n if (!this.selectEnabled) return;\r\n\r\n const chkbox = this.selectionType === SelectionType.checkbox;\r\n const multiShift = this.selectionType === SelectionType.multiShift;\r\n const multiClick = this.selectionType === SelectionType.multi;\r\n let selected: any[] = [];\r\n\r\n if (multiShift || multiClick || chkbox) {\r\n if (multiShift && event.shiftKey) {\r\n const newSelected = [...this.selected];\r\n selected = selectRowsBetween(\r\n newSelected, \r\n this.rows, \r\n index, \r\n this.prevIndex, \r\n this.getRowSelectedIdx.bind(this));\r\n } else if (multiShift && !event.shiftKey) {\r\n selected.push(row);\r\n } else {\r\n const newSelected = [...this.selected];\r\n selected = selectRows(newSelected, row, this.getRowSelectedIdx.bind(this));\r\n }\r\n } else {\r\n selected.push(row);\r\n }\r\n\r\n if(this.selectCheck) {\r\n selected = selected.filter(this.selectCheck.bind(this));\r\n }\r\n\r\n this.selected = selected;\r\n this.prevIndex = index;\r\n\r\n this.select.emit({\r\n selected\r\n });\r\n }\r\n\r\n onActivate(model: Model, index: number): void {\r\n const { type, event, row } = model;\r\n const chkbox = this.selectionType === SelectionType.checkbox;\r\n const select = (!chkbox && (type === 'click' || type === 'dblclick')) || \r\n (chkbox && type === 'checkbox');\r\n\r\n if(select) {\r\n this.selectRow(event, index, row);\r\n } else if(type === 'keydown') {\r\n if ((event).keyCode === Keys.return) {\r\n this.selectRow(event, index, row);\r\n } else {\r\n this.onKeyboardFocus(model);\r\n }\r\n }\r\n this.activate.emit(model);\r\n }\r\n\r\n onKeyboardFocus(model: Model): void {\r\n const { keyCode } = model.event;\r\n const shouldFocus =\r\n keyCode === Keys.up ||\r\n keyCode === Keys.down ||\r\n keyCode === Keys.right ||\r\n keyCode === Keys.left;\r\n\r\n if(shouldFocus) {\r\n const isCellSelection =\r\n this.selectionType === SelectionType.cell;\r\n\r\n if(!model.cellElement || !isCellSelection) {\r\n this.focusRow(model.rowElement, keyCode);\r\n } else if(isCellSelection) {\r\n this.focusCell(model.cellElement, model.rowElement, keyCode, model.cellIndex);\r\n }\r\n }\r\n }\r\n\r\n focusRow(rowElement: any, keyCode: number): void {\r\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\r\n if(nextRowElement) nextRowElement.focus();\r\n }\r\n\r\n getPrevNextRow(rowElement: any, keyCode: number): any {\r\n const parentElement = rowElement.parentElement;\r\n\r\n if(parentElement) {\r\n let focusElement: HTMLElement;\r\n if(keyCode === Keys.up) {\r\n focusElement = parentElement.previousElementSibling;\r\n } else if(keyCode === Keys.down) {\r\n focusElement = parentElement.nextElementSibling;\r\n }\r\n\r\n if(focusElement && focusElement.children.length) {\r\n return focusElement.children[0];\r\n }\r\n }\r\n }\r\n\r\n focusCell(cellElement: any, rowElement: any, keyCode: number, cellIndex: number): void {\r\n let nextCellElement: HTMLElement;\r\n\r\n if(keyCode === Keys.left) {\r\n nextCellElement = cellElement.previousElementSibling;\r\n } else if(keyCode === Keys.right) {\r\n nextCellElement = cellElement.nextElementSibling;\r\n } else if(keyCode === Keys.up || keyCode === Keys.down) {\r\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\r\n if(nextRowElement) {\r\n const children = nextRowElement.getElementsByClassName('datatable-body-cell');\r\n if(children.length) nextCellElement = children[cellIndex];\r\n }\r\n }\r\n\r\n if(nextCellElement) nextCellElement.focus();\r\n }\r\n\r\n getRowSelected(row: any): boolean {\r\n return this.getRowSelectedIdx(row, this.selected) > -1;\r\n }\r\n\r\n getRowSelectedIdx(row: any, selected: any[]): number {\r\n if(!selected || !selected.length) return -1;\r\n\r\n const rowId = this.rowIdentity(row);\r\n return selected.findIndex((r) => {\r\n const id = this.rowIdentity(r);\r\n return id === rowId;\r\n });\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/selection.component.ts","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({ selector: '[swui-datatable-cell-template]' })\r\nexport class DataTableColumnCellDirective {\r\n constructor(public template: TemplateRef) { };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column-cell.directive.ts","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({ selector: '[swui-datatable-header-template]' })\r\nexport class DataTableColumnHeaderDirective {\r\n constructor(public template: TemplateRef) { };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column-header.directive.ts","import { Directive, TemplateRef, ContentChild, Input } from '@angular/core';\r\nimport { DataTableColumnHeaderDirective } from './column-header.directive';\r\nimport { DataTableColumnCellDirective } from './column-cell.directive';\r\n\r\n@Directive({ selector: 'swui-datatable-column' })\r\nexport class DataTableColumnDirective {\r\n\r\n @Input() name: string;\r\n @Input() prop: string;\r\n @Input() frozenLeft: any;\r\n @Input() frozenRight: any;\r\n @Input() flexGrow: number;\r\n @Input() resizeable: boolean;\r\n @Input() comparator: Function;\r\n @Input() pipe: any;\r\n @Input() sortable: boolean;\r\n @Input() draggable: boolean;\r\n @Input() canAutoResize: boolean;\r\n @Input() minWidth: number;\r\n @Input() width: number;\r\n @Input() maxWidth: number;\r\n @Input() checkboxable: boolean;\r\n @Input() headerCheckboxable: boolean;\r\n\r\n @ContentChild(DataTableColumnCellDirective, { read: TemplateRef }) \r\n cellTemplate: TemplateRef;\r\n\r\n @ContentChild(DataTableColumnHeaderDirective, { read: TemplateRef }) \r\n headerTemplate: TemplateRef;\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column.directive.ts","export * from './column.directive';\r\nexport * from './column-header.directive';\r\nexport * from './column-cell.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/index.ts","import {\n Component, Input, Output, ElementRef, EventEmitter, ViewChild,\n HostListener, ContentChildren, OnInit, QueryList, AfterViewInit,\n HostBinding, ContentChild, TemplateRef\n} from '@angular/core';\n\nimport { forceFillColumnWidths, adjustColumnWidths, sortRows } from '../utils';\nimport { ColumnMode, SortType, SelectionType } from '../types';\nimport { DataTableBodyComponent } from './body';\nimport { DataTableColumnDirective } from './columns';\nimport { DatatableRowDetailDirective } from './row-detail';\nimport { scrollbarWidth, setColumnDefaults, throttleable, translateTemplates } from '../utils';\n\n@Component({\n selector: 'swui-datatable',\n template: `\n \n \n \n \n \n \n \n \n `,\n host: {\n class: 'datatable'\n }\n})\nexport class DatatableComponent implements OnInit, AfterViewInit {\n\n /**\n * Rows that are displayed in the table.\n * \n * @memberOf DatatableComponent\n */\n @Input() set rows(val: any) {\n // auto sort on new updates\n if (!this.externalSorting) {\n val = sortRows(val, this.columns, this.sorts);\n }\n\n this._rows = val;\n\n // recalculate sizes/etc\n this.recalculate();\n }\n\n /**\n * Gets the rows.\n * \n * @readonly\n * @type {*}\n * @memberOf DatatableComponent\n */\n get rows(): any {\n return this._rows;\n }\n\n /**\n * Columns to be displayed.\n * \n * @memberOf DatatableComponent\n */\n @Input() set columns(val: any[]) {\n if(val) {\n setColumnDefaults(val);\n this.recalculateColumns(val);\n }\n\n this._columns = val;\n }\n\n /**\n * Get the columns.\n * \n * @readonly\n * @type {any[]}\n * @memberOf DatatableComponent\n */\n get columns(): any[] {\n return this._columns;\n }\n\n /**\n * List of row objects that should be \n * represented as selected in the grid. \n * Default value: `[]`\n * \n * @type {any[]}\n * @memberOf DatatableComponent\n */\n @Input() selected: any[] = [];\n\n /**\n * Enable vertical scrollbars\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() scrollbarV: boolean = false;\n\n /**\n * Enable horz scrollbars\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() scrollbarH: boolean = false;\n\n /**\n * The row height; which is necessary\n * to calculate the height for the lazy rendering.\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() rowHeight: number = 30;\n\n /**\n * The detail row height is required especially \n * when virtual scroll is enabled.\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() detailRowHeight: number = 0;\n\n /**\n * Type of column width distribution formula.\n * Example: flex, force, standard\n * \n * @type {ColumnMode}\n * @memberOf DatatableComponent\n */\n @Input() columnMode: ColumnMode = ColumnMode.standard;\n\n /**\n * The minimum header height in pixels.\n * Pass a falsey for no header\n * \n * @type {*}\n * @memberOf DatatableComponent\n */\n @Input() headerHeight: any = 30;\n\n /**\n * The minimum footer height in pixels.\n * Pass falsey for no footer\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() footerHeight: number = 0;\n\n /**\n * If the table should use external paging\n * otherwise its assumed that all data is preloaded.\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() externalPaging: boolean = false;\n\n /**\n * If the table should use external sorting or\n * the built-in basic sorting.\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() externalSorting: boolean = false;\n\n /**\n * The page size to be shown. \n * Default value: `undefined`\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() limit: number = undefined;\n\n /**\n * The total count of all rows. \n * Default value: `0`\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() set count(val: number) {\n this._count = val;\n\n // recalculate sizes/etc\n this.recalculate();\n }\n\n /**\n * Gets the count.\n * \n * @readonly\n * @type {number}\n * @memberOf DatatableComponent\n */\n get count(): number {\n return this._count;\n }\n\n /**\n * The current offset ( page - 1 ) shown. \n * Default value: `0`\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() offset: number = 0;\n\n /**\n * Show the linear loading bar. \n * Default value: `false`\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() loadingIndicator: boolean = false;\n\n /**\n * Type of row selection. Options are: \n * \n * - `single`\n * - `multi`\n * - `multiShift`. \n * \n * For no selection pass a `falsey`. \n * Default value: `undefined`\n * \n * @type {SelectionType}\n * @memberOf DatatableComponent\n */\n @Input() selectionType: SelectionType;\n\n /**\n * Enable/Disable ability to re-order columns\n * by dragging them.\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() reorderable: boolean = true;\n\n /**\n * The type of sorting\n * \n * @type {SortType}\n * @memberOf DatatableComponent\n */\n @Input() sortType: SortType = SortType.single;\n\n /**\n * Array of sorted columns by property and type. \n * Default value: `[]`\n * \n * @type {any[]}\n * @memberOf DatatableComponent\n */\n @Input() sorts: any[] = [];\n\n /**\n * Row detail template\n * \n * @type {TemplateRef}\n * @memberOf DatatableComponent\n */\n @Input() rowDetailTemplate: TemplateRef;\n\n /**\n * Css class overrides\n * \n * @type {*}\n * @memberOf DatatableComponent\n */\n @Input() cssClasses: any = {\n sortAscending: 'icon-down',\n sortDescending: 'icon-up',\n pagerLeftArrow: 'icon-left',\n pagerRightArrow: 'icon-right',\n pagerPrevious: 'icon-prev',\n pagerNext: 'icon-skip'\n };\n\n /**\n * Message overrides for localization\n * \n * @type {*}\n * @memberOf DatatableComponent\n */\n @Input() messages: any = {\n\n // Message to show when array is presented\n // but contains no values\n emptyMessage: 'No data to display',\n\n // Footer total message\n totalMessage: 'total'\n\n };\n\n /**\n * This will be used when displaying or selecting rows.\n * when tracking/comparing them, we'll use the value of this fn,\n * \n * (`fn(x) === fn(y)` instead of `x === y`)\n * \n * @memberOf DatatableComponent\n */\n @Input() rowIdentity: (x: any) => any = ((x: any) => x);\n\n /**\n * A boolean/function you can use to check whether you want\n * to select a particular row based on a criteria. Example:\n * \n * (selection) => { \n * return selection !== 'Ethel Price'; \n * }\n * \n * @type {*}\n * @memberOf DatatableComponent\n */\n @Input() selectCheck: any;\n\n /**\n * Property to which you can use for custom tracking of rows.\n * Example: 'name'\n * \n * @type {string}\n * @memberOf DatatableComponent\n */\n @Input() trackByProp: string;\n\n /**\n * Body was scrolled typically in a `scrollbarV:true` scenario.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() scroll: EventEmitter = new EventEmitter();\n\n /**\n * A cell or row was focused via keyboard or mouse click.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() activate: EventEmitter = new EventEmitter();\n\n /**\n * A cell or row was selected.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() select: EventEmitter = new EventEmitter();\n\n /**\n * Column sort was invoked.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() sort: EventEmitter = new EventEmitter();\n\n /**\n * The table was paged either triggered by the pager or the body scroll.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() page: EventEmitter = new EventEmitter();\n\n /**\n * Row detail row visbility was toggled.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() detailToggle: EventEmitter = new EventEmitter();\n\n /**\n * Columns were re-ordered.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() reorder: EventEmitter = new EventEmitter();\n\n /**\n * Column was resized.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() resize: EventEmitter = new EventEmitter();\n\n /**\n * The context menu was invoked on a row.\n * \n * @memberOf DatatableComponent\n */\n @Output() rowContextmenu = new EventEmitter<{ event: MouseEvent, row: any }>(false);\n\n /**\n * CSS class applied if the header height if fixed height.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.fixed-header')\n get isFixedHeader(): boolean {\n const headerHeight: number|string = this.headerHeight;\n return (typeof headerHeight === 'string') ?\n (headerHeight) !== 'auto' : true;\n }\n\n /**\n * CSS class applied to the root element if\n * the row heights are fixed heights.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.fixed-row')\n get isFixedRow(): boolean {\n const rowHeight: number|string = this.rowHeight;\n return (typeof rowHeight === 'string') ?\n (rowHeight) !== 'auto' : true;\n }\n\n /**\n * CSS class applied to root element if\n * vertical scrolling is enabled.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.scroll-vertical')\n get isVertScroll(): boolean {\n return this.scrollbarV;\n }\n\n /**\n * CSS class applied to the root element\n * if the horziontal scrolling is enabled.\n * \n * @readonly\n * \n * @memberOf DatatableComponent\n */\n @HostBinding('class.scroll-horz')\n get isHorScroll() {\n return this.scrollbarH;\n }\n\n /**\n * CSS class applied to root element is selectable.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.selectable')\n get isSelectable(): boolean {\n return this.selectionType !== undefined;\n }\n\n /**\n * CSS class applied to root is checkbox selection.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.checkbox-selection')\n get isCheckboxSelection(): boolean {\n return this.selectionType === SelectionType.checkbox;\n }\n\n /**\n * CSS class applied to root if cell selection.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.cell-selection')\n get isCellSelection(): boolean {\n return this.selectionType === SelectionType.cell;\n }\n\n /**\n * CSS class applied to root if single select.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.single-selection')\n get isSingleSelection(): boolean {\n return this.selectionType === SelectionType.single;\n }\n \n /**\n * CSS class added to root element if mulit select\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.multi-selection')\n get isMultiSelection(): boolean {\n return this.selectionType === SelectionType.multi || \n this.selectionType === SelectionType.multiShift;\n }\n\n /**\n * Column templates gathered from `ContentChildren`\n * if described in your markup.\n * \n * @memberOf DatatableComponent\n */\n @ContentChildren(DataTableColumnDirective)\n set columnTemplates(val: QueryList) {\n this._columnTemplates = val;\n\n if(val) {\n // only set this if results were brought back\n const arr = val.toArray();\n\n if(arr.length) {\n // translate them to normal objects\n this.columns = translateTemplates(arr);\n }\n }\n }\n\n /**\n * Returns the column templates.\n * \n * @readonly\n * @type {QueryList}\n * @memberOf DatatableComponent\n */\n get columnTemplates(): QueryList {\n return this._columnTemplates;\n }\n\n /**\n * Row Detail templates gathered from the ContentChild\n * \n * @memberOf DatatableComponent\n */\n @ContentChild(DatatableRowDetailDirective)\n set rowDetailTemplateChild(val: DatatableRowDetailDirective) {\n this._rowDetailTemplateChild = val;\n if(val) this.rowDetailTemplate = val.rowDetailTemplate;\n }\n\n /**\n * Returns the row templates.\n * \n * @readonly\n * @type {DatatableRowDetailDirective}\n * @memberOf DatatableComponent\n */\n get rowDetailTemplateChild(): DatatableRowDetailDirective {\n return this._rowDetailTemplateChild;\n }\n\n /**\n * Reference to the body component for manually\n * invoking functions on the body.\n * \n * @private\n * @type {DataTableBodyComponent}\n * @memberOf DatatableComponent\n */\n @ViewChild(DataTableBodyComponent)\n private bodyComponent: DataTableBodyComponent;\n\n /**\n * Returns if all rows are selected.\n * \n * @readonly\n * @private\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n private get allRowsSelected(): boolean {\n return this.selected.length === this.rows.length;\n }\n\n private element: HTMLElement;\n private innerWidth: number;\n private pageSize: number;\n private bodyHeight: number;\n private rowCount: number;\n private offsetX: number = 0;\n\n private _rows: any[];\n private _columns: any[];\n private _count: number = 0;\n private _columnTemplates: QueryList;\n private _rowDetailTemplateChild: DatatableRowDetailDirective;\n\n constructor(element: ElementRef) {\n // get ref to elm for measuring\n this.element = element.nativeElement;\n }\n\n /**\n * Lifecycle hook that is called after data-bound \n * properties of a directive are initialized.\n * \n * @memberOf DatatableComponent\n */\n ngOnInit(): void {\n // need to call this immediatly to size\n // if the table is hidden the visibility\n // listener will invoke this itself upon show\n this.recalculate();\n }\n\n /**\n * Lifecycle hook that is called after a component's \n * view has been fully initialized.\n * \n * @memberOf DatatableComponent\n */\n ngAfterViewInit(): void {\n // this has to be done to prevent the change detection\n // tree from freaking out because we are readjusting\n setTimeout(() => this.recalculate());\n }\n\n /**\n * Toggle the expansion of the row\n *\n * @param rowIndex\n */\n toggleExpandRow(row: any): void {\n // Should we write a guard here??\n this.bodyComponent.toggleRowExpansion(row);\n }\n\n /**\n * API method to expand all the rows.\n * \n * @memberOf DatatableComponent\n */\n expandAllRows(): void {\n this.bodyComponent.toggleAllRows(true);\n }\n\n /**\n * API method to collapse all the rows.\n * \n * @memberOf DatatableComponent\n */\n collapseAllRows(): void {\n this.bodyComponent.toggleAllRows(false);\n }\n\n /**\n * Recalc's the sizes of the grid.\n * \n * Updated automatically on changes to:\n * \n * - Columns\n * - Rows\n * - Paging related\n * \n * Also can be manually invoked or upon window resize.\n * \n * @memberOf DatatableComponent\n */\n recalculate(): void {\n this.recalculateDims();\n this.recalculateColumns();\n }\n\n /**\n * Window resize handler to update sizes.\n * \n * @memberOf DatatableComponent\n */\n @HostListener('window:resize')\n @throttleable(5)\n onWindowResize(): void {\n this.recalculate();\n }\n\n /**\n * Recalulcates the column widths based on column width\n * distribution mode and scrollbar offsets.\n * \n * @param {any[]} [columns=this.columns]\n * @param {number} [forceIdx=false]\n * @param {boolean} [allowBleed=this.scrollH]\n * @returns {any[]}\n * \n * @memberOf DatatableComponent\n */\n recalculateColumns(\n columns: any[] = this.columns, \n forceIdx: number = -1, \n allowBleed: boolean = this.scrollbarH): any[] {\n\n if (!columns) return;\n\n let width = this.innerWidth;\n if (this.scrollbarV) {\n width = width - scrollbarWidth;\n }\n\n if (this.columnMode === ColumnMode.force) {\n forceFillColumnWidths(columns, width, forceIdx, allowBleed);\n } else if (this.columnMode === ColumnMode.flex) {\n adjustColumnWidths(columns, width);\n }\n\n return columns;\n }\n\n /**\n * Recalculates the dimensions of the table size.\n * Internally calls the page size and row count calcs too.\n * \n * @memberOf DatatableComponent\n */\n recalculateDims(): void {\n let { height, width } = this.element.getBoundingClientRect();\n this.innerWidth = Math.floor(width);\n\n if (this.scrollbarV) {\n if (this.headerHeight) height = height - this.headerHeight;\n if (this.footerHeight) height = height - this.footerHeight;\n this.bodyHeight = height;\n }\n\n this.pageSize = this.calcPageSize();\n this.rowCount = this.calcRowCount();\n }\n\n /**\n * Body triggered a page event.\n * \n * @param {*} { offset }\n * \n * @memberOf DatatableComponent\n */\n onBodyPage({ offset }: any): void {\n this.offset = offset;\n\n this.page.emit({\n count: this.count,\n pageSize: this.pageSize,\n limit: this.limit,\n offset: this.offset\n });\n }\n\n /**\n * The body triggered a scroll event.\n * \n * @param {MouseEvent} event\n * \n * @memberOf DatatableComponent\n */\n onBodyScroll(event: MouseEvent): void {\n this.offsetX = event.offsetX;\n this.scroll.emit(event);\n }\n\n /**\n * The footer triggered a page event.\n * \n * @param {*} event\n * \n * @memberOf DatatableComponent\n */\n onFooterPage(event: any) {\n this.offset = event.page - 1;\n this.bodyComponent.updateOffsetY(this.offset);\n\n this.page.emit({\n count: this.count,\n pageSize: this.pageSize,\n limit: this.limit,\n offset: this.offset\n });\n }\n\n /**\n * Recalculates the sizes of the page\n * \n * @param {any[]} [val=this.rows]\n * @returns {number}\n * \n * @memberOf DatatableComponent\n */\n calcPageSize(val: any[] = this.rows): number {\n // Keep the page size constant even if the row has been expanded.\n // This is because an expanded row is still considered to be a child of\n // the original row. Hence calculation would use rowHeight only.\n if (this.scrollbarV) {\n const size = Math.ceil(this.bodyHeight / this.rowHeight);\n return Math.max(size, 0);\n }\n\n // if limit is passed, we are paging\n if (this.limit !== undefined) return this.limit;\n\n // otherwise use row length\n if(val) return val.length;\n\n // other empty :(\n return 0;\n }\n\n /**\n * Calculates the row count.\n * \n * @param {any[]} [val=this.rows]\n * @returns {number}\n * \n * @memberOf DatatableComponent\n */\n calcRowCount(val: any[] = this.rows): number {\n if(!this.externalPaging) {\n if(!val) return 0;\n return val.length;\n }\n\n return this.count;\n }\n\n /**\n * The header triggered a column resize event.\n * \n * @param {*} { column, newValue }\n * \n * @memberOf DatatableComponent\n */\n onColumnResize({ column, newValue }: any): void {\n let idx: number;\n let cols = this.columns.map((c, i) => {\n c = Object.assign({}, c);\n\n if(c.$$id === column.$$id) {\n idx = i;\n c.width = newValue;\n\n // set this so we can force the column\n // width distribution to be to this value\n c.$$oldWidth = newValue;\n }\n\n return c;\n });\n\n this.recalculateColumns(cols, idx);\n this._columns = cols;\n\n this.resize.emit({\n column,\n newValue\n });\n }\n\n /**\n * The header triggered a column re-order event.\n * \n * @param {*} { column, newValue, prevValue }\n * \n * @memberOf DatatableComponent\n */\n onColumnReorder({ column, newValue, prevValue }: any): void {\n let cols = this.columns.map(c => {\n return Object.assign({}, c);\n });\n\n cols.splice(prevValue, 1);\n cols.splice(newValue, 0, column);\n this.columns = cols;\n\n this.reorder.emit({\n column,\n newValue,\n prevValue\n });\n }\n\n /**\n * The header triggered a column sort event.\n * \n * @param {*} event\n * \n * @memberOf DatatableComponent\n */\n onColumnSort(event: any): void {\n const { sorts } = event;\n\n // this could be optimized better since it will resort\n // the rows again on the 'push' detection...\n if (this.externalSorting === false) {\n // don't use normal setter so we don't resort\n this._rows = sortRows(this.rows, this.columns, sorts);\n }\n\n this.sorts = sorts;\n this.bodyComponent.updateOffsetY(0);\n this.sort.emit(event);\n }\n\n /**\n * Toggle all row selection\n * \n * @param {*} event\n * \n * @memberOf DatatableComponent\n */\n onHeaderSelect(event: any): void {\n if(this.selected.length === this.rows.length) {\n this.selected = [];\n } else {\n this.selected = [...this.rows];\n }\n\n this.select.emit({\n selected: this.selected\n });\n }\n\n /**\n * A row was selected from body\n * \n * @param {*} event\n * \n * @memberOf DatatableComponent\n */\n onBodySelect(event: any): void {\n this.select.emit(event);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/datatable.component.ts","import {\r\n Component, Output, EventEmitter, ChangeDetectionStrategy, Input\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-footer',\r\n template: `\r\n \r\n
{{rowCount.toLocaleString()}} {{totalMessage}}
\r\n \r\n \r\n \r\n `,\r\n host: {\r\n class: 'datatable-footer'\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DataTableFooterComponent {\r\n\r\n @Input() footerHeight: number;\r\n @Input() rowCount: number;\r\n @Input() pageSize: number;\r\n @Input() offset: number;\r\n @Input() pagerLeftArrowIcon: string;\r\n @Input() pagerRightArrowIcon: string;\r\n @Input() pagerPreviousIcon: string;\r\n @Input() pagerNextIcon: string;\r\n @Input() totalMessage: string;\r\n\r\n @Output() page: EventEmitter = new EventEmitter();\r\n\r\n get isVisible() {\r\n return (this.rowCount / this.pageSize) > 1;\r\n }\r\n\r\n get curPage() {\r\n return this.offset + 1;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/footer.component.ts","export * from './footer.component';\r\nexport * from './pager.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/index.ts","import {\r\n Component, Input, Output, EventEmitter, ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-pager',\r\n template: `\r\n
    \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n \r\n \r\n {{pg.text}}\r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
\r\n `,\r\n host: {\r\n class: 'datatable-pager'\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DataTablePagerComponent {\r\n\r\n @Input() pagerLeftArrowIcon: string;\r\n @Input() pagerRightArrowIcon: string;\r\n @Input() pagerPreviousIcon: string;\r\n @Input() pagerNextIcon: string;\r\n\r\n @Input()\r\n set size(val: number) {\r\n this._size = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get size(): number {\r\n return this._size;\r\n }\r\n\r\n @Input()\r\n set count(val: number) {\r\n this._count = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get count(): number {\r\n return this._count;\r\n }\r\n\r\n @Input()\r\n set page(val: number) {\r\n this._page = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get page(): number {\r\n return this._page;\r\n }\r\n\r\n get totalPages(): number {\r\n const count = this.size < 1 ? 1 : Math.ceil(this.count / this.size);\r\n return Math.max(count || 0, 1);\r\n }\r\n\r\n @Output() change: EventEmitter = new EventEmitter();\r\n\r\n private _count: number = 0;\r\n private _page: number = 1;\r\n private _size: number = 0;\r\n private pages: any;\r\n\r\n canPrevious(): boolean {\r\n return this.page > 1;\r\n }\r\n\r\n canNext(): boolean {\r\n return this.page < this.totalPages;\r\n }\r\n\r\n prevPage(): void {\r\n this.selectPage(this.page - 1);\r\n }\r\n\r\n nextPage(): void {\r\n this.selectPage(this.page + 1);\r\n }\r\n\r\n selectPage(page: number): void {\r\n if (page > 0 && page <= this.totalPages && page !== this.page) {\r\n this.page = page;\r\n\r\n this.change.emit({\r\n page\r\n });\r\n }\r\n }\r\n\r\n calcPages(page?: number): any[] {\r\n let pages: {number: number, text: string}[] = [];\r\n let startPage = 1;\r\n let endPage = this.totalPages;\r\n let maxSize = 5;\r\n const isMaxSized = maxSize < this.totalPages;\r\n\r\n page = page || this.page;\r\n\r\n if (isMaxSized) {\r\n startPage = ((Math.ceil(page / maxSize) - 1) * maxSize) + 1;\r\n endPage = Math.min(startPage + maxSize - 1, this.totalPages);\r\n }\r\n\r\n for (let num = startPage; num <= endPage; num++) {\r\n pages.push({\r\n number: num,\r\n text: num\r\n });\r\n }\r\n\r\n return pages;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/pager.component.ts","import {\r\n Component, Input, EventEmitter, Output, HostBinding\r\n} from '@angular/core';\r\n\r\nimport { SortDirection, SortType } from '../../types';\r\nimport { nextSortDir } from '../../utils';\r\n\r\n@Component({\r\n selector: 'datatable-header-cell',\r\n template: `\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n `\r\n})\r\nexport class DataTableHeaderCellComponent {\r\n\r\n @Input() sortType: SortType;\r\n @Input() column: any;\r\n @Input() sortAscendingIcon: string;\r\n @Input() sortDescendingIcon: string;\r\n @Input() allRowsSelected: boolean;\r\n\r\n @HostBinding('style.height.px')\r\n @Input() headerHeight: number;\r\n\r\n @Input() set sorts(val: any[]) {\r\n this._sorts = val;\r\n this.sortDir = this.calcSortDir(val);\r\n }\r\n\r\n get sorts(): any[] {\r\n return this._sorts;\r\n }\r\n\r\n @Output() sort: EventEmitter = new EventEmitter();\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class')\r\n get columnCssClasses(): any {\r\n let cls = 'datatable-header-cell';\r\n\r\n if(this.column.sortable) cls += ' sortable';\r\n if(this.column.resizeable) cls += ' resizeable';\r\n\r\n const sortDir = this.sortDir;\r\n if(sortDir) {\r\n cls += ` sort-active sort-${sortDir}`;\r\n }\r\n\r\n return cls;\r\n }\r\n\r\n @HostBinding('attr.title')\r\n private get name(): string {\r\n return this.column.name || this.column.prop;\r\n }\r\n\r\n @HostBinding('style.minWidth.px')\r\n private get minWidth(): number {\r\n return this.column.minWidth;\r\n }\r\n\r\n @HostBinding('style.maxWidth.px')\r\n private get maxWidth(): number {\r\n return this.column.maxWidth;\r\n }\r\n\r\n @HostBinding('style.width.px')\r\n private get width(): number {\r\n return this.column.width;\r\n }\r\n\r\n private sortDir: SortDirection;\r\n private _sorts: any[];\r\n\r\n sortClasses(dir: SortDirection): any {\r\n let result = {};\r\n\r\n if(dir === SortDirection.asc) {\r\n result[`sort-asc ${this.sortAscendingIcon}`] = true;\r\n } else if(dir === SortDirection.desc) {\r\n result[`sort-desc ${this.sortDescendingIcon}`] = true;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n calcSortDir(sorts: any[]) {\r\n if(sorts && this.column) {\r\n const sort = sorts.find((s: any) => {\r\n return s.prop === this.column.prop;\r\n });\r\n\r\n if(sort) return sort.dir;\r\n }\r\n }\r\n\r\n onSort(): void {\r\n if(!this.column.sortable) return;\r\n\r\n const newValue = nextSortDir(this.sortType, this.sortDir);\r\n this.sort.emit({\r\n column: this.column,\r\n prevValue: this.sortDir,\r\n newValue\r\n });\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/header-cell.component.ts","import {\r\n Component, Output, EventEmitter, Input, HostBinding\r\n} from '@angular/core';\r\nimport { SortType } from '../../types';\r\nimport { columnsByPin, columnGroupWidths, columnsByPinArr, translateXY } from '../../utils';\r\nimport { DataTableColumnDirective } from '../columns';\r\n\r\n@Component({\r\n selector: 'datatable-header',\r\n template: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n host: {\r\n class: 'datatable-header'\r\n }\r\n})\r\nexport class DataTableHeaderComponent {\r\n\r\n @Input() sortAscendingIcon: any;\r\n @Input() sortDescendingIcon: any;\r\n @Input() scrollbarH: boolean;\r\n @Input() innerWidth: number;\r\n @Input() offsetX: number;\r\n @Input() sorts: any[];\r\n @Input() sortType: SortType;\r\n @Input() allRowsSelected: boolean;\r\n\r\n @HostBinding('style.height')\r\n @Input() set headerHeight(val: any) {\r\n if(val !== 'auto') { \r\n this._headerHeight = `${val}px`;\r\n } else {\r\n this._headerHeight = val;\r\n }\r\n }\r\n\r\n get headerHeight() {\r\n return this._headerHeight;\r\n }\r\n\r\n @Input() set columns(val: any[]) {\r\n this._columns = val;\r\n\r\n const colsByPin = columnsByPin(val);\r\n this.columnsByPin = columnsByPinArr(val);\r\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\r\n }\r\n\r\n get columns(): any[] { \r\n return this._columns; \r\n }\r\n\r\n @Output() sort: EventEmitter = new EventEmitter();\r\n @Output() reorder: EventEmitter = new EventEmitter();\r\n @Output() resize: EventEmitter = new EventEmitter();\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n private columnsByPin: any;\r\n private columnGroupWidths: any;\r\n private _columns: any[];\r\n private _headerHeight: string;\r\n\r\n @HostBinding('style.width')\r\n private get headerWidth(): string {\r\n if(this.scrollbarH) {\r\n return this.innerWidth + 'px';\r\n }\r\n\r\n return '100%';\r\n }\r\n\r\n onColumnResized(width: number, column: DataTableColumnDirective) {\r\n if (width <= column.minWidth) {\r\n width = column.minWidth;\r\n } else if(width >= column.maxWidth) {\r\n width = column.maxWidth;\r\n }\r\n\r\n this.resize.emit({\r\n column,\r\n prevValue: column.width,\r\n newValue: width\r\n });\r\n }\r\n\r\n onColumnReordered({ prevIndex, newIndex, model }: any) {\r\n this.reorder.emit({\r\n column: model,\r\n prevValue: prevIndex,\r\n newValue: newIndex\r\n });\r\n }\r\n\r\n onSort({ column, prevValue, newValue }: any) {\r\n const sorts = this.calcNewSorts(column, prevValue, newValue);\r\n this.sort.emit({\r\n sorts,\r\n column,\r\n prevValue,\r\n newValue\r\n });\r\n }\r\n\r\n calcNewSorts(column: any, prevValue: number, newValue: number) {\r\n let idx = 0;\r\n\r\n let sorts = this.sorts.map((s, i) => {\r\n s = Object.assign({}, s);\r\n if(s.prop === column.prop) idx = i;\r\n return s;\r\n });\r\n\r\n if (newValue === undefined) {\r\n sorts.splice(idx, 1);\r\n } else if (prevValue) {\r\n sorts[idx].dir = newValue;\r\n } else {\r\n if (this.sortType === SortType.single) {\r\n sorts.splice(0, this.sorts.length);\r\n }\r\n\r\n sorts.push({ dir: newValue, prop: column.prop });\r\n }\r\n\r\n return sorts;\r\n }\r\n\r\n stylesByGroup(group: string) {\r\n const widths = this.columnGroupWidths;\r\n const offsetX = this.offsetX;\r\n\r\n let styles = {\r\n width: `${widths[group]}px`\r\n };\r\n\r\n if(group === 'center') {\r\n translateXY(styles, offsetX * -1, 0);\r\n } else if(group === 'right') {\r\n const totalDiff = widths.total - this.innerWidth;\r\n const offset = totalDiff * -1;\r\n translateXY(styles, offset, 0);\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/header.component.ts","export * from './header.component';\r\nexport * from './header-cell.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/index.ts","export * from './datatable.component';\r\n\r\nexport * from './header';\r\nexport * from './body';\r\nexport * from './footer';\r\n\r\nexport * from './columns';\r\nexport * from './row-detail';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/index.ts","export * from './row-detail.directive';\r\nexport * from './row-detail-template.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/index.ts","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[swui-datatable-row-detail-template]'\r\n})\r\nexport class DatatableRowDetailTemplateDirective {\r\n constructor(public template: TemplateRef) { };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/row-detail-template.directive.ts","import { Directive, TemplateRef, ContentChild } from '@angular/core';\r\nimport { DatatableRowDetailTemplateDirective } from './row-detail-template.directive';\r\n\r\n@Directive({ selector: 'swui-datatable-row-detail' })\r\nexport class DatatableRowDetailDirective {\r\n\r\n @ContentChild(DatatableRowDetailTemplateDirective, { read: TemplateRef }) \r\n template: TemplateRef;\r\n\r\n get rowDetailTemplate(): TemplateRef {\r\n return this.template;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/row-detail.directive.ts","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport {\r\n DatatableComponent,\r\n DataTableColumnDirective,\r\n DataTableHeaderComponent,\r\n DataTableBodyComponent,\r\n DataTableFooterComponent,\r\n DataTableHeaderCellComponent,\r\n DataTablePagerComponent,\r\n DataTableBodyRowComponent,\r\n DataTableRowWrapperComponent,\r\n ProgressBarComponent,\r\n DataTableBodyCellComponent,\r\n DatatableRowDetailDirective,\r\n ScrollerComponent,\r\n DataTableSelectionComponent,\r\n DataTableColumnHeaderDirective,\r\n DataTableColumnCellDirective,\r\n DatatableRowDetailTemplateDirective\r\n} from './components';\r\n\r\nimport {\r\n VisibilityDirective,\r\n LongPressDirective,\r\n ResizeableDirective,\r\n OrderableDirective,\r\n DraggableDirective\r\n} from './directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n VisibilityDirective,\r\n DraggableDirective,\r\n ResizeableDirective,\r\n OrderableDirective,\r\n LongPressDirective,\r\n ScrollerComponent,\r\n DatatableComponent,\r\n DataTableColumnDirective,\r\n DataTableHeaderComponent,\r\n DataTableHeaderCellComponent,\r\n DataTableBodyComponent,\r\n DataTableFooterComponent,\r\n DataTablePagerComponent,\r\n ProgressBarComponent,\r\n DataTableBodyRowComponent,\r\n DataTableRowWrapperComponent,\r\n DatatableRowDetailDirective,\r\n DatatableRowDetailTemplateDirective,\r\n DataTableBodyCellComponent,\r\n DataTableSelectionComponent,\r\n DataTableColumnHeaderDirective,\r\n DataTableColumnCellDirective\r\n ],\r\n exports: [\r\n DatatableComponent,\r\n DatatableRowDetailDirective,\r\n DatatableRowDetailTemplateDirective,\r\n DataTableColumnDirective,\r\n DataTableColumnHeaderDirective,\r\n DataTableColumnCellDirective\r\n ]\r\n})\r\nexport class Angular2DataTableModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/datatable.module.ts","import { Directive, ElementRef, HostListener, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs/Rx';\r\n\r\n/**\r\n * Draggable Directive for Angular2\r\n *\r\n * Inspiration:\r\n * https://github.com/AngularClass/angular2-examples/blob/master/rx-draggable/directives/draggable.ts\r\n * http://stackoverflow.com/questions/35662530/how-to-implement-drag-and-drop-in-angular2\r\n *\r\n */\r\n@Directive({ selector: '[draggable]' })\r\nexport class DraggableDirective {\r\n\r\n @Input() dragModel: any;\r\n @Input() dragX: boolean = true;\r\n @Input() dragY: boolean = true;\r\n\r\n @Output() dragStart: EventEmitter = new EventEmitter();\r\n @Output() dragging: EventEmitter = new EventEmitter();\r\n @Output() dragEnd: EventEmitter = new EventEmitter();\r\n\r\n element: HTMLElement;\r\n private isDragging: boolean = false;\r\n private subscription: Subscription;\r\n\r\n constructor(element: ElementRef) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n onMouseup(event: MouseEvent) {\r\n this.isDragging = false;\r\n this.element.classList.remove('dragging');\r\n\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n this.dragEnd.emit({\r\n event,\r\n element: this.element,\r\n model: this.dragModel\r\n });\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMousedown(event: MouseEvent) {\r\n if ( (event.target).classList.contains('draggable')) {\r\n event.preventDefault();\r\n this.isDragging = true;\r\n\r\n const mouseDownPos = { x: event.clientX, y: event.clientY };\r\n this.subscription = Observable.fromEvent(document, 'mousemove')\r\n .subscribe((ev: MouseEvent) => this.move(ev, mouseDownPos));\r\n\r\n this.dragStart.emit({\r\n event,\r\n element: this.element,\r\n model: this.dragModel\r\n });\r\n }\r\n }\r\n\r\n move(event: MouseEvent, mouseDownPos: {x: number, y: number }): void {\r\n if (!this.dragging) return;\r\n\r\n const x = event.clientX - mouseDownPos.x;\r\n const y = event.clientY - mouseDownPos.y;\r\n\r\n if (this.dragX) this.element.style.left = `${x}px`;\r\n if (this.dragY) this.element.style.top = `${y}px`;\r\n\r\n if (this.dragX || this.dragY) {\r\n this.element.classList.add('dragging');\r\n\r\n this.dragging.emit({\r\n event,\r\n element: this.element,\r\n model: this.dragModel\r\n });\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/draggable.directive.ts","export * from './draggable.directive';\r\nexport * from './long-press.directive';\r\nexport * from './orderable.directive';\r\nexport * from './resizeable.directive';\r\nexport * from './visibility.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/index.ts","import {\r\n Directive,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\n\r\n@Directive({ selector: '[long-press]' })\r\nexport class LongPressDirective {\r\n\r\n @Input() duration: number = 500;\r\n\r\n @Output() longPress: EventEmitter = new EventEmitter();\r\n @Output() longPressing: EventEmitter = new EventEmitter();\r\n @Output() longPressEnd: EventEmitter = new EventEmitter();\r\n\r\n private pressing: boolean;\r\n private isLongPressing: boolean;\r\n private timeout: any;\r\n private mouseX: number = 0;\r\n private mouseY: number = 0;\r\n\r\n @HostBinding('class.press')\r\n get press() { return this.pressing; }\r\n\r\n @HostBinding('class.longpress')\r\n get isLongPress() { return this.longPressing; }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event: MouseEvent) {\r\n // don't do right/middle clicks\r\n if(event.which !== 1) return;\r\n\r\n this.mouseX = event.clientX;\r\n this.mouseY = event.clientY;\r\n\r\n this.pressing = true;\r\n this.isLongPressing = false;\r\n\r\n this.timeout = setTimeout(() => {\r\n this.isLongPressing = true;\r\n this.longPress.emit(event);\r\n this.loop(event);\r\n }, this.duration);\r\n\r\n this.loop(event);\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n onMouseMove(event: MouseEvent) {\r\n if(this.pressing && !this.longPressing) {\r\n const xThres = (event.clientX - this.mouseX) > 10;\r\n const yThres = (event.clientY - this.mouseY) > 10;\r\n if(xThres || yThres) {\r\n this.endPress();\r\n }\r\n }\r\n }\r\n\r\n loop(event: Event) {\r\n if(this.longPressing) {\r\n this.timeout = setTimeout(() => {\r\n this.longPressing.emit(event);\r\n this.loop(event);\r\n }, 50);\r\n }\r\n }\r\n\r\n endPress() {\r\n clearTimeout(this.timeout);\r\n this.isLongPressing = false;\r\n this.pressing = false;\r\n this.longPressEnd.emit(true);\r\n }\r\n\r\n @HostListener('mouseup')\r\n onMouseUp() { this.endPress(); }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/long-press.directive.ts","import {\r\n Directive, Output, EventEmitter, ContentChildren,\r\n QueryList, KeyValueDiffers\r\n} from '@angular/core';\r\n\r\nimport { DraggableDirective } from './draggable.directive';\r\n\r\n@Directive({ selector: '[orderable]' })\r\nexport class OrderableDirective {\r\n\r\n @Output() reorder: EventEmitter = new EventEmitter();\r\n\r\n @ContentChildren(DraggableDirective, { descendants: true })\r\n private draggables: QueryList;\r\n\r\n private positions: any;\r\n private differ: any;\r\n\r\n constructor(differs: KeyValueDiffers) {\r\n this.differ = differs.find({}).create(null);\r\n }\r\n\r\n ngAfterContentInit() {\r\n // HACK: Investigate Better Way\r\n this.updateSubscriptions();\r\n this.draggables.changes.subscribe(\r\n this.updateSubscriptions.bind(this));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.draggables.forEach(d => {\r\n d.dragStart.unsubscribe();\r\n d.dragEnd.unsubscribe();\r\n });\r\n }\r\n\r\n updateSubscriptions() {\r\n const diffs = this.differ.diff(this.draggables.toArray());\r\n\r\n if(diffs) {\r\n const subscribe = ({ currentValue, previousValue }: any) => {\r\n unsubscribe({ previousValue });\r\n\r\n if(currentValue) {\r\n currentValue.dragStart.subscribe(this.onDragStart.bind(this));\r\n currentValue.dragEnd.subscribe(this.onDragEnd.bind(this));\r\n }\r\n };\r\n\r\n const unsubscribe = ({ previousValue }: any) => {\r\n if(previousValue) {\r\n previousValue.dragStart.unsubscribe();\r\n previousValue.dragEnd.unsubscribe();\r\n }\r\n };\r\n\r\n diffs.forEachAddedItem(subscribe.bind(this));\r\n diffs.forEachChangedItem(subscribe.bind(this));\r\n diffs.forEachRemovedItem(unsubscribe.bind(this));\r\n }\r\n }\r\n\r\n onDragStart() {\r\n this.positions = {};\r\n\r\n let i = 0;\r\n for(let dragger of this.draggables.toArray()) {\r\n let elm = dragger.element;\r\n this.positions[dragger.dragModel.prop] = {\r\n left: parseInt(elm.offsetLeft.toString(), 0),\r\n index: i++\r\n };\r\n }\r\n }\r\n\r\n onDragEnd({ element, model }: any) {\r\n const newPos = parseInt(element.offsetLeft.toString(), 0);\r\n const prevPos = this.positions[model.prop];\r\n\r\n let i = 0;\r\n for(let prop in this.positions) {\r\n let pos = this.positions[prop];\r\n\r\n let movedLeft = newPos < pos.left && prevPos.left > pos.left;\r\n let movedRight = newPos > pos.left && prevPos.left < pos.left;\r\n\r\n if(movedLeft || movedRight) {\r\n this.reorder.emit({\r\n prevIndex: prevPos.index,\r\n newIndex: i,\r\n model\r\n });\r\n }\r\n\r\n i++;\r\n }\r\n\r\n element.style.left = 'auto';\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/orderable.directive.ts","import { Directive, ElementRef, HostListener, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs/Rx';\r\n\r\n@Directive({\r\n selector: '[resizeable]',\r\n host: {\r\n '[class.resizeable]': 'resizeEnabled'\r\n }\r\n})\r\nexport class ResizeableDirective {\r\n\r\n @Input() resizeEnabled: boolean = true;\r\n @Input() minWidth: number;\r\n @Input() maxWidth: number;\r\n\r\n @Output() resize: EventEmitter = new EventEmitter();\r\n\r\n private element: HTMLElement;\r\n private subscription: Subscription;\r\n private resizing: boolean = false;\r\n\r\n constructor(element: ElementRef) {\r\n this.element = element.nativeElement;\r\n\r\n if (this.resizeEnabled) {\r\n const node = document.createElement('span');\r\n node.classList.add('resize-handle');\r\n this.element.appendChild(node);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n onMouseup() {\r\n this.resizing = false;\r\n\r\n if (this.subscription && !this.subscription.closed) {\r\n this.subscription.unsubscribe();\r\n this.resize.emit(this.element.clientWidth);\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMousedown(event: MouseEvent) {\r\n const isHandle = ((event.target)).classList.contains('resize-handle');\r\n const initialWidth = this.element.clientWidth;\r\n const mouseDownScreenX = event.screenX;\r\n\r\n if (isHandle) {\r\n event.stopPropagation();\r\n this.resizing = true;\r\n\r\n this.subscription = Observable.fromEvent(document, 'mousemove')\r\n .subscribe((e: MouseEvent) => this.move(e, initialWidth, mouseDownScreenX));\r\n }\r\n }\r\n\r\n move(event: MouseEvent, initialWidth: number, mouseDownScreenX: number): void {\r\n const movementX = event.screenX - mouseDownScreenX;\r\n const newWidth = initialWidth + movementX;\r\n\r\n const overMinWidth = !this.minWidth || newWidth >= this.minWidth;\r\n const underMaxWidth = !this.maxWidth || newWidth <= this.maxWidth;\r\n\r\n if (overMinWidth && underMaxWidth) {\r\n this.element.style.width = `${newWidth}px`;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/resizeable.directive.ts","import {\r\n Directive, Output, EventEmitter, ElementRef, HostBinding, NgZone, OnInit, OnDestroy\r\n} from '@angular/core';\r\n\r\n/**\r\n * Visibility Observer Directive\r\n *\r\n * Usage:\r\n *\r\n * \t\t\r\n * \t\t\r\n *\r\n */\r\n@Directive({ selector: '[visibility-observer]' })\r\nexport class VisibilityDirective implements OnInit, OnDestroy {\r\n\r\n @HostBinding('class.visible') \r\n isVisible: boolean = false;\r\n\r\n @Output() visible: EventEmitter = new EventEmitter();\r\n\r\n private timeout: any;\r\n\r\n constructor(private element: ElementRef, private zone: NgZone) { }\r\n\r\n ngOnInit() {\r\n this.runCheck();\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.timeout);\r\n }\r\n\r\n onVisibilityChange() {\r\n // trigger zone recalc for columns\r\n this.zone.run(() => {\r\n this.isVisible = true;\r\n this.visible.emit(true);\r\n });\r\n }\r\n\r\n runCheck() {\r\n const check = () => {\r\n // https://davidwalsh.name/offsetheight-visibility\r\n const { offsetHeight, offsetWidth } = this.element.nativeElement;\r\n\r\n if (offsetHeight && offsetWidth) {\r\n clearTimeout(this.timeout);\r\n this.onVisibilityChange();\r\n } else {\r\n clearTimeout(this.timeout);\r\n this.zone.runOutsideAngular(() => {\r\n this.timeout = setTimeout(() => check(), 50);\r\n });\r\n }\r\n };\r\n\r\n setTimeout(() => check());\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/visibility.directive.ts","export * from './datatable.module'\r\nexport * from './types';\r\nexport * from './components';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.ts","export enum ClickType {\r\n single = 'single' as any,\r\n double = 'double' as any \r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/click.type.ts","export enum ColumnMode {\r\n standard = 'standard' as any,\r\n flex = 'flex' as any,\r\n force = 'force' as any\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/column-mode.type.ts","export * from './column-mode.type';\r\nexport * from './sort.type';\r\nexport * from './sort-direction.type';\r\nexport * from './selection.type';\r\nexport * from './click.type';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/index.ts","export enum SelectionType {\r\n single = 'single' as any,\r\n multi = 'multi' as any,\r\n multiShift = 'multiShift' as any,\r\n cell = 'cell' as any,\r\n checkbox = 'checkbox' as any\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/selection.type.ts","export enum SortDirection {\r\n asc = 'asc' as any,\r\n desc = 'desc' as any\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/sort-direction.type.ts","export enum SortType {\r\n single = 'single' as any,\r\n multi = 'multi' as any\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/sort.type.ts","/**\r\n * Converts strings from something to camel case\r\n * http://stackoverflow.com/questions/10425287/convert-dash-separated-string-to-camelcase\r\n * @param {string} str\r\n * @return {string} camel case string\r\n */\r\nexport function camelCase(str: string): string {\r\n // Replace special characters with a space\r\n str = str.replace(/[^a-zA-Z0-9 ]/g, ' ');\r\n // put a space before an uppercase letter\r\n str = str.replace(/([a-z](?=[A-Z]))/g, '$1 ');\r\n\r\n // Lower case first character and some other stuff\r\n str = str.replace(/([^a-zA-Z0-9 ])|^[0-9]+/g, '').trim().toLowerCase();\r\n\r\n // uppercase characters preceded by a space or number\r\n str = str.replace(/([ 0-9]+)([a-zA-Z])/g, function(a, b, c) {\r\n return b.trim() + c.toUpperCase();\r\n });\r\n\r\n return str;\r\n}\r\n\r\n/**\r\n * Converts strings from camel case to words\r\n * http://stackoverflow.com/questions/7225407/convert-camelcasetext-to-camel-case-text\r\n *\r\n * @export\r\n * @param {any} str\r\n * @returns string\r\n */\r\nexport function deCamelCase(str: string): string {\r\n return str\r\n .replace(/([A-Z])/g, (match) => ` ${match}`)\r\n .replace(/^./, (match) => match.toUpperCase());\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/camel-case.ts","import { DataTableColumnDirective } from '../components/columns';\r\nimport { camelCase, deCamelCase, id } from '../utils';\r\n\r\n/**\r\n * Sets the column defaults\r\n * \r\n * @export\r\n * @param {any[]} columns\r\n * @returns\r\n */\r\nexport function setColumnDefaults(columns: any[]) {\r\n if(!columns) return;\r\n\r\n for(let column of columns) {\r\n if(!column.$$id) {\r\n column.$$id = id();\r\n }\r\n\r\n // translate name => prop\r\n if(!column.prop && column.name) {\r\n column.prop = camelCase(column.name);\r\n }\r\n\r\n // format props if no name passed\r\n if(column.prop && !column.name) {\r\n column.name = deCamelCase(column.prop);\r\n }\r\n\r\n if(!column.hasOwnProperty('resizeable')) {\r\n column.resizeable = true;\r\n }\r\n\r\n if(!column.hasOwnProperty('sortable')) {\r\n column.sortable = true;\r\n }\r\n\r\n if(!column.hasOwnProperty('draggable')) {\r\n column.draggable = true;\r\n }\r\n\r\n if(!column.hasOwnProperty('canAutoResize')) {\r\n column.canAutoResize = true;\r\n }\r\n\r\n if(!column.hasOwnProperty('width')) {\r\n column.width = 150;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Translates templates definitions to objects\r\n * \r\n * @export\r\n * @param {DataTableColumnDirective[]} templates\r\n * @returns {any[]}\r\n */\r\nexport function translateTemplates(templates: DataTableColumnDirective[]): any[] {\r\n let result: any[] = [];\r\n\r\n for(const temp of templates) {\r\n let col: any = {};\r\n\r\n const props = Object.getOwnPropertyNames(temp);\r\n for(const prop of props) {\r\n col[prop] = temp[prop];\r\n }\r\n\r\n if(temp.headerTemplate) {\r\n col.headerTemplate = temp.headerTemplate;\r\n }\r\n\r\n if(temp.cellTemplate) {\r\n col.cellTemplate = temp.cellTemplate;\r\n }\r\n\r\n result.push(col);\r\n }\r\n\r\n return result;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/column-helper.ts","/**\r\n * Returns the columns by pin.\r\n * @param {array} cols\r\n */\r\nexport function columnsByPin(cols: any[]) {\r\n let ret: {left: any, center: any, right: any} = {\r\n left: [],\r\n center: [],\r\n right: []\r\n };\r\n\r\n if(cols) {\r\n for(let col of cols) {\r\n if(col.frozenLeft) {\r\n ret.left.push(col);\r\n } else if(col.frozenRight) {\r\n ret.right.push(col);\r\n } else {\r\n ret.center.push(col);\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n/**\r\n * Returns the widths of all group sets of a column\r\n * @param {object} groups\r\n * @param {array} all\r\n */\r\nexport function columnGroupWidths(groups: any, all: any) {\r\n return {\r\n left: columnTotalWidth(groups.left),\r\n center: columnTotalWidth(groups.center),\r\n right: columnTotalWidth(groups.right),\r\n total: columnTotalWidth(all)\r\n };\r\n}\r\n\r\n/**\r\n * Calculates the total width of all columns and their groups\r\n * @param {array} columns\r\n * @param {string} prop width to get\r\n */\r\nexport function columnTotalWidth(columns: any[], prop?: string) {\r\n let totalWidth = 0;\r\n\r\n if(columns) {\r\n for(let c of columns) {\r\n const has = prop && c[prop];\r\n const width = has ? c[prop] : c.width;\r\n totalWidth = totalWidth + parseFloat(width);\r\n }\r\n }\r\n\r\n return totalWidth;\r\n}\r\n\r\n/**\r\n * Calculates the total width of all columns and their groups\r\n * @param {array} columns\r\n * @param {string} property width to get\r\n */\r\nexport function columnsTotalWidth(columns: any, prop?: any) {\r\n let totalWidth = 0;\r\n\r\n for(let column of columns) {\r\n const has = prop && column[prop];\r\n totalWidth = totalWidth + (has ? column[prop] : column.width);\r\n }\r\n\r\n return totalWidth;\r\n}\r\n\r\nexport function columnsByPinArr(val: any) {\r\n let colsByPinArr: {type: string, columns: any}[] = [];\r\n const colsByPin = columnsByPin(val);\r\n\r\n colsByPinArr.push({ type: 'left', columns: colsByPin['left'] });\r\n colsByPinArr.push({ type: 'center', columns: colsByPin['center'] });\r\n colsByPinArr.push({ type: 'right', columns: colsByPin['right'] });\r\n\r\n return colsByPinArr;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/column.ts","/**\r\n * Returns a deep object given a string. zoo['animal.type']\r\n * @param {object} obj\r\n * @param {string} path\r\n */\r\nexport function deepValueGetter(obj: Object, path: string) {\r\n if(!obj || !path) return obj;\r\n\r\n let current = obj;\r\n let split = path.split('.');\r\n\r\n if(split.length) {\r\n for(let i = 0, len = split.length; i < len; i++) {\r\n current = current[split[i]];\r\n\r\n // if found undefined, return empty string\r\n if(current === undefined || current === null) return '';\r\n }\r\n }\r\n\r\n return current;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/deep-getter.ts","/**\r\n * Creates a unique object id.\r\n * http://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js\r\n */\r\nexport function id() {\r\n return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/id.ts","export * from './id';\r\nexport * from './column';\r\nexport * from './deep-getter';\r\nexport * from './camel-case';\r\nexport * from './keys';\r\nexport * from './math';\r\nexport * from './prefixes';\r\nexport * from './scrollbar-width';\r\nexport * from './selection';\r\nexport * from './translate';\r\nexport * from './throttle';\r\nexport * from './sort';\r\nexport * from './row-height-cache';\r\nexport * from './column-helper';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.ts","export enum Keys {\r\n up = 38,\r\n down = 40,\r\n return = 13,\r\n escape = 27,\r\n left = 37,\r\n right = 39\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/keys.ts","import { columnsByPin, columnsTotalWidth } from './column';\r\n\r\n/**\r\n * Calculates the Total Flex Grow\r\n * @param {array}\r\n */\r\nexport function getTotalFlexGrow(columns: any[]) {\r\n let totalFlexGrow = 0;\r\n\r\n for (let c of columns) {\r\n totalFlexGrow += c.flexGrow || 0;\r\n }\r\n\r\n return totalFlexGrow;\r\n}\r\n\r\n/**\r\n * Adjusts the column widths.\r\n * Inspired by: https://github.com/facebook/fixed-data-table/blob/master/src/FixedDataTableWidthHelper.js\r\n * @param {array} all columns\r\n * @param {int} width\r\n */\r\nexport function adjustColumnWidths(allColumns: any, expectedWidth: any) {\r\n let columnsWidth = columnsTotalWidth(allColumns);\r\n let totalFlexGrow = getTotalFlexGrow(allColumns);\r\n let colsByGroup = columnsByPin(allColumns);\r\n\r\n if (columnsWidth !== expectedWidth) {\r\n scaleColumns(colsByGroup, expectedWidth, totalFlexGrow);\r\n }\r\n}\r\n\r\n/**\r\n * Resizes columns based on the flexGrow property, while respecting manually set widths\r\n * @param {array} colsByGroup\r\n * @param {int} maxWidth\r\n * @param {int} totalFlexGrow\r\n */\r\nfunction scaleColumns(colsByGroup: any, maxWidth: any, totalFlexGrow: any) {\r\n // calculate total width and flexgrow points for coulumns that can be resized\r\n for(let attr in colsByGroup) {\r\n for(let column of colsByGroup[attr]) {\r\n if (!column.canAutoResize) {\r\n maxWidth -= column.width;\r\n totalFlexGrow -= column.flexGrow;\r\n } else {\r\n column.width = 0;\r\n }\r\n }\r\n }\r\n\r\n let hasMinWidth = {};\r\n let remainingWidth = maxWidth;\r\n\r\n // resize columns until no width is left to be distributed\r\n do {\r\n let widthPerFlexPoint = remainingWidth / totalFlexGrow;\r\n remainingWidth = 0;\r\n\r\n for(let attr in colsByGroup) {\r\n for(let column of colsByGroup[attr]) {\r\n // if the column can be resize and it hasn't reached its minimum width yet\r\n if (column.canAutoResize && !hasMinWidth[column.prop]) {\r\n let newWidth = column.width + column.flexGrow * widthPerFlexPoint;\r\n if (column.minWidth !== undefined && newWidth < column.minWidth) {\r\n remainingWidth += newWidth - column.minWidth;\r\n column.width = column.minWidth;\r\n hasMinWidth[column.prop] = true;\r\n } else {\r\n column.width = newWidth;\r\n }\r\n }\r\n }\r\n }\r\n } while (remainingWidth !== 0);\r\n}\r\n\r\n/**\r\n * Forces the width of the columns to\r\n * distribute equally but overflowing when nesc.\r\n *\r\n * Rules:\r\n *\r\n * - If combined withs are less than the total width of the grid,\r\n * proporation the widths given the min / max / noraml widths to fill the width.\r\n *\r\n * - If the combined widths, exceed the total width of the grid,\r\n * use the standard widths.\r\n *\r\n * - If a column is resized, it should always use that width\r\n *\r\n * - The proporational widths should never fall below min size if specified.\r\n *\r\n * - If the grid starts off small but then becomes greater than the size ( + / - )\r\n * the width should use the orginial width; not the newly proporatied widths.\r\n *\r\n * @param {array} allColumns\r\n * @param {int} expectedWidth\r\n */\r\nexport function forceFillColumnWidths(\r\n allColumns: any[],\r\n expectedWidth: number,\r\n startIdx: number,\r\n allowBleed: boolean,\r\n defaultColWidth: number = 300) {\r\n \r\n let columnsToResize = allColumns\r\n .slice(startIdx + 1, allColumns.length)\r\n .filter((c) => { \r\n return c.canAutoResize !== false; \r\n });\r\n\r\n for (let column of columnsToResize) {\r\n if(!column.$$oldWidth) {\r\n column.$$oldWidth = column.width;\r\n }\r\n }\r\n\r\n let additionWidthPerColumn = 0;\r\n let exceedsWindow = false;\r\n let contentWidth = getContentWidth(allColumns, defaultColWidth);\r\n let remainingWidth = expectedWidth - contentWidth;\r\n let columnsProcessed: any[] = [];\r\n\r\n // This loop takes care of the\r\n do {\r\n additionWidthPerColumn = remainingWidth / columnsToResize.length;\r\n exceedsWindow = contentWidth >= expectedWidth;\r\n\r\n for (let column of columnsToResize) {\r\n if (exceedsWindow && allowBleed) {\r\n column.width = column.$$oldWidth || column.width || defaultColWidth;\r\n } else {\r\n const newSize = (column.width || defaultColWidth) + additionWidthPerColumn;\r\n\r\n if (column.minWidth && newSize < column.minWidth) {\r\n column.width = column.minWidth;\r\n columnsProcessed.push(column);\r\n } else if (column.maxWidth && newSize > column.maxWidth) {\r\n column.width = column.maxWidth;\r\n columnsProcessed.push(column);\r\n } else {\r\n column.width = newSize;\r\n }\r\n }\r\n\r\n column.width = Math.max(0, column.width);\r\n }\r\n\r\n contentWidth = getContentWidth(allColumns);\r\n remainingWidth = expectedWidth - contentWidth;\r\n removeProcessedColumns(columnsToResize, columnsProcessed);\r\n } while (remainingWidth > 0 && columnsToResize.length !== 0);\r\n}\r\n\r\n/**\r\n * Remove the processed columns from the current active columns.\r\n *\r\n * @param columnsToResize Array containing the columns that need to be resized.\r\n * @param columnsProcessed Array containing the columns that have already been processed.\r\n */\r\nfunction removeProcessedColumns ( columnsToResize: any[], columnsProcessed: any[]) {\r\n for(let column of columnsProcessed) {\r\n const index = columnsToResize.indexOf(column);\r\n columnsToResize.splice(index, 1);\r\n }\r\n}\r\n\r\n/**\r\n * Gets the width of the columns\r\n *\r\n * @param {array} allColumns\r\n * @param {number} [defaultColWidth=300]\r\n * @returns {number}\r\n */\r\nfunction getContentWidth(allColumns: any, defaultColWidth: number = 300): number {\r\n let contentWidth = 0;\r\n\r\n for(let column of allColumns) {\r\n contentWidth += (column.width || defaultColWidth);\r\n }\r\n\r\n return contentWidth;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/math.ts","import { camelCase } from './camel-case';\r\n\r\nlet cache = {};\r\nlet testStyle = document.createElement('div').style;\r\n\r\n// Get Prefix\r\n// http://davidwalsh.name/vendor-prefix\r\nconst prefix = (function () {\r\n const styles = window.getComputedStyle(document.documentElement, '');\r\n const pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/))[1];\r\n const dom = ('WebKit|Moz|MS|O').match(new RegExp('(' + pre + ')', 'i'))[1];\r\n\r\n return {\r\n dom,\r\n lowercase: pre,\r\n css: `-${pre}-`,\r\n js: pre[0].toUpperCase() + pre.substr(1)\r\n };\r\n})();\r\n\r\nexport function getVendorPrefixedName(property: string) {\r\n const name = camelCase(property);\r\n\r\n if(!cache[name]) {\r\n if(testStyle[prefix.css + property] !== undefined) {\r\n cache[name] = prefix.css + property;\r\n } else if(testStyle[property] !== undefined) {\r\n cache[name] = property;\r\n }\r\n }\r\n\r\n return cache[name];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/prefixes.ts","/**\r\n * This object contains the cache of the various row heights that are present inside\r\n * the data table. Its based on Fenwick tree data structure that helps with\r\n * querying sums that have time complexity of log n.\r\n *\r\n * Fenwick Tree Credits: http://petr-mitrichev.blogspot.com/2013/05/fenwick-tree-range-updates.html\r\n * https://github.com/mikolalysenko/fenwick-tree\r\n *\r\n */\r\nexport class RowHeightCache {\r\n\r\n /**\r\n * Tree Array stores the cumulative information of the row heights to perform efficient\r\n * range queries and updates. Currently the tree is initialized to the base row\r\n * height instead of the detail row height.\r\n */\r\n private treeArray: number[] = [];\r\n\r\n /**\r\n * Clear the Tree array.\r\n */\r\n clearCache(): void {\r\n this.treeArray = [];\r\n }\r\n\r\n /**\r\n * Initialize the Fenwick tree with row Heights.\r\n *\r\n * @param rows The array of rows which contain the expanded status.\r\n * @param rowHeight The row height.\r\n * @param detailRowHeight The detail row height.\r\n */\r\n initCache(rows: any[], rowHeight: number, detailRowHeight: number): void {\r\n if (isNaN(rowHeight)) {\r\n throw new Error(`Row Height cache initialization failed. Please ensure that 'rowHeight' is a\r\n valid number value: (${rowHeight}) when 'scrollbarV' is enabled.`);\r\n }\r\n\r\n // Add this additional guard in case detailRowHeight is set to 'auto' as it wont work.\r\n if (isNaN(detailRowHeight)) {\r\n throw new Error(`Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\r\n valid number value: (${detailRowHeight}) when 'scrollbarV' is enabled.`);\r\n }\r\n\r\n const n = rows.length;\r\n this.treeArray = new Array(n);\r\n\r\n for(let i = 0; i < n; ++i) {\r\n this.treeArray[i] = 0;\r\n }\r\n\r\n for(let i = 0; i < n; ++i) {\r\n let currentRowHeight = rowHeight;\r\n\r\n // Add the detail row height to the already expanded rows.\r\n // This is useful for the table that goes through a filter or sort.\r\n if (rows[i] && rows[i].$$expanded === 1) {\r\n currentRowHeight += detailRowHeight;\r\n }\r\n\r\n this.update(i, currentRowHeight);\r\n }\r\n }\r\n\r\n /**\r\n * Given the ScrollY position i.e. sum, provide the rowIndex\r\n * that is present in the current view port. Below handles edge cases.\r\n *\r\n * @param scrollY - The scrollY position.\r\n * @returns {number} - Index representing the first row visible in the viewport\r\n */\r\n getRowIndex(scrollY: number): number {\r\n if(scrollY === 0) return 0;\r\n return this.calcRowIndex(scrollY);\r\n }\r\n\r\n /**\r\n * When a row is expanded or rowHeight is changed, update the height. This can\r\n * be utilized in future when Angular Data table supports dynamic row heights.\r\n *\r\n *\r\n * @param atRowIndex Update the data at this index row in the grid.\r\n * @param byRowHeight Update by the rowHeight provided.\r\n */\r\n update (atRowIndex: number, byRowHeight: number): void {\r\n if (!this.treeArray.length) {\r\n throw new Error(`Update at index ${atRowIndex} with value ${byRowHeight} failed:\r\n Row Height cache not initialized.`);\r\n }\r\n\r\n const n = this.treeArray.length;\r\n atRowIndex |= 0;\r\n\r\n while(atRowIndex < n) {\r\n this.treeArray[atRowIndex] += byRowHeight;\r\n atRowIndex |= (atRowIndex + 1);\r\n }\r\n }\r\n\r\n /**\r\n * Range Sum query from 1 to the rowIndex\r\n *\r\n * @param atIndex The row index until which the total height needs to be obtained.\r\n * @returns {number} The total height from row 1 to the rowIndex.\r\n */\r\n query(atIndex: number): number {\r\n if (!this.treeArray.length) {\r\n throw new Error(`query at index ${atIndex} failed: Fenwick tree array not initialized.`);\r\n }\r\n\r\n let sum = 0;\r\n atIndex |= 0;\r\n\r\n while(atIndex >= 0) {\r\n sum += this.treeArray[atIndex];\r\n atIndex = (atIndex & (atIndex + 1)) - 1;\r\n }\r\n\r\n return sum;\r\n }\r\n\r\n /**\r\n * Find the total height between 2 row indexes\r\n * @param atIndexA The row index from\r\n * @param atIndexB The row index to\r\n * @returns {number} total pixel height between 2 row indexes.\r\n */\r\n queryBetween(atIndexA: number, atIndexB: number): number {\r\n return this.query(atIndexB) - this.query(atIndexA - 1);\r\n }\r\n\r\n /**\r\n * Given the ScrollY position i.e. sum, provide the rowIndex\r\n * that is present in the current view port.\r\n *\r\n * @param sum - The scrollY position.\r\n * @returns {number} - Index representing the first row visible in the viewport\r\n */\r\n private calcRowIndex(sum: number): number {\r\n if(!this.treeArray.length) return 0;\r\n\r\n let pos = -1;\r\n const dataLength = this.treeArray.length;\r\n\r\n // Get the highest bit for the block size.\r\n const highestBit = Math.pow(2, dataLength.toString(2).length - 1);\r\n\r\n for (let blockSize = highestBit; blockSize !== 0; blockSize >>= 1) {\r\n let nextPos = pos + blockSize;\r\n if (nextPos < dataLength && sum >= this.treeArray[nextPos]) {\r\n sum -= this.treeArray[nextPos];\r\n pos = nextPos;\r\n }\r\n }\r\n\r\n return pos + 1;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/row-height-cache.ts","/**\r\n * Gets the width of the scrollbar. Nesc for windows\r\n * http://stackoverflow.com/a/13382873/888165\r\n * @return {int} width\r\n */\r\nexport function getScrollBarWidth() {\r\n let outer = document.createElement('div');\r\n outer.style.visibility = 'hidden';\r\n outer.style.width = '100px';\r\n outer.style.msOverflowStyle = 'scrollbar';\r\n document.body.appendChild(outer);\r\n\r\n let widthNoScroll = outer.offsetWidth;\r\n outer.style.overflow = 'scroll';\r\n\r\n let inner = document.createElement('div');\r\n inner.style.width = '100%';\r\n outer.appendChild(inner);\r\n\r\n let widthWithScroll = inner.offsetWidth;\r\n outer.parentNode.removeChild(outer);\r\n\r\n return widthNoScroll - widthWithScroll;\r\n};\r\n\r\nexport const scrollbarWidth = getScrollBarWidth();\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/scrollbar-width.ts","export function selectRows(selected: any[], row: any, comparefn: Function) {\r\n const selectedIndex = comparefn(row, selected);\r\n\r\n if(selectedIndex > -1) {\r\n selected.splice(selectedIndex, 1);\r\n } else {\r\n selected.push(row);\r\n }\r\n\r\n return selected;\r\n}\r\n\r\nexport function selectRowsBetween(selected: any[], rows: any[], index: number, prevIndex: number, comparefn: Function) {\r\n const reverse = index < prevIndex;\r\n\r\n for(let i = 0, len = rows.length; i < len; i++) {\r\n const row = rows[i];\r\n const greater = i >= prevIndex && i <= index;\r\n const lesser = i <= prevIndex && i >= index;\r\n\r\n let range = { start: 0, end: 0 };\r\n if (reverse) {\r\n range = {\r\n start: index,\r\n end: (prevIndex - index)\r\n };\r\n } else {\r\n range = {\r\n start: prevIndex,\r\n end: index + 1\r\n };\r\n }\r\n\r\n if((reverse && lesser) || (!reverse && greater)) {\r\n const idx = comparefn(row, selected);\r\n\r\n // if reverse shift selection (unselect) and the\r\n // row is already selected, remove it from selected\r\n if (reverse && idx > -1) {\r\n selected.splice(idx, 1);\r\n continue;\r\n }\r\n\r\n // if in the positive range to be added to `selected`, and\r\n // not already in the selected array, add it\r\n if( i >= range.start && i < range.end) {\r\n if (idx === -1) {\r\n selected.push(row);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return selected;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/selection.ts","import { SortType, SortDirection } from '../types';\r\nimport { deepValueGetter } from './deep-getter';\r\n/**\r\n * Gets the next sort direction\r\n * @param {SortType} sortType\r\n * @param {SortDirection} currentSort\r\n * @return {SortDirection}\r\n */\r\nexport function nextSortDir(sortType: SortType, current: SortDirection): SortDirection {\r\n if (sortType === SortType.single) {\r\n if(current === SortDirection.asc) {\r\n return SortDirection.desc;\r\n } else {\r\n return SortDirection.asc;\r\n }\r\n } else {\r\n if(!current) {\r\n return SortDirection.asc;\r\n } else if(current === SortDirection.asc) {\r\n return SortDirection.desc;\r\n } else if(current === SortDirection.desc) {\r\n return undefined;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Adapted from fueld-ui on 6/216\r\n * https://github.com/FuelInteractive/fuel-ui/tree/master/src/pipes/OrderBy\r\n * @param {any} a\r\n * @param {any} b\r\n * @return {number} position\r\n */\r\nexport function orderByComparator(a: any, b: any): number {\r\n if (a === null || typeof a === 'undefined') a = 0;\r\n if (b === null || typeof b === 'undefined') b = 0;\r\n\r\n if ((isNaN(parseFloat(a)) || !isFinite(a)) || (isNaN(parseFloat(b)) || !isFinite(b))) {\r\n // Convert to string in case of a=0 or b=0\r\n a = String(a);\r\n b = String(b);\r\n // Isn't a number so lowercase the string to properly compare\r\n if (a.toLowerCase() < b.toLowerCase()) return -1;\r\n if (a.toLowerCase() > b.toLowerCase()) return 1;\r\n } else {\r\n // Parse strings as numbers to compare properly\r\n if (parseFloat(a) < parseFloat(b)) return -1;\r\n if (parseFloat(a) > parseFloat(b)) return 1;\r\n }\r\n\r\n // equal each other\r\n return 0;\r\n}\r\n\r\n/**\r\n * Sorts the rows\r\n * \r\n * @export\r\n * @param {any[]} rows\r\n * @param {any[]} columns\r\n * @param {any[]} dirs\r\n * @returns\r\n */\r\nexport function sortRows(rows: any[], columns: any[], dirs: any[]): any[] {\r\n if(!rows || !dirs || !dirs.length || !columns) return rows;\r\n\r\n let temp = [...rows];\r\n let cols = columns.reduce((obj, col) => {\r\n if(col.comparator && typeof col.comparator === 'function') {\r\n obj[col.prop] = col.comparator;\r\n }\r\n return obj;\r\n }, {});\r\n\r\n return temp.sort(function(a: any, b: any) {\r\n for(const { prop, dir } of dirs) {\r\n const propA = deepValueGetter(a, prop);\r\n const propB = deepValueGetter(b, prop);\r\n\r\n const compareFn = cols[prop] || orderByComparator;\r\n const comparison = dir !== SortDirection.desc ?\r\n compareFn(propA, propB) :\r\n -compareFn(propA, propB);\r\n\r\n // Don't return 0 yet in case of needing to sort by next property\r\n if (comparison !== 0) return comparison;\r\n }\r\n\r\n // equal each other\r\n return 0;\r\n });\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/sort.ts","/**\r\n * Throttle a function\r\n * \r\n * @export\r\n * @param {*} func\r\n * @param {number} wait\r\n * @param {*} [options]\r\n * @returns\r\n */\r\nexport function throttle(func: any, wait: number, options?: any) {\r\n options = options || {};\r\n let context;\r\n let args;\r\n let result;\r\n let timeout = null;\r\n let previous = 0;\r\n\r\n function later() {\r\n previous = options.leading === false ? 0 : +new Date();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n }\r\n\r\n return function() {\r\n let now = +new Date();\r\n\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n\r\n let remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n\r\n if (remaining <= 0) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n previous = now;\r\n result = func.apply(context, args);\r\n } else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n\r\n return result;\r\n };\r\n}\r\n\r\n/**\r\n * Throttle decorator\r\n *\r\n * class MyClass {\r\n * throttleable(10)\r\n * myFn() { ... }\r\n * }\r\n * \r\n * @export\r\n * @param {number} duration\r\n * @param {*} [options]\r\n * @returns\r\n */\r\nexport function throttleable(duration: number, options?: any) {\r\n return function innerDecorator (target, key, descriptor) {\r\n return {\r\n configurable: true,\r\n enumerable: descriptor.enumerable,\r\n get: function getter () {\r\n Object.defineProperty(this, key, {\r\n configurable: true,\r\n enumerable: descriptor.enumerable,\r\n value: throttle(descriptor.value, duration, options)\r\n });\r\n\r\n return this[key];\r\n }\r\n };\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/throttle.ts","import { getVendorPrefixedName } from './prefixes';\r\nimport { camelCase } from './camel-case';\r\n\r\n// browser detection and prefixing tools\r\nconst transform = getVendorPrefixedName('transform');\r\nconst backfaceVisibility = getVendorPrefixedName('backfaceVisibility');\r\nconst hasCSSTransforms = !!getVendorPrefixedName('transform');\r\nconst hasCSS3DTransforms = !!getVendorPrefixedName('perspective');\r\nconst ua = window.navigator.userAgent;\r\nconst isSafari = (/Safari\\//).test(ua) && !(/Chrome\\//).test(ua);\r\n\r\nexport function translateXY(styles: any, x: number, y: number) {\r\n if (hasCSSTransforms) {\r\n if (!isSafari && hasCSS3DTransforms) {\r\n styles[transform] = `translate3d(${x}px, ${y}px, 0)`;\r\n styles[backfaceVisibility] = 'hidden';\r\n } else {\r\n styles[camelCase(transform)] = `translate(${x}px, ${y}px)`;\r\n }\r\n } else {\r\n styles.top = `${y}px`;\r\n styles.left = `${x}px`;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/translate.ts","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"@angular/core\"\n// module id = 0\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"rxjs/Rx\"\n// module id = 1\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"@angular/common\"\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 7c5e69c37d820ded65d4","webpack:///./src/components/body/body-cell.component.ts","webpack:///./src/components/body/body-row-wrapper.component.ts","webpack:///./src/components/body/body-row.component.ts","webpack:///./src/components/body/body.component.ts","webpack:///./src/components/body/index.ts","webpack:///./src/components/body/progress-bar.component.ts","webpack:///./src/components/body/scroller.component.ts","webpack:///./src/components/body/selection.component.ts","webpack:///./src/components/columns/column-cell.directive.ts","webpack:///./src/components/columns/column-header.directive.ts","webpack:///./src/components/columns/column.directive.ts","webpack:///./src/components/columns/index.ts","webpack:///./src/components/datatable.component.ts","webpack:///./src/components/footer/footer.component.ts","webpack:///./src/components/footer/index.ts","webpack:///./src/components/footer/pager.component.ts","webpack:///./src/components/header/header-cell.component.ts","webpack:///./src/components/header/header.component.ts","webpack:///./src/components/header/index.ts","webpack:///./src/components/index.ts","webpack:///./src/components/row-detail/index.ts","webpack:///./src/components/row-detail/row-detail-template.directive.ts","webpack:///./src/components/row-detail/row-detail.directive.ts","webpack:///./src/datatable.module.ts","webpack:///./src/directives/draggable.directive.ts","webpack:///./src/directives/index.ts","webpack:///./src/directives/long-press.directive.ts","webpack:///./src/directives/orderable.directive.ts","webpack:///./src/directives/resizeable.directive.ts","webpack:///./src/directives/visibility.directive.ts","webpack:///./src/index.ts","webpack:///./src/types/click.type.ts","webpack:///./src/types/column-mode.type.ts","webpack:///./src/types/index.ts","webpack:///./src/types/selection.type.ts","webpack:///./src/types/sort-direction.type.ts","webpack:///./src/types/sort.type.ts","webpack:///./src/utils/camel-case.ts","webpack:///./src/utils/column-helper.ts","webpack:///./src/utils/column.ts","webpack:///./src/utils/deep-getter.ts","webpack:///./src/utils/id.ts","webpack:///./src/utils/index.ts","webpack:///./src/utils/keys.ts","webpack:///./src/utils/math.ts","webpack:///./src/utils/prefixes.ts","webpack:///./src/utils/row-height-cache.ts","webpack:///./src/utils/scrollbar-width.ts","webpack:///./src/utils/selection.ts","webpack:///./src/utils/sort.ts","webpack:///./src/utils/throttle.ts","webpack:///./src/utils/translate.ts","webpack:///external \"@angular/core\"","webpack:///external \"rxjs/Rx\"","webpack:///external \"@angular/common\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@angular/common\"), require(\"@angular/core\"), require(\"rxjs/Rx\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"angular2-data-table\", [\"@angular/common\", \"@angular/core\", \"rxjs/Rx\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angular2-data-table\"] = factory(require(\"@angular/common\"), require(\"@angular/core\"), require(\"rxjs/Rx\"));\n\telse\n\t\troot[\"angular2-data-table\"] = factory(root[\"@angular/common\"], root[\"@angular/core\"], root[\"rxjs/Rx\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmory imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmory exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tObject.defineProperty(exports, name, {\n \t\t\tconfigurable: false,\n \t\t\tenumerable: true,\n \t\t\tget: getter\n \t\t});\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 7c5e69c37d820ded65d4","import {\r\n Component, Input, PipeTransform, HostBinding, \r\n Output, EventEmitter, HostListener, ElementRef\r\n} from '@angular/core';\r\n\r\nimport { deepValueGetter, Keys } from '../../utils';\r\nimport { SortDirection } from '../../types';\r\n\r\n@Component({\r\n selector: 'datatable-body-cell',\r\n template: `\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n `,\r\n host: {\r\n class: 'datatable-body-cell'\r\n }\r\n})\r\nexport class DataTableBodyCellComponent {\r\n\r\n @Input() row: any;\r\n @Input() column: any;\r\n @Input() rowHeight: number;\r\n @Input() isSelected: boolean;\r\n\r\n @Input() set sorts(val: any[]) {\r\n this._sorts = val;\r\n this.calcSortDir = this.calcSortDir(val);\r\n }\r\n\r\n get sorts(): any[] {\r\n return this._sorts;\r\n }\r\n\r\n @Output() activate: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class.active')\r\n isFocused: boolean = false;\r\n\r\n @HostBinding('class.sort-active')\r\n get isSortActive(): boolean {\r\n return !this.sortDir;\r\n }\r\n\r\n @HostBinding('class.sort-asc')\r\n get isSortAscending(): boolean {\r\n return this.sortDir === SortDirection.asc;\r\n }\r\n\r\n @HostBinding('class.sort-desc')\r\n get isSortDescending(): boolean {\r\n return this.sortDir === SortDirection.desc;\r\n }\r\n\r\n @HostBinding('style.width.px')\r\n get width(): number {\r\n return this.column.width;\r\n }\r\n\r\n @HostBinding('style.height')\r\n get height(): string|number {\r\n const height = this.rowHeight;\r\n if(isNaN(height)) return height;\r\n return height + 'px';\r\n }\r\n\r\n get value(): any {\r\n if (!this.row || !this.column || !this.column.prop) return '';\r\n const val = deepValueGetter(this.row, this.column.prop);\r\n const userPipe: PipeTransform = this.column.pipe;\r\n\r\n if(userPipe) return userPipe.transform(val);\r\n if(val !== undefined) return val;\r\n return '';\r\n }\r\n\r\n private sortDir: SortDirection;\r\n private element: any;\r\n private _sorts: any[];\r\n\r\n constructor(element: ElementRef) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus(): void {\r\n this.isFocused = true;\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur(): void {\r\n this.isFocused = false;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: MouseEvent): void {\r\n this.activate.emit({\r\n type: 'click',\r\n event,\r\n row: this.row,\r\n column: this.column,\r\n value: this.value,\r\n cellElement: this.element\r\n });\r\n }\r\n\r\n @HostListener('dblclick', ['$event'])\r\n onDblClick(event: MouseEvent): void {\r\n this.activate.emit({\r\n type: 'dblclick',\r\n event,\r\n row: this.row,\r\n column: this.column,\r\n value: this.value,\r\n cellElement: this.element\r\n });\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent): void {\r\n const keyCode = event.keyCode;\r\n const isTargetCell = event.target === this.element;\r\n\r\n const isAction =\r\n keyCode === Keys.return ||\r\n keyCode === Keys.down ||\r\n keyCode === Keys.up ||\r\n keyCode === Keys.left ||\r\n keyCode === Keys.right;\r\n\r\n if(isAction && isTargetCell) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n this.activate.emit({\r\n type: 'keydown',\r\n event,\r\n row: this.row,\r\n column: this.column,\r\n value: this.value,\r\n cellElement: this.element\r\n });\r\n }\r\n }\r\n\r\n onCheckboxChange(event): void {\r\n this.activate.emit({\r\n type: 'checkbox',\r\n event,\r\n row: this.row,\r\n column: this.column,\r\n value: this.value,\r\n cellElement: this.element\r\n });\r\n }\r\n\r\n calcSortDir(sorts: any[]): any {\r\n if(!sorts) return;\r\n\r\n const sort = sorts.find((s: any) => {\r\n return s.prop === this.column.prop;\r\n });\r\n\r\n if(sort) return sort.dir;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-cell.component.ts","import { \r\n Component, Input, Output, EventEmitter, HostListener \r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-row-wrapper',\r\n template: `\r\n \r\n
\r\n \r\n \r\n
\r\n `,\r\n host: {\r\n class: 'datatable-row-wrapper'\r\n }\r\n})\r\nexport class DataTableRowWrapperComponent {\r\n\r\n @Input() rowDetailTemplate: any;\r\n @Input() detailRowHeight: any;\r\n @Input() expanded: boolean = false;\r\n @Input() row: any;\r\n @Output() rowContextmenu = new EventEmitter<{event: MouseEvent, row: any}>(false);\r\n\r\n @HostListener('contextmenu', ['$event'])\r\n public onContextmenu($event: MouseEvent): void {\r\n this.rowContextmenu.emit({ event: $event, row: this.row });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-row-wrapper.component.ts","import {\r\n Component, Input, HostBinding, ElementRef, Output, EventEmitter, HostListener\r\n} from '@angular/core';\r\n\r\nimport {\r\n columnsByPin, columnGroupWidths, columnsByPinArr,\r\n translateXY, Keys, scrollbarWidth\r\n} from '../../utils';\r\n\r\n@Component({\r\n selector: 'datatable-body-row',\r\n template: `\r\n \r\n \r\n \r\n \r\n `,\r\n host: {\r\n class: 'datatable-body-row'\r\n }\r\n})\r\nexport class DataTableBodyRowComponent {\r\n\r\n @Input() set columns(val: any[]) {\r\n this._columns = val;\r\n this.recalculateColumns(val);\r\n }\r\n\r\n get columns(): any[] {\r\n return this._columns;\r\n }\r\n\r\n @Input() set innerWidth(val: number) {\r\n this._innerWidth = val;\r\n this.recalculateColumns();\r\n }\r\n\r\n get innerWidth(): number {\r\n return this._innerWidth;\r\n }\r\n\r\n @Input() row: any;\r\n @Input() offsetX: number;\r\n\r\n @HostBinding('style.height.px')\r\n @Input() rowHeight: number;\r\n\r\n @HostBinding('class.active')\r\n @Input() isSelected: boolean;\r\n\r\n @HostBinding('class.datatable-row-even')\r\n get isEvenRow(): boolean {\r\n return this.row.$$index % 2 === 0;\r\n }\r\n\r\n @HostBinding('class.datatable-row-odd')\r\n get isOddRow(): boolean {\r\n return this.row.$$index % 2 !== 0;\r\n }\r\n\r\n @Output() activate: EventEmitter = new EventEmitter();\r\n\r\n private element: any;\r\n private columnGroupWidths: any;\r\n private columnsByPin: any;\r\n private _columns: any[];\r\n private _innerWidth: number;\r\n\r\n constructor(element: ElementRef) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n stylesByGroup(group: string) {\r\n const widths = this.columnGroupWidths;\r\n const offsetX = this.offsetX;\r\n\r\n let styles = {\r\n width: `${widths[group]}px`\r\n };\r\n\r\n if(group === 'left') {\r\n translateXY(styles, offsetX, 0);\r\n } else if(group === 'right') {\r\n const bodyWidth = parseInt(this.innerWidth + '', 0);\r\n const totalDiff = widths.total - bodyWidth;\r\n const offsetDiff = totalDiff - offsetX;\r\n const offset = (offsetDiff + scrollbarWidth) * -1;\r\n translateXY(styles, offset, 0);\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n onActivate(event: any, index: number) {\r\n event.cellIndex = index;\r\n event.rowElement = this.element;\r\n this.activate.emit(event);\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent): void {\r\n const keyCode = event.keyCode;\r\n const isTargetRow = event.target === this.element;\r\n\r\n const isAction =\r\n keyCode === Keys.return ||\r\n keyCode === Keys.down ||\r\n keyCode === Keys.up ||\r\n keyCode === Keys.left ||\r\n keyCode === Keys.right;\r\n\r\n if(isAction && isTargetRow) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n this.activate.emit({\r\n type: 'keydown',\r\n event,\r\n row: this.row,\r\n rowElement: this.element\r\n });\r\n }\r\n }\r\n\r\n recalculateColumns(val: any[] = this.columns) {\r\n const colsByPin = columnsByPin(val);\r\n this.columnsByPin = columnsByPinArr(val);\r\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-row.component.ts","import {\r\n Component, Output, EventEmitter, Input, HostBinding, ViewChild\r\n} from '@angular/core';\r\nimport { translateXY, columnsByPin, columnGroupWidths, RowHeightCache } from '../../utils';\r\nimport { SelectionType } from '../../types';\r\nimport { ScrollerComponent } from './scroller.component';\r\n\r\n@Component({\r\n selector: 'datatable-body',\r\n template: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n host: {\r\n class: 'datatable-body'\r\n }\r\n})\r\nexport class DataTableBodyComponent {\r\n\r\n @Input() scrollbarV: boolean;\r\n @Input() scrollbarH: boolean;\r\n @Input() loadingIndicator: boolean;\r\n @Input() rowHeight: number;\r\n @Input() offsetX: number;\r\n @Input() detailRowHeight: any;\r\n @Input() emptyMessage: string;\r\n @Input() selectionType: SelectionType;\r\n @Input() selected: any[] = [];\r\n @Input() rowIdentity: any;\r\n @Input() rowDetailTemplate: any;\r\n @Input() selectCheck: any;\r\n @Input() trackByProp: string;\r\n\r\n @Input() set pageSize(val: number) {\r\n this._pageSize = val;\r\n this.recalcLayout();\r\n }\r\n\r\n get pageSize(): number {\r\n return this._pageSize;\r\n }\r\n\r\n @Input() set rows(val: any[]) {\r\n this._rows = val;\r\n this.recalcLayout();\r\n }\r\n\r\n get rows(): any[] {\r\n return this._rows;\r\n }\r\n\r\n @Input() set columns(val: any[]) {\r\n this._columns = val;\r\n\r\n const colsByPin = columnsByPin(val);\r\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\r\n }\r\n\r\n get columns(): any[] {\r\n return this._columns;\r\n }\r\n\r\n @Input() set offset(val: number) {\r\n this._offset = val;\r\n this.recalcLayout();\r\n }\r\n\r\n get offset(): number {\r\n return this._offset;\r\n }\r\n\r\n @Input() set rowCount(val: number) {\r\n this._rowCount = val;\r\n this.recalcLayout();\r\n }\r\n\r\n get rowCount(): number {\r\n return this._rowCount;\r\n }\r\n\r\n @Input() innerWidth: number;\r\n\r\n @HostBinding('style.width')\r\n get bodyWidth(): string {\r\n if (this.scrollbarH) {\r\n return this.innerWidth + 'px';\r\n } else {\r\n return '100%';\r\n }\r\n }\r\n\r\n @Input()\r\n @HostBinding('style.height')\r\n set bodyHeight(val) {\r\n if (this.scrollbarV) {\r\n this._bodyHeight = val + 'px';\r\n } else {\r\n this._bodyHeight = 'auto';\r\n }\r\n\r\n this.recalcLayout();\r\n }\r\n\r\n get bodyHeight() {\r\n return this._bodyHeight;\r\n }\r\n\r\n @Output() scroll: EventEmitter = new EventEmitter();\r\n @Output() page: EventEmitter = new EventEmitter();\r\n @Output() activate: EventEmitter = new EventEmitter();\r\n @Output() select: EventEmitter = new EventEmitter();\r\n @Output() detailToggle: EventEmitter = new EventEmitter();\r\n @Output() rowContextmenu = new EventEmitter<{event: MouseEvent, row: any}>(false);\r\n\r\n @ViewChild(ScrollerComponent) scroller: ScrollerComponent;\r\n\r\n /**\r\n * Returns if selection is enabled.\r\n * \r\n * @readonly\r\n * @type {boolean}\r\n * @memberOf DataTableBodyComponent\r\n */\r\n get selectEnabled(): boolean {\r\n return !!this.selectionType;\r\n }\r\n\r\n /**\r\n * Property that would calculate the height of scroll bar\r\n * based on the row heights cache for virtual scroll. Other scenarios\r\n * calculate scroll height automatically (as height will be undefined).\r\n * \r\n * @readonly\r\n * @type {number}\r\n * @memberOf DataTableBodyComponent\r\n */\r\n get scrollHeight(): number {\r\n if(this.scrollbarV) {\r\n return this.rowHeightsCache.query(this.rowCount - 1);\r\n }\r\n }\r\n\r\n private rowHeightsCache: RowHeightCache = new RowHeightCache();\r\n private temp: any[] = [];\r\n private offsetY: number = 0;\r\n private indexes: any = {};\r\n private columnGroupWidths: any;\r\n private rowTrackingFn: any;\r\n\r\n private _rows: any[];\r\n private _bodyHeight: any;\r\n private _columns: any[];\r\n private _rowCount: number;\r\n private _offset: number;\r\n private _pageSize: number;\r\n\r\n constructor() {\r\n // declare fn here so we can get access to the `this` property\r\n this.rowTrackingFn = function(index: number, row: any): any {\r\n if(this.trackByProp) {\r\n return `${row.$$index}-${this.trackByProp}`;\r\n } else {\r\n return row.$$index;\r\n }\r\n }.bind(this);\r\n }\r\n\r\n /**\r\n * Updates the Y offset given a new offset.\r\n * \r\n * @param {number} [offset]\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n updateOffsetY(offset?: number): void {\r\n if(this.scrollbarV && offset) {\r\n // First get the row Index that we need to move to.\r\n const rowIndex = this.pageSize * offset;\r\n offset = this.rowHeightsCache.query(rowIndex - 1);\r\n }\r\n\r\n this.scroller.setOffset(offset || 0);\r\n }\r\n\r\n /**\r\n * Body was scrolled, this is mainly useful for\r\n * when a user is server-side pagination via virtual scroll.\r\n * \r\n * @param {*} event\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n onBodyScroll(event: any): void {\r\n const scrollYPos: number = event.scrollYPos;\r\n const scrollXPos: number = event.scrollXPos;\r\n\r\n // if scroll change, trigger update\r\n // this is mainly used for header cell positions\r\n if(this.offsetY !== scrollYPos || this.offsetX !== scrollXPos) {\r\n this.scroll.emit({\r\n offsetY: scrollYPos,\r\n offsetX: scrollXPos\r\n });\r\n }\r\n\r\n this.offsetY = scrollYPos;\r\n this.offsetX = scrollXPos;\r\n\r\n this.updateIndexes();\r\n this.updatePage(event.direction);\r\n this.updateRows();\r\n }\r\n\r\n /**\r\n * Updates the page given a direction.\r\n * \r\n * @param {string} direction\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n updatePage(direction: string): void {\r\n let offset = this.indexes.first / this.pageSize;\r\n\r\n if(direction === 'up') {\r\n offset = Math.floor(offset);\r\n } else if(direction === 'down') {\r\n offset = Math.ceil(offset);\r\n }\r\n\r\n if(direction !== undefined && !isNaN(offset)) {\r\n this.page.emit({ offset });\r\n }\r\n }\r\n\r\n /**\r\n * Updates the rows in the view port\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n updateRows(): void {\r\n const { first, last } = this.indexes;\r\n let rowIndex = first;\r\n let idx = 0;\r\n let temp: any[] = [];\r\n\r\n while (rowIndex < last && rowIndex < this.rowCount) {\r\n let row = this.rows[rowIndex];\r\n\r\n if(row) {\r\n row.$$index = rowIndex;\r\n temp[idx] = row;\r\n }\r\n\r\n idx++;\r\n rowIndex++;\r\n }\r\n\r\n this.temp = temp;\r\n }\r\n\r\n /**\r\n * Calculate row height based on the expanded state of the row.\r\n * \r\n * @param {*} row the row for which the height need to be calculated.\r\n * @returns {number} height of the row.\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n getRowHeight(row: any): number {\r\n // Adding detail row height if its expanded.\r\n return this.rowHeight +\r\n (row.$$expanded === 1 ? this.detailRowHeight : 0);\r\n }\r\n\r\n /**\r\n * Calculates the styles for the row so that the rows can be moved in 2D space\r\n * during virtual scroll inside the DOM. In the below case the Y position is\r\n * manipulated. As an example, if the height of row 0 is 30 px and row 1 is\r\n * 100 px then following styles are generated:\r\n *\r\n * transform: translate3d(0px, 0px, 0px); -> row0\r\n * transform: translate3d(0px, 30px, 0px); -> row1\r\n * transform: translate3d(0px, 130px, 0px); -> row2\r\n *\r\n * Row heights have to be calculated based on the row heights cache as we wont\r\n * be able to determine which row is of what height before hand. In the above\r\n * case the positionY of the translate3d for row2 would be the sum of all the\r\n * heights of the rows before it (i.e. row0 and row1).\r\n * \r\n * @param {*} row The row that needs to be placed in the 2D space.\r\n * @returns {*} Returns the CSS3 style to be applied\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n getRowsStyles(row: any): any {\r\n const rowHeight = this.getRowHeight(row);\r\n\r\n let styles = {\r\n height: rowHeight + 'px'\r\n };\r\n\r\n if(this.scrollbarV) {\r\n const idx = row ? row.$$index : 0;\r\n\r\n // const pos = idx * rowHeight;\r\n // The position of this row would be the sum of all row heights\r\n // until the previous row position.\r\n const pos = this.rowHeightsCache.query(idx - 1);\r\n\r\n translateXY(styles, 0, pos);\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n /**\r\n * Hides the loading indicator\r\n * \r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n hideIndicator(): void {\r\n setTimeout(() => this.loadingIndicator = false, 500);\r\n }\r\n\r\n /**\r\n * Updates the index of the rows in the viewport\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n updateIndexes(): void {\r\n let first = 0;\r\n let last = 0;\r\n\r\n if (this.scrollbarV) {\r\n // Calculation of the first and last indexes will be based on where the\r\n // scrollY position would be at. The last index would be the one\r\n // that shows up inside the view port the last.\r\n const height = parseInt(this.bodyHeight, 0);\r\n first = this.rowHeightsCache.getRowIndex(this.offsetY);\r\n last = this.rowHeightsCache.getRowIndex(height + this.offsetY) + 1;\r\n } else {\r\n first = Math.max(this.offset * this.pageSize, 0);\r\n last = Math.min((first + this.pageSize), this.rowCount);\r\n }\r\n\r\n this.indexes = { first, last };\r\n }\r\n\r\n /**\r\n * Refreshes the full Row Height cache. Should be used\r\n * when the entire row array state has changed.\r\n * \r\n * @returns {void}\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n refreshRowHeightCache(): void {\r\n if(!this.scrollbarV) return;\r\n\r\n // clear the previous row height cache if already present.\r\n // this is useful during sorts, filters where the state of the\r\n // rows array is changed.\r\n this.rowHeightsCache.clearCache();\r\n\r\n // Initialize the tree only if there are rows inside the tree.\r\n if (this.rows && this.rows.length) {\r\n this.rowHeightsCache.initCache(\r\n this.rows, this.rowHeight, this.detailRowHeight);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the index for the view port\r\n * \r\n * @returns {number}\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n getAdjustedViewPortIndex(): number {\r\n // Capture the row index of the first row that is visible on the viewport.\r\n // If the scroll bar is just below the row which is highlighted then make that as the\r\n // first index.\r\n let viewPortFirstRowIndex = this.indexes.first;\r\n\r\n if (this.scrollbarV) {\r\n const offsetScroll = this.rowHeightsCache.query(viewPortFirstRowIndex - 1);\r\n return offsetScroll <= this.offsetY ? viewPortFirstRowIndex - 1 : viewPortFirstRowIndex;\r\n }\r\n\r\n return viewPortFirstRowIndex;\r\n }\r\n\r\n /**\r\n * Toggle the Expansion of the row i.e. if the row is expanded then it will\r\n * collapse and vice versa. Note that the expanded status is stored as\r\n * a part of the row object itself as we have to preserve the expanded row\r\n * status in case of sorting and filtering of the row set.\r\n * \r\n * @param {*} row The row for which the expansion needs to be toggled.\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n toggleRowExpansion(row: any): void {\r\n // Capture the row index of the first row that is visible on the viewport.\r\n let viewPortFirstRowIndex = this.getAdjustedViewPortIndex();\r\n\r\n // If the detailRowHeight is auto --> only in case of non-virtualized scroll\r\n if(this.scrollbarV) {\r\n const detailRowHeight = this.detailRowHeight * (row.$$expanded ? -1 : 1);\r\n this.rowHeightsCache.update(row.$$index, detailRowHeight);\r\n }\r\n\r\n // Update the toggled row and update the heights in the cache.\r\n row.$$expanded ^= 1;\r\n\r\n this.detailToggle.emit({\r\n rows: [row],\r\n currentIndex: viewPortFirstRowIndex\r\n });\r\n }\r\n\r\n /**\r\n * Expand/Collapse all the rows no matter what their state is.\r\n * \r\n * @param {boolean} expanded When true, all rows are expanded and when false, all rows will be collapsed.\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n toggleAllRows(expanded: boolean): void {\r\n let rowExpanded = expanded ? 1 : 0;\r\n\r\n // Capture the row index of the first row that is visible on the viewport.\r\n let viewPortFirstRowIndex = this.getAdjustedViewPortIndex();\r\n\r\n for(let row of this.rows) {\r\n row.$$expanded = rowExpanded;\r\n }\r\n\r\n if(this.scrollbarV) {\r\n // Refresh the full row heights cache since every row was affected.\r\n this.refreshRowHeightCache();\r\n }\r\n\r\n // Emit all rows that have been expanded.\r\n this.detailToggle.emit({\r\n rows: this.rows,\r\n currentIndex: viewPortFirstRowIndex\r\n });\r\n }\r\n\r\n /**\r\n * Recalculates the table\r\n * \r\n * @memberOf DataTableBodyComponent\r\n */\r\n recalcLayout(): void {\r\n this.refreshRowHeightCache();\r\n this.updateIndexes();\r\n this.updateRows();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body.component.ts","export * from './body.component';\r\nexport * from './body-cell.component';\r\nexport * from './body-row.component';\r\nexport * from './progress-bar.component';\r\nexport * from './scroller.component';\r\nexport * from './body-row-wrapper.component';\r\nexport * from './selection.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/index.ts","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-progress',\r\n template: `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ProgressBarComponent {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/progress-bar.component.ts","import {\r\n Component, Input, ElementRef, Output, EventEmitter, Renderer,\r\n OnInit, OnDestroy, HostBinding\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-scroller',\r\n template: `\r\n \r\n `,\r\n host: {\r\n class: 'datatable-scroll'\r\n }\r\n})\r\nexport class ScrollerComponent implements OnInit, OnDestroy {\r\n\r\n @Input() scrollbarV: boolean = false;\r\n @Input() scrollbarH: boolean = false;\r\n\r\n @HostBinding('style.height.px')\r\n @Input() scrollHeight: number;\r\n\r\n @HostBinding('style.width.px')\r\n @Input() scrollWidth: number;\r\n\r\n @Output() scroll: EventEmitter = new EventEmitter();\r\n\r\n private scrollYPos: number = 0;\r\n private scrollXPos: number = 0;\r\n private prevScrollYPos: number = 0;\r\n private prevScrollXPos: number = 0;\r\n private element: any;\r\n private parentElement: any;\r\n private onScrollListener: Function;\r\n\r\n constructor(element: ElementRef, private renderer: Renderer) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n ngOnInit() {\r\n // manual bind so we don't always listen\r\n if(this.scrollbarV || this.scrollbarH) {\r\n this.parentElement = this.element.parentElement.parentElement;\r\n this.onScrollListener = this.renderer.listen(\r\n this.parentElement, 'scroll', this.onScrolled.bind(this));\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if(this.scrollbarV || this.scrollbarH) {\r\n this.onScrollListener();\r\n }\r\n }\r\n\r\n setOffset(offsetY: number) {\r\n if(this.parentElement) {\r\n this.parentElement.scrollTop = offsetY;\r\n }\r\n }\r\n\r\n onScrolled(event: MouseEvent) {\r\n const dom: Element = event.currentTarget;\r\n this.scrollYPos = dom.scrollTop;\r\n this.scrollXPos = dom.scrollLeft;\r\n\r\n requestAnimationFrame(this.updateOffset.bind(this));\r\n }\r\n\r\n updateOffset() {\r\n let direction: string;\r\n if(this.scrollYPos < this.prevScrollYPos) {\r\n direction = 'down';\r\n } else if(this.scrollYPos > this.prevScrollYPos) {\r\n direction = 'up';\r\n }\r\n\r\n this.scroll.emit({\r\n direction,\r\n scrollYPos: this.scrollYPos,\r\n scrollXPos: this.scrollXPos\r\n });\r\n\r\n this.prevScrollYPos = this.scrollYPos;\r\n this.prevScrollXPos = this.scrollXPos;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/scroller.component.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Keys, selectRows, selectRowsBetween } from '../../utils';\r\nimport { SelectionType } from '../../types';\r\n\r\nexport interface Model {\r\n type: string;\r\n event: MouseEvent | KeyboardEvent;\r\n row: any;\r\n rowElement: any;\r\n cellElement: any;\r\n cellIndex: number;\r\n}\r\n\r\n@Component({\r\n selector: 'datatable-selection',\r\n template: `\r\n \r\n `\r\n})\r\nexport class DataTableSelectionComponent {\r\n\r\n @Input() rows: any[];\r\n @Input() selected: any[];\r\n @Input() selectEnabled: boolean;\r\n @Input() selectionType: SelectionType;\r\n @Input() rowIdentity: any;\r\n @Input() selectCheck: any;\r\n\r\n @Output() activate: EventEmitter = new EventEmitter();\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n private prevIndex: number;\r\n\r\n selectRow(event: KeyboardEvent | MouseEvent, index: number, row: any): void {\r\n if (!this.selectEnabled) return;\r\n\r\n const chkbox = this.selectionType === SelectionType.checkbox;\r\n const multiShift = this.selectionType === SelectionType.multiShift;\r\n const multiClick = this.selectionType === SelectionType.multi;\r\n let selected: any[] = [];\r\n\r\n if (multiShift || multiClick || chkbox) {\r\n if (multiShift && event.shiftKey) {\r\n const newSelected = [...this.selected];\r\n selected = selectRowsBetween(\r\n newSelected, \r\n this.rows, \r\n index, \r\n this.prevIndex, \r\n this.getRowSelectedIdx.bind(this));\r\n } else if (multiShift && !event.shiftKey) {\r\n selected.push(row);\r\n } else {\r\n const newSelected = [...this.selected];\r\n selected = selectRows(newSelected, row, this.getRowSelectedIdx.bind(this));\r\n }\r\n } else {\r\n selected.push(row);\r\n }\r\n\r\n if(this.selectCheck) {\r\n selected = selected.filter(this.selectCheck.bind(this));\r\n }\r\n\r\n this.selected = selected;\r\n this.prevIndex = index;\r\n\r\n this.select.emit({\r\n selected\r\n });\r\n }\r\n\r\n onActivate(model: Model, index: number): void {\r\n const { type, event, row } = model;\r\n const chkbox = this.selectionType === SelectionType.checkbox;\r\n const select = (!chkbox && (type === 'click' || type === 'dblclick')) || \r\n (chkbox && type === 'checkbox');\r\n\r\n if(select) {\r\n this.selectRow(event, index, row);\r\n } else if(type === 'keydown') {\r\n if ((event).keyCode === Keys.return) {\r\n this.selectRow(event, index, row);\r\n } else {\r\n this.onKeyboardFocus(model);\r\n }\r\n }\r\n this.activate.emit(model);\r\n }\r\n\r\n onKeyboardFocus(model: Model): void {\r\n const { keyCode } = model.event;\r\n const shouldFocus =\r\n keyCode === Keys.up ||\r\n keyCode === Keys.down ||\r\n keyCode === Keys.right ||\r\n keyCode === Keys.left;\r\n\r\n if(shouldFocus) {\r\n const isCellSelection =\r\n this.selectionType === SelectionType.cell;\r\n\r\n if(!model.cellElement || !isCellSelection) {\r\n this.focusRow(model.rowElement, keyCode);\r\n } else if(isCellSelection) {\r\n this.focusCell(model.cellElement, model.rowElement, keyCode, model.cellIndex);\r\n }\r\n }\r\n }\r\n\r\n focusRow(rowElement: any, keyCode: number): void {\r\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\r\n if(nextRowElement) nextRowElement.focus();\r\n }\r\n\r\n getPrevNextRow(rowElement: any, keyCode: number): any {\r\n const parentElement = rowElement.parentElement;\r\n\r\n if(parentElement) {\r\n let focusElement: HTMLElement;\r\n if(keyCode === Keys.up) {\r\n focusElement = parentElement.previousElementSibling;\r\n } else if(keyCode === Keys.down) {\r\n focusElement = parentElement.nextElementSibling;\r\n }\r\n\r\n if(focusElement && focusElement.children.length) {\r\n return focusElement.children[0];\r\n }\r\n }\r\n }\r\n\r\n focusCell(cellElement: any, rowElement: any, keyCode: number, cellIndex: number): void {\r\n let nextCellElement: HTMLElement;\r\n\r\n if(keyCode === Keys.left) {\r\n nextCellElement = cellElement.previousElementSibling;\r\n } else if(keyCode === Keys.right) {\r\n nextCellElement = cellElement.nextElementSibling;\r\n } else if(keyCode === Keys.up || keyCode === Keys.down) {\r\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\r\n if(nextRowElement) {\r\n const children = nextRowElement.getElementsByClassName('datatable-body-cell');\r\n if(children.length) nextCellElement = children[cellIndex];\r\n }\r\n }\r\n\r\n if(nextCellElement) nextCellElement.focus();\r\n }\r\n\r\n getRowSelected(row: any): boolean {\r\n return this.getRowSelectedIdx(row, this.selected) > -1;\r\n }\r\n\r\n getRowSelectedIdx(row: any, selected: any[]): number {\r\n if(!selected || !selected.length) return -1;\r\n\r\n const rowId = this.rowIdentity(row);\r\n return selected.findIndex((r) => {\r\n const id = this.rowIdentity(r);\r\n return id === rowId;\r\n });\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/selection.component.ts","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({ selector: '[swui-datatable-cell-template]' })\r\nexport class DataTableColumnCellDirective {\r\n constructor(public template: TemplateRef) { };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column-cell.directive.ts","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({ selector: '[swui-datatable-header-template]' })\r\nexport class DataTableColumnHeaderDirective {\r\n constructor(public template: TemplateRef) { };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column-header.directive.ts","import { Directive, TemplateRef, ContentChild, Input } from '@angular/core';\r\nimport { DataTableColumnHeaderDirective } from './column-header.directive';\r\nimport { DataTableColumnCellDirective } from './column-cell.directive';\r\n\r\n@Directive({ selector: 'swui-datatable-column' })\r\nexport class DataTableColumnDirective {\r\n\r\n @Input() name: string;\r\n @Input() prop: string;\r\n @Input() frozenLeft: any;\r\n @Input() frozenRight: any;\r\n @Input() flexGrow: number;\r\n @Input() resizeable: boolean;\r\n @Input() comparator: Function;\r\n @Input() pipe: any;\r\n @Input() sortable: boolean;\r\n @Input() draggable: boolean;\r\n @Input() canAutoResize: boolean;\r\n @Input() minWidth: number;\r\n @Input() width: number;\r\n @Input() maxWidth: number;\r\n @Input() checkboxable: boolean;\r\n @Input() headerCheckboxable: boolean;\r\n\r\n @ContentChild(DataTableColumnCellDirective, { read: TemplateRef }) \r\n cellTemplate: TemplateRef;\r\n\r\n @ContentChild(DataTableColumnHeaderDirective, { read: TemplateRef }) \r\n headerTemplate: TemplateRef;\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column.directive.ts","export * from './column.directive';\r\nexport * from './column-header.directive';\r\nexport * from './column-cell.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/index.ts","import {\n Component, Input, Output, ElementRef, EventEmitter, ViewChild,\n HostListener, ContentChildren, OnInit, QueryList, AfterViewInit,\n HostBinding, ContentChild, TemplateRef, IterableDiffer,\n DoCheck, KeyValueDiffers\n} from '@angular/core';\n\nimport { forceFillColumnWidths, adjustColumnWidths, sortRows } from '../utils';\nimport { ColumnMode, SortType, SelectionType } from '../types';\nimport { DataTableBodyComponent } from './body';\nimport { DataTableColumnDirective } from './columns';\nimport { DatatableRowDetailDirective } from './row-detail';\nimport { scrollbarWidth, setColumnDefaults, throttleable, translateTemplates } from '../utils';\n\n@Component({\n selector: 'swui-datatable',\n template: `\n \n \n \n \n \n \n \n \n `,\n host: {\n class: 'datatable'\n }\n})\nexport class DatatableComponent implements OnInit, AfterViewInit, DoCheck {\n\n /**\n * Rows that are displayed in the table.\n * \n * @memberOf DatatableComponent\n */\n @Input() set rows(val: any) {\n // auto sort on new updates\n if (!this.externalSorting) {\n val = sortRows(val, this.columns, this.sorts);\n }\n\n this._rows = val;\n\n // recalculate sizes/etc\n this.recalculate();\n }\n\n /**\n * Gets the rows.\n * \n * @readonly\n * @type {*}\n * @memberOf DatatableComponent\n */\n get rows(): any {\n return this._rows;\n }\n\n /**\n * Columns to be displayed.\n * \n * @memberOf DatatableComponent\n */\n @Input() set columns(val: any[]) {\n if(val) {\n setColumnDefaults(val);\n this.recalculateColumns(val);\n }\n\n this._columns = val;\n }\n\n /**\n * Get the columns.\n * \n * @readonly\n * @type {any[]}\n * @memberOf DatatableComponent\n */\n get columns(): any[] {\n return this._columns;\n }\n\n /**\n * List of row objects that should be \n * represented as selected in the grid. \n * Default value: `[]`\n * \n * @type {any[]}\n * @memberOf DatatableComponent\n */\n @Input() selected: any[] = [];\n\n /**\n * Enable vertical scrollbars\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() scrollbarV: boolean = false;\n\n /**\n * Enable horz scrollbars\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() scrollbarH: boolean = false;\n\n /**\n * The row height; which is necessary\n * to calculate the height for the lazy rendering.\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() rowHeight: number = 30;\n\n /**\n * The detail row height is required especially \n * when virtual scroll is enabled.\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() detailRowHeight: number = 0;\n\n /**\n * Type of column width distribution formula.\n * Example: flex, force, standard\n * \n * @type {ColumnMode}\n * @memberOf DatatableComponent\n */\n @Input() columnMode: ColumnMode = ColumnMode.standard;\n\n /**\n * The minimum header height in pixels.\n * Pass a falsey for no header\n * \n * @type {*}\n * @memberOf DatatableComponent\n */\n @Input() headerHeight: any = 30;\n\n /**\n * The minimum footer height in pixels.\n * Pass falsey for no footer\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() footerHeight: number = 0;\n\n /**\n * If the table should use external paging\n * otherwise its assumed that all data is preloaded.\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() externalPaging: boolean = false;\n\n /**\n * If the table should use external sorting or\n * the built-in basic sorting.\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() externalSorting: boolean = false;\n\n /**\n * The page size to be shown. \n * Default value: `undefined`\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() limit: number = undefined;\n\n /**\n * The total count of all rows. \n * Default value: `0`\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() set count(val: number) {\n this._count = val;\n\n // recalculate sizes/etc\n this.recalculate();\n }\n\n /**\n * Gets the count.\n * \n * @readonly\n * @type {number}\n * @memberOf DatatableComponent\n */\n get count(): number {\n return this._count;\n }\n\n /**\n * The current offset ( page - 1 ) shown. \n * Default value: `0`\n * \n * @type {number}\n * @memberOf DatatableComponent\n */\n @Input() offset: number = 0;\n\n /**\n * Show the linear loading bar. \n * Default value: `false`\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() loadingIndicator: boolean = false;\n\n /**\n * Type of row selection. Options are: \n * \n * - `single`\n * - `multi`\n * - `multiShift`. \n * \n * For no selection pass a `falsey`. \n * Default value: `undefined`\n * \n * @type {SelectionType}\n * @memberOf DatatableComponent\n */\n @Input() selectionType: SelectionType;\n\n /**\n * Enable/Disable ability to re-order columns\n * by dragging them.\n * \n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @Input() reorderable: boolean = true;\n\n /**\n * The type of sorting\n * \n * @type {SortType}\n * @memberOf DatatableComponent\n */\n @Input() sortType: SortType = SortType.single;\n\n /**\n * Array of sorted columns by property and type. \n * Default value: `[]`\n * \n * @type {any[]}\n * @memberOf DatatableComponent\n */\n @Input() sorts: any[] = [];\n\n /**\n * Row detail template\n * \n * @type {TemplateRef}\n * @memberOf DatatableComponent\n */\n @Input() rowDetailTemplate: TemplateRef;\n\n /**\n * Css class overrides\n * \n * @type {*}\n * @memberOf DatatableComponent\n */\n @Input() cssClasses: any = {\n sortAscending: 'icon-down',\n sortDescending: 'icon-up',\n pagerLeftArrow: 'icon-left',\n pagerRightArrow: 'icon-right',\n pagerPrevious: 'icon-prev',\n pagerNext: 'icon-skip'\n };\n\n /**\n * Message overrides for localization\n * \n * @type {*}\n * @memberOf DatatableComponent\n */\n @Input() messages: any = {\n // Message to show when array is presented\n // but contains no values\n emptyMessage: 'No data to display',\n\n // Footer total message\n totalMessage: 'total'\n };\n\n /**\n * This will be used when displaying or selecting rows.\n * when tracking/comparing them, we'll use the value of this fn,\n * \n * (`fn(x) === fn(y)` instead of `x === y`)\n * \n * @memberOf DatatableComponent\n */\n @Input() rowIdentity: (x: any) => any = ((x: any) => x);\n\n /**\n * A boolean/function you can use to check whether you want\n * to select a particular row based on a criteria. Example:\n * \n * (selection) => { \n * return selection !== 'Ethel Price'; \n * }\n * \n * @type {*}\n * @memberOf DatatableComponent\n */\n @Input() selectCheck: any;\n\n /**\n * Property to which you can use for custom tracking of rows.\n * Example: 'name'\n * \n * @type {string}\n * @memberOf DatatableComponent\n */\n @Input() trackByProp: string;\n\n /**\n * Body was scrolled typically in a `scrollbarV:true` scenario.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() scroll: EventEmitter = new EventEmitter();\n\n /**\n * A cell or row was focused via keyboard or mouse click.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() activate: EventEmitter = new EventEmitter();\n\n /**\n * A cell or row was selected.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() select: EventEmitter = new EventEmitter();\n\n /**\n * Column sort was invoked.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() sort: EventEmitter = new EventEmitter();\n\n /**\n * The table was paged either triggered by the pager or the body scroll.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() page: EventEmitter = new EventEmitter();\n\n /**\n * Row detail row visbility was toggled.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() detailToggle: EventEmitter = new EventEmitter();\n\n /**\n * Columns were re-ordered.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() reorder: EventEmitter = new EventEmitter();\n\n /**\n * Column was resized.\n * \n * @type {EventEmitter}\n * @memberOf DatatableComponent\n */\n @Output() resize: EventEmitter = new EventEmitter();\n\n /**\n * The context menu was invoked on a row.\n * \n * @memberOf DatatableComponent\n */\n @Output() rowContextmenu = new EventEmitter<{ event: MouseEvent, row: any }>(false);\n\n /**\n * CSS class applied if the header height if fixed height.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.fixed-header')\n get isFixedHeader(): boolean {\n const headerHeight: number|string = this.headerHeight;\n return (typeof headerHeight === 'string') ?\n (headerHeight) !== 'auto' : true;\n }\n\n /**\n * CSS class applied to the root element if\n * the row heights are fixed heights.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.fixed-row')\n get isFixedRow(): boolean {\n const rowHeight: number|string = this.rowHeight;\n return (typeof rowHeight === 'string') ?\n (rowHeight) !== 'auto' : true;\n }\n\n /**\n * CSS class applied to root element if\n * vertical scrolling is enabled.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.scroll-vertical')\n get isVertScroll(): boolean {\n return this.scrollbarV;\n }\n\n /**\n * CSS class applied to the root element\n * if the horziontal scrolling is enabled.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.scroll-horz')\n get isHorScroll(): boolean {\n return this.scrollbarH;\n }\n\n /**\n * CSS class applied to root element is selectable.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.selectable')\n get isSelectable(): boolean {\n return this.selectionType !== undefined;\n }\n\n /**\n * CSS class applied to root is checkbox selection.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.checkbox-selection')\n get isCheckboxSelection(): boolean {\n return this.selectionType === SelectionType.checkbox;\n }\n\n /**\n * CSS class applied to root if cell selection.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.cell-selection')\n get isCellSelection(): boolean {\n return this.selectionType === SelectionType.cell;\n }\n\n /**\n * CSS class applied to root if single select.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.single-selection')\n get isSingleSelection(): boolean {\n return this.selectionType === SelectionType.single;\n }\n \n /**\n * CSS class added to root element if mulit select\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.multi-selection')\n get isMultiSelection(): boolean {\n return this.selectionType === SelectionType.multi || \n this.selectionType === SelectionType.multiShift;\n }\n\n /**\n * Column templates gathered from `ContentChildren`\n * if described in your markup.\n * \n * @memberOf DatatableComponent\n */\n @ContentChildren(DataTableColumnDirective)\n set columnTemplates(val: QueryList) {\n this._columnTemplates = val;\n\n if(val) {\n // only set this if results were brought back\n const arr = val.toArray();\n\n if(arr.length) {\n // translate them to normal objects\n this.columns = translateTemplates(arr);\n }\n }\n }\n\n /**\n * Returns the column templates.\n * \n * @readonly\n * @type {QueryList}\n * @memberOf DatatableComponent\n */\n get columnTemplates(): QueryList {\n return this._columnTemplates;\n }\n\n /**\n * Row Detail templates gathered from the ContentChild\n * \n * @memberOf DatatableComponent\n */\n @ContentChild(DatatableRowDetailDirective)\n set rowDetailTemplateChild(val: DatatableRowDetailDirective) {\n this._rowDetailTemplateChild = val;\n if(val) this.rowDetailTemplate = val.rowDetailTemplate;\n }\n\n /**\n * Returns the row templates.\n * \n * @readonly\n * @type {DatatableRowDetailDirective}\n * @memberOf DatatableComponent\n */\n get rowDetailTemplateChild(): DatatableRowDetailDirective {\n return this._rowDetailTemplateChild;\n }\n\n /**\n * Reference to the body component for manually\n * invoking functions on the body.\n * \n * @private\n * @type {DataTableBodyComponent}\n * @memberOf DatatableComponent\n */\n @ViewChild(DataTableBodyComponent)\n private bodyComponent: DataTableBodyComponent;\n\n /**\n * Returns if all rows are selected.\n * \n * @readonly\n * @private\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n private get allRowsSelected(): boolean {\n return this.selected.length === this.rows.length;\n }\n\n private element: HTMLElement;\n private innerWidth: number;\n private pageSize: number;\n private bodyHeight: number;\n private rowCount: number;\n private offsetX: number = 0;\n private rowDiffer: IterableDiffer;\n\n private _rows: any[];\n private _columns: any[];\n private _count: number = 0;\n private _columnTemplates: QueryList;\n private _rowDetailTemplateChild: DatatableRowDetailDirective;\n\n constructor(element: ElementRef, differs: KeyValueDiffers) {\n // get ref to elm for measuring\n this.element = element.nativeElement;\n this.rowDiffer = differs.find({}).create(null);\n }\n\n /**\n * Lifecycle hook that is called after data-bound \n * properties of a directive are initialized.\n * \n * @memberOf DatatableComponent\n */\n ngOnInit(): void {\n // need to call this immediatly to size\n // if the table is hidden the visibility\n // listener will invoke this itself upon show\n this.recalculate();\n }\n\n /**\n * Lifecycle hook that is called after a component's \n * view has been fully initialized.\n * \n * @memberOf DatatableComponent\n */\n ngAfterViewInit(): void {\n // this has to be done to prevent the change detection\n // tree from freaking out because we are readjusting\n setTimeout(() => this.recalculate());\n }\n\n /**\n * Lifecycle hook that is called when Angular dirty checks a directive.\n * \n * @memberOf DatatableComponent\n */\n ngDoCheck(): void {\n if (this.rowDiffer.diff(this.rows)) {\n this.recalculatePages();\n }\n }\n\n /**\n * Toggle the expansion of the row\n *\n * @param rowIndex\n */\n toggleExpandRow(row: any): void {\n // Should we write a guard here??\n this.bodyComponent.toggleRowExpansion(row);\n }\n\n /**\n * API method to expand all the rows.\n * \n * @memberOf DatatableComponent\n */\n expandAllRows(): void {\n this.bodyComponent.toggleAllRows(true);\n }\n\n /**\n * API method to collapse all the rows.\n * \n * @memberOf DatatableComponent\n */\n collapseAllRows(): void {\n this.bodyComponent.toggleAllRows(false);\n }\n\n /**\n * Recalc's the sizes of the grid.\n * \n * Updated automatically on changes to:\n * \n * - Columns\n * - Rows\n * - Paging related\n * \n * Also can be manually invoked or upon window resize.\n * \n * @memberOf DatatableComponent\n */\n recalculate(): void {\n this.recalculateDims();\n this.recalculateColumns();\n }\n\n /**\n * Window resize handler to update sizes.\n * \n * @memberOf DatatableComponent\n */\n @HostListener('window:resize')\n @throttleable(5)\n onWindowResize(): void {\n this.recalculate();\n }\n\n /**\n * Recalulcates the column widths based on column width\n * distribution mode and scrollbar offsets.\n * \n * @param {any[]} [columns=this.columns]\n * @param {number} [forceIdx=false]\n * @param {boolean} [allowBleed=this.scrollH]\n * @returns {any[]}\n * \n * @memberOf DatatableComponent\n */\n recalculateColumns(\n columns: any[] = this.columns, \n forceIdx: number = -1, \n allowBleed: boolean = this.scrollbarH): any[] {\n\n if (!columns) return;\n\n let width = this.innerWidth;\n if (this.scrollbarV) {\n width = width - scrollbarWidth;\n }\n\n if (this.columnMode === ColumnMode.force) {\n forceFillColumnWidths(columns, width, forceIdx, allowBleed);\n } else if (this.columnMode === ColumnMode.flex) {\n adjustColumnWidths(columns, width);\n }\n\n return columns;\n }\n\n /**\n * Recalculates the dimensions of the table size.\n * Internally calls the page size and row count calcs too.\n * \n * @memberOf DatatableComponent\n */\n recalculateDims(): void {\n let { height, width } = this.element.getBoundingClientRect();\n this.innerWidth = Math.floor(width);\n\n if (this.scrollbarV) {\n if (this.headerHeight) height = height - this.headerHeight;\n if (this.footerHeight) height = height - this.footerHeight;\n this.bodyHeight = height;\n }\n\n this.recalculatePages();\n }\n\n /**\n * Recalculates the pages after a update.\n * \n * \n * @memberOf DatatableComponent\n */\n recalculatePages(): void {\n this.pageSize = this.calcPageSize();\n this.rowCount = this.calcRowCount();\n }\n\n /**\n * Body triggered a page event.\n * \n * @param {*} { offset }\n * \n * @memberOf DatatableComponent\n */\n onBodyPage({ offset }: any): void {\n this.offset = offset;\n\n this.page.emit({\n count: this.count,\n pageSize: this.pageSize,\n limit: this.limit,\n offset: this.offset\n });\n }\n\n /**\n * The body triggered a scroll event.\n * \n * @param {MouseEvent} event\n * \n * @memberOf DatatableComponent\n */\n onBodyScroll(event: MouseEvent): void {\n this.offsetX = event.offsetX;\n this.scroll.emit(event);\n }\n\n /**\n * The footer triggered a page event.\n * \n * @param {*} event\n * \n * @memberOf DatatableComponent\n */\n onFooterPage(event: any) {\n this.offset = event.page - 1;\n this.bodyComponent.updateOffsetY(this.offset);\n\n this.page.emit({\n count: this.count,\n pageSize: this.pageSize,\n limit: this.limit,\n offset: this.offset\n });\n }\n\n /**\n * Recalculates the sizes of the page\n * \n * @param {any[]} [val=this.rows]\n * @returns {number}\n * \n * @memberOf DatatableComponent\n */\n calcPageSize(val: any[] = this.rows): number {\n // Keep the page size constant even if the row has been expanded.\n // This is because an expanded row is still considered to be a child of\n // the original row. Hence calculation would use rowHeight only.\n if (this.scrollbarV) {\n const size = Math.ceil(this.bodyHeight / this.rowHeight);\n return Math.max(size, 0);\n }\n\n // if limit is passed, we are paging\n if (this.limit !== undefined) return this.limit;\n\n // otherwise use row length\n if(val) return val.length;\n\n // other empty :(\n return 0;\n }\n\n /**\n * Calculates the row count.\n * \n * @param {any[]} [val=this.rows]\n * @returns {number}\n * \n * @memberOf DatatableComponent\n */\n calcRowCount(val: any[] = this.rows): number {\n if(!this.externalPaging) {\n if(!val) return 0;\n return val.length;\n }\n\n return this.count;\n }\n\n /**\n * The header triggered a column resize event.\n * \n * @param {*} { column, newValue }\n * \n * @memberOf DatatableComponent\n */\n onColumnResize({ column, newValue }: any): void {\n let idx: number;\n let cols = this.columns.map((c, i) => {\n c = Object.assign({}, c);\n\n if(c.$$id === column.$$id) {\n idx = i;\n c.width = newValue;\n\n // set this so we can force the column\n // width distribution to be to this value\n c.$$oldWidth = newValue;\n }\n\n return c;\n });\n\n this.recalculateColumns(cols, idx);\n this._columns = cols;\n\n this.resize.emit({\n column,\n newValue\n });\n }\n\n /**\n * The header triggered a column re-order event.\n * \n * @param {*} { column, newValue, prevValue }\n * \n * @memberOf DatatableComponent\n */\n onColumnReorder({ column, newValue, prevValue }: any): void {\n let cols = this.columns.map(c => {\n return Object.assign({}, c);\n });\n\n cols.splice(prevValue, 1);\n cols.splice(newValue, 0, column);\n this.columns = cols;\n\n this.reorder.emit({\n column,\n newValue,\n prevValue\n });\n }\n\n /**\n * The header triggered a column sort event.\n * \n * @param {*} event\n * \n * @memberOf DatatableComponent\n */\n onColumnSort(event: any): void {\n const { sorts } = event;\n\n // this could be optimized better since it will resort\n // the rows again on the 'push' detection...\n if (this.externalSorting === false) {\n // don't use normal setter so we don't resort\n this._rows = sortRows(this.rows, this.columns, sorts);\n }\n\n this.sorts = sorts;\n this.bodyComponent.updateOffsetY(0);\n this.sort.emit(event);\n }\n\n /**\n * Toggle all row selection\n * \n * @param {*} event\n * \n * @memberOf DatatableComponent\n */\n onHeaderSelect(event: any): void {\n if(this.selected.length === this.rows.length) {\n this.selected = [];\n } else {\n this.selected = [...this.rows];\n }\n\n this.select.emit({\n selected: this.selected\n });\n }\n\n /**\n * A row was selected from body\n * \n * @param {*} event\n * \n * @memberOf DatatableComponent\n */\n onBodySelect(event: any): void {\n this.select.emit(event);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/datatable.component.ts","import {\r\n Component, Output, EventEmitter, ChangeDetectionStrategy, Input\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-footer',\r\n template: `\r\n \r\n
{{rowCount.toLocaleString()}} {{totalMessage}}
\r\n \r\n \r\n \r\n `,\r\n host: {\r\n class: 'datatable-footer'\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DataTableFooterComponent {\r\n\r\n @Input() footerHeight: number;\r\n @Input() rowCount: number;\r\n @Input() pageSize: number;\r\n @Input() offset: number;\r\n @Input() pagerLeftArrowIcon: string;\r\n @Input() pagerRightArrowIcon: string;\r\n @Input() pagerPreviousIcon: string;\r\n @Input() pagerNextIcon: string;\r\n @Input() totalMessage: string;\r\n\r\n @Output() page: EventEmitter = new EventEmitter();\r\n\r\n get isVisible() {\r\n return (this.rowCount / this.pageSize) > 1;\r\n }\r\n\r\n get curPage() {\r\n return this.offset + 1;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/footer.component.ts","export * from './footer.component';\r\nexport * from './pager.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/index.ts","import {\r\n Component, Input, Output, EventEmitter, ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable-pager',\r\n template: `\r\n
    \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n \r\n \r\n {{pg.text}}\r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
\r\n `,\r\n host: {\r\n class: 'datatable-pager'\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DataTablePagerComponent {\r\n\r\n @Input() pagerLeftArrowIcon: string;\r\n @Input() pagerRightArrowIcon: string;\r\n @Input() pagerPreviousIcon: string;\r\n @Input() pagerNextIcon: string;\r\n\r\n @Input()\r\n set size(val: number) {\r\n this._size = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get size(): number {\r\n return this._size;\r\n }\r\n\r\n @Input()\r\n set count(val: number) {\r\n this._count = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get count(): number {\r\n return this._count;\r\n }\r\n\r\n @Input()\r\n set page(val: number) {\r\n this._page = val;\r\n this.pages = this.calcPages();\r\n }\r\n\r\n get page(): number {\r\n return this._page;\r\n }\r\n\r\n get totalPages(): number {\r\n const count = this.size < 1 ? 1 : Math.ceil(this.count / this.size);\r\n return Math.max(count || 0, 1);\r\n }\r\n\r\n @Output() change: EventEmitter = new EventEmitter();\r\n\r\n private _count: number = 0;\r\n private _page: number = 1;\r\n private _size: number = 0;\r\n private pages: any;\r\n\r\n canPrevious(): boolean {\r\n return this.page > 1;\r\n }\r\n\r\n canNext(): boolean {\r\n return this.page < this.totalPages;\r\n }\r\n\r\n prevPage(): void {\r\n this.selectPage(this.page - 1);\r\n }\r\n\r\n nextPage(): void {\r\n this.selectPage(this.page + 1);\r\n }\r\n\r\n selectPage(page: number): void {\r\n if (page > 0 && page <= this.totalPages && page !== this.page) {\r\n this.page = page;\r\n\r\n this.change.emit({\r\n page\r\n });\r\n }\r\n }\r\n\r\n calcPages(page?: number): any[] {\r\n let pages: {number: number, text: string}[] = [];\r\n let startPage = 1;\r\n let endPage = this.totalPages;\r\n let maxSize = 5;\r\n const isMaxSized = maxSize < this.totalPages;\r\n\r\n page = page || this.page;\r\n\r\n if (isMaxSized) {\r\n startPage = ((Math.ceil(page / maxSize) - 1) * maxSize) + 1;\r\n endPage = Math.min(startPage + maxSize - 1, this.totalPages);\r\n }\r\n\r\n for (let num = startPage; num <= endPage; num++) {\r\n pages.push({\r\n number: num,\r\n text: num\r\n });\r\n }\r\n\r\n return pages;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/pager.component.ts","import {\r\n Component, Input, EventEmitter, Output, HostBinding\r\n} from '@angular/core';\r\n\r\nimport { SortDirection, SortType } from '../../types';\r\nimport { nextSortDir } from '../../utils';\r\n\r\n@Component({\r\n selector: 'datatable-header-cell',\r\n template: `\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n `\r\n})\r\nexport class DataTableHeaderCellComponent {\r\n\r\n @Input() sortType: SortType;\r\n @Input() column: any;\r\n @Input() sortAscendingIcon: string;\r\n @Input() sortDescendingIcon: string;\r\n @Input() allRowsSelected: boolean;\r\n\r\n @HostBinding('style.height.px')\r\n @Input() headerHeight: number;\r\n\r\n @Input() set sorts(val: any[]) {\r\n this._sorts = val;\r\n this.sortDir = this.calcSortDir(val);\r\n }\r\n\r\n get sorts(): any[] {\r\n return this._sorts;\r\n }\r\n\r\n @Output() sort: EventEmitter = new EventEmitter();\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class')\r\n get columnCssClasses(): any {\r\n let cls = 'datatable-header-cell';\r\n\r\n if(this.column.sortable) cls += ' sortable';\r\n if(this.column.resizeable) cls += ' resizeable';\r\n\r\n const sortDir = this.sortDir;\r\n if(sortDir) {\r\n cls += ` sort-active sort-${sortDir}`;\r\n }\r\n\r\n return cls;\r\n }\r\n\r\n @HostBinding('attr.title')\r\n private get name(): string {\r\n return this.column.name || this.column.prop;\r\n }\r\n\r\n @HostBinding('style.minWidth.px')\r\n private get minWidth(): number {\r\n return this.column.minWidth;\r\n }\r\n\r\n @HostBinding('style.maxWidth.px')\r\n private get maxWidth(): number {\r\n return this.column.maxWidth;\r\n }\r\n\r\n @HostBinding('style.width.px')\r\n private get width(): number {\r\n return this.column.width;\r\n }\r\n\r\n private sortDir: SortDirection;\r\n private _sorts: any[];\r\n\r\n sortClasses(dir: SortDirection): any {\r\n let result = {};\r\n\r\n if(dir === SortDirection.asc) {\r\n result[`sort-asc ${this.sortAscendingIcon}`] = true;\r\n } else if(dir === SortDirection.desc) {\r\n result[`sort-desc ${this.sortDescendingIcon}`] = true;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n calcSortDir(sorts: any[]) {\r\n if(sorts && this.column) {\r\n const sort = sorts.find((s: any) => {\r\n return s.prop === this.column.prop;\r\n });\r\n\r\n if(sort) return sort.dir;\r\n }\r\n }\r\n\r\n onSort(): void {\r\n if(!this.column.sortable) return;\r\n\r\n const newValue = nextSortDir(this.sortType, this.sortDir);\r\n this.sort.emit({\r\n column: this.column,\r\n prevValue: this.sortDir,\r\n newValue\r\n });\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/header-cell.component.ts","import {\r\n Component, Output, EventEmitter, Input, HostBinding\r\n} from '@angular/core';\r\nimport { SortType } from '../../types';\r\nimport { columnsByPin, columnGroupWidths, columnsByPinArr, translateXY } from '../../utils';\r\nimport { DataTableColumnDirective } from '../columns';\r\n\r\n@Component({\r\n selector: 'datatable-header',\r\n template: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n host: {\r\n class: 'datatable-header'\r\n }\r\n})\r\nexport class DataTableHeaderComponent {\r\n\r\n @Input() sortAscendingIcon: any;\r\n @Input() sortDescendingIcon: any;\r\n @Input() scrollbarH: boolean;\r\n @Input() innerWidth: number;\r\n @Input() offsetX: number;\r\n @Input() sorts: any[];\r\n @Input() sortType: SortType;\r\n @Input() allRowsSelected: boolean;\r\n\r\n @HostBinding('style.height')\r\n @Input() set headerHeight(val: any) {\r\n if(val !== 'auto') { \r\n this._headerHeight = `${val}px`;\r\n } else {\r\n this._headerHeight = val;\r\n }\r\n }\r\n\r\n get headerHeight() {\r\n return this._headerHeight;\r\n }\r\n\r\n @Input() set columns(val: any[]) {\r\n this._columns = val;\r\n\r\n const colsByPin = columnsByPin(val);\r\n this.columnsByPin = columnsByPinArr(val);\r\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\r\n }\r\n\r\n get columns(): any[] { \r\n return this._columns; \r\n }\r\n\r\n @Output() sort: EventEmitter = new EventEmitter();\r\n @Output() reorder: EventEmitter = new EventEmitter();\r\n @Output() resize: EventEmitter = new EventEmitter();\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n private columnsByPin: any;\r\n private columnGroupWidths: any;\r\n private _columns: any[];\r\n private _headerHeight: string;\r\n\r\n @HostBinding('style.width')\r\n private get headerWidth(): string {\r\n if(this.scrollbarH) {\r\n return this.innerWidth + 'px';\r\n }\r\n\r\n return '100%';\r\n }\r\n\r\n onColumnResized(width: number, column: DataTableColumnDirective) {\r\n if (width <= column.minWidth) {\r\n width = column.minWidth;\r\n } else if(width >= column.maxWidth) {\r\n width = column.maxWidth;\r\n }\r\n\r\n this.resize.emit({\r\n column,\r\n prevValue: column.width,\r\n newValue: width\r\n });\r\n }\r\n\r\n onColumnReordered({ prevIndex, newIndex, model }: any) {\r\n this.reorder.emit({\r\n column: model,\r\n prevValue: prevIndex,\r\n newValue: newIndex\r\n });\r\n }\r\n\r\n onSort({ column, prevValue, newValue }: any) {\r\n const sorts = this.calcNewSorts(column, prevValue, newValue);\r\n this.sort.emit({\r\n sorts,\r\n column,\r\n prevValue,\r\n newValue\r\n });\r\n }\r\n\r\n calcNewSorts(column: any, prevValue: number, newValue: number) {\r\n let idx = 0;\r\n\r\n let sorts = this.sorts.map((s, i) => {\r\n s = Object.assign({}, s);\r\n if(s.prop === column.prop) idx = i;\r\n return s;\r\n });\r\n\r\n if (newValue === undefined) {\r\n sorts.splice(idx, 1);\r\n } else if (prevValue) {\r\n sorts[idx].dir = newValue;\r\n } else {\r\n if (this.sortType === SortType.single) {\r\n sorts.splice(0, this.sorts.length);\r\n }\r\n\r\n sorts.push({ dir: newValue, prop: column.prop });\r\n }\r\n\r\n return sorts;\r\n }\r\n\r\n stylesByGroup(group: string) {\r\n const widths = this.columnGroupWidths;\r\n const offsetX = this.offsetX;\r\n\r\n let styles = {\r\n width: `${widths[group]}px`\r\n };\r\n\r\n if(group === 'center') {\r\n translateXY(styles, offsetX * -1, 0);\r\n } else if(group === 'right') {\r\n const totalDiff = widths.total - this.innerWidth;\r\n const offset = totalDiff * -1;\r\n translateXY(styles, offset, 0);\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/header.component.ts","export * from './header.component';\r\nexport * from './header-cell.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/index.ts","export * from './datatable.component';\r\n\r\nexport * from './header';\r\nexport * from './body';\r\nexport * from './footer';\r\n\r\nexport * from './columns';\r\nexport * from './row-detail';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/index.ts","export * from './row-detail.directive';\r\nexport * from './row-detail-template.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/index.ts","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[swui-datatable-row-detail-template]'\r\n})\r\nexport class DatatableRowDetailTemplateDirective {\r\n constructor(public template: TemplateRef) { };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/row-detail-template.directive.ts","import { Directive, TemplateRef, ContentChild } from '@angular/core';\r\nimport { DatatableRowDetailTemplateDirective } from './row-detail-template.directive';\r\n\r\n@Directive({ selector: 'swui-datatable-row-detail' })\r\nexport class DatatableRowDetailDirective {\r\n\r\n @ContentChild(DatatableRowDetailTemplateDirective, { read: TemplateRef }) \r\n template: TemplateRef;\r\n\r\n get rowDetailTemplate(): TemplateRef {\r\n return this.template;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/row-detail.directive.ts","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport {\r\n DatatableComponent,\r\n DataTableColumnDirective,\r\n DataTableHeaderComponent,\r\n DataTableBodyComponent,\r\n DataTableFooterComponent,\r\n DataTableHeaderCellComponent,\r\n DataTablePagerComponent,\r\n DataTableBodyRowComponent,\r\n DataTableRowWrapperComponent,\r\n ProgressBarComponent,\r\n DataTableBodyCellComponent,\r\n DatatableRowDetailDirective,\r\n ScrollerComponent,\r\n DataTableSelectionComponent,\r\n DataTableColumnHeaderDirective,\r\n DataTableColumnCellDirective,\r\n DatatableRowDetailTemplateDirective\r\n} from './components';\r\n\r\nimport {\r\n VisibilityDirective,\r\n LongPressDirective,\r\n ResizeableDirective,\r\n OrderableDirective,\r\n DraggableDirective\r\n} from './directives';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n VisibilityDirective,\r\n DraggableDirective,\r\n ResizeableDirective,\r\n OrderableDirective,\r\n LongPressDirective,\r\n ScrollerComponent,\r\n DatatableComponent,\r\n DataTableColumnDirective,\r\n DataTableHeaderComponent,\r\n DataTableHeaderCellComponent,\r\n DataTableBodyComponent,\r\n DataTableFooterComponent,\r\n DataTablePagerComponent,\r\n ProgressBarComponent,\r\n DataTableBodyRowComponent,\r\n DataTableRowWrapperComponent,\r\n DatatableRowDetailDirective,\r\n DatatableRowDetailTemplateDirective,\r\n DataTableBodyCellComponent,\r\n DataTableSelectionComponent,\r\n DataTableColumnHeaderDirective,\r\n DataTableColumnCellDirective\r\n ],\r\n exports: [\r\n DatatableComponent,\r\n DatatableRowDetailDirective,\r\n DatatableRowDetailTemplateDirective,\r\n DataTableColumnDirective,\r\n DataTableColumnHeaderDirective,\r\n DataTableColumnCellDirective\r\n ]\r\n})\r\nexport class Angular2DataTableModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/datatable.module.ts","import { Directive, ElementRef, HostListener, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs/Rx';\r\n\r\n/**\r\n * Draggable Directive for Angular2\r\n *\r\n * Inspiration:\r\n * https://github.com/AngularClass/angular2-examples/blob/master/rx-draggable/directives/draggable.ts\r\n * http://stackoverflow.com/questions/35662530/how-to-implement-drag-and-drop-in-angular2\r\n *\r\n */\r\n@Directive({ selector: '[draggable]' })\r\nexport class DraggableDirective {\r\n\r\n @Input() dragModel: any;\r\n @Input() dragX: boolean = true;\r\n @Input() dragY: boolean = true;\r\n\r\n @Output() dragStart: EventEmitter = new EventEmitter();\r\n @Output() dragging: EventEmitter = new EventEmitter();\r\n @Output() dragEnd: EventEmitter = new EventEmitter();\r\n\r\n element: HTMLElement;\r\n private isDragging: boolean = false;\r\n private subscription: Subscription;\r\n\r\n constructor(element: ElementRef) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n onMouseup(event: MouseEvent) {\r\n this.isDragging = false;\r\n this.element.classList.remove('dragging');\r\n\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n this.dragEnd.emit({\r\n event,\r\n element: this.element,\r\n model: this.dragModel\r\n });\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMousedown(event: MouseEvent) {\r\n if ( (event.target).classList.contains('draggable')) {\r\n event.preventDefault();\r\n this.isDragging = true;\r\n\r\n const mouseDownPos = { x: event.clientX, y: event.clientY };\r\n this.subscription = Observable.fromEvent(document, 'mousemove')\r\n .subscribe((ev: MouseEvent) => this.move(ev, mouseDownPos));\r\n\r\n this.dragStart.emit({\r\n event,\r\n element: this.element,\r\n model: this.dragModel\r\n });\r\n }\r\n }\r\n\r\n move(event: MouseEvent, mouseDownPos: {x: number, y: number }): void {\r\n if (!this.dragging) return;\r\n\r\n const x = event.clientX - mouseDownPos.x;\r\n const y = event.clientY - mouseDownPos.y;\r\n\r\n if (this.dragX) this.element.style.left = `${x}px`;\r\n if (this.dragY) this.element.style.top = `${y}px`;\r\n\r\n if (this.dragX || this.dragY) {\r\n this.element.classList.add('dragging');\r\n\r\n this.dragging.emit({\r\n event,\r\n element: this.element,\r\n model: this.dragModel\r\n });\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/draggable.directive.ts","export * from './draggable.directive';\r\nexport * from './long-press.directive';\r\nexport * from './orderable.directive';\r\nexport * from './resizeable.directive';\r\nexport * from './visibility.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/index.ts","import {\r\n Directive,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\n\r\n@Directive({ selector: '[long-press]' })\r\nexport class LongPressDirective {\r\n\r\n @Input() duration: number = 500;\r\n\r\n @Output() longPress: EventEmitter = new EventEmitter();\r\n @Output() longPressing: EventEmitter = new EventEmitter();\r\n @Output() longPressEnd: EventEmitter = new EventEmitter();\r\n\r\n private pressing: boolean;\r\n private isLongPressing: boolean;\r\n private timeout: any;\r\n private mouseX: number = 0;\r\n private mouseY: number = 0;\r\n\r\n @HostBinding('class.press')\r\n get press() { return this.pressing; }\r\n\r\n @HostBinding('class.longpress')\r\n get isLongPress() { return this.longPressing; }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event: MouseEvent) {\r\n // don't do right/middle clicks\r\n if(event.which !== 1) return;\r\n\r\n this.mouseX = event.clientX;\r\n this.mouseY = event.clientY;\r\n\r\n this.pressing = true;\r\n this.isLongPressing = false;\r\n\r\n this.timeout = setTimeout(() => {\r\n this.isLongPressing = true;\r\n this.longPress.emit(event);\r\n this.loop(event);\r\n }, this.duration);\r\n\r\n this.loop(event);\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n onMouseMove(event: MouseEvent) {\r\n if(this.pressing && !this.longPressing) {\r\n const xThres = (event.clientX - this.mouseX) > 10;\r\n const yThres = (event.clientY - this.mouseY) > 10;\r\n if(xThres || yThres) {\r\n this.endPress();\r\n }\r\n }\r\n }\r\n\r\n loop(event: Event) {\r\n if(this.longPressing) {\r\n this.timeout = setTimeout(() => {\r\n this.longPressing.emit(event);\r\n this.loop(event);\r\n }, 50);\r\n }\r\n }\r\n\r\n endPress() {\r\n clearTimeout(this.timeout);\r\n this.isLongPressing = false;\r\n this.pressing = false;\r\n this.longPressEnd.emit(true);\r\n }\r\n\r\n @HostListener('mouseup')\r\n onMouseUp() { this.endPress(); }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/long-press.directive.ts","import {\r\n Directive, Output, EventEmitter, ContentChildren,\r\n QueryList, KeyValueDiffers\r\n} from '@angular/core';\r\n\r\nimport { DraggableDirective } from './draggable.directive';\r\n\r\n@Directive({ selector: '[orderable]' })\r\nexport class OrderableDirective {\r\n\r\n @Output() reorder: EventEmitter = new EventEmitter();\r\n\r\n @ContentChildren(DraggableDirective, { descendants: true })\r\n private draggables: QueryList;\r\n\r\n private positions: any;\r\n private differ: any;\r\n\r\n constructor(differs: KeyValueDiffers) {\r\n this.differ = differs.find({}).create(null);\r\n }\r\n\r\n ngAfterContentInit() {\r\n // HACK: Investigate Better Way\r\n this.updateSubscriptions();\r\n this.draggables.changes.subscribe(\r\n this.updateSubscriptions.bind(this));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.draggables.forEach(d => {\r\n d.dragStart.unsubscribe();\r\n d.dragEnd.unsubscribe();\r\n });\r\n }\r\n\r\n updateSubscriptions() {\r\n const diffs = this.differ.diff(this.draggables.toArray());\r\n\r\n if(diffs) {\r\n const subscribe = ({ currentValue, previousValue }: any) => {\r\n unsubscribe({ previousValue });\r\n\r\n if(currentValue) {\r\n currentValue.dragStart.subscribe(this.onDragStart.bind(this));\r\n currentValue.dragEnd.subscribe(this.onDragEnd.bind(this));\r\n }\r\n };\r\n\r\n const unsubscribe = ({ previousValue }: any) => {\r\n if(previousValue) {\r\n previousValue.dragStart.unsubscribe();\r\n previousValue.dragEnd.unsubscribe();\r\n }\r\n };\r\n\r\n diffs.forEachAddedItem(subscribe.bind(this));\r\n diffs.forEachChangedItem(subscribe.bind(this));\r\n diffs.forEachRemovedItem(unsubscribe.bind(this));\r\n }\r\n }\r\n\r\n onDragStart() {\r\n this.positions = {};\r\n\r\n let i = 0;\r\n for(let dragger of this.draggables.toArray()) {\r\n let elm = dragger.element;\r\n this.positions[dragger.dragModel.prop] = {\r\n left: parseInt(elm.offsetLeft.toString(), 0),\r\n index: i++\r\n };\r\n }\r\n }\r\n\r\n onDragEnd({ element, model }: any) {\r\n const newPos = parseInt(element.offsetLeft.toString(), 0);\r\n const prevPos = this.positions[model.prop];\r\n\r\n let i = 0;\r\n for(let prop in this.positions) {\r\n let pos = this.positions[prop];\r\n\r\n let movedLeft = newPos < pos.left && prevPos.left > pos.left;\r\n let movedRight = newPos > pos.left && prevPos.left < pos.left;\r\n\r\n if(movedLeft || movedRight) {\r\n this.reorder.emit({\r\n prevIndex: prevPos.index,\r\n newIndex: i,\r\n model\r\n });\r\n }\r\n\r\n i++;\r\n }\r\n\r\n element.style.left = 'auto';\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/orderable.directive.ts","import { Directive, ElementRef, HostListener, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs/Rx';\r\n\r\n@Directive({\r\n selector: '[resizeable]',\r\n host: {\r\n '[class.resizeable]': 'resizeEnabled'\r\n }\r\n})\r\nexport class ResizeableDirective {\r\n\r\n @Input() resizeEnabled: boolean = true;\r\n @Input() minWidth: number;\r\n @Input() maxWidth: number;\r\n\r\n @Output() resize: EventEmitter = new EventEmitter();\r\n\r\n private element: HTMLElement;\r\n private subscription: Subscription;\r\n private resizing: boolean = false;\r\n\r\n constructor(element: ElementRef) {\r\n this.element = element.nativeElement;\r\n\r\n if (this.resizeEnabled) {\r\n const node = document.createElement('span');\r\n node.classList.add('resize-handle');\r\n this.element.appendChild(node);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n onMouseup() {\r\n this.resizing = false;\r\n\r\n if (this.subscription && !this.subscription.closed) {\r\n this.subscription.unsubscribe();\r\n this.resize.emit(this.element.clientWidth);\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMousedown(event: MouseEvent) {\r\n const isHandle = ((event.target)).classList.contains('resize-handle');\r\n const initialWidth = this.element.clientWidth;\r\n const mouseDownScreenX = event.screenX;\r\n\r\n if (isHandle) {\r\n event.stopPropagation();\r\n this.resizing = true;\r\n\r\n this.subscription = Observable.fromEvent(document, 'mousemove')\r\n .subscribe((e: MouseEvent) => this.move(e, initialWidth, mouseDownScreenX));\r\n }\r\n }\r\n\r\n move(event: MouseEvent, initialWidth: number, mouseDownScreenX: number): void {\r\n const movementX = event.screenX - mouseDownScreenX;\r\n const newWidth = initialWidth + movementX;\r\n\r\n const overMinWidth = !this.minWidth || newWidth >= this.minWidth;\r\n const underMaxWidth = !this.maxWidth || newWidth <= this.maxWidth;\r\n\r\n if (overMinWidth && underMaxWidth) {\r\n this.element.style.width = `${newWidth}px`;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/resizeable.directive.ts","import {\r\n Directive, Output, EventEmitter, ElementRef, HostBinding, NgZone, OnInit, OnDestroy\r\n} from '@angular/core';\r\n\r\n/**\r\n * Visibility Observer Directive\r\n *\r\n * Usage:\r\n *\r\n * \t\t\r\n * \t\t\r\n *\r\n */\r\n@Directive({ selector: '[visibility-observer]' })\r\nexport class VisibilityDirective implements OnInit, OnDestroy {\r\n\r\n @HostBinding('class.visible') \r\n isVisible: boolean = false;\r\n\r\n @Output() visible: EventEmitter = new EventEmitter();\r\n\r\n private timeout: any;\r\n\r\n constructor(private element: ElementRef, private zone: NgZone) { }\r\n\r\n ngOnInit() {\r\n this.runCheck();\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.timeout);\r\n }\r\n\r\n onVisibilityChange() {\r\n // trigger zone recalc for columns\r\n this.zone.run(() => {\r\n this.isVisible = true;\r\n this.visible.emit(true);\r\n });\r\n }\r\n\r\n runCheck() {\r\n const check = () => {\r\n // https://davidwalsh.name/offsetheight-visibility\r\n const { offsetHeight, offsetWidth } = this.element.nativeElement;\r\n\r\n if (offsetHeight && offsetWidth) {\r\n clearTimeout(this.timeout);\r\n this.onVisibilityChange();\r\n } else {\r\n clearTimeout(this.timeout);\r\n this.zone.runOutsideAngular(() => {\r\n this.timeout = setTimeout(() => check(), 50);\r\n });\r\n }\r\n };\r\n\r\n setTimeout(() => check());\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/visibility.directive.ts","export * from './datatable.module'\r\nexport * from './types';\r\nexport * from './components';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.ts","export enum ClickType {\r\n single = 'single' as any,\r\n double = 'double' as any \r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/click.type.ts","export enum ColumnMode {\r\n standard = 'standard' as any,\r\n flex = 'flex' as any,\r\n force = 'force' as any\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/column-mode.type.ts","export * from './column-mode.type';\r\nexport * from './sort.type';\r\nexport * from './sort-direction.type';\r\nexport * from './selection.type';\r\nexport * from './click.type';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/index.ts","export enum SelectionType {\r\n single = 'single' as any,\r\n multi = 'multi' as any,\r\n multiShift = 'multiShift' as any,\r\n cell = 'cell' as any,\r\n checkbox = 'checkbox' as any\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/selection.type.ts","export enum SortDirection {\r\n asc = 'asc' as any,\r\n desc = 'desc' as any\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/sort-direction.type.ts","export enum SortType {\r\n single = 'single' as any,\r\n multi = 'multi' as any\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/sort.type.ts","/**\r\n * Converts strings from something to camel case\r\n * http://stackoverflow.com/questions/10425287/convert-dash-separated-string-to-camelcase\r\n * @param {string} str\r\n * @return {string} camel case string\r\n */\r\nexport function camelCase(str: string): string {\r\n // Replace special characters with a space\r\n str = str.replace(/[^a-zA-Z0-9 ]/g, ' ');\r\n // put a space before an uppercase letter\r\n str = str.replace(/([a-z](?=[A-Z]))/g, '$1 ');\r\n\r\n // Lower case first character and some other stuff\r\n str = str.replace(/([^a-zA-Z0-9 ])|^[0-9]+/g, '').trim().toLowerCase();\r\n\r\n // uppercase characters preceded by a space or number\r\n str = str.replace(/([ 0-9]+)([a-zA-Z])/g, function(a, b, c) {\r\n return b.trim() + c.toUpperCase();\r\n });\r\n\r\n return str;\r\n}\r\n\r\n/**\r\n * Converts strings from camel case to words\r\n * http://stackoverflow.com/questions/7225407/convert-camelcasetext-to-camel-case-text\r\n *\r\n * @export\r\n * @param {any} str\r\n * @returns string\r\n */\r\nexport function deCamelCase(str: string): string {\r\n return str\r\n .replace(/([A-Z])/g, (match) => ` ${match}`)\r\n .replace(/^./, (match) => match.toUpperCase());\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/camel-case.ts","import { DataTableColumnDirective } from '../components/columns';\r\nimport { camelCase, deCamelCase, id } from '../utils';\r\n\r\n/**\r\n * Sets the column defaults\r\n * \r\n * @export\r\n * @param {any[]} columns\r\n * @returns\r\n */\r\nexport function setColumnDefaults(columns: any[]) {\r\n if(!columns) return;\r\n\r\n for(let column of columns) {\r\n if(!column.$$id) {\r\n column.$$id = id();\r\n }\r\n\r\n // translate name => prop\r\n if(!column.prop && column.name) {\r\n column.prop = camelCase(column.name);\r\n }\r\n\r\n // format props if no name passed\r\n if(column.prop && !column.name) {\r\n column.name = deCamelCase(column.prop);\r\n }\r\n\r\n if(!column.hasOwnProperty('resizeable')) {\r\n column.resizeable = true;\r\n }\r\n\r\n if(!column.hasOwnProperty('sortable')) {\r\n column.sortable = true;\r\n }\r\n\r\n if(!column.hasOwnProperty('draggable')) {\r\n column.draggable = true;\r\n }\r\n\r\n if(!column.hasOwnProperty('canAutoResize')) {\r\n column.canAutoResize = true;\r\n }\r\n\r\n if(!column.hasOwnProperty('width')) {\r\n column.width = 150;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Translates templates definitions to objects\r\n * \r\n * @export\r\n * @param {DataTableColumnDirective[]} templates\r\n * @returns {any[]}\r\n */\r\nexport function translateTemplates(templates: DataTableColumnDirective[]): any[] {\r\n let result: any[] = [];\r\n\r\n for(const temp of templates) {\r\n let col: any = {};\r\n\r\n const props = Object.getOwnPropertyNames(temp);\r\n for(const prop of props) {\r\n col[prop] = temp[prop];\r\n }\r\n\r\n if(temp.headerTemplate) {\r\n col.headerTemplate = temp.headerTemplate;\r\n }\r\n\r\n if(temp.cellTemplate) {\r\n col.cellTemplate = temp.cellTemplate;\r\n }\r\n\r\n result.push(col);\r\n }\r\n\r\n return result;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/column-helper.ts","/**\r\n * Returns the columns by pin.\r\n * @param {array} cols\r\n */\r\nexport function columnsByPin(cols: any[]) {\r\n let ret: {left: any, center: any, right: any} = {\r\n left: [],\r\n center: [],\r\n right: []\r\n };\r\n\r\n if(cols) {\r\n for(let col of cols) {\r\n if(col.frozenLeft) {\r\n ret.left.push(col);\r\n } else if(col.frozenRight) {\r\n ret.right.push(col);\r\n } else {\r\n ret.center.push(col);\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n/**\r\n * Returns the widths of all group sets of a column\r\n * @param {object} groups\r\n * @param {array} all\r\n */\r\nexport function columnGroupWidths(groups: any, all: any) {\r\n return {\r\n left: columnTotalWidth(groups.left),\r\n center: columnTotalWidth(groups.center),\r\n right: columnTotalWidth(groups.right),\r\n total: columnTotalWidth(all)\r\n };\r\n}\r\n\r\n/**\r\n * Calculates the total width of all columns and their groups\r\n * @param {array} columns\r\n * @param {string} prop width to get\r\n */\r\nexport function columnTotalWidth(columns: any[], prop?: string) {\r\n let totalWidth = 0;\r\n\r\n if(columns) {\r\n for(let c of columns) {\r\n const has = prop && c[prop];\r\n const width = has ? c[prop] : c.width;\r\n totalWidth = totalWidth + parseFloat(width);\r\n }\r\n }\r\n\r\n return totalWidth;\r\n}\r\n\r\n/**\r\n * Calculates the total width of all columns and their groups\r\n * @param {array} columns\r\n * @param {string} property width to get\r\n */\r\nexport function columnsTotalWidth(columns: any, prop?: any) {\r\n let totalWidth = 0;\r\n\r\n for(let column of columns) {\r\n const has = prop && column[prop];\r\n totalWidth = totalWidth + (has ? column[prop] : column.width);\r\n }\r\n\r\n return totalWidth;\r\n}\r\n\r\nexport function columnsByPinArr(val: any) {\r\n let colsByPinArr: {type: string, columns: any}[] = [];\r\n const colsByPin = columnsByPin(val);\r\n\r\n colsByPinArr.push({ type: 'left', columns: colsByPin['left'] });\r\n colsByPinArr.push({ type: 'center', columns: colsByPin['center'] });\r\n colsByPinArr.push({ type: 'right', columns: colsByPin['right'] });\r\n\r\n return colsByPinArr;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/column.ts","/**\r\n * Returns a deep object given a string. zoo['animal.type']\r\n * @param {object} obj\r\n * @param {string} path\r\n */\r\nexport function deepValueGetter(obj: Object, path: string) {\r\n if(!obj || !path) return obj;\r\n\r\n let current = obj;\r\n let split = path.split('.');\r\n\r\n if(split.length) {\r\n for(let i = 0, len = split.length; i < len; i++) {\r\n current = current[split[i]];\r\n\r\n // if found undefined, return empty string\r\n if(current === undefined || current === null) return '';\r\n }\r\n }\r\n\r\n return current;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/deep-getter.ts","/**\r\n * Creates a unique object id.\r\n * http://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js\r\n */\r\nexport function id() {\r\n return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/id.ts","export * from './id';\r\nexport * from './column';\r\nexport * from './deep-getter';\r\nexport * from './camel-case';\r\nexport * from './keys';\r\nexport * from './math';\r\nexport * from './prefixes';\r\nexport * from './scrollbar-width';\r\nexport * from './selection';\r\nexport * from './translate';\r\nexport * from './throttle';\r\nexport * from './sort';\r\nexport * from './row-height-cache';\r\nexport * from './column-helper';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.ts","export enum Keys {\r\n up = 38,\r\n down = 40,\r\n return = 13,\r\n escape = 27,\r\n left = 37,\r\n right = 39\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/keys.ts","import { columnsByPin, columnsTotalWidth } from './column';\r\n\r\n/**\r\n * Calculates the Total Flex Grow\r\n * @param {array}\r\n */\r\nexport function getTotalFlexGrow(columns: any[]) {\r\n let totalFlexGrow = 0;\r\n\r\n for (let c of columns) {\r\n totalFlexGrow += c.flexGrow || 0;\r\n }\r\n\r\n return totalFlexGrow;\r\n}\r\n\r\n/**\r\n * Adjusts the column widths.\r\n * Inspired by: https://github.com/facebook/fixed-data-table/blob/master/src/FixedDataTableWidthHelper.js\r\n * @param {array} all columns\r\n * @param {int} width\r\n */\r\nexport function adjustColumnWidths(allColumns: any, expectedWidth: any) {\r\n let columnsWidth = columnsTotalWidth(allColumns);\r\n let totalFlexGrow = getTotalFlexGrow(allColumns);\r\n let colsByGroup = columnsByPin(allColumns);\r\n\r\n if (columnsWidth !== expectedWidth) {\r\n scaleColumns(colsByGroup, expectedWidth, totalFlexGrow);\r\n }\r\n}\r\n\r\n/**\r\n * Resizes columns based on the flexGrow property, while respecting manually set widths\r\n * @param {array} colsByGroup\r\n * @param {int} maxWidth\r\n * @param {int} totalFlexGrow\r\n */\r\nfunction scaleColumns(colsByGroup: any, maxWidth: any, totalFlexGrow: any) {\r\n // calculate total width and flexgrow points for coulumns that can be resized\r\n for(let attr in colsByGroup) {\r\n for(let column of colsByGroup[attr]) {\r\n if (!column.canAutoResize) {\r\n maxWidth -= column.width;\r\n totalFlexGrow -= column.flexGrow;\r\n } else {\r\n column.width = 0;\r\n }\r\n }\r\n }\r\n\r\n let hasMinWidth = {};\r\n let remainingWidth = maxWidth;\r\n\r\n // resize columns until no width is left to be distributed\r\n do {\r\n let widthPerFlexPoint = remainingWidth / totalFlexGrow;\r\n remainingWidth = 0;\r\n\r\n for(let attr in colsByGroup) {\r\n for(let column of colsByGroup[attr]) {\r\n // if the column can be resize and it hasn't reached its minimum width yet\r\n if (column.canAutoResize && !hasMinWidth[column.prop]) {\r\n let newWidth = column.width + column.flexGrow * widthPerFlexPoint;\r\n if (column.minWidth !== undefined && newWidth < column.minWidth) {\r\n remainingWidth += newWidth - column.minWidth;\r\n column.width = column.minWidth;\r\n hasMinWidth[column.prop] = true;\r\n } else {\r\n column.width = newWidth;\r\n }\r\n }\r\n }\r\n }\r\n } while (remainingWidth !== 0);\r\n}\r\n\r\n/**\r\n * Forces the width of the columns to\r\n * distribute equally but overflowing when nesc.\r\n *\r\n * Rules:\r\n *\r\n * - If combined withs are less than the total width of the grid,\r\n * proporation the widths given the min / max / noraml widths to fill the width.\r\n *\r\n * - If the combined widths, exceed the total width of the grid,\r\n * use the standard widths.\r\n *\r\n * - If a column is resized, it should always use that width\r\n *\r\n * - The proporational widths should never fall below min size if specified.\r\n *\r\n * - If the grid starts off small but then becomes greater than the size ( + / - )\r\n * the width should use the orginial width; not the newly proporatied widths.\r\n *\r\n * @param {array} allColumns\r\n * @param {int} expectedWidth\r\n */\r\nexport function forceFillColumnWidths(\r\n allColumns: any[],\r\n expectedWidth: number,\r\n startIdx: number,\r\n allowBleed: boolean,\r\n defaultColWidth: number = 300) {\r\n \r\n let columnsToResize = allColumns\r\n .slice(startIdx + 1, allColumns.length)\r\n .filter((c) => { \r\n return c.canAutoResize !== false; \r\n });\r\n\r\n for (let column of columnsToResize) {\r\n if(!column.$$oldWidth) {\r\n column.$$oldWidth = column.width;\r\n }\r\n }\r\n\r\n let additionWidthPerColumn = 0;\r\n let exceedsWindow = false;\r\n let contentWidth = getContentWidth(allColumns, defaultColWidth);\r\n let remainingWidth = expectedWidth - contentWidth;\r\n let columnsProcessed: any[] = [];\r\n\r\n // This loop takes care of the\r\n do {\r\n additionWidthPerColumn = remainingWidth / columnsToResize.length;\r\n exceedsWindow = contentWidth >= expectedWidth;\r\n\r\n for (let column of columnsToResize) {\r\n if (exceedsWindow && allowBleed) {\r\n column.width = column.$$oldWidth || column.width || defaultColWidth;\r\n } else {\r\n const newSize = (column.width || defaultColWidth) + additionWidthPerColumn;\r\n\r\n if (column.minWidth && newSize < column.minWidth) {\r\n column.width = column.minWidth;\r\n columnsProcessed.push(column);\r\n } else if (column.maxWidth && newSize > column.maxWidth) {\r\n column.width = column.maxWidth;\r\n columnsProcessed.push(column);\r\n } else {\r\n column.width = newSize;\r\n }\r\n }\r\n\r\n column.width = Math.max(0, column.width);\r\n }\r\n\r\n contentWidth = getContentWidth(allColumns);\r\n remainingWidth = expectedWidth - contentWidth;\r\n removeProcessedColumns(columnsToResize, columnsProcessed);\r\n } while (remainingWidth > 0 && columnsToResize.length !== 0);\r\n}\r\n\r\n/**\r\n * Remove the processed columns from the current active columns.\r\n *\r\n * @param columnsToResize Array containing the columns that need to be resized.\r\n * @param columnsProcessed Array containing the columns that have already been processed.\r\n */\r\nfunction removeProcessedColumns ( columnsToResize: any[], columnsProcessed: any[]) {\r\n for(let column of columnsProcessed) {\r\n const index = columnsToResize.indexOf(column);\r\n columnsToResize.splice(index, 1);\r\n }\r\n}\r\n\r\n/**\r\n * Gets the width of the columns\r\n *\r\n * @param {array} allColumns\r\n * @param {number} [defaultColWidth=300]\r\n * @returns {number}\r\n */\r\nfunction getContentWidth(allColumns: any, defaultColWidth: number = 300): number {\r\n let contentWidth = 0;\r\n\r\n for(let column of allColumns) {\r\n contentWidth += (column.width || defaultColWidth);\r\n }\r\n\r\n return contentWidth;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/math.ts","import { camelCase } from './camel-case';\r\n\r\nlet cache = {};\r\nlet testStyle = document.createElement('div').style;\r\n\r\n// Get Prefix\r\n// http://davidwalsh.name/vendor-prefix\r\nconst prefix = (function () {\r\n const styles = window.getComputedStyle(document.documentElement, '');\r\n const pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/))[1];\r\n const dom = ('WebKit|Moz|MS|O').match(new RegExp('(' + pre + ')', 'i'))[1];\r\n\r\n return {\r\n dom,\r\n lowercase: pre,\r\n css: `-${pre}-`,\r\n js: pre[0].toUpperCase() + pre.substr(1)\r\n };\r\n})();\r\n\r\nexport function getVendorPrefixedName(property: string) {\r\n const name = camelCase(property);\r\n\r\n if(!cache[name]) {\r\n if(testStyle[prefix.css + property] !== undefined) {\r\n cache[name] = prefix.css + property;\r\n } else if(testStyle[property] !== undefined) {\r\n cache[name] = property;\r\n }\r\n }\r\n\r\n return cache[name];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/prefixes.ts","/**\r\n * This object contains the cache of the various row heights that are present inside\r\n * the data table. Its based on Fenwick tree data structure that helps with\r\n * querying sums that have time complexity of log n.\r\n *\r\n * Fenwick Tree Credits: http://petr-mitrichev.blogspot.com/2013/05/fenwick-tree-range-updates.html\r\n * https://github.com/mikolalysenko/fenwick-tree\r\n *\r\n */\r\nexport class RowHeightCache {\r\n\r\n /**\r\n * Tree Array stores the cumulative information of the row heights to perform efficient\r\n * range queries and updates. Currently the tree is initialized to the base row\r\n * height instead of the detail row height.\r\n */\r\n private treeArray: number[] = [];\r\n\r\n /**\r\n * Clear the Tree array.\r\n */\r\n clearCache(): void {\r\n this.treeArray = [];\r\n }\r\n\r\n /**\r\n * Initialize the Fenwick tree with row Heights.\r\n *\r\n * @param rows The array of rows which contain the expanded status.\r\n * @param rowHeight The row height.\r\n * @param detailRowHeight The detail row height.\r\n */\r\n initCache(rows: any[], rowHeight: number, detailRowHeight: number): void {\r\n if (isNaN(rowHeight)) {\r\n throw new Error(`Row Height cache initialization failed. Please ensure that 'rowHeight' is a\r\n valid number value: (${rowHeight}) when 'scrollbarV' is enabled.`);\r\n }\r\n\r\n // Add this additional guard in case detailRowHeight is set to 'auto' as it wont work.\r\n if (isNaN(detailRowHeight)) {\r\n throw new Error(`Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\r\n valid number value: (${detailRowHeight}) when 'scrollbarV' is enabled.`);\r\n }\r\n\r\n const n = rows.length;\r\n this.treeArray = new Array(n);\r\n\r\n for(let i = 0; i < n; ++i) {\r\n this.treeArray[i] = 0;\r\n }\r\n\r\n for(let i = 0; i < n; ++i) {\r\n let currentRowHeight = rowHeight;\r\n\r\n // Add the detail row height to the already expanded rows.\r\n // This is useful for the table that goes through a filter or sort.\r\n if (rows[i] && rows[i].$$expanded === 1) {\r\n currentRowHeight += detailRowHeight;\r\n }\r\n\r\n this.update(i, currentRowHeight);\r\n }\r\n }\r\n\r\n /**\r\n * Given the ScrollY position i.e. sum, provide the rowIndex\r\n * that is present in the current view port. Below handles edge cases.\r\n *\r\n * @param scrollY - The scrollY position.\r\n * @returns {number} - Index representing the first row visible in the viewport\r\n */\r\n getRowIndex(scrollY: number): number {\r\n if(scrollY === 0) return 0;\r\n return this.calcRowIndex(scrollY);\r\n }\r\n\r\n /**\r\n * When a row is expanded or rowHeight is changed, update the height. This can\r\n * be utilized in future when Angular Data table supports dynamic row heights.\r\n *\r\n *\r\n * @param atRowIndex Update the data at this index row in the grid.\r\n * @param byRowHeight Update by the rowHeight provided.\r\n */\r\n update (atRowIndex: number, byRowHeight: number): void {\r\n if (!this.treeArray.length) {\r\n throw new Error(`Update at index ${atRowIndex} with value ${byRowHeight} failed:\r\n Row Height cache not initialized.`);\r\n }\r\n\r\n const n = this.treeArray.length;\r\n atRowIndex |= 0;\r\n\r\n while(atRowIndex < n) {\r\n this.treeArray[atRowIndex] += byRowHeight;\r\n atRowIndex |= (atRowIndex + 1);\r\n }\r\n }\r\n\r\n /**\r\n * Range Sum query from 1 to the rowIndex\r\n *\r\n * @param atIndex The row index until which the total height needs to be obtained.\r\n * @returns {number} The total height from row 1 to the rowIndex.\r\n */\r\n query(atIndex: number): number {\r\n if (!this.treeArray.length) {\r\n throw new Error(`query at index ${atIndex} failed: Fenwick tree array not initialized.`);\r\n }\r\n\r\n let sum = 0;\r\n atIndex |= 0;\r\n\r\n while(atIndex >= 0) {\r\n sum += this.treeArray[atIndex];\r\n atIndex = (atIndex & (atIndex + 1)) - 1;\r\n }\r\n\r\n return sum;\r\n }\r\n\r\n /**\r\n * Find the total height between 2 row indexes\r\n * @param atIndexA The row index from\r\n * @param atIndexB The row index to\r\n * @returns {number} total pixel height between 2 row indexes.\r\n */\r\n queryBetween(atIndexA: number, atIndexB: number): number {\r\n return this.query(atIndexB) - this.query(atIndexA - 1);\r\n }\r\n\r\n /**\r\n * Given the ScrollY position i.e. sum, provide the rowIndex\r\n * that is present in the current view port.\r\n *\r\n * @param sum - The scrollY position.\r\n * @returns {number} - Index representing the first row visible in the viewport\r\n */\r\n private calcRowIndex(sum: number): number {\r\n if(!this.treeArray.length) return 0;\r\n\r\n let pos = -1;\r\n const dataLength = this.treeArray.length;\r\n\r\n // Get the highest bit for the block size.\r\n const highestBit = Math.pow(2, dataLength.toString(2).length - 1);\r\n\r\n for (let blockSize = highestBit; blockSize !== 0; blockSize >>= 1) {\r\n let nextPos = pos + blockSize;\r\n if (nextPos < dataLength && sum >= this.treeArray[nextPos]) {\r\n sum -= this.treeArray[nextPos];\r\n pos = nextPos;\r\n }\r\n }\r\n\r\n return pos + 1;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/row-height-cache.ts","/**\r\n * Gets the width of the scrollbar. Nesc for windows\r\n * http://stackoverflow.com/a/13382873/888165\r\n * @return {int} width\r\n */\r\nexport function getScrollBarWidth() {\r\n let outer = document.createElement('div');\r\n outer.style.visibility = 'hidden';\r\n outer.style.width = '100px';\r\n outer.style.msOverflowStyle = 'scrollbar';\r\n document.body.appendChild(outer);\r\n\r\n let widthNoScroll = outer.offsetWidth;\r\n outer.style.overflow = 'scroll';\r\n\r\n let inner = document.createElement('div');\r\n inner.style.width = '100%';\r\n outer.appendChild(inner);\r\n\r\n let widthWithScroll = inner.offsetWidth;\r\n outer.parentNode.removeChild(outer);\r\n\r\n return widthNoScroll - widthWithScroll;\r\n};\r\n\r\nexport const scrollbarWidth = getScrollBarWidth();\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/scrollbar-width.ts","export function selectRows(selected: any[], row: any, comparefn: Function) {\r\n const selectedIndex = comparefn(row, selected);\r\n\r\n if(selectedIndex > -1) {\r\n selected.splice(selectedIndex, 1);\r\n } else {\r\n selected.push(row);\r\n }\r\n\r\n return selected;\r\n}\r\n\r\nexport function selectRowsBetween(selected: any[], rows: any[], index: number, prevIndex: number, comparefn: Function) {\r\n const reverse = index < prevIndex;\r\n\r\n for(let i = 0, len = rows.length; i < len; i++) {\r\n const row = rows[i];\r\n const greater = i >= prevIndex && i <= index;\r\n const lesser = i <= prevIndex && i >= index;\r\n\r\n let range = { start: 0, end: 0 };\r\n if (reverse) {\r\n range = {\r\n start: index,\r\n end: (prevIndex - index)\r\n };\r\n } else {\r\n range = {\r\n start: prevIndex,\r\n end: index + 1\r\n };\r\n }\r\n\r\n if((reverse && lesser) || (!reverse && greater)) {\r\n const idx = comparefn(row, selected);\r\n\r\n // if reverse shift selection (unselect) and the\r\n // row is already selected, remove it from selected\r\n if (reverse && idx > -1) {\r\n selected.splice(idx, 1);\r\n continue;\r\n }\r\n\r\n // if in the positive range to be added to `selected`, and\r\n // not already in the selected array, add it\r\n if( i >= range.start && i < range.end) {\r\n if (idx === -1) {\r\n selected.push(row);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return selected;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/selection.ts","import { SortType, SortDirection } from '../types';\r\nimport { deepValueGetter } from './deep-getter';\r\n/**\r\n * Gets the next sort direction\r\n * @param {SortType} sortType\r\n * @param {SortDirection} currentSort\r\n * @return {SortDirection}\r\n */\r\nexport function nextSortDir(sortType: SortType, current: SortDirection): SortDirection {\r\n if (sortType === SortType.single) {\r\n if(current === SortDirection.asc) {\r\n return SortDirection.desc;\r\n } else {\r\n return SortDirection.asc;\r\n }\r\n } else {\r\n if(!current) {\r\n return SortDirection.asc;\r\n } else if(current === SortDirection.asc) {\r\n return SortDirection.desc;\r\n } else if(current === SortDirection.desc) {\r\n return undefined;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Adapted from fueld-ui on 6/216\r\n * https://github.com/FuelInteractive/fuel-ui/tree/master/src/pipes/OrderBy\r\n * @param {any} a\r\n * @param {any} b\r\n * @return {number} position\r\n */\r\nexport function orderByComparator(a: any, b: any): number {\r\n if (a === null || typeof a === 'undefined') a = 0;\r\n if (b === null || typeof b === 'undefined') b = 0;\r\n\r\n if ((isNaN(parseFloat(a)) || !isFinite(a)) || (isNaN(parseFloat(b)) || !isFinite(b))) {\r\n // Convert to string in case of a=0 or b=0\r\n a = String(a);\r\n b = String(b);\r\n // Isn't a number so lowercase the string to properly compare\r\n if (a.toLowerCase() < b.toLowerCase()) return -1;\r\n if (a.toLowerCase() > b.toLowerCase()) return 1;\r\n } else {\r\n // Parse strings as numbers to compare properly\r\n if (parseFloat(a) < parseFloat(b)) return -1;\r\n if (parseFloat(a) > parseFloat(b)) return 1;\r\n }\r\n\r\n // equal each other\r\n return 0;\r\n}\r\n\r\n/**\r\n * Sorts the rows\r\n * \r\n * @export\r\n * @param {any[]} rows\r\n * @param {any[]} columns\r\n * @param {any[]} dirs\r\n * @returns\r\n */\r\nexport function sortRows(rows: any[], columns: any[], dirs: any[]): any[] {\r\n if(!rows || !dirs || !dirs.length || !columns) return rows;\r\n\r\n let temp = [...rows];\r\n let cols = columns.reduce((obj, col) => {\r\n if(col.comparator && typeof col.comparator === 'function') {\r\n obj[col.prop] = col.comparator;\r\n }\r\n return obj;\r\n }, {});\r\n\r\n return temp.sort(function(a: any, b: any) {\r\n for(const { prop, dir } of dirs) {\r\n const propA = deepValueGetter(a, prop);\r\n const propB = deepValueGetter(b, prop);\r\n\r\n const compareFn = cols[prop] || orderByComparator;\r\n const comparison = dir !== SortDirection.desc ?\r\n compareFn(propA, propB) :\r\n -compareFn(propA, propB);\r\n\r\n // Don't return 0 yet in case of needing to sort by next property\r\n if (comparison !== 0) return comparison;\r\n }\r\n\r\n // equal each other\r\n return 0;\r\n });\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/sort.ts","/**\r\n * Throttle a function\r\n * \r\n * @export\r\n * @param {*} func\r\n * @param {number} wait\r\n * @param {*} [options]\r\n * @returns\r\n */\r\nexport function throttle(func: any, wait: number, options?: any) {\r\n options = options || {};\r\n let context;\r\n let args;\r\n let result;\r\n let timeout = null;\r\n let previous = 0;\r\n\r\n function later() {\r\n previous = options.leading === false ? 0 : +new Date();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n }\r\n\r\n return function() {\r\n let now = +new Date();\r\n\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n\r\n let remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n\r\n if (remaining <= 0) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n previous = now;\r\n result = func.apply(context, args);\r\n } else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n\r\n return result;\r\n };\r\n}\r\n\r\n/**\r\n * Throttle decorator\r\n *\r\n * class MyClass {\r\n * throttleable(10)\r\n * myFn() { ... }\r\n * }\r\n * \r\n * @export\r\n * @param {number} duration\r\n * @param {*} [options]\r\n * @returns\r\n */\r\nexport function throttleable(duration: number, options?: any) {\r\n return function innerDecorator (target, key, descriptor) {\r\n return {\r\n configurable: true,\r\n enumerable: descriptor.enumerable,\r\n get: function getter () {\r\n Object.defineProperty(this, key, {\r\n configurable: true,\r\n enumerable: descriptor.enumerable,\r\n value: throttle(descriptor.value, duration, options)\r\n });\r\n\r\n return this[key];\r\n }\r\n };\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/throttle.ts","import { getVendorPrefixedName } from './prefixes';\r\nimport { camelCase } from './camel-case';\r\n\r\n// browser detection and prefixing tools\r\nconst transform = getVendorPrefixedName('transform');\r\nconst backfaceVisibility = getVendorPrefixedName('backfaceVisibility');\r\nconst hasCSSTransforms = !!getVendorPrefixedName('transform');\r\nconst hasCSS3DTransforms = !!getVendorPrefixedName('perspective');\r\nconst ua = window.navigator.userAgent;\r\nconst isSafari = (/Safari\\//).test(ua) && !(/Chrome\\//).test(ua);\r\n\r\nexport function translateXY(styles: any, x: number, y: number) {\r\n if (hasCSSTransforms) {\r\n if (!isSafari && hasCSS3DTransforms) {\r\n styles[transform] = `translate3d(${x}px, ${y}px, 0)`;\r\n styles[backfaceVisibility] = 'hidden';\r\n } else {\r\n styles[camelCase(transform)] = `translate(${x}px, ${y}px)`;\r\n }\r\n } else {\r\n styles.top = `${y}px`;\r\n styles.left = `${x}px`;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/translate.ts","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"@angular/core\"\n// module id = 0\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"rxjs/Rx\"\n// module id = 1\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"@angular/common\"\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/release/index.min.js b/release/index.min.js index d3a816c1c..144ddb263 100644 --- a/release/index.min.js +++ b/release/index.min.js @@ -1,4 +1,4 @@ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@angular/common"),require("@angular/core"),require("rxjs/Rx")):"function"==typeof define&&define.amd?define("angular2-data-table",["@angular/common","@angular/core","rxjs/Rx"],t):"object"==typeof exports?exports["angular2-data-table"]=t(require("@angular/common"),require("@angular/core"),require("rxjs/Rx")):e["angular2-data-table"]=t(e["@angular/common"],e["@angular/core"],e["rxjs/Rx"])}(this,function(e,t,n){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,t,n){Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s="./src/index.ts")}({"./src/components/body/body-cell.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/utils/index.ts"),a=n("./src/types/index.ts"),c=function(){function e(e){this.activate=new r.EventEmitter,this.isFocused=!1,this.element=e.nativeElement}return Object.defineProperty(e.prototype,"sorts",{get:function(){return this._sorts},set:function(e){this._sorts=e,this.calcSortDir=this.calcSortDir(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isSortActive",{get:function(){return!this.sortDir},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isSortAscending",{get:function(){return this.sortDir===a.SortDirection.asc},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isSortDescending",{get:function(){return this.sortDir===a.SortDirection.desc},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this.column.width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){var e=this.rowHeight;return isNaN(e)?e:e+"px"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){if(!this.row||!this.column||!this.column.prop)return"";var e=s.deepValueGetter(this.row,this.column.prop),t=this.column.pipe;return t?t.transform(e):void 0!==e?e:""},enumerable:!0,configurable:!0}),e.prototype.onFocus=function(){this.isFocused=!0},e.prototype.onBlur=function(){this.isFocused=!1},e.prototype.onClick=function(e){this.activate.emit({type:"click",event:e,row:this.row,column:this.column,value:this.value,cellElement:this.element})},e.prototype.onDblClick=function(e){this.activate.emit({type:"dblclick",event:e,row:this.row,column:this.column,value:this.value,cellElement:this.element})},e.prototype.onKeyDown=function(e){var t=e.keyCode,n=e.target===this.element,o=t===s.Keys.return||t===s.Keys.down||t===s.Keys.up||t===s.Keys.left||t===s.Keys.right;o&&n&&(e.preventDefault(),e.stopPropagation(),this.activate.emit({type:"keydown",event:e,row:this.row,column:this.column,value:this.value,cellElement:this.element}))},e.prototype.onCheckboxChange=function(e){this.activate.emit({type:"checkbox",event:e,row:this.row,column:this.column,value:this.value,cellElement:this.element})},e.prototype.calcSortDir=function(e){var t=this;if(e){var n=e.find(function(e){return e.prop===t.column.prop});return n?n.dir:void 0}},o([r.Input(),i("design:type",Object)],e.prototype,"row",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"column",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"rowHeight",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"isSelected",void 0),o([r.Input(),i("design:type",Array),i("design:paramtypes",[Array])],e.prototype,"sorts",null),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"activate",void 0),o([r.HostBinding("class.active"),i("design:type",Boolean)],e.prototype,"isFocused",void 0),o([r.HostBinding("class.sort-active"),i("design:type",Boolean)],e.prototype,"isSortActive",null),o([r.HostBinding("class.sort-asc"),i("design:type",Boolean)],e.prototype,"isSortAscending",null),o([r.HostBinding("class.sort-desc"),i("design:type",Boolean)],e.prototype,"isSortDescending",null),o([r.HostBinding("style.width.px"),i("design:type",Number)],e.prototype,"width",null),o([r.HostBinding("style.height"),i("design:type",Object)],e.prototype,"height",null),o([r.HostListener("focus"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],e.prototype,"onFocus",null),o([r.HostListener("blur"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],e.prototype,"onBlur",null),o([r.HostListener("click",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onClick",null),o([r.HostListener("dblclick",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onDblClick",null),o([r.HostListener("keydown",["$event"]),i("design:type",Function),i("design:paramtypes",[KeyboardEvent]),i("design:returntype",void 0)],e.prototype,"onKeyDown",null),e=o([r.Component({selector:"datatable-body-cell",template:'\n
\n \n \n \n \n \n \n \n
\n ',host:{class:"datatable-body-cell"}}),i("design:paramtypes",[r.ElementRef])],e)}();t.DataTableBodyCellComponent=c},"./src/components/body/body-row-wrapper.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(){this.expanded=!1,this.rowContextmenu=new r.EventEmitter(!1)}return e.prototype.onContextmenu=function(e){this.rowContextmenu.emit({event:e,row:this.row})},o([r.Input(),i("design:type",Object)],e.prototype,"rowDetailTemplate",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"detailRowHeight",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"expanded",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"row",void 0),o([r.Output(),i("design:type",Object)],e.prototype,"rowContextmenu",void 0),o([r.HostListener("contextmenu",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onContextmenu",null),e=o([r.Component({selector:"datatable-row-wrapper",template:'\n \n
\n \n \n
\n ',host:{class:"datatable-row-wrapper"}}),i("design:paramtypes",[])],e)}();t.DataTableRowWrapperComponent=s},"./src/components/body/body-row.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/utils/index.ts"),a=function(){function e(e){this.activate=new r.EventEmitter,this.element=e.nativeElement}return Object.defineProperty(e.prototype,"columns",{get:function(){return this._columns},set:function(e){this._columns=e,this.recalculateColumns(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(e){this._innerWidth=e,this.recalculateColumns()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isEvenRow",{get:function(){return this.row.$$index%2===0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isOddRow",{get:function(){return this.row.$$index%2!==0},enumerable:!0,configurable:!0}),e.prototype.stylesByGroup=function(e){var t=this.columnGroupWidths,n=this.offsetX,o={width:t[e]+"px"};if("left"===e)s.translateXY(o,n,0);else if("right"===e){var i=parseInt(this.innerWidth+"",0),r=t.total-i,a=r-n,c=(a+s.scrollbarWidth)*-1;s.translateXY(o,c,0)}return o},e.prototype.onActivate=function(e,t){e.cellIndex=t,e.rowElement=this.element,this.activate.emit(e)},e.prototype.onKeyDown=function(e){var t=e.keyCode,n=e.target===this.element,o=t===s.Keys.return||t===s.Keys.down||t===s.Keys.up||t===s.Keys.left||t===s.Keys.right;o&&n&&(e.preventDefault(),e.stopPropagation(),this.activate.emit({type:"keydown",event:e,row:this.row,rowElement:this.element}))},e.prototype.recalculateColumns=function(e){void 0===e&&(e=this.columns);var t=s.columnsByPin(e);this.columnsByPin=s.columnsByPinArr(e),this.columnGroupWidths=s.columnGroupWidths(t,e)},o([r.Input(),i("design:type",Array),i("design:paramtypes",[Array])],e.prototype,"columns",null),o([r.Input(),i("design:type",Number),i("design:paramtypes",[Number])],e.prototype,"innerWidth",null),o([r.Input(),i("design:type",Object)],e.prototype,"row",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"offsetX",void 0),o([r.HostBinding("style.height.px"),r.Input(),i("design:type",Number)],e.prototype,"rowHeight",void 0),o([r.HostBinding("class.active"),r.Input(),i("design:type",Boolean)],e.prototype,"isSelected",void 0),o([r.HostBinding("class.datatable-row-even"),i("design:type",Boolean)],e.prototype,"isEvenRow",null),o([r.HostBinding("class.datatable-row-odd"),i("design:type",Boolean)],e.prototype,"isOddRow",null),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"activate",void 0),o([r.HostListener("keydown",["$event"]),i("design:type",Function),i("design:paramtypes",[KeyboardEvent]),i("design:returntype",void 0)],e.prototype,"onKeyDown",null),e=o([r.Component({selector:"datatable-body-row",template:'\n \n \n \n \n ',host:{class:"datatable-body-row"}}),i("design:paramtypes",[r.ElementRef])],e)}();t.DataTableBodyRowComponent=a},"./src/components/body/body.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/utils/index.ts"),a=(n("./src/types/index.ts"),n("./src/components/body/scroller.component.ts")),c=function(){function e(){this.selected=[],this.scroll=new r.EventEmitter,this.page=new r.EventEmitter,this.activate=new r.EventEmitter,this.select=new r.EventEmitter,this.detailToggle=new r.EventEmitter,this.rowContextmenu=new r.EventEmitter(!1),this.rowHeightsCache=new s.RowHeightCache,this.temp=[],this.offsetY=0,this.indexes={},this.rowTrackingFn=function(e,t){return this.trackByProp?t.$$index+"-"+this.trackByProp:t.$$index}.bind(this)}return Object.defineProperty(e.prototype,"pageSize",{get:function(){return this._pageSize},set:function(e){this._pageSize=e,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rows",{get:function(){return this._rows},set:function(e){this._rows=e,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columns",{get:function(){return this._columns},set:function(e){this._columns=e;var t=s.columnsByPin(e);this.columnGroupWidths=s.columnGroupWidths(t,e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"offset",{get:function(){return this._offset},set:function(e){this._offset=e,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rowCount",{get:function(){return this._rowCount},set:function(e){this._rowCount=e,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bodyWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bodyHeight",{get:function(){return this._bodyHeight},set:function(e){this.scrollbarV?this._bodyHeight=e+"px":this._bodyHeight="auto",this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectEnabled",{get:function(){return!!this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scrollHeight",{get:function(){if(this.scrollbarV)return this.rowHeightsCache.query(this.rowCount-1)},enumerable:!0,configurable:!0}),e.prototype.updateOffsetY=function(e){if(this.scrollbarV&&e){var t=this.pageSize*e;e=this.rowHeightsCache.query(t-1)}this.scroller.setOffset(e||0)},e.prototype.onBodyScroll=function(e){var t=e.scrollYPos,n=e.scrollXPos;this.offsetY===t&&this.offsetX===n||this.scroll.emit({offsetY:t,offsetX:n}),this.offsetY=t,this.offsetX=n,this.updateIndexes(),this.updatePage(e.direction),this.updateRows()},e.prototype.updatePage=function(e){var t=this.indexes.first/this.pageSize;"up"===e?t=Math.floor(t):"down"===e&&(t=Math.ceil(t)),void 0===e||isNaN(t)||this.page.emit({offset:t})},e.prototype.updateRows=function(){for(var e=this.indexes,t=e.first,n=e.last,o=t,i=0,r=[];o\n \n \n \n \n \n \n \n \n \n \n \n ',host:{class:"datatable-body"}}),i("design:paramtypes",[])],e)}();t.DataTableBodyComponent=c},"./src/components/body/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/body/body.component.ts")),o(n("./src/components/body/body-cell.component.ts")),o(n("./src/components/body/body-row.component.ts")),o(n("./src/components/body/progress-bar.component.ts")),o(n("./src/components/body/scroller.component.ts")),o(n("./src/components/body/body-row-wrapper.component.ts")),o(n("./src/components/body/selection.component.ts"))},"./src/components/body/progress-bar.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(){}return e=o([r.Component({selector:"datatable-progress",template:'\n
\n
\n
\n
\n
\n ',changeDetection:r.ChangeDetectionStrategy.OnPush}),i("design:paramtypes",[])],e)}();t.ProgressBarComponent=s},"./src/components/body/scroller.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(e,t){this.renderer=t,this.scrollbarV=!1,this.scrollbarH=!1,this.scroll=new r.EventEmitter,this.scrollYPos=0,this.scrollXPos=0,this.prevScrollYPos=0,this.prevScrollXPos=0,this.element=e.nativeElement}return e.prototype.ngOnInit=function(){(this.scrollbarV||this.scrollbarH)&&(this.parentElement=this.element.parentElement.parentElement,this.onScrollListener=this.renderer.listen(this.parentElement,"scroll",this.onScrolled.bind(this)))},e.prototype.ngOnDestroy=function(){(this.scrollbarV||this.scrollbarH)&&this.onScrollListener()},e.prototype.setOffset=function(e){this.parentElement&&(this.parentElement.scrollTop=e)},e.prototype.onScrolled=function(e){var t=e.currentTarget;this.scrollYPos=t.scrollTop,this.scrollXPos=t.scrollLeft,requestAnimationFrame(this.updateOffset.bind(this))},e.prototype.updateOffset=function(){var e;this.scrollYPosthis.prevScrollYPos&&(e="up"),this.scroll.emit({direction:e,scrollYPos:this.scrollYPos,scrollXPos:this.scrollXPos}),this.prevScrollYPos=this.scrollYPos,this.prevScrollXPos=this.scrollXPos},o([r.Input(),i("design:type",Boolean)],e.prototype,"scrollbarV",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"scrollbarH",void 0),o([r.HostBinding("style.height.px"),r.Input(),i("design:type",Number)],e.prototype,"scrollHeight",void 0),o([r.HostBinding("style.width.px"),r.Input(),i("design:type",Number)],e.prototype,"scrollWidth",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"scroll",void 0),e=o([r.Component({selector:"datatable-scroller",template:"\n \n ",host:{class:"datatable-scroll"}}),i("design:paramtypes",[r.ElementRef,r.Renderer])],e)}();t.ScrollerComponent=s},"./src/components/body/selection.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/utils/index.ts"),a=n("./src/types/index.ts"),c=function(){function e(){this.activate=new r.EventEmitter,this.select=new r.EventEmitter}return e.prototype.selectRow=function(e,t,n){if(this.selectEnabled){var o=this.selectionType===a.SelectionType.checkbox,i=this.selectionType===a.SelectionType.multiShift,r=this.selectionType===a.SelectionType.multi,c=[];if(i||r||o)if(i&&e.shiftKey){var l=this.selected.slice();c=s.selectRowsBetween(l,this.rows,t,this.prevIndex,this.getRowSelectedIdx.bind(this))}else if(i&&!e.shiftKey)c.push(n);else{var l=this.selected.slice();c=s.selectRows(l,n,this.getRowSelectedIdx.bind(this))}else c.push(n);this.selectCheck&&(c=c.filter(this.selectCheck.bind(this))),this.selected=c,this.prevIndex=t,this.select.emit({selected:c})}},e.prototype.onActivate=function(e,t){var n=e.type,o=e.event,i=e.row,r=this.selectionType===a.SelectionType.checkbox,c=!r&&("click"===n||"dblclick"===n)||r&&"checkbox"===n;c?this.selectRow(o,t,i):"keydown"===n&&(o.keyCode===s.Keys.return?this.selectRow(o,t,i):this.onKeyboardFocus(e)),this.activate.emit(e)},e.prototype.onKeyboardFocus=function(e){var t=e.event.keyCode,n=t===s.Keys.up||t===s.Keys.down||t===s.Keys.right||t===s.Keys.left;if(n){var o=this.selectionType===a.SelectionType.cell;e.cellElement&&o?o&&this.focusCell(e.cellElement,e.rowElement,t,e.cellIndex):this.focusRow(e.rowElement,t)}},e.prototype.focusRow=function(e,t){var n=this.getPrevNextRow(e,t);n&&n.focus()},e.prototype.getPrevNextRow=function(e,t){var n=e.parentElement;if(n){var o=void 0;if(t===s.Keys.up?o=n.previousElementSibling:t===s.Keys.down&&(o=n.nextElementSibling),o&&o.children.length)return o.children[0]}},e.prototype.focusCell=function(e,t,n,o){var i;if(n===s.Keys.left)i=e.previousElementSibling;else if(n===s.Keys.right)i=e.nextElementSibling;else if(n===s.Keys.up||n===s.Keys.down){var r=this.getPrevNextRow(t,n);if(r){var a=r.getElementsByClassName("datatable-body-cell");a.length&&(i=a[o])}}i&&i.focus()},e.prototype.getRowSelected=function(e){return this.getRowSelectedIdx(e,this.selected)>-1},e.prototype.getRowSelectedIdx=function(e,t){var n=this;if(!t||!t.length)return-1;var o=this.rowIdentity(e);return t.findIndex(function(e){var t=n.rowIdentity(e);return t===o})},o([r.Input(),i("design:type",Array)],e.prototype,"rows",void 0),o([r.Input(),i("design:type",Array)],e.prototype,"selected",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"selectEnabled",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"selectionType",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"rowIdentity",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"selectCheck",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"activate",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"select",void 0),e=o([r.Component({selector:"datatable-selection",template:"\n \n "}),i("design:paramtypes",[])],e)}();t.DataTableSelectionComponent=c},"./src/components/columns/column-cell.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(e){this.template=e}return e=o([r.Directive({selector:"[swui-datatable-cell-template]"}),i("design:paramtypes",[r.TemplateRef])],e)}();t.DataTableColumnCellDirective=s},"./src/components/columns/column-header.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(e){this.template=e}return e=o([r.Directive({selector:"[swui-datatable-header-template]"}),i("design:paramtypes",[r.TemplateRef])],e)}();t.DataTableColumnHeaderDirective=s},"./src/components/columns/column.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/components/columns/column-header.directive.ts"),a=n("./src/components/columns/column-cell.directive.ts"),c=function(){function e(){}return o([r.Input(),i("design:type",String)],e.prototype,"name",void 0),o([r.Input(),i("design:type",String)],e.prototype,"prop",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"frozenLeft",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"frozenRight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"flexGrow",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"resizeable",void 0),o([r.Input(),i("design:type",Function)],e.prototype,"comparator",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"pipe",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"sortable",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"draggable",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"canAutoResize",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"minWidth",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"width",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"maxWidth",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"checkboxable",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"headerCheckboxable",void 0),o([r.ContentChild(a.DataTableColumnCellDirective,{read:r.TemplateRef}),i("design:type",r.TemplateRef)],e.prototype,"cellTemplate",void 0), -o([r.ContentChild(s.DataTableColumnHeaderDirective,{read:r.TemplateRef}),i("design:type",r.TemplateRef)],e.prototype,"headerTemplate",void 0),e=o([r.Directive({selector:"swui-datatable-column"}),i("design:paramtypes",[])],e)}();t.DataTableColumnDirective=c},"./src/components/columns/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/columns/column.directive.ts")),o(n("./src/components/columns/column-header.directive.ts")),o(n("./src/components/columns/column-cell.directive.ts"))},"./src/components/datatable.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/utils/index.ts"),a=n("./src/types/index.ts"),c=n("./src/components/body/index.ts"),l=n("./src/components/columns/index.ts"),p=n("./src/components/row-detail/index.ts"),u=n("./src/utils/index.ts"),d=function(){function e(e){this.selected=[],this.scrollbarV=!1,this.scrollbarH=!1,this.rowHeight=30,this.detailRowHeight=0,this.columnMode=a.ColumnMode.standard,this.headerHeight=30,this.footerHeight=0,this.externalPaging=!1,this.externalSorting=!1,this.limit=void 0,this.offset=0,this.loadingIndicator=!1,this.reorderable=!0,this.sortType=a.SortType.single,this.sorts=[],this.cssClasses={sortAscending:"icon-down",sortDescending:"icon-up",pagerLeftArrow:"icon-left",pagerRightArrow:"icon-right",pagerPrevious:"icon-prev",pagerNext:"icon-skip"},this.messages={emptyMessage:"No data to display",totalMessage:"total"},this.rowIdentity=function(e){return e},this.scroll=new r.EventEmitter,this.activate=new r.EventEmitter,this.select=new r.EventEmitter,this.sort=new r.EventEmitter,this.page=new r.EventEmitter,this.detailToggle=new r.EventEmitter,this.reorder=new r.EventEmitter,this.resize=new r.EventEmitter,this.rowContextmenu=new r.EventEmitter(!1),this.offsetX=0,this._count=0,this.element=e.nativeElement}return Object.defineProperty(e.prototype,"rows",{get:function(){return this._rows},set:function(e){this.externalSorting||(e=s.sortRows(e,this.columns,this.sorts)),this._rows=e,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columns",{get:function(){return this._columns},set:function(e){e&&(u.setColumnDefaults(e),this.recalculateColumns(e)),this._columns=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._count},set:function(e){this._count=e,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isFixedHeader",{get:function(){var e=this.headerHeight;return"string"!=typeof e||"auto"!==e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isFixedRow",{get:function(){var e=this.rowHeight;return"string"!=typeof e||"auto"!==e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVertScroll",{get:function(){return this.scrollbarV},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHorScroll",{get:function(){return this.scrollbarH},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isSelectable",{get:function(){return void 0!==this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCheckboxSelection",{get:function(){return this.selectionType===a.SelectionType.checkbox},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCellSelection",{get:function(){return this.selectionType===a.SelectionType.cell},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isSingleSelection",{get:function(){return this.selectionType===a.SelectionType.single},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isMultiSelection",{get:function(){return this.selectionType===a.SelectionType.multi||this.selectionType===a.SelectionType.multiShift},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columnTemplates",{get:function(){return this._columnTemplates},set:function(e){if(this._columnTemplates=e,e){var t=e.toArray();t.length&&(this.columns=u.translateTemplates(t))}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rowDetailTemplateChild",{get:function(){return this._rowDetailTemplateChild},set:function(e){this._rowDetailTemplateChild=e,e&&(this.rowDetailTemplate=e.rowDetailTemplate)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"allRowsSelected",{get:function(){return this.selected.length===this.rows.length},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.recalculate()},e.prototype.ngAfterViewInit=function(){var e=this;setTimeout(function(){return e.recalculate()})},e.prototype.toggleExpandRow=function(e){this.bodyComponent.toggleRowExpansion(e)},e.prototype.expandAllRows=function(){this.bodyComponent.toggleAllRows(!0)},e.prototype.collapseAllRows=function(){this.bodyComponent.toggleAllRows(!1)},e.prototype.recalculate=function(){this.recalculateDims(),this.recalculateColumns()},e.prototype.onWindowResize=function(){this.recalculate()},e.prototype.recalculateColumns=function(e,t,n){if(void 0===e&&(e=this.columns),void 0===t&&(t=-1),void 0===n&&(n=this.scrollbarH),e){var o=this.innerWidth;return this.scrollbarV&&(o-=u.scrollbarWidth),this.columnMode===a.ColumnMode.force?s.forceFillColumnWidths(e,o,t,n):this.columnMode===a.ColumnMode.flex&&s.adjustColumnWidths(e,o),e}},e.prototype.recalculateDims=function(){var e=this.element.getBoundingClientRect(),t=e.height,n=e.width;this.innerWidth=Math.floor(n),this.scrollbarV&&(this.headerHeight&&(t-=this.headerHeight),this.footerHeight&&(t-=this.footerHeight),this.bodyHeight=t),this.pageSize=this.calcPageSize(),this.rowCount=this.calcRowCount()},e.prototype.onBodyPage=function(e){var t=e.offset;this.offset=t,this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset})},e.prototype.onBodyScroll=function(e){this.offsetX=e.offsetX,this.scroll.emit(e)},e.prototype.onFooterPage=function(e){this.offset=e.page-1,this.bodyComponent.updateOffsetY(this.offset),this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset})},e.prototype.calcPageSize=function(e){if(void 0===e&&(e=this.rows),this.scrollbarV){var t=Math.ceil(this.bodyHeight/this.rowHeight);return Math.max(t,0)}return void 0!==this.limit?this.limit:e?e.length:0},e.prototype.calcRowCount=function(e){return void 0===e&&(e=this.rows),this.externalPaging?this.count:e?e.length:0},e.prototype.onColumnResize=function(e){var t,n=e.column,o=e.newValue,i=this.columns.map(function(e,i){return e=Object.assign({},e),e.$$id===n.$$id&&(t=i,e.width=o,e.$$oldWidth=o),e});this.recalculateColumns(i,t),this._columns=i,this.resize.emit({column:n,newValue:o})},e.prototype.onColumnReorder=function(e){var t=e.column,n=e.newValue,o=e.prevValue,i=this.columns.map(function(e){return Object.assign({},e)});i.splice(o,1),i.splice(n,0,t),this.columns=i,this.reorder.emit({column:t,newValue:n,prevValue:o})},e.prototype.onColumnSort=function(e){var t=e.sorts;this.externalSorting===!1&&(this._rows=s.sortRows(this.rows,this.columns,t)),this.sorts=t,this.bodyComponent.updateOffsetY(0),this.sort.emit(e)},e.prototype.onHeaderSelect=function(e){this.selected.length===this.rows.length?this.selected=[]:this.selected=this.rows.slice(),this.select.emit({selected:this.selected})},e.prototype.onBodySelect=function(e){this.select.emit(e)},o([r.Input(),i("design:type",Object),i("design:paramtypes",[Object])],e.prototype,"rows",null),o([r.Input(),i("design:type",Array),i("design:paramtypes",[Array])],e.prototype,"columns",null),o([r.Input(),i("design:type",Array)],e.prototype,"selected",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"scrollbarV",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"scrollbarH",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"rowHeight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"detailRowHeight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"columnMode",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"headerHeight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"footerHeight",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"externalPaging",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"externalSorting",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"limit",void 0),o([r.Input(),i("design:type",Number),i("design:paramtypes",[Number])],e.prototype,"count",null),o([r.Input(),i("design:type",Number)],e.prototype,"offset",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"loadingIndicator",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"selectionType",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"reorderable",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"sortType",void 0),o([r.Input(),i("design:type",Array)],e.prototype,"sorts",void 0),o([r.Input(),i("design:type",r.TemplateRef)],e.prototype,"rowDetailTemplate",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"cssClasses",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"messages",void 0),o([r.Input(),i("design:type",Function)],e.prototype,"rowIdentity",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"selectCheck",void 0),o([r.Input(),i("design:type",String)],e.prototype,"trackByProp",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"scroll",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"activate",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"select",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"sort",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"page",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"detailToggle",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"reorder",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"resize",void 0),o([r.Output(),i("design:type",Object)],e.prototype,"rowContextmenu",void 0),o([r.HostBinding("class.fixed-header"),i("design:type",Boolean)],e.prototype,"isFixedHeader",null),o([r.HostBinding("class.fixed-row"),i("design:type",Boolean)],e.prototype,"isFixedRow",null),o([r.HostBinding("class.scroll-vertical"),i("design:type",Boolean)],e.prototype,"isVertScroll",null),o([r.HostBinding("class.scroll-horz"),i("design:type",Object)],e.prototype,"isHorScroll",null),o([r.HostBinding("class.selectable"),i("design:type",Boolean)],e.prototype,"isSelectable",null),o([r.HostBinding("class.checkbox-selection"),i("design:type",Boolean)],e.prototype,"isCheckboxSelection",null),o([r.HostBinding("class.cell-selection"),i("design:type",Boolean)],e.prototype,"isCellSelection",null),o([r.HostBinding("class.single-selection"),i("design:type",Boolean)],e.prototype,"isSingleSelection",null),o([r.HostBinding("class.multi-selection"),i("design:type",Boolean)],e.prototype,"isMultiSelection",null),o([r.ContentChildren(l.DataTableColumnDirective),i("design:type",r.QueryList),i("design:paramtypes",[r.QueryList])],e.prototype,"columnTemplates",null),o([r.ContentChild(p.DatatableRowDetailDirective),i("design:type",p.DatatableRowDetailDirective),i("design:paramtypes",[p.DatatableRowDetailDirective])],e.prototype,"rowDetailTemplateChild",null),o([r.ViewChild(c.DataTableBodyComponent),i("design:type",c.DataTableBodyComponent)],e.prototype,"bodyComponent",void 0),o([r.HostListener("window:resize"),u.throttleable(5),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],e.prototype,"onWindowResize",null),e=o([r.Component({selector:"swui-datatable",template:'\n \n \n \n \n \n \n \n \n ',host:{class:"datatable"}}),i("design:paramtypes",[r.ElementRef])],e)}();t.DatatableComponent=d},"./src/components/footer/footer.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(){this.page=new r.EventEmitter}return Object.defineProperty(e.prototype,"isVisible",{get:function(){return this.rowCount/this.pageSize>1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"curPage",{get:function(){return this.offset+1},enumerable:!0,configurable:!0}),o([r.Input(),i("design:type",Number)],e.prototype,"footerHeight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"rowCount",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"pageSize",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"offset",void 0),o([r.Input(),i("design:type",String)],e.prototype,"pagerLeftArrowIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"pagerRightArrowIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"pagerPreviousIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"pagerNextIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"totalMessage",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"page",void 0),e=o([r.Component({selector:"datatable-footer",template:'\n \n
{{rowCount.toLocaleString()}} {{totalMessage}}
\n \n \n \n ',host:{class:"datatable-footer"},changeDetection:r.ChangeDetectionStrategy.OnPush}),i("design:paramtypes",[])],e)}();t.DataTableFooterComponent=s},"./src/components/footer/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/footer/footer.component.ts")),o(n("./src/components/footer/pager.component.ts"))},"./src/components/footer/pager.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(){this.change=new r.EventEmitter,this._count=0,this._page=1,this._size=0}return Object.defineProperty(e.prototype,"size",{get:function(){return this._size},set:function(e){this._size=e,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._count},set:function(e){this._count=e,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"page",{get:function(){return this._page},set:function(e){this._page=e,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"totalPages",{get:function(){var e=this.size<1?1:Math.ceil(this.count/this.size);return Math.max(e||0,1)},enumerable:!0,configurable:!0}),e.prototype.canPrevious=function(){return this.page>1},e.prototype.canNext=function(){return this.page0&&e<=this.totalPages&&e!==this.page&&(this.page=e,this.change.emit({page:e}))},e.prototype.calcPages=function(e){var t=[],n=1,o=this.totalPages,i=5,r=i\n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n \n {{pg.text}}\n \n \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n ',host:{class:"datatable-pager"},changeDetection:r.ChangeDetectionStrategy.OnPush}),i("design:paramtypes",[])],e)}();t.DataTablePagerComponent=s},"./src/components/header/header-cell.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/types/index.ts"),a=n("./src/utils/index.ts"),c=function(){function e(){this.sort=new r.EventEmitter,this.select=new r.EventEmitter}return Object.defineProperty(e.prototype,"sorts",{get:function(){return this._sorts},set:function(e){this._sorts=e,this.sortDir=this.calcSortDir(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columnCssClasses",{get:function(){var e="datatable-header-cell";this.column.sortable&&(e+=" sortable"),this.column.resizeable&&(e+=" resizeable");var t=this.sortDir;return t&&(e+=" sort-active sort-"+t),e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this.column.name||this.column.prop},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minWidth",{get:function(){return this.column.minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxWidth",{get:function(){return this.column.maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this.column.width},enumerable:!0,configurable:!0}),e.prototype.sortClasses=function(e){var t={};return e===s.SortDirection.asc?t["sort-asc "+this.sortAscendingIcon]=!0:e===s.SortDirection.desc&&(t["sort-desc "+this.sortDescendingIcon]=!0),t},e.prototype.calcSortDir=function(e){var t=this;if(e&&this.column){var n=e.find(function(e){return e.prop===t.column.prop});if(n)return n.dir}},e.prototype.onSort=function(){if(this.column.sortable){var e=a.nextSortDir(this.sortType,this.sortDir);this.sort.emit({column:this.column,prevValue:this.sortDir,newValue:e})}},o([r.Input(),i("design:type",Number)],e.prototype,"sortType",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"column",void 0),o([r.Input(),i("design:type",String)],e.prototype,"sortAscendingIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"sortDescendingIcon",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"allRowsSelected",void 0),o([r.HostBinding("style.height.px"),r.Input(),i("design:type",Number)],e.prototype,"headerHeight",void 0),o([r.Input(),i("design:type",Array),i("design:paramtypes",[Array])],e.prototype,"sorts",null),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"sort",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"select",void 0),o([r.HostBinding("class"),i("design:type",Object)],e.prototype,"columnCssClasses",null),o([r.HostBinding("attr.title"),i("design:type",String)],e.prototype,"name",null),o([r.HostBinding("style.minWidth.px"),i("design:type",Number)],e.prototype,"minWidth",null),o([r.HostBinding("style.maxWidth.px"),i("design:type",Number)],e.prototype,"maxWidth",null),o([r.HostBinding("style.width.px"),i("design:type",Number)],e.prototype,"width",null),e=o([r.Component({selector:"datatable-header-cell",template:'\n
    \n \n \n \n \n \n \n \n \n \n
    \n '}),i("design:paramtypes",[])],e)}();t.DataTableHeaderCellComponent=c},"./src/components/header/header.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/types/index.ts"),a=n("./src/utils/index.ts"),c=function(){function e(){this.sort=new r.EventEmitter,this.reorder=new r.EventEmitter,this.resize=new r.EventEmitter,this.select=new r.EventEmitter}return Object.defineProperty(e.prototype,"headerHeight",{get:function(){return this._headerHeight},set:function(e){"auto"!==e?this._headerHeight=e+"px":this._headerHeight=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columns",{get:function(){return this._columns},set:function(e){this._columns=e;var t=a.columnsByPin(e);this.columnsByPin=a.columnsByPinArr(e),this.columnGroupWidths=a.columnGroupWidths(t,e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"headerWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),e.prototype.onColumnResized=function(e,t){e<=t.minWidth?e=t.minWidth:e>=t.maxWidth&&(e=t.maxWidth),this.resize.emit({column:t,prevValue:t.width,newValue:e})},e.prototype.onColumnReordered=function(e){var t=e.prevIndex,n=e.newIndex,o=e.model;this.reorder.emit({column:o,prevValue:t,newValue:n})},e.prototype.onSort=function(e){var t=e.column,n=e.prevValue,o=e.newValue,i=this.calcNewSorts(t,n,o);this.sort.emit({sorts:i,column:t,prevValue:n,newValue:o})},e.prototype.calcNewSorts=function(e,t,n){var o=0,i=this.sorts.map(function(t,n){return t=Object.assign({},t),t.prop===e.prop&&(o=n),t});return void 0===n?i.splice(o,1):t?i[o].dir=n:(this.sortType===s.SortType.single&&i.splice(0,this.sorts.length),i.push({dir:n,prop:e.prop})),i},e.prototype.stylesByGroup=function(e){var t=this.columnGroupWidths,n=this.offsetX,o={width:t[e]+"px"};if("center"===e)a.translateXY(o,n*-1,0);else if("right"===e){var i=t.total-this.innerWidth,r=i*-1;a.translateXY(o,r,0)}return o},o([r.Input(),i("design:type",Object)],e.prototype,"sortAscendingIcon",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"sortDescendingIcon",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"scrollbarH",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"innerWidth",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"offsetX",void 0),o([r.Input(),i("design:type",Array)],e.prototype,"sorts",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"sortType",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"allRowsSelected",void 0),o([r.HostBinding("style.height"),r.Input(),i("design:type",Object),i("design:paramtypes",[Object])],e.prototype,"headerHeight",null),o([r.Input(),i("design:type",Array),i("design:paramtypes",[Array])],e.prototype,"columns",null),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"sort",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"reorder",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"resize",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"select",void 0),o([r.HostBinding("style.width"),i("design:type",String)],e.prototype,"headerWidth",null),e=o([r.Component({selector:"datatable-header",template:'\n \n \n \n \n \n \n ',host:{class:"datatable-header"}}),i("design:paramtypes",[])],e)}();t.DataTableHeaderComponent=c},"./src/components/header/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/header/header.component.ts")),o(n("./src/components/header/header-cell.component.ts"))},"./src/components/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/datatable.component.ts")),o(n("./src/components/header/index.ts")),o(n("./src/components/body/index.ts")),o(n("./src/components/footer/index.ts")),o(n("./src/components/columns/index.ts")),o(n("./src/components/row-detail/index.ts"))},"./src/components/row-detail/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/row-detail/row-detail.directive.ts")),o(n("./src/components/row-detail/row-detail-template.directive.ts"))},"./src/components/row-detail/row-detail-template.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(e){this.template=e}return e=o([r.Directive({selector:"[swui-datatable-row-detail-template]"}),i("design:paramtypes",[r.TemplateRef])],e)}();t.DatatableRowDetailTemplateDirective=s},"./src/components/row-detail/row-detail.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s); -return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/components/row-detail/row-detail-template.directive.ts"),a=function(){function e(){}return Object.defineProperty(e.prototype,"rowDetailTemplate",{get:function(){return this.template},enumerable:!0,configurable:!0}),o([r.ContentChild(s.DatatableRowDetailTemplateDirective,{read:r.TemplateRef}),i("design:type",r.TemplateRef)],e.prototype,"template",void 0),e=o([r.Directive({selector:"swui-datatable-row-detail"}),i("design:paramtypes",[])],e)}();t.DatatableRowDetailDirective=a},"./src/datatable.module.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n(2),a=n("./src/components/index.ts"),c=n("./src/directives/index.ts"),l=function(){function e(){}return e=o([r.NgModule({imports:[s.CommonModule],declarations:[c.VisibilityDirective,c.DraggableDirective,c.ResizeableDirective,c.OrderableDirective,c.LongPressDirective,a.ScrollerComponent,a.DatatableComponent,a.DataTableColumnDirective,a.DataTableHeaderComponent,a.DataTableHeaderCellComponent,a.DataTableBodyComponent,a.DataTableFooterComponent,a.DataTablePagerComponent,a.ProgressBarComponent,a.DataTableBodyRowComponent,a.DataTableRowWrapperComponent,a.DatatableRowDetailDirective,a.DatatableRowDetailTemplateDirective,a.DataTableBodyCellComponent,a.DataTableSelectionComponent,a.DataTableColumnHeaderDirective,a.DataTableColumnCellDirective],exports:[a.DatatableComponent,a.DatatableRowDetailDirective,a.DatatableRowDetailTemplateDirective,a.DataTableColumnDirective,a.DataTableColumnHeaderDirective,a.DataTableColumnCellDirective]}),i("design:paramtypes",[])],e)}();t.Angular2DataTableModule=l},"./src/directives/draggable.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n(1),a=function(){function e(e){this.dragX=!0,this.dragY=!0,this.dragStart=new r.EventEmitter,this.dragging=new r.EventEmitter,this.dragEnd=new r.EventEmitter,this.isDragging=!1,this.element=e.nativeElement}return e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},e.prototype.onMouseup=function(e){this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this.subscription.unsubscribe(),this.dragEnd.emit({event:e,element:this.element,model:this.dragModel}))},e.prototype.onMousedown=function(e){var t=this;if(e.target.classList.contains("draggable")){e.preventDefault(),this.isDragging=!0;var n={x:e.clientX,y:e.clientY};this.subscription=s.Observable.fromEvent(document,"mousemove").subscribe(function(e){return t.move(e,n)}),this.dragStart.emit({event:e,element:this.element,model:this.dragModel})}},e.prototype.move=function(e,t){if(this.dragging){var n=e.clientX-t.x,o=e.clientY-t.y;this.dragX&&(this.element.style.left=n+"px"),this.dragY&&(this.element.style.top=o+"px"),(this.dragX||this.dragY)&&(this.element.classList.add("dragging"),this.dragging.emit({event:e,element:this.element,model:this.dragModel}))}},o([r.Input(),i("design:type",Object)],e.prototype,"dragModel",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"dragX",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"dragY",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"dragStart",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"dragging",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"dragEnd",void 0),o([r.HostListener("document:mouseup",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMouseup",null),o([r.HostListener("mousedown",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMousedown",null),e=o([r.Directive({selector:"[draggable]"}),i("design:paramtypes",[r.ElementRef])],e)}();t.DraggableDirective=a},"./src/directives/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/directives/draggable.directive.ts")),o(n("./src/directives/long-press.directive.ts")),o(n("./src/directives/orderable.directive.ts")),o(n("./src/directives/resizeable.directive.ts")),o(n("./src/directives/visibility.directive.ts"))},"./src/directives/long-press.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(){this.duration=500,this.longPress=new r.EventEmitter,this.longPressing=new r.EventEmitter,this.longPressEnd=new r.EventEmitter,this.mouseX=0,this.mouseY=0}return Object.defineProperty(e.prototype,"press",{get:function(){return this.pressing},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isLongPress",{get:function(){return this.longPressing},enumerable:!0,configurable:!0}),e.prototype.onMouseDown=function(e){var t=this;1===e.which&&(this.mouseX=e.clientX,this.mouseY=e.clientY,this.pressing=!0,this.isLongPressing=!1,this.timeout=setTimeout(function(){t.isLongPressing=!0,t.longPress.emit(e),t.loop(e)},this.duration),this.loop(e))},e.prototype.onMouseMove=function(e){if(this.pressing&&!this.longPressing){var t=e.clientX-this.mouseX>10,n=e.clientY-this.mouseY>10;(t||n)&&this.endPress()}},e.prototype.loop=function(e){var t=this;this.longPressing&&(this.timeout=setTimeout(function(){t.longPressing.emit(e),t.loop(e)},50))},e.prototype.endPress=function(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this.longPressEnd.emit(!0)},e.prototype.onMouseUp=function(){this.endPress()},o([r.Input(),i("design:type",Number)],e.prototype,"duration",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"longPress",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"longPressing",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"longPressEnd",void 0),o([r.HostBinding("class.press"),i("design:type",Object)],e.prototype,"press",null),o([r.HostBinding("class.longpress"),i("design:type",Object)],e.prototype,"isLongPress",null),o([r.HostListener("mousedown",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMouseDown",null),o([r.HostListener("mousemove",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMouseMove",null),o([r.HostListener("mouseup"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],e.prototype,"onMouseUp",null),e=o([r.Directive({selector:"[long-press]"}),i("design:paramtypes",[])],e)}();t.LongPressDirective=s},"./src/directives/orderable.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/directives/draggable.directive.ts"),a=function(){function e(e){this.reorder=new r.EventEmitter,this.differ=e.find({}).create(null)}return e.prototype.ngAfterContentInit=function(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))},e.prototype.ngOnDestroy=function(){this.draggables.forEach(function(e){e.dragStart.unsubscribe(),e.dragEnd.unsubscribe()})},e.prototype.updateSubscriptions=function(){var e=this,t=this.differ.diff(this.draggables.toArray());if(t){var n=function(t){var n=t.currentValue,i=t.previousValue;o({previousValue:i}),n&&(n.dragStart.subscribe(e.onDragStart.bind(e)),n.dragEnd.subscribe(e.onDragEnd.bind(e)))},o=function(e){var t=e.previousValue;t&&(t.dragStart.unsubscribe(),t.dragEnd.unsubscribe())};t.forEachAddedItem(n.bind(this)),t.forEachChangedItem(n.bind(this)),t.forEachRemovedItem(o.bind(this))}},e.prototype.onDragStart=function(){this.positions={};for(var e=0,t=0,n=this.draggables.toArray();ta.left,l=o>a.left&&i.left=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n(1),a=function(){function e(e){if(this.resizeEnabled=!0,this.resize=new r.EventEmitter,this.resizing=!1,this.element=e.nativeElement,this.resizeEnabled){var t=document.createElement("span");t.classList.add("resize-handle"),this.element.appendChild(t)}}return e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},e.prototype.onMouseup=function(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this.subscription.unsubscribe(),this.resize.emit(this.element.clientWidth))},e.prototype.onMousedown=function(e){var t=this,n=e.target.classList.contains("resize-handle"),o=this.element.clientWidth,i=e.screenX;n&&(e.stopPropagation(),this.resizing=!0,this.subscription=s.Observable.fromEvent(document,"mousemove").subscribe(function(e){return t.move(e,o,i)}))},e.prototype.move=function(e,t,n){var o=e.screenX-n,i=t+o,r=!this.minWidth||i>=this.minWidth,s=!this.maxWidth||i<=this.maxWidth;r&&s&&(this.element.style.width=i+"px")},o([r.Input(),i("design:type",Boolean)],e.prototype,"resizeEnabled",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"minWidth",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"maxWidth",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"resize",void 0),o([r.HostListener("document:mouseup",["$event"]),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],e.prototype,"onMouseup",null),o([r.HostListener("mousedown",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMousedown",null),e=o([r.Directive({selector:"[resizeable]",host:{"[class.resizeable]":"resizeEnabled"}}),i("design:paramtypes",[r.ElementRef])],e)}();t.ResizeableDirective=a},"./src/directives/visibility.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(e,t){this.element=e,this.zone=t,this.isVisible=!1,this.visible=new r.EventEmitter}return e.prototype.ngOnInit=function(){this.runCheck()},e.prototype.ngOnDestroy=function(){clearTimeout(this.timeout)},e.prototype.onVisibilityChange=function(){var e=this;this.zone.run(function(){e.isVisible=!0,e.visible.emit(!0)})},e.prototype.runCheck=function(){var e=this,t=function(){var n=e.element.nativeElement,o=n.offsetHeight,i=n.offsetWidth;o&&i?(clearTimeout(e.timeout),e.onVisibilityChange()):(clearTimeout(e.timeout),e.zone.runOutsideAngular(function(){e.timeout=setTimeout(function(){return t()},50)}))};setTimeout(function(){return t()})},o([r.HostBinding("class.visible"),i("design:type",Boolean)],e.prototype,"isVisible",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"visible",void 0),e=o([r.Directive({selector:"[visibility-observer]"}),i("design:paramtypes",[r.ElementRef,r.NgZone])],e)}();t.VisibilityDirective=s},"./src/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/datatable.module.ts")),o(n("./src/types/index.ts")),o(n("./src/components/index.ts"))},"./src/types/click.type.ts":function(e,t){"use strict";!function(e){e[e.single="single"]="single",e[e.double="double"]="double"}(t.ClickType||(t.ClickType={}));t.ClickType},"./src/types/column-mode.type.ts":function(e,t){"use strict";!function(e){e[e.standard="standard"]="standard",e[e.flex="flex"]="flex",e[e.force="force"]="force"}(t.ColumnMode||(t.ColumnMode={}));t.ColumnMode},"./src/types/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/types/column-mode.type.ts")),o(n("./src/types/sort.type.ts")),o(n("./src/types/sort-direction.type.ts")),o(n("./src/types/selection.type.ts")),o(n("./src/types/click.type.ts"))},"./src/types/selection.type.ts":function(e,t){"use strict";!function(e){e[e.single="single"]="single",e[e.multi="multi"]="multi",e[e.multiShift="multiShift"]="multiShift",e[e.cell="cell"]="cell",e[e.checkbox="checkbox"]="checkbox"}(t.SelectionType||(t.SelectionType={}));t.SelectionType},"./src/types/sort-direction.type.ts":function(e,t){"use strict";!function(e){e[e.asc="asc"]="asc",e[e.desc="desc"]="desc"}(t.SortDirection||(t.SortDirection={}));t.SortDirection},"./src/types/sort.type.ts":function(e,t){"use strict";!function(e){e[e.single="single"]="single",e[e.multi="multi"]="multi"}(t.SortType||(t.SortType={}));t.SortType},"./src/utils/camel-case.ts":function(e,t){"use strict";function n(e){return e=e.replace(/[^a-zA-Z0-9 ]/g," "),e=e.replace(/([a-z](?=[A-Z]))/g,"$1 "),e=e.replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase(),e=e.replace(/([ 0-9]+)([a-zA-Z])/g,function(e,t,n){return t.trim()+n.toUpperCase()})}function o(e){return e.replace(/([A-Z])/g,function(e){return" "+e}).replace(/^./,function(e){return e.toUpperCase()})}t.camelCase=n,t.deCamelCase=o},"./src/utils/column-helper.ts":function(e,t,n){"use strict";function o(e){if(e)for(var t=0,n=e;t=t;for(var g=0,m=r;gp.maxWidth?(p.width=p.maxWidth,y.push(p)):p.width=v}p.width=Math.max(0,p.width)}h=c(e),f=t-h,a(r,y)}while(f>0&&0!==r.length)}function a(e,t){for(var n=0,o=t;n=0;)t+=this.treeArray[e],e=(e&e+1)-1;return t},e.prototype.queryBetween=function(e,t){return this.query(t)-this.query(e-1)},e.prototype.calcRowIndex=function(e){if(!this.treeArray.length)return 0;for(var t=-1,n=this.treeArray.length,o=Math.pow(2,n.toString(2).length-1),i=o;0!==i;i>>=1){var r=t+i;r=this.treeArray[r]&&(e-=this.treeArray[r],t=r)}return t+1},e}();t.RowHeightCache=n},"./src/utils/scrollbar-width.ts":function(e,t){"use strict";function n(){var e=document.createElement("div");e.style.visibility="hidden",e.style.width="100px",e.style.msOverflowStyle="scrollbar",document.body.appendChild(e);var t=e.offsetWidth;e.style.overflow="scroll";var n=document.createElement("div");n.style.width="100%",e.appendChild(n);var o=n.offsetWidth;return e.parentNode.removeChild(e),t-o}t.getScrollBarWidth=n,t.scrollbarWidth=n()},"./src/utils/selection.ts":function(e,t){"use strict";function n(e,t,n){var o=n(t,e);return o>-1?e.splice(o,1):e.push(t),e}function o(e,t,n,o,i){for(var r=n=o&&s<=n,p=s<=o&&s>=n,u={start:0,end:0};if(u=r?{start:n,end:o-n}:{start:o,end:n+1},r&&p||!r&&l){var d=i(c,e);if(r&&d>-1){e.splice(d,1);continue}s>=u.start&&st.toLowerCase())return 1}else{if(parseFloat(e)parseFloat(t))return 1}return 0}function r(e,t,n){if(!(e&&n&&n.length&&t))return e;var o=e.slice(),r=t.reduce(function(e,t){return t.comparator&&"function"==typeof t.comparator&&(e[t.prop]=t.comparator),e},{});return o.sort(function(e,t){for(var o=0,c=n;o=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/utils/index.ts"),a=n("./src/types/index.ts"),c=n("./src/components/body/index.ts"),l=n("./src/components/columns/index.ts"),p=n("./src/components/row-detail/index.ts"),u=n("./src/utils/index.ts"),d=function(){function e(e,t){this.selected=[],this.scrollbarV=!1,this.scrollbarH=!1,this.rowHeight=30,this.detailRowHeight=0,this.columnMode=a.ColumnMode.standard,this.headerHeight=30,this.footerHeight=0,this.externalPaging=!1,this.externalSorting=!1,this.limit=void 0,this.offset=0,this.loadingIndicator=!1,this.reorderable=!0,this.sortType=a.SortType.single,this.sorts=[],this.cssClasses={sortAscending:"icon-down",sortDescending:"icon-up",pagerLeftArrow:"icon-left",pagerRightArrow:"icon-right",pagerPrevious:"icon-prev",pagerNext:"icon-skip"},this.messages={emptyMessage:"No data to display",totalMessage:"total"},this.rowIdentity=function(e){return e},this.scroll=new r.EventEmitter,this.activate=new r.EventEmitter,this.select=new r.EventEmitter,this.sort=new r.EventEmitter,this.page=new r.EventEmitter,this.detailToggle=new r.EventEmitter,this.reorder=new r.EventEmitter,this.resize=new r.EventEmitter,this.rowContextmenu=new r.EventEmitter(!1),this.offsetX=0,this._count=0,this.element=e.nativeElement,this.rowDiffer=t.find({}).create(null)}return Object.defineProperty(e.prototype,"rows",{get:function(){return this._rows},set:function(e){this.externalSorting||(e=s.sortRows(e,this.columns,this.sorts)),this._rows=e,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columns",{get:function(){return this._columns},set:function(e){e&&(u.setColumnDefaults(e),this.recalculateColumns(e)),this._columns=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._count},set:function(e){this._count=e,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isFixedHeader",{get:function(){var e=this.headerHeight;return"string"!=typeof e||"auto"!==e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isFixedRow",{get:function(){var e=this.rowHeight;return"string"!=typeof e||"auto"!==e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVertScroll",{get:function(){return this.scrollbarV},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHorScroll",{get:function(){return this.scrollbarH},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isSelectable",{get:function(){return void 0!==this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCheckboxSelection",{get:function(){return this.selectionType===a.SelectionType.checkbox},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCellSelection",{get:function(){return this.selectionType===a.SelectionType.cell},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isSingleSelection",{get:function(){return this.selectionType===a.SelectionType.single},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isMultiSelection",{get:function(){return this.selectionType===a.SelectionType.multi||this.selectionType===a.SelectionType.multiShift},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columnTemplates",{get:function(){return this._columnTemplates},set:function(e){if(this._columnTemplates=e,e){var t=e.toArray();t.length&&(this.columns=u.translateTemplates(t))}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rowDetailTemplateChild",{get:function(){return this._rowDetailTemplateChild},set:function(e){this._rowDetailTemplateChild=e,e&&(this.rowDetailTemplate=e.rowDetailTemplate)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"allRowsSelected",{get:function(){return this.selected.length===this.rows.length},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.recalculate()},e.prototype.ngAfterViewInit=function(){var e=this;setTimeout(function(){return e.recalculate()})},e.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.rows)&&this.recalculatePages()},e.prototype.toggleExpandRow=function(e){this.bodyComponent.toggleRowExpansion(e)},e.prototype.expandAllRows=function(){this.bodyComponent.toggleAllRows(!0)},e.prototype.collapseAllRows=function(){this.bodyComponent.toggleAllRows(!1)},e.prototype.recalculate=function(){this.recalculateDims(),this.recalculateColumns()},e.prototype.onWindowResize=function(){this.recalculate()},e.prototype.recalculateColumns=function(e,t,n){if(void 0===e&&(e=this.columns),void 0===t&&(t=-1),void 0===n&&(n=this.scrollbarH),e){var o=this.innerWidth;return this.scrollbarV&&(o-=u.scrollbarWidth),this.columnMode===a.ColumnMode.force?s.forceFillColumnWidths(e,o,t,n):this.columnMode===a.ColumnMode.flex&&s.adjustColumnWidths(e,o),e}},e.prototype.recalculateDims=function(){var e=this.element.getBoundingClientRect(),t=e.height,n=e.width;this.innerWidth=Math.floor(n),this.scrollbarV&&(this.headerHeight&&(t-=this.headerHeight),this.footerHeight&&(t-=this.footerHeight),this.bodyHeight=t),this.recalculatePages()},e.prototype.recalculatePages=function(){this.pageSize=this.calcPageSize(),this.rowCount=this.calcRowCount()},e.prototype.onBodyPage=function(e){var t=e.offset;this.offset=t,this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset})},e.prototype.onBodyScroll=function(e){this.offsetX=e.offsetX,this.scroll.emit(e)},e.prototype.onFooterPage=function(e){this.offset=e.page-1,this.bodyComponent.updateOffsetY(this.offset),this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset})},e.prototype.calcPageSize=function(e){if(void 0===e&&(e=this.rows),this.scrollbarV){var t=Math.ceil(this.bodyHeight/this.rowHeight);return Math.max(t,0)}return void 0!==this.limit?this.limit:e?e.length:0},e.prototype.calcRowCount=function(e){return void 0===e&&(e=this.rows),this.externalPaging?this.count:e?e.length:0},e.prototype.onColumnResize=function(e){var t,n=e.column,o=e.newValue,i=this.columns.map(function(e,i){return e=Object.assign({},e),e.$$id===n.$$id&&(t=i,e.width=o,e.$$oldWidth=o),e});this.recalculateColumns(i,t),this._columns=i,this.resize.emit({column:n,newValue:o})},e.prototype.onColumnReorder=function(e){var t=e.column,n=e.newValue,o=e.prevValue,i=this.columns.map(function(e){return Object.assign({},e)});i.splice(o,1),i.splice(n,0,t),this.columns=i,this.reorder.emit({column:t,newValue:n,prevValue:o})},e.prototype.onColumnSort=function(e){var t=e.sorts;this.externalSorting===!1&&(this._rows=s.sortRows(this.rows,this.columns,t)),this.sorts=t,this.bodyComponent.updateOffsetY(0),this.sort.emit(e)},e.prototype.onHeaderSelect=function(e){this.selected.length===this.rows.length?this.selected=[]:this.selected=this.rows.slice(),this.select.emit({selected:this.selected})},e.prototype.onBodySelect=function(e){this.select.emit(e)},o([r.Input(),i("design:type",Object),i("design:paramtypes",[Object])],e.prototype,"rows",null),o([r.Input(),i("design:type",Array),i("design:paramtypes",[Array])],e.prototype,"columns",null),o([r.Input(),i("design:type",Array)],e.prototype,"selected",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"scrollbarV",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"scrollbarH",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"rowHeight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"detailRowHeight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"columnMode",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"headerHeight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"footerHeight",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"externalPaging",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"externalSorting",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"limit",void 0),o([r.Input(),i("design:type",Number),i("design:paramtypes",[Number])],e.prototype,"count",null),o([r.Input(),i("design:type",Number)],e.prototype,"offset",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"loadingIndicator",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"selectionType",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"reorderable",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"sortType",void 0),o([r.Input(),i("design:type",Array)],e.prototype,"sorts",void 0),o([r.Input(),i("design:type",r.TemplateRef)],e.prototype,"rowDetailTemplate",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"cssClasses",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"messages",void 0),o([r.Input(),i("design:type",Function)],e.prototype,"rowIdentity",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"selectCheck",void 0),o([r.Input(),i("design:type",String)],e.prototype,"trackByProp",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"scroll",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"activate",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"select",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"sort",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"page",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"detailToggle",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"reorder",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"resize",void 0),o([r.Output(),i("design:type",Object)],e.prototype,"rowContextmenu",void 0),o([r.HostBinding("class.fixed-header"),i("design:type",Boolean)],e.prototype,"isFixedHeader",null),o([r.HostBinding("class.fixed-row"),i("design:type",Boolean)],e.prototype,"isFixedRow",null),o([r.HostBinding("class.scroll-vertical"),i("design:type",Boolean)],e.prototype,"isVertScroll",null),o([r.HostBinding("class.scroll-horz"),i("design:type",Boolean)],e.prototype,"isHorScroll",null),o([r.HostBinding("class.selectable"),i("design:type",Boolean)],e.prototype,"isSelectable",null),o([r.HostBinding("class.checkbox-selection"),i("design:type",Boolean)],e.prototype,"isCheckboxSelection",null),o([r.HostBinding("class.cell-selection"),i("design:type",Boolean)],e.prototype,"isCellSelection",null),o([r.HostBinding("class.single-selection"),i("design:type",Boolean)],e.prototype,"isSingleSelection",null),o([r.HostBinding("class.multi-selection"),i("design:type",Boolean)],e.prototype,"isMultiSelection",null),o([r.ContentChildren(l.DataTableColumnDirective),i("design:type",r.QueryList),i("design:paramtypes",[r.QueryList])],e.prototype,"columnTemplates",null),o([r.ContentChild(p.DatatableRowDetailDirective),i("design:type",p.DatatableRowDetailDirective),i("design:paramtypes",[p.DatatableRowDetailDirective])],e.prototype,"rowDetailTemplateChild",null),o([r.ViewChild(c.DataTableBodyComponent),i("design:type",c.DataTableBodyComponent)],e.prototype,"bodyComponent",void 0),o([r.HostListener("window:resize"),u.throttleable(5),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],e.prototype,"onWindowResize",null),e=o([r.Component({selector:"swui-datatable",template:'\n \n \n \n \n \n \n \n \n ',host:{class:"datatable"}}),i("design:paramtypes",[r.ElementRef,r.KeyValueDiffers])],e)}();t.DatatableComponent=d},"./src/components/footer/footer.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(){this.page=new r.EventEmitter}return Object.defineProperty(e.prototype,"isVisible",{get:function(){return this.rowCount/this.pageSize>1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"curPage",{get:function(){return this.offset+1},enumerable:!0,configurable:!0}),o([r.Input(),i("design:type",Number)],e.prototype,"footerHeight",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"rowCount",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"pageSize",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"offset",void 0),o([r.Input(),i("design:type",String)],e.prototype,"pagerLeftArrowIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"pagerRightArrowIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"pagerPreviousIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"pagerNextIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"totalMessage",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"page",void 0),e=o([r.Component({selector:"datatable-footer",template:'\n \n
    {{rowCount.toLocaleString()}} {{totalMessage}}
    \n \n \n \n ',host:{class:"datatable-footer"},changeDetection:r.ChangeDetectionStrategy.OnPush}),i("design:paramtypes",[])],e)}();t.DataTableFooterComponent=s},"./src/components/footer/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/footer/footer.component.ts")),o(n("./src/components/footer/pager.component.ts"))},"./src/components/footer/pager.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(){this.change=new r.EventEmitter,this._count=0,this._page=1,this._size=0}return Object.defineProperty(e.prototype,"size",{get:function(){return this._size},set:function(e){this._size=e,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._count},set:function(e){this._count=e,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"page",{get:function(){return this._page},set:function(e){this._page=e,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"totalPages",{get:function(){var e=this.size<1?1:Math.ceil(this.count/this.size);return Math.max(e||0,1)},enumerable:!0,configurable:!0}),e.prototype.canPrevious=function(){return this.page>1},e.prototype.canNext=function(){return this.page0&&e<=this.totalPages&&e!==this.page&&(this.page=e,this.change.emit({page:e}))},e.prototype.calcPages=function(e){var t=[],n=1,o=this.totalPages,i=5,r=i\n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n \n {{pg.text}}\n \n \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n ',host:{class:"datatable-pager"},changeDetection:r.ChangeDetectionStrategy.OnPush}),i("design:paramtypes",[])],e)}();t.DataTablePagerComponent=s},"./src/components/header/header-cell.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/types/index.ts"),a=n("./src/utils/index.ts"),c=function(){function e(){this.sort=new r.EventEmitter,this.select=new r.EventEmitter}return Object.defineProperty(e.prototype,"sorts",{get:function(){return this._sorts},set:function(e){this._sorts=e,this.sortDir=this.calcSortDir(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columnCssClasses",{get:function(){var e="datatable-header-cell";this.column.sortable&&(e+=" sortable"),this.column.resizeable&&(e+=" resizeable");var t=this.sortDir;return t&&(e+=" sort-active sort-"+t),e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this.column.name||this.column.prop},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minWidth",{get:function(){return this.column.minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxWidth",{get:function(){return this.column.maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this.column.width},enumerable:!0,configurable:!0}),e.prototype.sortClasses=function(e){var t={};return e===s.SortDirection.asc?t["sort-asc "+this.sortAscendingIcon]=!0:e===s.SortDirection.desc&&(t["sort-desc "+this.sortDescendingIcon]=!0),t},e.prototype.calcSortDir=function(e){var t=this;if(e&&this.column){var n=e.find(function(e){return e.prop===t.column.prop});if(n)return n.dir}},e.prototype.onSort=function(){if(this.column.sortable){var e=a.nextSortDir(this.sortType,this.sortDir);this.sort.emit({column:this.column,prevValue:this.sortDir,newValue:e})}},o([r.Input(),i("design:type",Number)],e.prototype,"sortType",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"column",void 0),o([r.Input(),i("design:type",String)],e.prototype,"sortAscendingIcon",void 0),o([r.Input(),i("design:type",String)],e.prototype,"sortDescendingIcon",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"allRowsSelected",void 0),o([r.HostBinding("style.height.px"),r.Input(),i("design:type",Number)],e.prototype,"headerHeight",void 0),o([r.Input(),i("design:type",Array),i("design:paramtypes",[Array])],e.prototype,"sorts",null),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"sort",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"select",void 0),o([r.HostBinding("class"),i("design:type",Object)],e.prototype,"columnCssClasses",null),o([r.HostBinding("attr.title"),i("design:type",String)],e.prototype,"name",null),o([r.HostBinding("style.minWidth.px"),i("design:type",Number)],e.prototype,"minWidth",null),o([r.HostBinding("style.maxWidth.px"),i("design:type",Number)],e.prototype,"maxWidth",null),o([r.HostBinding("style.width.px"),i("design:type",Number)],e.prototype,"width",null),e=o([r.Component({selector:"datatable-header-cell",template:'\n
    \n \n \n \n \n \n \n \n \n \n
    \n '}),i("design:paramtypes",[])],e)}();t.DataTableHeaderCellComponent=c},"./src/components/header/header.component.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/types/index.ts"),a=n("./src/utils/index.ts"),c=function(){function e(){this.sort=new r.EventEmitter,this.reorder=new r.EventEmitter,this.resize=new r.EventEmitter,this.select=new r.EventEmitter}return Object.defineProperty(e.prototype,"headerHeight",{get:function(){return this._headerHeight},set:function(e){"auto"!==e?this._headerHeight=e+"px":this._headerHeight=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"columns",{get:function(){return this._columns},set:function(e){this._columns=e;var t=a.columnsByPin(e);this.columnsByPin=a.columnsByPinArr(e),this.columnGroupWidths=a.columnGroupWidths(t,e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"headerWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),e.prototype.onColumnResized=function(e,t){e<=t.minWidth?e=t.minWidth:e>=t.maxWidth&&(e=t.maxWidth),this.resize.emit({column:t,prevValue:t.width,newValue:e})},e.prototype.onColumnReordered=function(e){var t=e.prevIndex,n=e.newIndex,o=e.model;this.reorder.emit({column:o,prevValue:t,newValue:n})},e.prototype.onSort=function(e){var t=e.column,n=e.prevValue,o=e.newValue,i=this.calcNewSorts(t,n,o);this.sort.emit({sorts:i,column:t,prevValue:n,newValue:o})},e.prototype.calcNewSorts=function(e,t,n){var o=0,i=this.sorts.map(function(t,n){return t=Object.assign({},t),t.prop===e.prop&&(o=n),t});return void 0===n?i.splice(o,1):t?i[o].dir=n:(this.sortType===s.SortType.single&&i.splice(0,this.sorts.length),i.push({dir:n,prop:e.prop})),i},e.prototype.stylesByGroup=function(e){var t=this.columnGroupWidths,n=this.offsetX,o={width:t[e]+"px"};if("center"===e)a.translateXY(o,n*-1,0);else if("right"===e){var i=t.total-this.innerWidth,r=i*-1;a.translateXY(o,r,0)}return o},o([r.Input(),i("design:type",Object)],e.prototype,"sortAscendingIcon",void 0),o([r.Input(),i("design:type",Object)],e.prototype,"sortDescendingIcon",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"scrollbarH",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"innerWidth",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"offsetX",void 0),o([r.Input(),i("design:type",Array)],e.prototype,"sorts",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"sortType",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"allRowsSelected",void 0),o([r.HostBinding("style.height"),r.Input(),i("design:type",Object),i("design:paramtypes",[Object])],e.prototype,"headerHeight",null),o([r.Input(),i("design:type",Array),i("design:paramtypes",[Array])],e.prototype,"columns",null),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"sort",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"reorder",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"resize",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"select",void 0),o([r.HostBinding("style.width"),i("design:type",String)],e.prototype,"headerWidth",null),e=o([r.Component({selector:"datatable-header",template:'\n \n \n \n \n \n \n ',host:{class:"datatable-header"}}),i("design:paramtypes",[])],e)}();t.DataTableHeaderComponent=c},"./src/components/header/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/header/header.component.ts")),o(n("./src/components/header/header-cell.component.ts"))},"./src/components/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/datatable.component.ts")),o(n("./src/components/header/index.ts")),o(n("./src/components/body/index.ts")),o(n("./src/components/footer/index.ts")),o(n("./src/components/columns/index.ts")),o(n("./src/components/row-detail/index.ts"))},"./src/components/row-detail/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/components/row-detail/row-detail.directive.ts")),o(n("./src/components/row-detail/row-detail-template.directive.ts"))},"./src/components/row-detail/row-detail-template.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(e){this.template=e}return e=o([r.Directive({selector:"[swui-datatable-row-detail-template]"}),i("design:paramtypes",[r.TemplateRef])],e)}();t.DatatableRowDetailTemplateDirective=s},"./src/components/row-detail/row-detail.directive.ts":function(e,t,n){ +"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/components/row-detail/row-detail-template.directive.ts"),a=function(){function e(){}return Object.defineProperty(e.prototype,"rowDetailTemplate",{get:function(){return this.template},enumerable:!0,configurable:!0}),o([r.ContentChild(s.DatatableRowDetailTemplateDirective,{read:r.TemplateRef}),i("design:type",r.TemplateRef)],e.prototype,"template",void 0),e=o([r.Directive({selector:"swui-datatable-row-detail"}),i("design:paramtypes",[])],e)}();t.DatatableRowDetailDirective=a},"./src/datatable.module.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n(2),a=n("./src/components/index.ts"),c=n("./src/directives/index.ts"),l=function(){function e(){}return e=o([r.NgModule({imports:[s.CommonModule],declarations:[c.VisibilityDirective,c.DraggableDirective,c.ResizeableDirective,c.OrderableDirective,c.LongPressDirective,a.ScrollerComponent,a.DatatableComponent,a.DataTableColumnDirective,a.DataTableHeaderComponent,a.DataTableHeaderCellComponent,a.DataTableBodyComponent,a.DataTableFooterComponent,a.DataTablePagerComponent,a.ProgressBarComponent,a.DataTableBodyRowComponent,a.DataTableRowWrapperComponent,a.DatatableRowDetailDirective,a.DatatableRowDetailTemplateDirective,a.DataTableBodyCellComponent,a.DataTableSelectionComponent,a.DataTableColumnHeaderDirective,a.DataTableColumnCellDirective],exports:[a.DatatableComponent,a.DatatableRowDetailDirective,a.DatatableRowDetailTemplateDirective,a.DataTableColumnDirective,a.DataTableColumnHeaderDirective,a.DataTableColumnCellDirective]}),i("design:paramtypes",[])],e)}();t.Angular2DataTableModule=l},"./src/directives/draggable.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n(1),a=function(){function e(e){this.dragX=!0,this.dragY=!0,this.dragStart=new r.EventEmitter,this.dragging=new r.EventEmitter,this.dragEnd=new r.EventEmitter,this.isDragging=!1,this.element=e.nativeElement}return e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},e.prototype.onMouseup=function(e){this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this.subscription.unsubscribe(),this.dragEnd.emit({event:e,element:this.element,model:this.dragModel}))},e.prototype.onMousedown=function(e){var t=this;if(e.target.classList.contains("draggable")){e.preventDefault(),this.isDragging=!0;var n={x:e.clientX,y:e.clientY};this.subscription=s.Observable.fromEvent(document,"mousemove").subscribe(function(e){return t.move(e,n)}),this.dragStart.emit({event:e,element:this.element,model:this.dragModel})}},e.prototype.move=function(e,t){if(this.dragging){var n=e.clientX-t.x,o=e.clientY-t.y;this.dragX&&(this.element.style.left=n+"px"),this.dragY&&(this.element.style.top=o+"px"),(this.dragX||this.dragY)&&(this.element.classList.add("dragging"),this.dragging.emit({event:e,element:this.element,model:this.dragModel}))}},o([r.Input(),i("design:type",Object)],e.prototype,"dragModel",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"dragX",void 0),o([r.Input(),i("design:type",Boolean)],e.prototype,"dragY",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"dragStart",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"dragging",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"dragEnd",void 0),o([r.HostListener("document:mouseup",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMouseup",null),o([r.HostListener("mousedown",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMousedown",null),e=o([r.Directive({selector:"[draggable]"}),i("design:paramtypes",[r.ElementRef])],e)}();t.DraggableDirective=a},"./src/directives/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/directives/draggable.directive.ts")),o(n("./src/directives/long-press.directive.ts")),o(n("./src/directives/orderable.directive.ts")),o(n("./src/directives/resizeable.directive.ts")),o(n("./src/directives/visibility.directive.ts"))},"./src/directives/long-press.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(){this.duration=500,this.longPress=new r.EventEmitter,this.longPressing=new r.EventEmitter,this.longPressEnd=new r.EventEmitter,this.mouseX=0,this.mouseY=0}return Object.defineProperty(e.prototype,"press",{get:function(){return this.pressing},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isLongPress",{get:function(){return this.longPressing},enumerable:!0,configurable:!0}),e.prototype.onMouseDown=function(e){var t=this;1===e.which&&(this.mouseX=e.clientX,this.mouseY=e.clientY,this.pressing=!0,this.isLongPressing=!1,this.timeout=setTimeout(function(){t.isLongPressing=!0,t.longPress.emit(e),t.loop(e)},this.duration),this.loop(e))},e.prototype.onMouseMove=function(e){if(this.pressing&&!this.longPressing){var t=e.clientX-this.mouseX>10,n=e.clientY-this.mouseY>10;(t||n)&&this.endPress()}},e.prototype.loop=function(e){var t=this;this.longPressing&&(this.timeout=setTimeout(function(){t.longPressing.emit(e),t.loop(e)},50))},e.prototype.endPress=function(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this.longPressEnd.emit(!0)},e.prototype.onMouseUp=function(){this.endPress()},o([r.Input(),i("design:type",Number)],e.prototype,"duration",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"longPress",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"longPressing",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"longPressEnd",void 0),o([r.HostBinding("class.press"),i("design:type",Object)],e.prototype,"press",null),o([r.HostBinding("class.longpress"),i("design:type",Object)],e.prototype,"isLongPress",null),o([r.HostListener("mousedown",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMouseDown",null),o([r.HostListener("mousemove",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMouseMove",null),o([r.HostListener("mouseup"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],e.prototype,"onMouseUp",null),e=o([r.Directive({selector:"[long-press]"}),i("design:paramtypes",[])],e)}();t.LongPressDirective=s},"./src/directives/orderable.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n("./src/directives/draggable.directive.ts"),a=function(){function e(e){this.reorder=new r.EventEmitter,this.differ=e.find({}).create(null)}return e.prototype.ngAfterContentInit=function(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))},e.prototype.ngOnDestroy=function(){this.draggables.forEach(function(e){e.dragStart.unsubscribe(),e.dragEnd.unsubscribe()})},e.prototype.updateSubscriptions=function(){var e=this,t=this.differ.diff(this.draggables.toArray());if(t){var n=function(t){var n=t.currentValue,i=t.previousValue;o({previousValue:i}),n&&(n.dragStart.subscribe(e.onDragStart.bind(e)),n.dragEnd.subscribe(e.onDragEnd.bind(e)))},o=function(e){var t=e.previousValue;t&&(t.dragStart.unsubscribe(),t.dragEnd.unsubscribe())};t.forEachAddedItem(n.bind(this)),t.forEachChangedItem(n.bind(this)),t.forEachRemovedItem(o.bind(this))}},e.prototype.onDragStart=function(){this.positions={};for(var e=0,t=0,n=this.draggables.toArray();ta.left,l=o>a.left&&i.left=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=n(1),a=function(){function e(e){if(this.resizeEnabled=!0,this.resize=new r.EventEmitter,this.resizing=!1,this.element=e.nativeElement,this.resizeEnabled){var t=document.createElement("span");t.classList.add("resize-handle"),this.element.appendChild(t)}}return e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},e.prototype.onMouseup=function(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this.subscription.unsubscribe(),this.resize.emit(this.element.clientWidth))},e.prototype.onMousedown=function(e){var t=this,n=e.target.classList.contains("resize-handle"),o=this.element.clientWidth,i=e.screenX;n&&(e.stopPropagation(),this.resizing=!0,this.subscription=s.Observable.fromEvent(document,"mousemove").subscribe(function(e){return t.move(e,o,i)}))},e.prototype.move=function(e,t,n){var o=e.screenX-n,i=t+o,r=!this.minWidth||i>=this.minWidth,s=!this.maxWidth||i<=this.maxWidth;r&&s&&(this.element.style.width=i+"px")},o([r.Input(),i("design:type",Boolean)],e.prototype,"resizeEnabled",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"minWidth",void 0),o([r.Input(),i("design:type",Number)],e.prototype,"maxWidth",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"resize",void 0),o([r.HostListener("document:mouseup",["$event"]),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],e.prototype,"onMouseup",null),o([r.HostListener("mousedown",["$event"]),i("design:type",Function),i("design:paramtypes",[MouseEvent]),i("design:returntype",void 0)],e.prototype,"onMousedown",null),e=o([r.Directive({selector:"[resizeable]",host:{"[class.resizeable]":"resizeEnabled"}}),i("design:paramtypes",[r.ElementRef])],e)}();t.ResizeableDirective=a},"./src/directives/visibility.directive.ts":function(e,t,n){"use strict";var o=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=n(0),s=function(){function e(e,t){this.element=e,this.zone=t,this.isVisible=!1,this.visible=new r.EventEmitter}return e.prototype.ngOnInit=function(){this.runCheck()},e.prototype.ngOnDestroy=function(){clearTimeout(this.timeout)},e.prototype.onVisibilityChange=function(){var e=this;this.zone.run(function(){e.isVisible=!0,e.visible.emit(!0)})},e.prototype.runCheck=function(){var e=this,t=function(){var n=e.element.nativeElement,o=n.offsetHeight,i=n.offsetWidth;o&&i?(clearTimeout(e.timeout),e.onVisibilityChange()):(clearTimeout(e.timeout),e.zone.runOutsideAngular(function(){e.timeout=setTimeout(function(){return t()},50)}))};setTimeout(function(){return t()})},o([r.HostBinding("class.visible"),i("design:type",Boolean)],e.prototype,"isVisible",void 0),o([r.Output(),i("design:type",r.EventEmitter)],e.prototype,"visible",void 0),e=o([r.Directive({selector:"[visibility-observer]"}),i("design:paramtypes",[r.ElementRef,r.NgZone])],e)}();t.VisibilityDirective=s},"./src/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/datatable.module.ts")),o(n("./src/types/index.ts")),o(n("./src/components/index.ts"))},"./src/types/click.type.ts":function(e,t){"use strict";!function(e){e[e.single="single"]="single",e[e.double="double"]="double"}(t.ClickType||(t.ClickType={}));t.ClickType},"./src/types/column-mode.type.ts":function(e,t){"use strict";!function(e){e[e.standard="standard"]="standard",e[e.flex="flex"]="flex",e[e.force="force"]="force"}(t.ColumnMode||(t.ColumnMode={}));t.ColumnMode},"./src/types/index.ts":function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}o(n("./src/types/column-mode.type.ts")),o(n("./src/types/sort.type.ts")),o(n("./src/types/sort-direction.type.ts")),o(n("./src/types/selection.type.ts")),o(n("./src/types/click.type.ts"))},"./src/types/selection.type.ts":function(e,t){"use strict";!function(e){e[e.single="single"]="single",e[e.multi="multi"]="multi",e[e.multiShift="multiShift"]="multiShift",e[e.cell="cell"]="cell",e[e.checkbox="checkbox"]="checkbox"}(t.SelectionType||(t.SelectionType={}));t.SelectionType},"./src/types/sort-direction.type.ts":function(e,t){"use strict";!function(e){e[e.asc="asc"]="asc",e[e.desc="desc"]="desc"}(t.SortDirection||(t.SortDirection={}));t.SortDirection},"./src/types/sort.type.ts":function(e,t){"use strict";!function(e){e[e.single="single"]="single",e[e.multi="multi"]="multi"}(t.SortType||(t.SortType={}));t.SortType},"./src/utils/camel-case.ts":function(e,t){"use strict";function n(e){return e=e.replace(/[^a-zA-Z0-9 ]/g," "),e=e.replace(/([a-z](?=[A-Z]))/g,"$1 "),e=e.replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase(),e=e.replace(/([ 0-9]+)([a-zA-Z])/g,function(e,t,n){return t.trim()+n.toUpperCase()})}function o(e){return e.replace(/([A-Z])/g,function(e){return" "+e}).replace(/^./,function(e){return e.toUpperCase()})}t.camelCase=n,t.deCamelCase=o},"./src/utils/column-helper.ts":function(e,t,n){"use strict";function o(e){if(e)for(var t=0,n=e;t=t;for(var g=0,m=r;gp.maxWidth?(p.width=p.maxWidth,y.push(p)):p.width=v}p.width=Math.max(0,p.width)}f=c(e),h=t-f,a(r,y)}while(h>0&&0!==r.length)}function a(e,t){for(var n=0,o=t;n=0;)t+=this.treeArray[e],e=(e&e+1)-1;return t},e.prototype.queryBetween=function(e,t){return this.query(t)-this.query(e-1)},e.prototype.calcRowIndex=function(e){if(!this.treeArray.length)return 0;for(var t=-1,n=this.treeArray.length,o=Math.pow(2,n.toString(2).length-1),i=o;0!==i;i>>=1){var r=t+i;r=this.treeArray[r]&&(e-=this.treeArray[r],t=r)}return t+1},e}();t.RowHeightCache=n},"./src/utils/scrollbar-width.ts":function(e,t){"use strict";function n(){var e=document.createElement("div");e.style.visibility="hidden",e.style.width="100px",e.style.msOverflowStyle="scrollbar",document.body.appendChild(e);var t=e.offsetWidth;e.style.overflow="scroll";var n=document.createElement("div");n.style.width="100%",e.appendChild(n);var o=n.offsetWidth;return e.parentNode.removeChild(e),t-o}t.getScrollBarWidth=n,t.scrollbarWidth=n()},"./src/utils/selection.ts":function(e,t){"use strict";function n(e,t,n){var o=n(t,e);return o>-1?e.splice(o,1):e.push(t),e}function o(e,t,n,o,i){for(var r=n=o&&s<=n,p=s<=o&&s>=n,u={start:0,end:0};if(u=r?{start:n,end:o-n}:{start:o,end:n+1},r&&p||!r&&l){var d=i(c,e);if(r&&d>-1){e.splice(d,1);continue}s>=u.start&&st.toLowerCase())return 1}else{if(parseFloat(e)parseFloat(t))return 1}return 0}function r(e,t,n){if(!(e&&n&&n.length&&t))return e;var o=e.slice(),r=t.reduce(function(e,t){return t.comparator&&"function"==typeof t.comparator&&(e[t.prop]=t.comparator),e},{});return o.sort(function(e,t){for(var o=0,c=n;o