diff --git a/package.json b/package.json
index 4a53a7c29..edb4fba52 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@swimlane/ngx-datatable",
- "version": "4.0.0",
+ "version": "4.1.0",
"description": "ngx-datatable is a Angular2+ table grid component for presenting large and complex data.",
"main": "release/index.js",
"typings": "release/index.d.ts",
diff --git a/release/components/body/body-cell.component.ngsummary.json b/release/components/body/body-cell.component.ngsummary.json
index b4e698819..56be9fd1b 100644
--- a/release/components/body/body-cell.component.ngsummary.json
+++ b/release/components/body/body-cell.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableBodyCellComponent","path":"/Users/austin/dev/angular2-data-table/src/components/body/body-cell.component.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"ElementRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}}}}],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-body-cell","inputs":{"row":"row","column":"column","rowHeight":"rowHeight","isSelected":"isSelected","sorts":"sorts"},"outputs":{"activate":"activate"},"hostListeners":{"focus":"onFocus()","blur":"onBlur()","click":"onClick($event)","dblclick":"onDblClick($event)","keydown":"onKeyDown($event)"},"hostProperties":{"class.active":"isFocused","class.sort-active":"isSortActive","class.sort-asc":"isSortAscending","class.sort-desc":"isSortDescending","style.width.px":"width","style.height":"height"},"hostAttributes":{"class":"datatable-body-cell"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":[],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}}],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-body-cell","inputs":{"row":"row","column":"column","rowHeight":"rowHeight","isSelected":"isSelected","sorts":"sorts"},"outputs":{"activate":"activate"},"hostListeners":{"focus":"onFocus()","blur":"onBlur()","click":"onClick($event)","dblclick":"onDblClick($event)","keydown":"onKeyDown($event)"},"hostProperties":{"class.active":"isFocused","class.sort-active":"isSortActive","class.sort-asc":"isSortAscending","class.sort-desc":"isSortDescending","style.width.px":"width","style.height":"height"},"hostAttributes":{"class":"datatable-body-cell"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"animations":[],"ngContentSelectors":[],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DataTableBodyCellComponent","filePath":"C:/dev/angular2-data-table/src/components/body/body-cell.component.d.ts"},{"__symbol":1,"name":"ElementRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/body/body-row-wrapper.component.ngsummary.json b/release/components/body/body-row-wrapper.component.ngsummary.json
index a64968e7e..d22162b67 100644
--- a/release/components/body/body-row-wrapper.component.ngsummary.json
+++ b/release/components/body/body-row-wrapper.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableRowWrapperComponent","path":"/Users/austin/dev/angular2-data-table/src/components/body/body-row-wrapper.component.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-row-wrapper","inputs":{"rowDetailTemplate":"rowDetailTemplate","detailRowHeight":"detailRowHeight","expanded":"expanded","row":"row"},"outputs":{"rowContextmenu":"rowContextmenu"},"hostListeners":{"contextmenu":"onContextmenu($event)"},"hostProperties":{},"hostAttributes":{"class":"datatable-row-wrapper"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":["*"],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-row-wrapper","inputs":{"rowDetailTemplate":"rowDetailTemplate","detailRowHeight":"detailRowHeight","expanded":"expanded","row":"row"},"outputs":{"rowContextmenu":"rowContextmenu"},"hostListeners":{"contextmenu":"onContextmenu($event)"},"hostProperties":{},"hostAttributes":{"class":"datatable-row-wrapper"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"animations":[],"ngContentSelectors":["*"],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DataTableRowWrapperComponent","filePath":"C:/dev/angular2-data-table/src/components/body/body-row-wrapper.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/body/body-row.component.d.ts b/release/components/body/body-row.component.d.ts
index 94a0b8099..daa6c55d7 100644
--- a/release/components/body/body-row.component.d.ts
+++ b/release/components/body/body-row.component.d.ts
@@ -16,6 +16,7 @@ export declare class DataTableBodyRowComponent {
_innerWidth: number;
constructor(element: ElementRef);
trackByGroups(index: number, colGroup: any): any;
+ columnTrackingFn(index: number, column: any): any;
stylesByGroup(group: string): {
width: string;
};
diff --git a/release/components/body/body-row.component.js b/release/components/body/body-row.component.js
index 434fdd9c3..4a3ee0446 100644
--- a/release/components/body/body-row.component.js
+++ b/release/components/body/body-row.component.js
@@ -45,6 +45,9 @@ var DataTableBodyRowComponent = (function () {
DataTableBodyRowComponent.prototype.trackByGroups = function (index, colGroup) {
return colGroup.type;
};
+ DataTableBodyRowComponent.prototype.columnTrackingFn = function (index, column) {
+ return column.$$id;
+ };
DataTableBodyRowComponent.prototype.stylesByGroup = function (group) {
var widths = this.columnGroupWidths;
var offsetX = this.offsetX;
@@ -96,7 +99,7 @@ var DataTableBodyRowComponent = (function () {
DataTableBodyRowComponent.decorators = [
{ type: core_1.Component, args: [{
selector: 'datatable-body-row',
- template: "\n
\n \n \n
\n ",
+ template: "\n \n \n \n
\n ",
host: {
class: 'datatable-body-row'
}
diff --git a/release/components/body/body-row.component.js.map b/release/components/body/body-row.component.js.map
index 15bddfc74..fd8448ed0 100644
--- a/release/components/body/body-row.component.js.map
+++ b/release/components/body/body-row.component.js.map
@@ -1 +1 @@
-{"version":3,"file":"body-row.component.js","sourceRoot":"","sources":["../../../src/components/body/body-row.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"body-row.component.js","sourceRoot":"","sources":["../../../src/components/body/body-row.component.ts"],"names":[],"mappings":";AAAA,qBAEO,eAAe,CAAC,CAAA;AAEvB,sBAGO,aAAa,CAAC,CAAA;AAGrB;IA+CE,mCAAY,OAAmB;QAR9B,aAAQ,GAAsB,IAAI,mBAAY,EAAE,CAAC;QAShD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IACvC,CAAC;IA/CA,sBAAI,8CAAO;aAKZ;YACE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAPA,UAAY,GAAU;YACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;;;OAAA;IAMA,sBAAI,iDAAU;aAKf;YACE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;aAPA,UAAe,GAAW;YACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;;;OAAA;IAgBD,sBAAI,gDAAS;aAAb;YACE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAGD,sBAAI,+CAAQ;aAAZ;YACE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;;;OAAA;IAcD,iDAAa,GAAb,UAAc,KAAa,EAAE,QAAa;QACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,oDAAgB,GAAhB,UAAiB,KAAa,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,iDAAa,GAAb,UAAc,KAAa;QACzB,IAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACtC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,IAAI,MAAM,GAAG;YACX,KAAK,EAAK,MAAM,CAAC,KAAK,CAAC,OAAI;SAC5B,CAAC;QAEF,EAAE,CAAA,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC;YACpB,mBAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAA,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,IAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;YAC3C,IAAM,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;YACvC,IAAM,MAAM,GAAG,CAAC,UAAU,GAAG,sBAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,mBAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED,8CAAU,GAAV,UAAW,KAAU,EAAE,KAAa;QAClC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAGD,6CAAS,GAAT,UAAU,KAAoB;QAC5B,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC;QAElD,IAAM,QAAQ,GACZ,OAAO,KAAK,YAAI,CAAC,MAAM;YACvB,OAAO,KAAK,YAAI,CAAC,IAAI;YACrB,OAAO,KAAK,YAAI,CAAC,EAAE;YACnB,OAAO,KAAK,YAAI,CAAC,IAAI;YACrB,OAAO,KAAK,YAAI,CAAC,KAAK,CAAC;QAEzB,EAAE,CAAA,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC;YAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YAExB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,YAAK;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sDAAkB,GAAlB,UAAmB,GAAyB;QAAzB,mBAAyB,GAAzB,MAAa,IAAI,CAAC,OAAO;QAC1C,IAAM,SAAS,GAAG,oBAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,uBAAe,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,yBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;IAEI,oCAAU,GAA0B;QAC3C,EAAE,IAAI,EAAE,gBAAS,EAAE,IAAI,EAAE,CAAC;oBACxB,QAAQ,EAAE,oBAAoB;oBAC9B,QAAQ,EAAE,ukBAeT;oBACD,IAAI,EAAE;wBACJ,KAAK,EAAE,oBAAoB;qBAC5B;iBACF,EAAG,EAAE;KACL,CAAC;IACF,kBAAkB;IACX,wCAAc,GAAmE,cAAM,OAAA;QAC9F,EAAC,IAAI,EAAE,iBAAU,GAAG;KACnB,EAF6F,CAE7F,CAAC;IACK,wCAAc,GAA2C;QAChE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAC7B,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAChC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QACzB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAC7B,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAW,EAAE,IAAI,EAAE,CAAC,iBAAiB,EAAG,EAAE,EAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAClF,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAW,EAAE,IAAI,EAAE,CAAC,cAAc,EAAG,EAAE,EAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAChF,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAW,EAAE,IAAI,EAAE,CAAC,0BAA0B,EAAG,EAAE,EAAE;QAC3E,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAW,EAAE,IAAI,EAAE,CAAC,yBAAyB,EAAG,EAAE,EAAE;QACzE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,aAAM,EAAE,EAAE;QAC/B,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAY,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAG,EAAE,EAAE;KACtE,CAAC;IACF,gCAAC;AAAD,CAAC,AA7JD,IA6JC;AA7JY,iCAAyB,4BA6JrC,CAAA"}
\ No newline at end of file
diff --git a/release/components/body/body-row.component.metadata.json b/release/components/body/body-row.component.metadata.json
index 3ff1df259..bd03d5474 100644
--- a/release/components/body/body-row.component.metadata.json
+++ b/release/components/body/body-row.component.metadata.json
@@ -1 +1 @@
-[{"__symbolic":"module","version":3,"metadata":{"DataTableBodyRowComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-body-row","template":"\n \n \n \n
\n ","host":{"class":"datatable-body-row"}}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"innerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offsetX":[{"__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":"HostBinding"},"arguments":["style.height.px"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.active"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isEvenRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.datatable-row-even"]}]}],"isOddRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.datatable-row-odd"]}]}],"activate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"trackByGroups":[{"__symbolic":"method"}],"stylesByGroup":[{"__symbolic":"method"}],"onActivate":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["keydown",["$event"]]}]}],"recalculateColumns":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DataTableBodyRowComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-body-row","template":"\n \n \n \n
\n ","host":{"class":"datatable-body-row"}}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"innerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offsetX":[{"__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":"HostBinding"},"arguments":["style.height.px"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.active"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isEvenRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.datatable-row-even"]}]}],"isOddRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.datatable-row-odd"]}]}],"activate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"trackByGroups":[{"__symbolic":"method"}],"stylesByGroup":[{"__symbolic":"method"}],"onActivate":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["keydown",["$event"]]}]}],"recalculateColumns":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file
+[{"__symbolic":"module","version":3,"metadata":{"DataTableBodyRowComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-body-row","template":"\n \n \n \n
\n ","host":{"class":"datatable-body-row"}}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"innerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offsetX":[{"__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":"HostBinding"},"arguments":["style.height.px"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.active"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isEvenRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.datatable-row-even"]}]}],"isOddRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.datatable-row-odd"]}]}],"activate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"trackByGroups":[{"__symbolic":"method"}],"columnTrackingFn":[{"__symbolic":"method"}],"stylesByGroup":[{"__symbolic":"method"}],"onActivate":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["keydown",["$event"]]}]}],"recalculateColumns":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DataTableBodyRowComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-body-row","template":"\n \n \n \n
\n ","host":{"class":"datatable-body-row"}}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"innerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offsetX":[{"__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":"HostBinding"},"arguments":["style.height.px"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.active"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isEvenRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.datatable-row-even"]}]}],"isOddRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.datatable-row-odd"]}]}],"activate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"trackByGroups":[{"__symbolic":"method"}],"columnTrackingFn":[{"__symbolic":"method"}],"stylesByGroup":[{"__symbolic":"method"}],"onActivate":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["keydown",["$event"]]}]}],"recalculateColumns":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file
diff --git a/release/components/body/body-row.component.ngfactory.ts b/release/components/body/body-row.component.ngfactory.ts
index d4dce6373..f9d746068 100644
--- a/release/components/body/body-row.component.ngfactory.ts
+++ b/release/components/body/body-row.component.ngfactory.ts
@@ -276,7 +276,7 @@ class View_DataTableBodyRowComponent1 extends import2.AppView {
this._NgStyle_0_3.ngDoCheck(this,this._el_0,throwOnChange);
const currVal_2_0_0:any = this.context.$implicit.columns;
this._NgFor_2_6.check_ngForOf(currVal_2_0_0,throwOnChange,false);
- const currVal_2_0_1:any = ((this.parentView.context.column == null)? (null as any): this.parentView.context.column.$$id);
+ const currVal_2_0_1:any = this.parentView.context.columnTrackingFn;
this._NgFor_2_6.check_ngForTrackBy(currVal_2_0_1,throwOnChange,false);
this._NgFor_2_6.ngDoCheck(this,this._anchor_2,throwOnChange);
this._vc_2.detectChangesInNestedViews(throwOnChange);
diff --git a/release/components/body/body-row.component.ngsummary.json b/release/components/body/body-row.component.ngsummary.json
index 5d2f4d7af..b11255a75 100644
--- a/release/components/body/body-row.component.ngsummary.json
+++ b/release/components/body/body-row.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableBodyRowComponent","path":"/Users/austin/dev/angular2-data-table/src/components/body/body-row.component.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"ElementRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}}}}],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-body-row","inputs":{"columns":"columns","innerWidth":"innerWidth","row":"row","offsetX":"offsetX","rowHeight":"rowHeight","isSelected":"isSelected"},"outputs":{"activate":"activate"},"hostListeners":{"keydown":"onKeyDown($event)"},"hostProperties":{"style.height.px":"rowHeight","class.active":"isSelected","class.datatable-row-even":"isEvenRow","class.datatable-row-odd":"isOddRow"},"hostAttributes":{"class":"datatable-body-row"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":[],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}}],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-body-row","inputs":{"columns":"columns","innerWidth":"innerWidth","row":"row","offsetX":"offsetX","rowHeight":"rowHeight","isSelected":"isSelected"},"outputs":{"activate":"activate"},"hostListeners":{"keydown":"onKeyDown($event)"},"hostProperties":{"style.height.px":"rowHeight","class.active":"isSelected","class.datatable-row-even":"isEvenRow","class.datatable-row-odd":"isOddRow"},"hostAttributes":{"class":"datatable-body-row"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"animations":[],"ngContentSelectors":[],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DataTableBodyRowComponent","filePath":"C:/dev/angular2-data-table/src/components/body/body-row.component.d.ts"},{"__symbol":1,"name":"ElementRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/body/body.component.ngsummary.json b/release/components/body/body.component.ngsummary.json
index f15da2ae1..90ddb2cb9 100644
--- a/release/components/body/body.component.ngsummary.json
+++ b/release/components/body/body.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableBodyComponent","path":"/Users/austin/dev/angular2-data-table/src/components/body/body.component.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-body","inputs":{"scrollbarV":"scrollbarV","scrollbarH":"scrollbarH","loadingIndicator":"loadingIndicator","rowHeight":"rowHeight","offsetX":"offsetX","detailRowHeight":"detailRowHeight","emptyMessage":"emptyMessage","selectionType":"selectionType","selected":"selected","rowIdentity":"rowIdentity","rowDetailTemplate":"rowDetailTemplate","selectCheck":"selectCheck","trackByProp":"trackByProp","pageSize":"pageSize","rows":"rows","columns":"columns","offset":"offset","rowCount":"rowCount","innerWidth":"innerWidth","bodyHeight":"bodyHeight"},"outputs":{"scroll":"scroll","page":"page","activate":"activate","select":"select","detailToggle":"detailToggle","rowContextmenu":"rowContextmenu"},"hostListeners":{},"hostProperties":{"style.width":"bodyWidth","style.height":"bodyHeight"},"hostAttributes":{"class":"datatable-body"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":[],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-body","inputs":{"scrollbarV":"scrollbarV","scrollbarH":"scrollbarH","loadingIndicator":"loadingIndicator","rowHeight":"rowHeight","offsetX":"offsetX","detailRowHeight":"detailRowHeight","emptyMessage":"emptyMessage","selectionType":"selectionType","selected":"selected","rowIdentity":"rowIdentity","rowDetailTemplate":"rowDetailTemplate","selectCheck":"selectCheck","trackByProp":"trackByProp","pageSize":"pageSize","rows":"rows","columns":"columns","offset":"offset","rowCount":"rowCount","innerWidth":"innerWidth","bodyHeight":"bodyHeight"},"outputs":{"scroll":"scroll","page":"page","activate":"activate","select":"select","detailToggle":"detailToggle","rowContextmenu":"rowContextmenu"},"hostListeners":{},"hostProperties":{"style.width":"bodyWidth","style.height":"bodyHeight"},"hostAttributes":{"class":"datatable-body"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"animations":[],"ngContentSelectors":[],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DataTableBodyComponent","filePath":"C:/dev/angular2-data-table/src/components/body/body.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/body/index.ngsummary.json b/release/components/body/index.ngsummary.json
new file mode 100644
index 000000000..60a8bd848
--- /dev/null
+++ b/release/components/body/index.ngsummary.json
@@ -0,0 +1 @@
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbol":1}},{"symbol":{"__symbol":2},"metadata":{"__symbol":3}},{"symbol":{"__symbol":4},"metadata":{"__symbol":5}},{"symbol":{"__symbol":6},"metadata":{"__symbol":7}},{"symbol":{"__symbol":8},"metadata":{"__symbol":9}},{"symbol":{"__symbol":10},"metadata":{"__symbol":11}},{"symbol":{"__symbol":12},"metadata":{"__symbol":13}}],"symbols":[{"__symbol":0,"name":"DataTableBodyComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":1,"name":"DataTableBodyComponent","filePath":"C:/dev/angular2-data-table/src/components/body/body.component.d.ts"},{"__symbol":2,"name":"DataTableBodyCellComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":3,"name":"DataTableBodyCellComponent","filePath":"C:/dev/angular2-data-table/src/components/body/body-cell.component.d.ts"},{"__symbol":4,"name":"DataTableBodyRowComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":5,"name":"DataTableBodyRowComponent","filePath":"C:/dev/angular2-data-table/src/components/body/body-row.component.d.ts"},{"__symbol":6,"name":"ProgressBarComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":7,"name":"ProgressBarComponent","filePath":"C:/dev/angular2-data-table/src/components/body/progress-bar.component.d.ts"},{"__symbol":8,"name":"ScrollerComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":9,"name":"ScrollerComponent","filePath":"C:/dev/angular2-data-table/src/components/body/scroller.component.d.ts"},{"__symbol":10,"name":"DataTableRowWrapperComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":11,"name":"DataTableRowWrapperComponent","filePath":"C:/dev/angular2-data-table/src/components/body/body-row-wrapper.component.d.ts"},{"__symbol":12,"name":"DataTableSelectionComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":13,"name":"DataTableSelectionComponent","filePath":"C:/dev/angular2-data-table/src/components/body/selection.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/body/progress-bar.component.ngsummary.json b/release/components/body/progress-bar.component.ngsummary.json
index b9e700c4b..a7698daaf 100644
--- a/release/components/body/progress-bar.component.ngsummary.json
+++ b/release/components/body/progress-bar.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"ProgressBarComponent","path":"/Users/austin/dev/angular2-data-table/src/components/body/progress-bar.component.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-progress","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":0,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":[],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-progress","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":0,"template":{"animations":[],"ngContentSelectors":[],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"ProgressBarComponent","filePath":"C:/dev/angular2-data-table/src/components/body/progress-bar.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/body/scroller.component.ngsummary.json b/release/components/body/scroller.component.ngsummary.json
index 7da0e6c45..1442e37a2 100644
--- a/release/components/body/scroller.component.ngsummary.json
+++ b/release/components/body/scroller.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"ScrollerComponent","path":"/Users/austin/dev/angular2-data-table/src/components/body/scroller.component.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"ElementRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"Renderer","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/render/api.d.ts"}}}}],"lifecycleHooks":[0,1]},"isComponent":true,"selector":"datatable-scroller","inputs":{"scrollbarV":"scrollbarV","scrollbarH":"scrollbarH","scrollHeight":"scrollHeight","scrollWidth":"scrollWidth"},"outputs":{"scroll":"scroll"},"hostListeners":{},"hostProperties":{"style.height.px":"scrollHeight","style.width.px":"scrollWidth"},"hostAttributes":{"class":"datatable-scroll"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":["*"],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2}}}}],"lifecycleHooks":[0,1]},"isComponent":true,"selector":"datatable-scroller","inputs":{"scrollbarV":"scrollbarV","scrollbarH":"scrollbarH","scrollHeight":"scrollHeight","scrollWidth":"scrollWidth"},"outputs":{"scroll":"scroll"},"hostListeners":{},"hostProperties":{"style.height.px":"scrollHeight","style.width.px":"scrollWidth"},"hostAttributes":{"class":"datatable-scroll"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"animations":[],"ngContentSelectors":["*"],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"ScrollerComponent","filePath":"C:/dev/angular2-data-table/src/components/body/scroller.component.d.ts"},{"__symbol":1,"name":"ElementRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"},{"__symbol":2,"name":"Renderer","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/render/api.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/body/selection.component.js b/release/components/body/selection.component.js
index 8afb200a9..2b8a60e72 100644
--- a/release/components/body/selection.component.js
+++ b/release/components/body/selection.component.js
@@ -12,24 +12,23 @@ var DataTableSelectionComponent = (function () {
return;
var chkbox = this.selectionType === types_1.SelectionType.checkbox;
var multi = this.selectionType === types_1.SelectionType.multi;
+ var multiClick = this.selectionType == types_1.SelectionType.multiClick;
var selected = [];
- if (multi || chkbox) {
+ if (multi || chkbox || multiClick) {
if (event.shiftKey) {
- var newSelected = this.selected.slice();
- selected = utils_1.selectRowsBetween(newSelected, this.rows, index, this.prevIndex, this.getRowSelectedIdx.bind(this));
+ selected = utils_1.selectRowsBetween(this.selected.slice(), this.rows, index, this.prevIndex, this.getRowSelectedIdx.bind(this));
}
- else if (!event.shiftKey) {
- selected.push(row);
+ else if (event.ctrlKey || multiClick || chkbox) {
+ selected = utils_1.selectRows(this.selected.slice(), row, this.getRowSelectedIdx.bind(this));
}
else {
- var newSelected = this.selected.slice();
- selected = utils_1.selectRows(newSelected, row, this.getRowSelectedIdx.bind(this));
+ selected = utils_1.selectRows([], row, this.getRowSelectedIdx.bind(this));
}
}
else {
- selected.push(row);
+ selected = utils_1.selectRows([], row, this.getRowSelectedIdx.bind(this));
}
- if (this.selectCheck) {
+ if (typeof this.selectCheck === 'function') {
selected = selected.filter(this.selectCheck.bind(this));
}
this.selected.splice(0, this.selected.length);
diff --git a/release/components/body/selection.component.js.map b/release/components/body/selection.component.js.map
index ca3e354d9..a3f31a482 100644
--- a/release/components/body/selection.component.js.map
+++ b/release/components/body/selection.component.js.map
@@ -1 +1 @@
-{"version":3,"file":"selection.component.js","sourceRoot":"","sources":["../../../src/components/body/selection.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"selection.component.js","sourceRoot":"","sources":["../../../src/components/body/selection.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/release/components/body/selection.component.ngsummary.json b/release/components/body/selection.component.ngsummary.json
index 1bd0f9810..c06b88249 100644
--- a/release/components/body/selection.component.ngsummary.json
+++ b/release/components/body/selection.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableSelectionComponent","path":"/Users/austin/dev/angular2-data-table/src/components/body/selection.component.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-selection","inputs":{"rows":"rows","selected":"selected","selectEnabled":"selectEnabled","selectionType":"selectionType","rowIdentity":"rowIdentity","selectCheck":"selectCheck"},"outputs":{"activate":"activate","select":"select"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":["*"],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-selection","inputs":{"rows":"rows","selected":"selected","selectEnabled":"selectEnabled","selectionType":"selectionType","rowIdentity":"rowIdentity","selectCheck":"selectCheck"},"outputs":{"activate":"activate","select":"select"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"animations":[],"ngContentSelectors":["*"],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DataTableSelectionComponent","filePath":"C:/dev/angular2-data-table/src/components/body/selection.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/columns/column-cell.directive.ngsummary.json b/release/components/columns/column-cell.directive.ngsummary.json
index d9b8bd726..658feed55 100644
--- a/release/components/columns/column-cell.directive.ngsummary.json
+++ b/release/components/columns/column-cell.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableColumnCellDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column-cell.directive.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"TemplateRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}}}}],"lifecycleHooks":[]},"isComponent":false,"selector":"[ngx-datatable-cell-template]","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}}],"lifecycleHooks":[]},"isComponent":false,"selector":"[ngx-datatable-cell-template]","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"DataTableColumnCellDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column-cell.directive.d.ts"},{"__symbol":1,"name":"TemplateRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/columns/column-header.directive.ngsummary.json b/release/components/columns/column-header.directive.ngsummary.json
index d32137ddb..6d6f31cc4 100644
--- a/release/components/columns/column-header.directive.ngsummary.json
+++ b/release/components/columns/column-header.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableColumnHeaderDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column-header.directive.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"TemplateRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}}}}],"lifecycleHooks":[]},"isComponent":false,"selector":"[ngx-datatable-header-template]","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}}],"lifecycleHooks":[]},"isComponent":false,"selector":"[ngx-datatable-header-template]","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"DataTableColumnHeaderDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column-header.directive.d.ts"},{"__symbol":1,"name":"TemplateRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/columns/column.directive.ngsummary.json b/release/components/columns/column.directive.ngsummary.json
index 3f3b2cea7..7f686412c 100644
--- a/release/components/columns/column.directive.ngsummary.json
+++ b/release/components/columns/column.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableColumnDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column.directive.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":false,"selector":"ngx-datatable-column","inputs":{"name":"name","prop":"prop","frozenLeft":"frozenLeft","frozenRight":"frozenRight","flexGrow":"flexGrow","resizeable":"resizeable","comparator":"comparator","pipe":"pipe","sortable":"sortable","draggable":"draggable","canAutoResize":"canAutoResize","minWidth":"minWidth","width":"width","maxWidth":"maxWidth","checkboxable":"checkboxable","headerCheckboxable":"headerCheckboxable","cellTemplate":"cellTemplate","headerTemplate":"headerTemplate"},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[{"selectors":[{"identifier":{"reference":{"__symbolic__":"symbol","name":"DataTableColumnCellDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column-cell.directive.d.ts"}}}],"first":true,"descendants":true,"propertyName":"cellTemplate","read":{"identifier":{"reference":{"__symbolic__":"symbol","name":"TemplateRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}}}},{"selectors":[{"identifier":{"reference":{"__symbolic__":"symbol","name":"DataTableColumnHeaderDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column-header.directive.d.ts"}}}],"first":true,"descendants":true,"propertyName":"headerTemplate","read":{"identifier":{"reference":{"__symbolic__":"symbol","name":"TemplateRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}}}}],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":false,"selector":"ngx-datatable-column","inputs":{"name":"name","prop":"prop","frozenLeft":"frozenLeft","frozenRight":"frozenRight","flexGrow":"flexGrow","resizeable":"resizeable","comparator":"comparator","pipe":"pipe","sortable":"sortable","draggable":"draggable","canAutoResize":"canAutoResize","minWidth":"minWidth","width":"width","maxWidth":"maxWidth","checkboxable":"checkboxable","headerCheckboxable":"headerCheckboxable","cellTemplate":"cellTemplate","headerTemplate":"headerTemplate"},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[{"selectors":[{"identifier":{"reference":{"__symbol":1}}}],"first":true,"descendants":true,"propertyName":"cellTemplate","read":{"identifier":{"reference":{"__symbol":2}}}},{"selectors":[{"identifier":{"reference":{"__symbol":3}}}],"first":true,"descendants":true,"propertyName":"headerTemplate","read":{"identifier":{"reference":{"__symbol":2}}}}],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"DataTableColumnDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column.directive.d.ts"},{"__symbol":1,"name":"DataTableColumnCellDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column-cell.directive.d.ts"},{"__symbol":2,"name":"TemplateRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"},{"__symbol":3,"name":"DataTableColumnHeaderDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column-header.directive.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/columns/index.ngsummary.json b/release/components/columns/index.ngsummary.json
new file mode 100644
index 000000000..fdcbc3ae0
--- /dev/null
+++ b/release/components/columns/index.ngsummary.json
@@ -0,0 +1 @@
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbol":1}},{"symbol":{"__symbol":2},"metadata":{"__symbol":3}},{"symbol":{"__symbol":4},"metadata":{"__symbol":5}}],"symbols":[{"__symbol":0,"name":"DataTableColumnDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/index.d.ts"},{"__symbol":1,"name":"DataTableColumnDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column.directive.d.ts"},{"__symbol":2,"name":"DataTableColumnHeaderDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/index.d.ts"},{"__symbol":3,"name":"DataTableColumnHeaderDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column-header.directive.d.ts"},{"__symbol":4,"name":"DataTableColumnCellDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/index.d.ts"},{"__symbol":5,"name":"DataTableColumnCellDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column-cell.directive.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/datatable.component.d.ts b/release/components/datatable.component.d.ts
index 8f24d5818..6f6d9099c 100644
--- a/release/components/datatable.component.d.ts
+++ b/release/components/datatable.component.d.ts
@@ -153,7 +153,8 @@ export declare class DatatableComponent implements OnInit, AfterViewInit, DoChec
*
* - `single`
* - `multi`
- * - `chkbox`.
+ * - `chkbox`
+ * - `multiClick`
*
* For no selection pass a `falsey`.
* Default value: `undefined`
@@ -375,6 +376,14 @@ export declare class DatatableComponent implements OnInit, AfterViewInit, DoChec
* @memberOf DatatableComponent
*/
readonly isMultiSelection: boolean;
+ /**
+ * CSS class added to root element if mulit click select
+ *
+ * @readonly
+ * @type {boolean}
+ * @memberOf DatatableComponent
+ */
+ readonly isMultiClickSelection: boolean;
/**
* Returns the column templates.
*
diff --git a/release/components/datatable.component.js b/release/components/datatable.component.js
index 8ffeb70cc..ada280399 100644
--- a/release/components/datatable.component.js
+++ b/release/components/datatable.component.js
@@ -460,6 +460,20 @@ var DatatableComponent = (function () {
enumerable: true,
configurable: true
});
+ Object.defineProperty(DatatableComponent.prototype, "isMultiClickSelection", {
+ /**
+ * CSS class added to root element if mulit click select
+ *
+ * @readonly
+ * @type {boolean}
+ * @memberOf DatatableComponent
+ */
+ get: function () {
+ return this.selectionType === types_1.SelectionType.multiClick;
+ },
+ enumerable: true,
+ configurable: true
+ });
Object.defineProperty(DatatableComponent.prototype, "columnTemplates", {
/**
* Returns the column templates.
@@ -863,7 +877,7 @@ var DatatableComponent = (function () {
DatatableComponent.decorators = [
{ type: core_1.Component, args: [{
selector: 'ngx-datatable',
- template: "\n \n \n \n \n \n \n \n
\n ",
+ template: "\n \n \n \n \n \n \n \n
\n ",
host: {
class: 'datatable'
}
@@ -919,6 +933,7 @@ var DatatableComponent = (function () {
'isCellSelection': [{ type: core_1.HostBinding, args: ['class.cell-selection',] },],
'isSingleSelection': [{ type: core_1.HostBinding, args: ['class.single-selection',] },],
'isMultiSelection': [{ type: core_1.HostBinding, args: ['class.multi-selection',] },],
+ 'isMultiClickSelection': [{ type: core_1.HostBinding, args: ['class.multi-click-selection',] },],
'columnTemplates': [{ type: core_1.ContentChildren, args: [columns_1.DataTableColumnDirective,] },],
'rowDetailTemplateChild': [{ type: core_1.ContentChild, args: [row_detail_1.DatatableRowDetailDirective,] },],
'bodyComponent': [{ type: core_1.ViewChild, args: [body_1.DataTableBodyComponent,] },],
diff --git a/release/components/datatable.component.js.map b/release/components/datatable.component.js.map
index 7e01570e0..93f0f299d 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 bd7027d50..8a1ef8cb9 100644
--- a/release/components/datatable.component.metadata.json
+++ b/release/components/datatable.component.metadata.json
@@ -1 +1 @@
-[{"__symbolic":"module","version":3,"metadata":{"DatatableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ngx-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"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DatatableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ngx-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
+[{"__symbolic":"module","version":3,"metadata":{"DatatableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ngx-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"]}]}],"isMultiClickSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.multi-click-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"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DatatableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ngx-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"]}]}],"isMultiClickSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class.multi-click-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 bceea771c..ba5165c93 100644
--- a/release/components/datatable.component.ngfactory.ts
+++ b/release/components/datatable.component.ngfactory.ts
@@ -69,6 +69,7 @@ export class Wrapper_DatatableComponent {
/*private*/ _expr_32:any;
/*private*/ _expr_33:any;
/*private*/ _expr_34:any;
+ /*private*/ _expr_35:any;
subscription0:any;
subscription1:any;
subscription2:any;
@@ -116,6 +117,7 @@ export class Wrapper_DatatableComponent {
this._expr_32 = import1.UNINITIALIZED;
this._expr_33 = import1.UNINITIALIZED;
this._expr_34 = import1.UNINITIALIZED;
+ this._expr_35 = import1.UNINITIALIZED;
}
ngOnDetach(view:import2.AppView,componentView:import2.AppView,el:any):void {
}
@@ -367,6 +369,11 @@ export class Wrapper_DatatableComponent {
view.renderer.setElementClass(el,'multi-selection',currVal_34);
this._expr_34 = currVal_34;
}
+ const currVal_35:any = this.context.isMultiClickSelection;
+ if (import3.checkBinding(throwOnChange,this._expr_35,currVal_35)) {
+ view.renderer.setElementClass(el,'multi-click-selection',currVal_35);
+ this._expr_35 = currVal_35;
+ }
}
handleEvent(eventName:string,$event:any):boolean {
var result:boolean = true;
@@ -680,10 +687,12 @@ class View_DatatableComponent1 extends import2.AppView {
this._DataTableHeaderComponent_0_3.check_allRowsSelected(currVal_0_0_7,throwOnChange,false);
const currVal_0_0_8:any = this.parentView.context.selectionType;
this._DataTableHeaderComponent_0_3.check_selectionType(currVal_0_0_8,throwOnChange,false);
- const currVal_0_0_9:any = this.parentView.context.headerHeight;
- this._DataTableHeaderComponent_0_3.check_headerHeight(currVal_0_0_9,throwOnChange,false);
- const currVal_0_0_10:any = this.parentView.context.columns;
- this._DataTableHeaderComponent_0_3.check_columns(currVal_0_0_10,throwOnChange,false);
+ const currVal_0_0_9:any = this.parentView.context.reorderable;
+ this._DataTableHeaderComponent_0_3.check_reorderable(currVal_0_0_9,throwOnChange,false);
+ const currVal_0_0_10:any = this.parentView.context.headerHeight;
+ this._DataTableHeaderComponent_0_3.check_headerHeight(currVal_0_0_10,throwOnChange,false);
+ const currVal_0_0_11:any = this.parentView.context.columns;
+ this._DataTableHeaderComponent_0_3.check_columns(currVal_0_0_11,throwOnChange,false);
this._DataTableHeaderComponent_0_3.ngDoCheck(this,this._el_0,throwOnChange);
this._DataTableHeaderComponent_0_3.checkHost(this,this.compView_0,this._el_0,throwOnChange);
this.compView_0.internalDetectChanges(throwOnChange);
diff --git a/release/components/datatable.component.ngsummary.json b/release/components/datatable.component.ngsummary.json
index 483ddcd91..78e1e9f45 100644
--- a/release/components/datatable.component.ngsummary.json
+++ b/release/components/datatable.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DatatableComponent","path":"/Users/austin/dev/angular2-data-table/src/components/datatable.component.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"ElementRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"KeyValueDiffers","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/change_detection/differs/keyvalue_differs.d.ts"}}}}],"lifecycleHooks":[0,2,6]},"isComponent":true,"selector":"ngx-datatable","inputs":{"rows":"rows","columns":"columns","selected":"selected","scrollbarV":"scrollbarV","scrollbarH":"scrollbarH","rowHeight":"rowHeight","detailRowHeight":"detailRowHeight","columnMode":"columnMode","headerHeight":"headerHeight","footerHeight":"footerHeight","externalPaging":"externalPaging","externalSorting":"externalSorting","limit":"limit","count":"count","offset":"offset","loadingIndicator":"loadingIndicator","selectionType":"selectionType","reorderable":"reorderable","sortType":"sortType","sorts":"sorts","rowDetailTemplate":"rowDetailTemplate","cssClasses":"cssClasses","messages":"messages","rowIdentity":"rowIdentity","selectCheck":"selectCheck","trackByProp":"trackByProp"},"outputs":{"scroll":"scroll","activate":"activate","select":"select","sort":"sort","page":"page","detailToggle":"detailToggle","reorder":"reorder","resize":"resize","rowContextmenu":"rowContextmenu"},"hostListeners":{"window:resize":"onWindowResize()"},"hostProperties":{"class.fixed-header":"isFixedHeader","class.fixed-row":"isFixedRow","class.scroll-vertical":"isVertScroll","class.scroll-horz":"isHorScroll","class.selectable":"isSelectable","class.checkbox-selection":"isCheckboxSelection","class.cell-selection":"isCellSelection","class.single-selection":"isSingleSelection","class.multi-selection":"isMultiSelection"},"hostAttributes":{"class":"datatable"},"providers":[],"viewProviders":[],"queries":[{"selectors":[{"identifier":{"reference":{"__symbolic__":"symbol","name":"DataTableColumnDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column.directive.d.ts"}}}],"first":false,"descendants":false,"propertyName":"columnTemplates","read":null},{"selectors":[{"identifier":{"reference":{"__symbolic__":"symbol","name":"DatatableRowDetailDirective","path":"/Users/austin/dev/angular2-data-table/src/components/row-detail/row-detail.directive.d.ts"}}}],"first":true,"descendants":true,"propertyName":"rowDetailTemplateChild","read":null}],"entryComponents":[],"changeDetection":1,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":[],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2}}}}],"lifecycleHooks":[0,2,6]},"isComponent":true,"selector":"ngx-datatable","inputs":{"rows":"rows","columns":"columns","selected":"selected","scrollbarV":"scrollbarV","scrollbarH":"scrollbarH","rowHeight":"rowHeight","detailRowHeight":"detailRowHeight","columnMode":"columnMode","headerHeight":"headerHeight","footerHeight":"footerHeight","externalPaging":"externalPaging","externalSorting":"externalSorting","limit":"limit","count":"count","offset":"offset","loadingIndicator":"loadingIndicator","selectionType":"selectionType","reorderable":"reorderable","sortType":"sortType","sorts":"sorts","rowDetailTemplate":"rowDetailTemplate","cssClasses":"cssClasses","messages":"messages","rowIdentity":"rowIdentity","selectCheck":"selectCheck","trackByProp":"trackByProp"},"outputs":{"scroll":"scroll","activate":"activate","select":"select","sort":"sort","page":"page","detailToggle":"detailToggle","reorder":"reorder","resize":"resize","rowContextmenu":"rowContextmenu"},"hostListeners":{"window:resize":"onWindowResize()"},"hostProperties":{"class.fixed-header":"isFixedHeader","class.fixed-row":"isFixedRow","class.scroll-vertical":"isVertScroll","class.scroll-horz":"isHorScroll","class.selectable":"isSelectable","class.checkbox-selection":"isCheckboxSelection","class.cell-selection":"isCellSelection","class.single-selection":"isSingleSelection","class.multi-selection":"isMultiSelection","class.multi-click-selection":"isMultiClickSelection"},"hostAttributes":{"class":"datatable"},"providers":[],"viewProviders":[],"queries":[{"selectors":[{"identifier":{"reference":{"__symbol":3}}}],"first":false,"descendants":false,"propertyName":"columnTemplates","read":null},{"selectors":[{"identifier":{"reference":{"__symbol":4}}}],"first":true,"descendants":true,"propertyName":"rowDetailTemplateChild","read":null}],"entryComponents":[],"changeDetection":1,"template":{"animations":[],"ngContentSelectors":[],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DatatableComponent","filePath":"C:/dev/angular2-data-table/src/components/datatable.component.d.ts"},{"__symbol":1,"name":"ElementRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"},{"__symbol":2,"name":"KeyValueDiffers","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/change_detection/differs/keyvalue_differs.d.ts"},{"__symbol":3,"name":"DataTableColumnDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column.directive.d.ts"},{"__symbol":4,"name":"DatatableRowDetailDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/row-detail.directive.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/footer/footer.component.ngsummary.json b/release/components/footer/footer.component.ngsummary.json
index 23bc7657a..7db817b49 100644
--- a/release/components/footer/footer.component.ngsummary.json
+++ b/release/components/footer/footer.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableFooterComponent","path":"/Users/austin/dev/angular2-data-table/src/components/footer/footer.component.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-footer","inputs":{"footerHeight":"footerHeight","rowCount":"rowCount","pageSize":"pageSize","offset":"offset","pagerLeftArrowIcon":"pagerLeftArrowIcon","pagerRightArrowIcon":"pagerRightArrowIcon","pagerPreviousIcon":"pagerPreviousIcon","pagerNextIcon":"pagerNextIcon","totalMessage":"totalMessage"},"outputs":{"page":"page"},"hostListeners":{},"hostProperties":{},"hostAttributes":{"class":"datatable-footer"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":0,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":[],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-footer","inputs":{"footerHeight":"footerHeight","rowCount":"rowCount","pageSize":"pageSize","offset":"offset","pagerLeftArrowIcon":"pagerLeftArrowIcon","pagerRightArrowIcon":"pagerRightArrowIcon","pagerPreviousIcon":"pagerPreviousIcon","pagerNextIcon":"pagerNextIcon","totalMessage":"totalMessage"},"outputs":{"page":"page"},"hostListeners":{},"hostProperties":{},"hostAttributes":{"class":"datatable-footer"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":0,"template":{"animations":[],"ngContentSelectors":[],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DataTableFooterComponent","filePath":"C:/dev/angular2-data-table/src/components/footer/footer.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/footer/index.ngsummary.json b/release/components/footer/index.ngsummary.json
new file mode 100644
index 000000000..fb5378947
--- /dev/null
+++ b/release/components/footer/index.ngsummary.json
@@ -0,0 +1 @@
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbol":1}},{"symbol":{"__symbol":2},"metadata":{"__symbol":3}}],"symbols":[{"__symbol":0,"name":"DataTableFooterComponent","filePath":"C:/dev/angular2-data-table/src/components/footer/index.d.ts"},{"__symbol":1,"name":"DataTableFooterComponent","filePath":"C:/dev/angular2-data-table/src/components/footer/footer.component.d.ts"},{"__symbol":2,"name":"DataTablePagerComponent","filePath":"C:/dev/angular2-data-table/src/components/footer/index.d.ts"},{"__symbol":3,"name":"DataTablePagerComponent","filePath":"C:/dev/angular2-data-table/src/components/footer/pager.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/footer/pager.component.ngsummary.json b/release/components/footer/pager.component.ngsummary.json
index d96ca96aa..e3c2f05ef 100644
--- a/release/components/footer/pager.component.ngsummary.json
+++ b/release/components/footer/pager.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTablePagerComponent","path":"/Users/austin/dev/angular2-data-table/src/components/footer/pager.component.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-pager","inputs":{"pagerLeftArrowIcon":"pagerLeftArrowIcon","pagerRightArrowIcon":"pagerRightArrowIcon","pagerPreviousIcon":"pagerPreviousIcon","pagerNextIcon":"pagerNextIcon","size":"size","count":"count","page":"page"},"outputs":{"change":"change"},"hostListeners":{},"hostProperties":{},"hostAttributes":{"class":"datatable-pager"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":0,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":[],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-pager","inputs":{"pagerLeftArrowIcon":"pagerLeftArrowIcon","pagerRightArrowIcon":"pagerRightArrowIcon","pagerPreviousIcon":"pagerPreviousIcon","pagerNextIcon":"pagerNextIcon","size":"size","count":"count","page":"page"},"outputs":{"change":"change"},"hostListeners":{},"hostProperties":{},"hostAttributes":{"class":"datatable-pager"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":0,"template":{"animations":[],"ngContentSelectors":[],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DataTablePagerComponent","filePath":"C:/dev/angular2-data-table/src/components/footer/pager.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/header/header-cell.component.d.ts b/release/components/header/header-cell.component.d.ts
index 688ee4c3e..9f3375db7 100644
--- a/release/components/header/header-cell.component.d.ts
+++ b/release/components/header/header-cell.component.d.ts
@@ -16,6 +16,7 @@ export declare class DataTableHeaderCellComponent {
readonly minWidth: number;
readonly maxWidth: number;
readonly width: number;
+ readonly isCheckboxable: boolean;
sortClass: string;
sortDir: SortDirection;
_sorts: any[];
diff --git a/release/components/header/header-cell.component.js b/release/components/header/header-cell.component.js
index a9a71c1d5..07f7cabaf 100644
--- a/release/components/header/header-cell.component.js
+++ b/release/components/header/header-cell.component.js
@@ -63,6 +63,16 @@ var DataTableHeaderCellComponent = (function () {
enumerable: true,
configurable: true
});
+ Object.defineProperty(DataTableHeaderCellComponent.prototype, "isCheckboxable", {
+ get: function () {
+ return;
+ this.column.checkboxable &&
+ this.column.headerCheckboxable &&
+ this.selectionType === types_1.SelectionType.checkbox;
+ },
+ enumerable: true,
+ configurable: true
+ });
DataTableHeaderCellComponent.prototype.calcSortDir = function (sorts) {
var _this = this;
if (sorts && this.column) {
@@ -94,7 +104,7 @@ var DataTableHeaderCellComponent = (function () {
DataTableHeaderCellComponent.decorators = [
{ type: core_1.Component, args: [{
selector: 'datatable-header-cell',
- template: "\n \n \n \n \n \n \n \n \n \n
\n "
+ template: "\n \n \n \n \n \n \n \n \n \n
\n "
},] },
];
/** @nocollapse */
diff --git a/release/components/header/header-cell.component.js.map b/release/components/header/header-cell.component.js.map
index fdd1810cf..0480f43dc 100644
--- a/release/components/header/header-cell.component.js.map
+++ b/release/components/header/header-cell.component.js.map
@@ -1 +1 @@
-{"version":3,"file":"header-cell.component.js","sourceRoot":"","sources":["../../../src/components/header/header-cell.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"header-cell.component.js","sourceRoot":"","sources":["../../../src/components/header/header-cell.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/release/components/header/header-cell.component.metadata.json b/release/components/header/header-cell.component.metadata.json
index 4247212c4..47314525e 100644
--- a/release/components/header/header-cell.component.metadata.json
+++ b/release/components/header/header-cell.component.metadata.json
@@ -1 +1 @@
-[{"__symbolic":"module","version":3,"metadata":{"DataTableHeaderCellComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-header-cell","template":"\n \n \n \n \n \n \n \n \n \n
\n "}]}],"members":{"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortAscendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortDescendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allRowsSelected":[{"__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"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.height.px"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sorts":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sort":[{"__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"}}]}],"columnCssClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class"]}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["attr.title"]}]}],"minWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.minWidth.px"]}]}],"maxWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.maxWidth.px"]}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.width.px"]}]}],"calcSortDir":[{"__symbolic":"method"}],"onSort":[{"__symbolic":"method"}],"calcSortClass":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DataTableHeaderCellComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-header-cell","template":"\n \n \n \n \n \n \n \n \n \n
\n "}]}],"members":{"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortAscendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortDescendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allRowsSelected":[{"__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"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.height.px"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sorts":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sort":[{"__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"}}]}],"columnCssClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class"]}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["attr.title"]}]}],"minWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.minWidth.px"]}]}],"maxWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.maxWidth.px"]}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.width.px"]}]}],"calcSortDir":[{"__symbolic":"method"}],"onSort":[{"__symbolic":"method"}],"calcSortClass":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file
+[{"__symbolic":"module","version":3,"metadata":{"DataTableHeaderCellComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-header-cell","template":"\n \n \n \n \n \n \n \n \n \n
\n "}]}],"members":{"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortAscendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortDescendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allRowsSelected":[{"__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"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.height.px"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sorts":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sort":[{"__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"}}]}],"columnCssClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class"]}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["attr.title"]}]}],"minWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.minWidth.px"]}]}],"maxWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.maxWidth.px"]}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.width.px"]}]}],"calcSortDir":[{"__symbolic":"method"}],"onSort":[{"__symbolic":"method"}],"calcSortClass":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DataTableHeaderCellComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-header-cell","template":"\n \n \n \n \n \n \n \n \n \n
\n "}]}],"members":{"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortAscendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortDescendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allRowsSelected":[{"__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"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.height.px"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sorts":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sort":[{"__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"}}]}],"columnCssClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class"]}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["attr.title"]}]}],"minWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.minWidth.px"]}]}],"maxWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.maxWidth.px"]}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.width.px"]}]}],"calcSortDir":[{"__symbolic":"method"}],"onSort":[{"__symbolic":"method"}],"calcSortClass":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file
diff --git a/release/components/header/header-cell.component.ngfactory.ts b/release/components/header/header-cell.component.ngfactory.ts
index 59e4c9460..c8f4238a6 100644
--- a/release/components/header/header-cell.component.ngfactory.ts
+++ b/release/components/header/header-cell.component.ngfactory.ts
@@ -284,7 +284,7 @@ export class View_DataTableHeaderCellComponent0 extends import2.AppView;
@@ -23,6 +24,7 @@ export declare class DataTableHeaderComponent {
_headerHeight: string;
readonly headerWidth: string;
trackByGroups(index: number, colGroup: any): any;
+ columnTrackingFn(index: number, column: any): any;
onColumnResized(width: number, column: DataTableColumnDirective): void;
onColumnReordered({prevIndex, newIndex, model}: any): void;
onSort({column, prevValue, newValue}: any): void;
diff --git a/release/components/header/header.component.js b/release/components/header/header.component.js
index 3801e9de7..ed8d72581 100644
--- a/release/components/header/header.component.js
+++ b/release/components/header/header.component.js
@@ -50,6 +50,9 @@ var DataTableHeaderComponent = (function () {
DataTableHeaderComponent.prototype.trackByGroups = function (index, colGroup) {
return colGroup.type;
};
+ DataTableHeaderComponent.prototype.columnTrackingFn = function (index, column) {
+ return column.$$id;
+ };
DataTableHeaderComponent.prototype.onColumnResized = function (width, column) {
if (width <= column.minWidth) {
width = column.minWidth;
@@ -122,7 +125,7 @@ var DataTableHeaderComponent = (function () {
DataTableHeaderComponent.decorators = [
{ type: core_1.Component, args: [{
selector: 'datatable-header',
- template: "\n \n ",
+ template: "\n \n ",
host: {
class: 'datatable-header'
}
@@ -140,6 +143,7 @@ var DataTableHeaderComponent = (function () {
'sortType': [{ type: core_1.Input },],
'allRowsSelected': [{ type: core_1.Input },],
'selectionType': [{ type: core_1.Input },],
+ 'reorderable': [{ type: core_1.Input },],
'headerHeight': [{ type: core_1.HostBinding, args: ['style.height',] }, { type: core_1.Input },],
'columns': [{ type: core_1.Input },],
'sort': [{ type: core_1.Output },],
diff --git a/release/components/header/header.component.js.map b/release/components/header/header.component.js.map
index 07bdb5fc3..d4c235310 100644
--- a/release/components/header/header.component.js.map
+++ b/release/components/header/header.component.js.map
@@ -1 +1 @@
-{"version":3,"file":"header.component.js","sourceRoot":"","sources":["../../../src/components/header/header.component.ts"],"names":[],"mappings":";AAAA,qBAEO,eAAe,CAAC,CAAA;AACvB,sBAAwC,aAAa,CAAC,CAAA;AACtD,sBAA8E,aAAa,CAAC,CAAA;AAI5F;IAAA;QAqCG,SAAI,GAAsB,IAAI,mBAAY,EAAE,CAAC;QAC7C,YAAO,GAAsB,IAAI,mBAAY,EAAE,CAAC;QAChD,WAAM,GAAsB,IAAI,mBAAY,EAAE,CAAC;QAC/C,WAAM,GAAsB,IAAI,mBAAY,EAAE,CAAC;IA+JlD,CAAC;IA1LE,sBAAI,kDAAY;aAQjB;YACE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;aAVA,UAAiB,GAAQ;YACxB,EAAE,CAAA,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,aAAa,GAAM,GAAG,OAAI,CAAC;YAClC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YAC3B,CAAC;QACH,CAAC;;;OAAA;IAMA,sBAAI,6CAAO;aAQZ;YACE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAVA,UAAY,GAAU;YACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YAEpB,IAAM,SAAS,GAAG,oBAAY,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,uBAAe,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,iBAAiB,GAAG,yBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;;;OAAA;IAiBD,sBAAI,iDAAW;aAAf;YACE,EAAE,CAAA,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAChC,CAAC;YAED,MAAM,CAAC,MAAM,CAAC;QAChB,CAAC;;;OAAA;IAED,gDAAa,GAAb,UAAc,KAAa,EAAE,QAAa;QACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,kDAAe,GAAf,UAAgB,KAAa,EAAE,MAAgC;QAC7D,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7B,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAA,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,cAAM;YACN,SAAS,EAAE,MAAM,CAAC,KAAK;YACvB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED,oDAAiB,GAAjB,UAAkB,EAAmC;YAAjC,wBAAS,EAAE,sBAAQ,EAAE,gBAAK;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAED,yCAAM,GAAN,UAAO,EAAoC;YAAlC,kBAAM,EAAE,wBAAS,EAAE,sBAAQ;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACb,YAAK;YACL,cAAM;YACN,oBAAS;YACT,kBAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,+CAAY,GAAZ,UAAa,MAAW,EAAE,SAAiB,EAAE,QAAgB;QAC3D,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;YAC9B,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACzB,EAAE,CAAA,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,CAAC,CAAC;YACnC,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;YAC3B,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,gBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED,gDAAa,GAAb,UAAc,KAAa;QACzB,IAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACtC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,IAAI,MAAM,GAAG;YACX,KAAK,EAAK,MAAM,CAAC,KAAK,CAAC,OAAI;SAC5B,CAAC;QAEF,EAAE,CAAA,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YACtB,mBAAW,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAA,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,IAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YACjD,IAAM,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;YAC9B,mBAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAEI,mCAAU,GAA0B;QAC3C,EAAE,IAAI,EAAE,gBAAS,EAAE,IAAI,EAAE,CAAC;oBACxB,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,qvCAkCT;oBACD,IAAI,EAAE;wBACJ,KAAK,EAAE,kBAAkB;qBAC1B;iBACF,EAAG,EAAE;KACL,CAAC;IACF,kBAAkB;IACX,uCAAc,GAAmE,cAAM,OAAA,EAC7F,EAD6F,CAC7F,CAAC;IACK,uCAAc,GAA2C;QAChE,mBAAmB,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QACvC,oBAAoB,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QACxC,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAChC,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAChC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAC7B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAC3B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAC9B,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QACrC,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QACnC,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAW,EAAE,IAAI,EAAE,CAAC,cAAc,EAAG,EAAE,EAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAClF,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,YAAK,EAAE,EAAE;QAC7B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,aAAM,EAAE,EAAE;QAC3B,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,aAAM,EAAE,EAAE;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAM,EAAE,EAAE;QAC7B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAM,EAAE,EAAE;QAC7B,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAW,EAAE,IAAI,EAAE,CAAC,aAAa,EAAG,EAAE,EAAE;KAC/D,CAAC;IACF,+BAAC;AAAD,CAAC,AAvMD,IAuMC;AAvMY,gCAAwB,2BAuMpC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"header.component.js","sourceRoot":"","sources":["../../../src/components/header/header.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/release/components/header/header.component.metadata.json b/release/components/header/header.component.metadata.json
index 79135f4ab..76d88a439 100644
--- a/release/components/header/header.component.metadata.json
+++ b/release/components/header/header.component.metadata.json
@@ -1 +1 @@
-[{"__symbolic":"module","version":3,"metadata":{"DataTableHeaderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-header","template":"\n \n ","host":{"class":"datatable-header"}}]}],"members":{"sortAscendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortDescendingIcon":[{"__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"}}]}],"innerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offsetX":[{"__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"}}]}],"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allRowsSelected":[{"__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"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.height"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sort":[{"__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"}}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"headerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.width"]}]}],"trackByGroups":[{"__symbolic":"method"}],"onColumnResized":[{"__symbolic":"method"}],"onColumnReordered":[{"__symbolic":"method"}],"onSort":[{"__symbolic":"method"}],"calcNewSorts":[{"__symbolic":"method"}],"stylesByGroup":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DataTableHeaderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-header","template":"\n \n ","host":{"class":"datatable-header"}}]}],"members":{"sortAscendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortDescendingIcon":[{"__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"}}]}],"innerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offsetX":[{"__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"}}]}],"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allRowsSelected":[{"__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"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.height"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sort":[{"__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"}}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"headerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.width"]}]}],"trackByGroups":[{"__symbolic":"method"}],"onColumnResized":[{"__symbolic":"method"}],"onColumnReordered":[{"__symbolic":"method"}],"onSort":[{"__symbolic":"method"}],"calcNewSorts":[{"__symbolic":"method"}],"stylesByGroup":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file
+[{"__symbolic":"module","version":3,"metadata":{"DataTableHeaderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-header","template":"\n \n ","host":{"class":"datatable-header"}}]}],"members":{"sortAscendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortDescendingIcon":[{"__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"}}]}],"innerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offsetX":[{"__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"}}]}],"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allRowsSelected":[{"__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"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.height"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sort":[{"__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"}}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"headerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.width"]}]}],"trackByGroups":[{"__symbolic":"method"}],"columnTrackingFn":[{"__symbolic":"method"}],"onColumnResized":[{"__symbolic":"method"}],"onColumnReordered":[{"__symbolic":"method"}],"onSort":[{"__symbolic":"method"}],"calcNewSorts":[{"__symbolic":"method"}],"stylesByGroup":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"DataTableHeaderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"datatable-header","template":"\n \n ","host":{"class":"datatable-header"}}]}],"members":{"sortAscendingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sortDescendingIcon":[{"__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"}}]}],"innerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"offsetX":[{"__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"}}]}],"sortType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allRowsSelected":[{"__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"}}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.height"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"sort":[{"__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"}}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"headerWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["style.width"]}]}],"trackByGroups":[{"__symbolic":"method"}],"columnTrackingFn":[{"__symbolic":"method"}],"onColumnResized":[{"__symbolic":"method"}],"onColumnReordered":[{"__symbolic":"method"}],"onSort":[{"__symbolic":"method"}],"calcNewSorts":[{"__symbolic":"method"}],"stylesByGroup":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file
diff --git a/release/components/header/header.component.ngfactory.ts b/release/components/header/header.component.ngfactory.ts
index 4ce0808c3..37326fb40 100644
--- a/release/components/header/header.component.ngfactory.ts
+++ b/release/components/header/header.component.ngfactory.ts
@@ -52,6 +52,7 @@ export class Wrapper_DataTableHeaderComponent {
/*private*/ _expr_10:any;
/*private*/ _expr_11:any;
/*private*/ _expr_12:any;
+ /*private*/ _expr_13:any;
subscription0:any;
subscription1:any;
subscription2:any;
@@ -72,6 +73,7 @@ export class Wrapper_DataTableHeaderComponent {
this._expr_10 = import1.UNINITIALIZED;
this._expr_11 = import1.UNINITIALIZED;
this._expr_12 = import1.UNINITIALIZED;
+ this._expr_13 = import1.UNINITIALIZED;
}
ngOnDetach(view:import2.AppView,componentView:import2.AppView,el:any):void {
}
@@ -144,36 +146,43 @@ export class Wrapper_DataTableHeaderComponent {
this._expr_8 = currValue;
}
}
- check_headerHeight(currValue:any,throwOnChange:boolean,forceUpdate:boolean):void {
+ check_reorderable(currValue:any,throwOnChange:boolean,forceUpdate:boolean):void {
if ((forceUpdate || import3.checkBinding(throwOnChange,this._expr_9,currValue))) {
this._changed = true;
- this.context.headerHeight = currValue;
+ this.context.reorderable = currValue;
this._expr_9 = currValue;
}
}
- check_columns(currValue:any,throwOnChange:boolean,forceUpdate:boolean):void {
+ check_headerHeight(currValue:any,throwOnChange:boolean,forceUpdate:boolean):void {
if ((forceUpdate || import3.checkBinding(throwOnChange,this._expr_10,currValue))) {
this._changed = true;
- this.context.columns = currValue;
+ this.context.headerHeight = currValue;
this._expr_10 = currValue;
}
}
+ check_columns(currValue:any,throwOnChange:boolean,forceUpdate:boolean):void {
+ if ((forceUpdate || import3.checkBinding(throwOnChange,this._expr_11,currValue))) {
+ this._changed = true;
+ this.context.columns = currValue;
+ this._expr_11 = currValue;
+ }
+ }
ngDoCheck(view:import2.AppView,el:any,throwOnChange:boolean):boolean {
var changed:any = this._changed;
this._changed = false;
return changed;
}
checkHost(view:import2.AppView,componentView:import2.AppView,el:any,throwOnChange:boolean):void {
- const currVal_11:any = this.context.headerHeight;
- if (import3.checkBinding(throwOnChange,this._expr_11,currVal_11)) {
- view.renderer.setElementStyle(el,'height',((view.viewUtils.sanitizer.sanitize(import4.SecurityContext.STYLE,currVal_11) == null)? (null as any): view.viewUtils.sanitizer.sanitize(import4.SecurityContext.STYLE,currVal_11).toString()));
- this._expr_11 = currVal_11;
- }
- const currVal_12:any = this.context.headerWidth;
+ const currVal_12:any = this.context.headerHeight;
if (import3.checkBinding(throwOnChange,this._expr_12,currVal_12)) {
- view.renderer.setElementStyle(el,'width',((view.viewUtils.sanitizer.sanitize(import4.SecurityContext.STYLE,currVal_12) == null)? (null as any): view.viewUtils.sanitizer.sanitize(import4.SecurityContext.STYLE,currVal_12).toString()));
+ view.renderer.setElementStyle(el,'height',((view.viewUtils.sanitizer.sanitize(import4.SecurityContext.STYLE,currVal_12) == null)? (null as any): view.viewUtils.sanitizer.sanitize(import4.SecurityContext.STYLE,currVal_12).toString()));
this._expr_12 = currVal_12;
}
+ const currVal_13:any = this.context.headerWidth;
+ if (import3.checkBinding(throwOnChange,this._expr_13,currVal_13)) {
+ view.renderer.setElementStyle(el,'width',((view.viewUtils.sanitizer.sanitize(import4.SecurityContext.STYLE,currVal_13) == null)? (null as any): view.viewUtils.sanitizer.sanitize(import4.SecurityContext.STYLE,currVal_13).toString()));
+ this._expr_13 = currVal_13;
+ }
}
handleEvent(eventName:string,$event:any):boolean {
var result:boolean = true;
@@ -360,7 +369,7 @@ class View_DataTableHeaderComponent1 extends import2.AppView {
this._NgStyle_0_3.ngDoCheck(this,this._el_0,throwOnChange);
const currVal_2_0_0:any = this.context.$implicit.columns;
this._NgFor_2_6.check_ngForOf(currVal_2_0_0,throwOnChange,false);
- const currVal_2_0_1:any = ((this.parentView.context.column == null)? (null as any): this.parentView.context.column.$$id);
+ const currVal_2_0_1:any = this.parentView.context.columnTrackingFn;
this._NgFor_2_6.check_ngForTrackBy(currVal_2_0_1,throwOnChange,false);
this._NgFor_2_6.ngDoCheck(this,this._anchor_2,throwOnChange);
this._vc_2.detectChangesInNestedViews(throwOnChange);
@@ -422,7 +431,7 @@ class View_DataTableHeaderComponent2 extends import2.AppView {
detectChangesInternal(throwOnChange:boolean):void {
const currVal_0_0_0:any = this.context.$implicit;
this._DraggableDirective_0_3.check_dragModel(currVal_0_0_0,throwOnChange,false);
- const currVal_0_0_1:any = (this.context.$implicit.draggable && this.parentView.parentView.context.drag);
+ const currVal_0_0_1:any = ((this.parentView.parentView.context.reorderable && this.context.$implicit.draggable) && this.parentView.parentView.context.drag);
this._DraggableDirective_0_3.check_dragX(currVal_0_0_1,throwOnChange,false);
const currVal_0_0_2:any = false;
this._DraggableDirective_0_3.check_dragY(currVal_0_0_2,throwOnChange,false);
diff --git a/release/components/header/header.component.ngsummary.json b/release/components/header/header.component.ngsummary.json
index 7502d44ae..b6d56180b 100644
--- a/release/components/header/header.component.ngsummary.json
+++ b/release/components/header/header.component.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DataTableHeaderComponent","path":"/Users/austin/dev/angular2-data-table/src/components/header/header.component.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-header","inputs":{"sortAscendingIcon":"sortAscendingIcon","sortDescendingIcon":"sortDescendingIcon","scrollbarH":"scrollbarH","innerWidth":"innerWidth","offsetX":"offsetX","sorts":"sorts","sortType":"sortType","allRowsSelected":"allRowsSelected","selectionType":"selectionType","headerHeight":"headerHeight","columns":"columns"},"outputs":{"sort":"sort","reorder":"reorder","resize":"resize","select":"select"},"hostListeners":{},"hostProperties":{"style.height":"headerHeight","style.width":"headerWidth"},"hostAttributes":{"class":"datatable-header"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"summaryKind":0,"animations":[],"ngContentSelectors":[],"encapsulation":2}}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":true,"selector":"datatable-header","inputs":{"sortAscendingIcon":"sortAscendingIcon","sortDescendingIcon":"sortDescendingIcon","scrollbarH":"scrollbarH","innerWidth":"innerWidth","offsetX":"offsetX","sorts":"sorts","sortType":"sortType","allRowsSelected":"allRowsSelected","selectionType":"selectionType","reorderable":"reorderable","headerHeight":"headerHeight","columns":"columns"},"outputs":{"sort":"sort","reorder":"reorder","resize":"resize","select":"select"},"hostListeners":{},"hostProperties":{"style.height":"headerHeight","style.width":"headerWidth"},"hostAttributes":{"class":"datatable-header"},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":1,"template":{"animations":[],"ngContentSelectors":[],"encapsulation":2}}}],"symbols":[{"__symbol":0,"name":"DataTableHeaderComponent","filePath":"C:/dev/angular2-data-table/src/components/header/header.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/header/index.ngsummary.json b/release/components/header/index.ngsummary.json
new file mode 100644
index 000000000..767dbb36d
--- /dev/null
+++ b/release/components/header/index.ngsummary.json
@@ -0,0 +1 @@
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbol":1}},{"symbol":{"__symbol":2},"metadata":{"__symbol":3}}],"symbols":[{"__symbol":0,"name":"DataTableHeaderComponent","filePath":"C:/dev/angular2-data-table/src/components/header/index.d.ts"},{"__symbol":1,"name":"DataTableHeaderComponent","filePath":"C:/dev/angular2-data-table/src/components/header/header.component.d.ts"},{"__symbol":2,"name":"DataTableHeaderCellComponent","filePath":"C:/dev/angular2-data-table/src/components/header/index.d.ts"},{"__symbol":3,"name":"DataTableHeaderCellComponent","filePath":"C:/dev/angular2-data-table/src/components/header/header-cell.component.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/index.ngsummary.json b/release/components/index.ngsummary.json
new file mode 100644
index 000000000..8541cce7a
--- /dev/null
+++ b/release/components/index.ngsummary.json
@@ -0,0 +1 @@
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbol":1}},{"symbol":{"__symbol":2},"metadata":{"__symbol":3}},{"symbol":{"__symbol":4},"metadata":{"__symbol":5}},{"symbol":{"__symbol":6},"metadata":{"__symbol":7}},{"symbol":{"__symbol":8},"metadata":{"__symbol":9}},{"symbol":{"__symbol":10},"metadata":{"__symbol":11}},{"symbol":{"__symbol":12},"metadata":{"__symbol":13}},{"symbol":{"__symbol":14},"metadata":{"__symbol":15}},{"symbol":{"__symbol":16},"metadata":{"__symbol":17}},{"symbol":{"__symbol":18},"metadata":{"__symbol":19}},{"symbol":{"__symbol":20},"metadata":{"__symbol":21}},{"symbol":{"__symbol":22},"metadata":{"__symbol":23}},{"symbol":{"__symbol":24},"metadata":{"__symbol":25}},{"symbol":{"__symbol":26},"metadata":{"__symbol":27}},{"symbol":{"__symbol":28},"metadata":{"__symbol":29}},{"symbol":{"__symbol":30},"metadata":{"__symbol":31}},{"symbol":{"__symbol":32},"metadata":{"__symbol":33}}],"symbols":[{"__symbol":0,"name":"DatatableComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":1,"name":"DatatableComponent","filePath":"C:/dev/angular2-data-table/src/components/datatable.component.d.ts"},{"__symbol":2,"name":"DataTableHeaderComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":3,"name":"DataTableHeaderComponent","filePath":"C:/dev/angular2-data-table/src/components/header/index.d.ts"},{"__symbol":4,"name":"DataTableHeaderCellComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":5,"name":"DataTableHeaderCellComponent","filePath":"C:/dev/angular2-data-table/src/components/header/index.d.ts"},{"__symbol":6,"name":"DataTableBodyComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":7,"name":"DataTableBodyComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":8,"name":"DataTableBodyCellComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":9,"name":"DataTableBodyCellComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":10,"name":"DataTableBodyRowComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":11,"name":"DataTableBodyRowComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":12,"name":"ProgressBarComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":13,"name":"ProgressBarComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":14,"name":"ScrollerComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":15,"name":"ScrollerComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":16,"name":"DataTableRowWrapperComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":17,"name":"DataTableRowWrapperComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":18,"name":"DataTableSelectionComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":19,"name":"DataTableSelectionComponent","filePath":"C:/dev/angular2-data-table/src/components/body/index.d.ts"},{"__symbol":20,"name":"DataTableFooterComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":21,"name":"DataTableFooterComponent","filePath":"C:/dev/angular2-data-table/src/components/footer/index.d.ts"},{"__symbol":22,"name":"DataTablePagerComponent","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":23,"name":"DataTablePagerComponent","filePath":"C:/dev/angular2-data-table/src/components/footer/index.d.ts"},{"__symbol":24,"name":"DataTableColumnDirective","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":25,"name":"DataTableColumnDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/index.d.ts"},{"__symbol":26,"name":"DataTableColumnHeaderDirective","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":27,"name":"DataTableColumnHeaderDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/index.d.ts"},{"__symbol":28,"name":"DataTableColumnCellDirective","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":29,"name":"DataTableColumnCellDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/index.d.ts"},{"__symbol":30,"name":"DatatableRowDetailDirective","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":31,"name":"DatatableRowDetailDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/index.d.ts"},{"__symbol":32,"name":"DatatableRowDetailTemplateDirective","filePath":"C:/dev/angular2-data-table/src/components/index.d.ts"},{"__symbol":33,"name":"DatatableRowDetailTemplateDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/index.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/row-detail/index.ngsummary.json b/release/components/row-detail/index.ngsummary.json
new file mode 100644
index 000000000..33fa1e6e6
--- /dev/null
+++ b/release/components/row-detail/index.ngsummary.json
@@ -0,0 +1 @@
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbol":1}},{"symbol":{"__symbol":2},"metadata":{"__symbol":3}}],"symbols":[{"__symbol":0,"name":"DatatableRowDetailDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/index.d.ts"},{"__symbol":1,"name":"DatatableRowDetailDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/row-detail.directive.d.ts"},{"__symbol":2,"name":"DatatableRowDetailTemplateDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/index.d.ts"},{"__symbol":3,"name":"DatatableRowDetailTemplateDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/row-detail-template.directive.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/row-detail/row-detail-template.directive.ngsummary.json b/release/components/row-detail/row-detail-template.directive.ngsummary.json
index 5906bc6db..559db8ed8 100644
--- a/release/components/row-detail/row-detail-template.directive.ngsummary.json
+++ b/release/components/row-detail/row-detail-template.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DatatableRowDetailTemplateDirective","path":"/Users/austin/dev/angular2-data-table/src/components/row-detail/row-detail-template.directive.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"TemplateRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}}}}],"lifecycleHooks":[]},"isComponent":false,"selector":"[ngx-datatable-row-detail-template]","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}}],"lifecycleHooks":[]},"isComponent":false,"selector":"[ngx-datatable-row-detail-template]","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"DatatableRowDetailTemplateDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/row-detail-template.directive.d.ts"},{"__symbol":1,"name":"TemplateRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}]}
\ No newline at end of file
diff --git a/release/components/row-detail/row-detail.directive.ngsummary.json b/release/components/row-detail/row-detail.directive.ngsummary.json
index 5a92432de..fdc8d4027 100644
--- a/release/components/row-detail/row-detail.directive.ngsummary.json
+++ b/release/components/row-detail/row-detail.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DatatableRowDetailDirective","path":"/Users/austin/dev/angular2-data-table/src/components/row-detail/row-detail.directive.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":false,"selector":"ngx-datatable-row-detail","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[{"selectors":[{"identifier":{"reference":{"__symbolic__":"symbol","name":"DatatableRowDetailTemplateDirective","path":"/Users/austin/dev/angular2-data-table/src/components/row-detail/row-detail-template.directive.d.ts"}}}],"first":true,"descendants":true,"propertyName":"template","read":{"identifier":{"reference":{"__symbolic__":"symbol","name":"TemplateRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}}}}],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":false,"selector":"ngx-datatable-row-detail","inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[{"selectors":[{"identifier":{"reference":{"__symbol":1}}}],"first":true,"descendants":true,"propertyName":"template","read":{"identifier":{"reference":{"__symbol":2}}}}],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"DatatableRowDetailDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/row-detail.directive.d.ts"},{"__symbol":1,"name":"DatatableRowDetailTemplateDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/row-detail-template.directive.d.ts"},{"__symbol":2,"name":"TemplateRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/template_ref.d.ts"}]}
\ No newline at end of file
diff --git a/release/datatable.module.ngsummary.json b/release/datatable.module.ngsummary.json
index 5481e5645..89ce4ea25 100644
--- a/release/datatable.module.ngsummary.json
+++ b/release/datatable.module.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":3,"type":{"reference":{"__symbolic__":"symbol","name":"NgxDatatableModule","path":"/Users/austin/dev/angular2-data-table/src/datatable.module.d.ts"},"diDeps":[],"lifecycleHooks":[]},"entryComponents":[],"providers":[{"provider":{"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"NgLocalization","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/common/src/localization.d.ts"}}},"useClass":{"reference":{"__symbolic__":"symbol","name":"NgLocaleLocalization","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/common/src/localization.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"LOCALE_ID","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/i18n/tokens.d.ts"}}}}],"lifecycleHooks":[]},"useFactory":null,"useExisting":null,"deps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"LOCALE_ID","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/i18n/tokens.d.ts"}}}}],"multi":false},"module":{"reference":{"__symbolic__":"symbol","name":"CommonModule","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/common/src/common_module.d.ts"},"diDeps":[],"lifecycleHooks":[]}}],"modules":[{"reference":{"__symbolic__":"symbol","name":"CommonModule","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/common/src/common_module.d.ts"},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbolic__":"symbol","name":"NgxDatatableModule","path":"/Users/austin/dev/angular2-data-table/src/datatable.module.d.ts"},"diDeps":[],"lifecycleHooks":[]}],"exportedDirectives":[{"reference":{"__symbolic__":"symbol","name":"DatatableComponent","path":"/Users/austin/dev/angular2-data-table/src/components/datatable.component.d.ts"}},{"reference":{"__symbolic__":"symbol","name":"DatatableRowDetailDirective","path":"/Users/austin/dev/angular2-data-table/src/components/row-detail/row-detail.directive.d.ts"}},{"reference":{"__symbolic__":"symbol","name":"DatatableRowDetailTemplateDirective","path":"/Users/austin/dev/angular2-data-table/src/components/row-detail/row-detail-template.directive.d.ts"}},{"reference":{"__symbolic__":"symbol","name":"DataTableColumnDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column.directive.d.ts"}},{"reference":{"__symbolic__":"symbol","name":"DataTableColumnHeaderDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column-header.directive.d.ts"}},{"reference":{"__symbolic__":"symbol","name":"DataTableColumnCellDirective","path":"/Users/austin/dev/angular2-data-table/src/components/columns/column-cell.directive.d.ts"}}],"exportedPipes":[]}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":2,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"entryComponents":[],"providers":[{"provider":{"token":{"identifier":{"reference":{"__symbol":1}}},"useClass":{"reference":{"__symbol":2},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":3}}}}],"lifecycleHooks":[]},"useFactory":null,"useExisting":null,"deps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":3}}}}],"multi":false},"module":{"reference":{"__symbol":4},"diDeps":[],"lifecycleHooks":[]}}],"modules":[{"reference":{"__symbol":4},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]}],"exportedDirectives":[{"reference":{"__symbol":5}},{"reference":{"__symbol":6}},{"reference":{"__symbol":7}},{"reference":{"__symbol":8}},{"reference":{"__symbol":9}},{"reference":{"__symbol":10}}],"exportedPipes":[]}}],"symbols":[{"__symbol":0,"name":"NgxDatatableModule","filePath":"C:/dev/angular2-data-table/src/datatable.module.d.ts"},{"__symbol":1,"name":"NgLocalization","filePath":"C:/dev/angular2-data-table/node_modules/@angular/common/src/localization.d.ts"},{"__symbol":2,"name":"NgLocaleLocalization","filePath":"C:/dev/angular2-data-table/node_modules/@angular/common/src/localization.d.ts"},{"__symbol":3,"name":"LOCALE_ID","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/i18n/tokens.d.ts"},{"__symbol":4,"name":"CommonModule","filePath":"C:/dev/angular2-data-table/node_modules/@angular/common/src/common_module.d.ts"},{"__symbol":5,"name":"DatatableComponent","filePath":"C:/dev/angular2-data-table/src/components/datatable.component.d.ts"},{"__symbol":6,"name":"DatatableRowDetailDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/row-detail.directive.d.ts"},{"__symbol":7,"name":"DatatableRowDetailTemplateDirective","filePath":"C:/dev/angular2-data-table/src/components/row-detail/row-detail-template.directive.d.ts"},{"__symbol":8,"name":"DataTableColumnDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column.directive.d.ts"},{"__symbol":9,"name":"DataTableColumnHeaderDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column-header.directive.d.ts"},{"__symbol":10,"name":"DataTableColumnCellDirective","filePath":"C:/dev/angular2-data-table/src/components/columns/column-cell.directive.d.ts"}]}
\ No newline at end of file
diff --git a/release/directives/draggable.directive.ngsummary.json b/release/directives/draggable.directive.ngsummary.json
index 8f5ef9017..7e5266232 100644
--- a/release/directives/draggable.directive.ngsummary.json
+++ b/release/directives/draggable.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"DraggableDirective","path":"/Users/austin/dev/angular2-data-table/src/directives/draggable.directive.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"ElementRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}}}}],"lifecycleHooks":[1]},"isComponent":false,"selector":"[draggable]","inputs":{"dragModel":"dragModel","dragX":"dragX","dragY":"dragY"},"outputs":{"dragStart":"dragStart","dragging":"dragging","dragEnd":"dragEnd"},"hostListeners":{"document:mouseup":"onMouseup($event)","mousedown":"onMousedown($event)"},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}}],"lifecycleHooks":[1]},"isComponent":false,"selector":"[draggable]","inputs":{"dragModel":"dragModel","dragX":"dragX","dragY":"dragY"},"outputs":{"dragStart":"dragStart","dragging":"dragging","dragEnd":"dragEnd"},"hostListeners":{"document:mouseup":"onMouseup($event)","mousedown":"onMousedown($event)"},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"DraggableDirective","filePath":"C:/dev/angular2-data-table/src/directives/draggable.directive.d.ts"},{"__symbol":1,"name":"ElementRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}]}
\ No newline at end of file
diff --git a/release/directives/index.ngsummary.json b/release/directives/index.ngsummary.json
new file mode 100644
index 000000000..3e985e60e
--- /dev/null
+++ b/release/directives/index.ngsummary.json
@@ -0,0 +1 @@
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbol":1}},{"symbol":{"__symbol":2},"metadata":{"__symbol":3}},{"symbol":{"__symbol":4},"metadata":{"__symbol":5}},{"symbol":{"__symbol":6},"metadata":{"__symbol":7}},{"symbol":{"__symbol":8},"metadata":{"__symbol":9}}],"symbols":[{"__symbol":0,"name":"DraggableDirective","filePath":"C:/dev/angular2-data-table/src/directives/index.d.ts"},{"__symbol":1,"name":"DraggableDirective","filePath":"C:/dev/angular2-data-table/src/directives/draggable.directive.d.ts"},{"__symbol":2,"name":"LongPressDirective","filePath":"C:/dev/angular2-data-table/src/directives/index.d.ts"},{"__symbol":3,"name":"LongPressDirective","filePath":"C:/dev/angular2-data-table/src/directives/long-press.directive.d.ts"},{"__symbol":4,"name":"OrderableDirective","filePath":"C:/dev/angular2-data-table/src/directives/index.d.ts"},{"__symbol":5,"name":"OrderableDirective","filePath":"C:/dev/angular2-data-table/src/directives/orderable.directive.d.ts"},{"__symbol":6,"name":"ResizeableDirective","filePath":"C:/dev/angular2-data-table/src/directives/index.d.ts"},{"__symbol":7,"name":"ResizeableDirective","filePath":"C:/dev/angular2-data-table/src/directives/resizeable.directive.d.ts"},{"__symbol":8,"name":"VisibilityDirective","filePath":"C:/dev/angular2-data-table/src/directives/index.d.ts"},{"__symbol":9,"name":"VisibilityDirective","filePath":"C:/dev/angular2-data-table/src/directives/visibility.directive.d.ts"}]}
\ No newline at end of file
diff --git a/release/directives/long-press.directive.ngsummary.json b/release/directives/long-press.directive.ngsummary.json
index 4c3b23d94..b0b6f7195 100644
--- a/release/directives/long-press.directive.ngsummary.json
+++ b/release/directives/long-press.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"LongPressDirective","path":"/Users/austin/dev/angular2-data-table/src/directives/long-press.directive.d.ts"},"diDeps":[],"lifecycleHooks":[]},"isComponent":false,"selector":"[long-press]","inputs":{"duration":"duration"},"outputs":{"longPress":"longPress","longPressing":"longPressing","longPressEnd":"longPressEnd"},"hostListeners":{"mousedown":"onMouseDown($event)","mousemove":"onMouseMove($event)","mouseup":"onMouseUp()"},"hostProperties":{"class.press":"press","class.longpress":"isLongPress"},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[],"lifecycleHooks":[]},"isComponent":false,"selector":"[long-press]","inputs":{"duration":"duration"},"outputs":{"longPress":"longPress","longPressing":"longPressing","longPressEnd":"longPressEnd"},"hostListeners":{"mousedown":"onMouseDown($event)","mousemove":"onMouseMove($event)","mouseup":"onMouseUp()"},"hostProperties":{"class.press":"press","class.longpress":"isLongPress"},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"LongPressDirective","filePath":"C:/dev/angular2-data-table/src/directives/long-press.directive.d.ts"}]}
\ No newline at end of file
diff --git a/release/directives/orderable.directive.ngsummary.json b/release/directives/orderable.directive.ngsummary.json
index 6edce409f..aabb22ae8 100644
--- a/release/directives/orderable.directive.ngsummary.json
+++ b/release/directives/orderable.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"OrderableDirective","path":"/Users/austin/dev/angular2-data-table/src/directives/orderable.directive.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"KeyValueDiffers","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/change_detection/differs/keyvalue_differs.d.ts"}}}}],"lifecycleHooks":[1,4]},"isComponent":false,"selector":"[orderable]","inputs":{},"outputs":{"reorder":"reorder"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[{"selectors":[{"identifier":{"reference":{"__symbolic__":"symbol","name":"DraggableDirective","path":"/Users/austin/dev/angular2-data-table/src/directives/draggable.directive.d.ts"}}}],"first":false,"descendants":true,"propertyName":"draggables","read":null}],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}}],"lifecycleHooks":[1,4]},"isComponent":false,"selector":"[orderable]","inputs":{},"outputs":{"reorder":"reorder"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[{"selectors":[{"identifier":{"reference":{"__symbol":2}}}],"first":false,"descendants":true,"propertyName":"draggables","read":null}],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"OrderableDirective","filePath":"C:/dev/angular2-data-table/src/directives/orderable.directive.d.ts"},{"__symbol":1,"name":"KeyValueDiffers","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/change_detection/differs/keyvalue_differs.d.ts"},{"__symbol":2,"name":"DraggableDirective","filePath":"C:/dev/angular2-data-table/src/directives/draggable.directive.d.ts"}]}
\ No newline at end of file
diff --git a/release/directives/resizeable.directive.ngsummary.json b/release/directives/resizeable.directive.ngsummary.json
index 8d13f19e4..d967b75af 100644
--- a/release/directives/resizeable.directive.ngsummary.json
+++ b/release/directives/resizeable.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"ResizeableDirective","path":"/Users/austin/dev/angular2-data-table/src/directives/resizeable.directive.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"ElementRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}}}}],"lifecycleHooks":[1]},"isComponent":false,"selector":"[resizeable]","inputs":{"resizeEnabled":"resizeEnabled","minWidth":"minWidth","maxWidth":"maxWidth"},"outputs":{"resize":"resize"},"hostListeners":{"document:mouseup":"onMouseup()","mousedown":"onMousedown($event)"},"hostProperties":{"class.resizeable":"resizeEnabled"},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}}],"lifecycleHooks":[1]},"isComponent":false,"selector":"[resizeable]","inputs":{"resizeEnabled":"resizeEnabled","minWidth":"minWidth","maxWidth":"maxWidth"},"outputs":{"resize":"resize"},"hostListeners":{"document:mouseup":"onMouseup()","mousedown":"onMousedown($event)"},"hostProperties":{"class.resizeable":"resizeEnabled"},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"ResizeableDirective","filePath":"C:/dev/angular2-data-table/src/directives/resizeable.directive.d.ts"},{"__symbol":1,"name":"ElementRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}]}
\ No newline at end of file
diff --git a/release/directives/visibility.directive.ngsummary.json b/release/directives/visibility.directive.ngsummary.json
index 913ed14f6..040742104 100644
--- a/release/directives/visibility.directive.ngsummary.json
+++ b/release/directives/visibility.directive.ngsummary.json
@@ -1 +1 @@
-[{"summaryKind":2,"type":{"reference":{"__symbolic__":"symbol","name":"VisibilityDirective","path":"/Users/austin/dev/angular2-data-table/src/directives/visibility.directive.d.ts"},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"ElementRef","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbolic__":"symbol","name":"NgZone","path":"/Users/austin/dev/angular2-data-table/node_modules/@angular/core/src/zone/ng_zone.d.ts"}}}}],"lifecycleHooks":[0,1]},"isComponent":false,"selector":"[visibility-observer]","inputs":{},"outputs":{"visible":"visible"},"hostListeners":{},"hostProperties":{"class.visible":"isVisible"},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}]
\ No newline at end of file
+{"summaries":[{"symbol":{"__symbol":0},"metadata":{"__symbolic":"class"},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2}}}}],"lifecycleHooks":[0,1]},"isComponent":false,"selector":"[visibility-observer]","inputs":{},"outputs":{"visible":"visible"},"hostListeners":{},"hostProperties":{"class.visible":"isVisible"},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"entryComponents":[],"changeDetection":null,"template":null}}],"symbols":[{"__symbol":0,"name":"VisibilityDirective","filePath":"C:/dev/angular2-data-table/src/directives/visibility.directive.d.ts"},{"__symbol":1,"name":"ElementRef","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/linker/element_ref.d.ts"},{"__symbol":2,"name":"NgZone","filePath":"C:/dev/angular2-data-table/node_modules/@angular/core/src/zone/ng_zone.d.ts"}]}
\ No newline at end of file
diff --git a/release/index.js b/release/index.js
index 489a5b41b..916bcc310 100644
--- a/release/index.js
+++ b/release/index.js
@@ -1,5 +1,5 @@
/**
- * angular2-data-table v"4.0.0" (https://github.com/swimlane/angular2-data-table)
+ * angular2-data-table v"4.1.0" (https://github.com/swimlane/angular2-data-table)
* Copyright 2016
* Licensed under MIT
*/
@@ -459,6 +459,9 @@ var DataTableBodyRowComponent = (function () {
DataTableBodyRowComponent.prototype.trackByGroups = function (index, colGroup) {
return colGroup.type;
};
+ DataTableBodyRowComponent.prototype.columnTrackingFn = function (index, column) {
+ return column.$$id;
+ };
DataTableBodyRowComponent.prototype.stylesByGroup = function (group) {
var widths = this.columnGroupWidths;
var offsetX = this.offsetX;
@@ -556,7 +559,7 @@ var DataTableBodyRowComponent = (function () {
DataTableBodyRowComponent = __decorate([
core_1.Component({
selector: 'datatable-body-row',
- template: "\n \n \n \n
\n ",
+ template: "\n \n \n \n
\n ",
host: {
class: 'datatable-body-row'
}
@@ -1305,24 +1308,23 @@ var DataTableSelectionComponent = (function () {
return;
var chkbox = this.selectionType === types_1.SelectionType.checkbox;
var multi = this.selectionType === types_1.SelectionType.multi;
+ var multiClick = this.selectionType == types_1.SelectionType.multiClick;
var selected = [];
- if (multi || chkbox) {
+ if (multi || chkbox || multiClick) {
if (event.shiftKey) {
- var newSelected = this.selected.slice();
- selected = utils_1.selectRowsBetween(newSelected, this.rows, index, this.prevIndex, this.getRowSelectedIdx.bind(this));
+ selected = utils_1.selectRowsBetween(this.selected.slice(), this.rows, index, this.prevIndex, this.getRowSelectedIdx.bind(this));
}
- else if (!event.shiftKey) {
- selected.push(row);
+ else if (event.ctrlKey || multiClick || chkbox) {
+ selected = utils_1.selectRows(this.selected.slice(), row, this.getRowSelectedIdx.bind(this));
}
else {
- var newSelected = this.selected.slice();
- selected = utils_1.selectRows(newSelected, row, this.getRowSelectedIdx.bind(this));
+ selected = utils_1.selectRows([], row, this.getRowSelectedIdx.bind(this));
}
}
else {
- selected.push(row);
+ selected = utils_1.selectRows([], row, this.getRowSelectedIdx.bind(this));
}
- if (this.selectCheck) {
+ if (typeof this.selectCheck === 'function') {
selected = selected.filter(this.selectCheck.bind(this));
}
this.selected.splice(0, this.selected.length);
@@ -2113,6 +2115,20 @@ var DatatableComponent = (function () {
enumerable: true,
configurable: true
});
+ Object.defineProperty(DatatableComponent.prototype, "isMultiClickSelection", {
+ /**
+ * CSS class added to root element if mulit click select
+ *
+ * @readonly
+ * @type {boolean}
+ * @memberOf DatatableComponent
+ */
+ get: function () {
+ return this.selectionType === types_1.SelectionType.multiClick;
+ },
+ enumerable: true,
+ configurable: true
+ });
Object.defineProperty(DatatableComponent.prototype, "columnTemplates", {
/**
* Returns the column templates.
@@ -2692,6 +2708,10 @@ var DatatableComponent = (function () {
core_1.HostBinding('class.multi-selection'),
__metadata('design:type', Boolean)
], DatatableComponent.prototype, "isMultiSelection", null);
+ __decorate([
+ core_1.HostBinding('class.multi-click-selection'),
+ __metadata('design:type', Boolean)
+ ], DatatableComponent.prototype, "isMultiClickSelection", null);
__decorate([
core_1.ContentChildren(columns_1.DataTableColumnDirective),
__metadata('design:type', core_1.QueryList),
@@ -2716,7 +2736,7 @@ var DatatableComponent = (function () {
DatatableComponent = __decorate([
core_1.Component({
selector: 'ngx-datatable',
- template: "\n \n \n \n \n \n \n \n
\n ",
+ template: "\n \n \n \n \n \n \n \n
\n ",
host: {
class: 'datatable'
}
@@ -3068,6 +3088,16 @@ var DataTableHeaderCellComponent = (function () {
enumerable: true,
configurable: true
});
+ Object.defineProperty(DataTableHeaderCellComponent.prototype, "isCheckboxable", {
+ get: function () {
+ return;
+ this.column.checkboxable &&
+ this.column.headerCheckboxable &&
+ this.selectionType === types_1.SelectionType.checkbox;
+ },
+ enumerable: true,
+ configurable: true
+ });
DataTableHeaderCellComponent.prototype.calcSortDir = function (sorts) {
var _this = this;
if (sorts && this.column) {
@@ -3161,7 +3191,7 @@ var DataTableHeaderCellComponent = (function () {
DataTableHeaderCellComponent = __decorate([
core_1.Component({
selector: 'datatable-header-cell',
- template: "\n \n \n \n \n \n \n \n \n \n
\n "
+ template: "\n \n \n \n \n \n \n \n \n \n
\n "
}),
__metadata('design:paramtypes', [])
], DataTableHeaderCellComponent);
@@ -3237,6 +3267,9 @@ var DataTableHeaderComponent = (function () {
DataTableHeaderComponent.prototype.trackByGroups = function (index, colGroup) {
return colGroup.type;
};
+ DataTableHeaderComponent.prototype.columnTrackingFn = function (index, column) {
+ return column.$$id;
+ };
DataTableHeaderComponent.prototype.onColumnResized = function (width, column) {
if (width <= column.minWidth) {
width = column.minWidth;
@@ -3342,6 +3375,10 @@ var DataTableHeaderComponent = (function () {
core_1.Input(),
__metadata('design:type', Number)
], DataTableHeaderComponent.prototype, "selectionType", void 0);
+ __decorate([
+ core_1.Input(),
+ __metadata('design:type', Boolean)
+ ], DataTableHeaderComponent.prototype, "reorderable", void 0);
__decorate([
core_1.HostBinding('style.height'),
core_1.Input(),
@@ -3376,7 +3413,7 @@ var DataTableHeaderComponent = (function () {
DataTableHeaderComponent = __decorate([
core_1.Component({
selector: 'datatable-header',
- template: "\n \n ",
+ template: "\n \n ",
host: {
class: 'datatable-header'
}
@@ -4219,6 +4256,7 @@ __export(__webpack_require__("./src/types/click.type.ts"));
(function (SelectionType) {
SelectionType[SelectionType["single"] = 'single'] = "single";
SelectionType[SelectionType["multi"] = 'multi'] = "multi";
+ SelectionType[SelectionType["multiClick"] = 'multiClick'] = "multiClick";
SelectionType[SelectionType["cell"] = 'cell'] = "cell";
SelectionType[SelectionType["checkbox"] = 'checkbox'] = "checkbox";
})(exports.SelectionType || (exports.SelectionType = {}));
diff --git a/release/index.map b/release/index.map
index 623f394ae..38981ed60 100644
--- a/release/index.map
+++ b/release/index.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap bf354a51095545cc6e89","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/core\"), require(\"rxjs/Rx\"), require(\"@angular/common\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"angular2-data-table\", [\"@angular/core\", \"rxjs/Rx\", \"@angular/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angular2-data-table\"] = factory(require(\"@angular/core\"), require(\"rxjs/Rx\"), require(\"@angular/common\"));\n\telse\n\t\troot[\"angular2-data-table\"] = factory(root[\"@angular/core\"], root[\"rxjs/Rx\"], root[\"@angular/common\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) {\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 harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\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 bf354a51095545cc6e89","import {\n Component, Input, PipeTransform, HostBinding, \n Output, EventEmitter, HostListener, ElementRef\n} from '@angular/core';\n\nimport { deepValueGetter, Keys } from '../../utils';\nimport { SortDirection } from '../../types';\n\n@Component({\n selector: 'datatable-body-cell',\n template: `\n \n \n \n \n \n \n \n \n
\n `,\n host: {\n class: 'datatable-body-cell'\n }\n})\nexport class DataTableBodyCellComponent {\n\n @Input() row: any;\n @Input() column: any;\n @Input() rowHeight: number;\n @Input() isSelected: boolean;\n\n @Input() set sorts(val: any[]) {\n this._sorts = val;\n this.calcSortDir = this.calcSortDir(val);\n }\n\n get sorts(): any[] {\n return this._sorts;\n }\n\n @Output() activate: EventEmitter = new EventEmitter();\n\n @HostBinding('class.active')\n isFocused: boolean = false;\n\n @HostBinding('class.sort-active')\n get isSortActive(): boolean {\n return !this.sortDir;\n }\n\n @HostBinding('class.sort-asc')\n get isSortAscending(): boolean {\n return this.sortDir === SortDirection.asc;\n }\n\n @HostBinding('class.sort-desc')\n get isSortDescending(): boolean {\n return this.sortDir === SortDirection.desc;\n }\n\n @HostBinding('style.width.px')\n get width(): number {\n return this.column.width;\n }\n\n @HostBinding('style.height')\n get height(): string|number {\n const height = this.rowHeight;\n if(isNaN(height)) return height;\n return height + 'px';\n }\n\n get value(): any {\n if (!this.row || !this.column || !this.column.prop) return '';\n const val = deepValueGetter(this.row, this.column.prop);\n const userPipe: PipeTransform = this.column.pipe;\n\n if(userPipe) return userPipe.transform(val);\n if(val !== undefined) return val;\n return '';\n }\n\n sortDir: SortDirection;\n element: any;\n _sorts: any[];\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n @HostListener('focus')\n onFocus(): void {\n this.isFocused = true;\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.isFocused = false;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n this.activate.emit({\n type: 'click',\n event,\n row: this.row,\n column: this.column,\n value: this.value,\n cellElement: this.element\n });\n }\n\n @HostListener('dblclick', ['$event'])\n onDblClick(event: MouseEvent): void {\n this.activate.emit({\n type: 'dblclick',\n event,\n row: this.row,\n column: this.column,\n value: this.value,\n cellElement: this.element\n });\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n const isTargetCell = event.target === this.element;\n\n const isAction =\n keyCode === Keys.return ||\n keyCode === Keys.down ||\n keyCode === Keys.up ||\n keyCode === Keys.left ||\n keyCode === Keys.right;\n\n if(isAction && isTargetCell) {\n event.preventDefault();\n event.stopPropagation();\n\n this.activate.emit({\n type: 'keydown',\n event,\n row: this.row,\n column: this.column,\n value: this.value,\n cellElement: this.element\n });\n }\n }\n\n onCheckboxChange(event): void {\n this.activate.emit({\n type: 'checkbox',\n event,\n row: this.row,\n column: this.column,\n value: this.value,\n cellElement: this.element\n });\n }\n\n calcSortDir(sorts: any[]): any {\n if(!sorts) return;\n\n const sort = sorts.find((s: any) => {\n return s.prop === this.column.prop;\n });\n\n if(sort) return sort.dir;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-cell.component.ts","import { \n Component, Input, Output, EventEmitter, HostListener \n} from '@angular/core';\n\n@Component({\n selector: 'datatable-row-wrapper',\n template: `\n \n \n \n \n
\n `,\n host: {\n class: 'datatable-row-wrapper'\n }\n})\nexport class DataTableRowWrapperComponent {\n\n @Input() rowDetailTemplate: any;\n @Input() detailRowHeight: any;\n @Input() expanded: boolean = false;\n @Input() row: any;\n @Output() rowContextmenu = new EventEmitter<{event: MouseEvent, row: any}>(false);\n\n @HostListener('contextmenu', ['$event'])\n onContextmenu($event: MouseEvent): void {\n this.rowContextmenu.emit({ event: $event, row: this.row });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-row-wrapper.component.ts","import {\n Component, Input, HostBinding, ElementRef, Output, EventEmitter, HostListener\n} from '@angular/core';\n\nimport {\n columnsByPin, columnGroupWidths, columnsByPinArr,\n translateXY, Keys, scrollbarWidth\n} from '../../utils';\n\n@Component({\n selector: 'datatable-body-row',\n template: `\n \n \n \n
\n `,\n host: {\n class: 'datatable-body-row'\n }\n})\nexport class DataTableBodyRowComponent {\n\n @Input() set columns(val: any[]) {\n this._columns = val;\n this.recalculateColumns(val);\n }\n\n get columns(): any[] {\n return this._columns;\n }\n\n @Input() set innerWidth(val: number) {\n this._innerWidth = val;\n this.recalculateColumns();\n }\n\n get innerWidth(): number {\n return this._innerWidth;\n }\n\n @Input() row: any;\n @Input() offsetX: number;\n\n @HostBinding('style.height.px')\n @Input() rowHeight: number;\n\n @HostBinding('class.active')\n @Input() isSelected: boolean;\n\n @HostBinding('class.datatable-row-even')\n get isEvenRow(): boolean {\n return this.row.$$index % 2 === 0;\n }\n\n @HostBinding('class.datatable-row-odd')\n get isOddRow(): boolean {\n return this.row.$$index % 2 !== 0;\n }\n\n @Output() activate: EventEmitter = new EventEmitter();\n\n element: any;\n columnGroupWidths: any;\n columnsByPin: any;\n _columns: any[];\n _innerWidth: number;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n trackByGroups(index: number, colGroup: any): any {\n return colGroup.type;\n }\n\n stylesByGroup(group: string) {\n const widths = this.columnGroupWidths;\n const offsetX = this.offsetX;\n\n let styles = {\n width: `${widths[group]}px`\n };\n\n if(group === 'left') {\n translateXY(styles, offsetX, 0);\n } else if(group === 'right') {\n const bodyWidth = parseInt(this.innerWidth + '', 0);\n const totalDiff = widths.total - bodyWidth;\n const offsetDiff = totalDiff - offsetX;\n const offset = (offsetDiff + scrollbarWidth) * -1;\n translateXY(styles, offset, 0);\n }\n\n return styles;\n }\n\n onActivate(event: any, index: number) {\n event.cellIndex = index;\n event.rowElement = this.element;\n this.activate.emit(event);\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n const isTargetRow = event.target === this.element;\n\n const isAction =\n keyCode === Keys.return ||\n keyCode === Keys.down ||\n keyCode === Keys.up ||\n keyCode === Keys.left ||\n keyCode === Keys.right;\n\n if(isAction && isTargetRow) {\n event.preventDefault();\n event.stopPropagation();\n\n this.activate.emit({\n type: 'keydown',\n event,\n row: this.row,\n rowElement: this.element\n });\n }\n }\n\n recalculateColumns(val: any[] = this.columns): void {\n const colsByPin = columnsByPin(val);\n this.columnsByPin = columnsByPinArr(val);\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body-row.component.ts","import {\n Component, Output, EventEmitter, Input, HostBinding, ViewChild\n} from '@angular/core';\nimport { translateXY, columnsByPin, columnGroupWidths, RowHeightCache } from '../../utils';\nimport { SelectionType } from '../../types';\nimport { ScrollerComponent } from './scroller.component';\n\n@Component({\n selector: 'datatable-body',\n template: `\n \n \n \n \n \n \n \n \n \n \n
\n \n `,\n host: {\n class: 'datatable-body'\n }\n})\nexport class DataTableBodyComponent {\n\n @Input() scrollbarV: boolean;\n @Input() scrollbarH: boolean;\n @Input() loadingIndicator: boolean;\n @Input() rowHeight: number;\n @Input() offsetX: number;\n @Input() detailRowHeight: any;\n @Input() emptyMessage: string;\n @Input() selectionType: SelectionType;\n @Input() selected: any[] = [];\n @Input() rowIdentity: any;\n @Input() rowDetailTemplate: any;\n @Input() selectCheck: any;\n @Input() trackByProp: string;\n\n @Input() set pageSize(val: number) {\n this._pageSize = val;\n this.recalcLayout();\n }\n\n get pageSize(): number {\n return this._pageSize;\n }\n\n @Input() set rows(val: any[]) {\n this._rows = val;\n this.recalcLayout();\n }\n\n get rows(): any[] {\n return this._rows;\n }\n\n @Input() set columns(val: any[]) {\n this._columns = val;\n\n const colsByPin = columnsByPin(val);\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\n }\n\n get columns(): any[] {\n return this._columns;\n }\n\n @Input() set offset(val: number) {\n this._offset = val;\n this.recalcLayout();\n }\n\n get offset(): number {\n return this._offset;\n }\n\n @Input() set rowCount(val: number) {\n this._rowCount = val;\n this.recalcLayout();\n }\n\n get rowCount(): number {\n return this._rowCount;\n }\n\n @Input() innerWidth: number;\n\n @HostBinding('style.width')\n get bodyWidth(): string {\n if (this.scrollbarH) {\n return this.innerWidth + 'px';\n } else {\n return '100%';\n }\n }\n\n @Input()\n @HostBinding('style.height')\n set bodyHeight(val) {\n if (this.scrollbarV) {\n this._bodyHeight = val + 'px';\n } else {\n this._bodyHeight = 'auto';\n }\n\n this.recalcLayout();\n }\n\n get bodyHeight() {\n return this._bodyHeight;\n }\n\n @Output() scroll: EventEmitter = new EventEmitter();\n @Output() page: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() select: EventEmitter = new EventEmitter();\n @Output() detailToggle: EventEmitter = new EventEmitter();\n @Output() rowContextmenu = new EventEmitter<{event: MouseEvent, row: any}>(false);\n\n @ViewChild(ScrollerComponent) scroller: ScrollerComponent;\n\n /**\n * Returns if selection is enabled.\n * \n * @readonly\n * @type {boolean}\n * @memberOf DataTableBodyComponent\n */\n get selectEnabled(): boolean {\n return !!this.selectionType;\n }\n\n /**\n * Property that would calculate the height of scroll bar\n * based on the row heights cache for virtual scroll. Other scenarios\n * calculate scroll height automatically (as height will be undefined).\n * \n * @readonly\n * @type {number}\n * @memberOf DataTableBodyComponent\n */\n get scrollHeight(): number {\n if(this.scrollbarV) {\n return this.rowHeightsCache.query(this.rowCount - 1);\n }\n }\n\n rowHeightsCache: RowHeightCache = new RowHeightCache();\n temp: any[] = [];\n offsetY: number = 0;\n indexes: any = {};\n columnGroupWidths: any;\n rowTrackingFn: any;\n\n _rows: any[];\n _bodyHeight: any;\n _columns: any[];\n _rowCount: number;\n _offset: number;\n _pageSize: number;\n\n constructor() {\n // declare fn here so we can get access to the `this` property\n this.rowTrackingFn = function(index: number, row: any): any {\n if(this.trackByProp) {\n return `${row.$$index}-${this.trackByProp}`;\n } else {\n return row.$$index;\n }\n }.bind(this);\n }\n\n /**\n * Updates the Y offset given a new offset.\n * \n * @param {number} [offset]\n * \n * @memberOf DataTableBodyComponent\n */\n updateOffsetY(offset?: number): void {\n if(this.scrollbarV && offset) {\n // First get the row Index that we need to move to.\n const rowIndex = this.pageSize * offset;\n offset = this.rowHeightsCache.query(rowIndex - 1);\n }\n\n this.scroller.setOffset(offset || 0);\n }\n\n /**\n * Body was scrolled, this is mainly useful for\n * when a user is server-side pagination via virtual scroll.\n * \n * @param {*} event\n * \n * @memberOf DataTableBodyComponent\n */\n onBodyScroll(event: any): void {\n const scrollYPos: number = event.scrollYPos;\n const scrollXPos: number = event.scrollXPos;\n\n // if scroll change, trigger update\n // this is mainly used for header cell positions\n if(this.offsetY !== scrollYPos || this.offsetX !== scrollXPos) {\n this.scroll.emit({\n offsetY: scrollYPos,\n offsetX: scrollXPos\n });\n }\n\n this.offsetY = scrollYPos;\n this.offsetX = scrollXPos;\n\n this.updateIndexes();\n this.updatePage(event.direction);\n this.updateRows();\n }\n\n /**\n * Updates the page given a direction.\n * \n * @param {string} direction\n * \n * @memberOf DataTableBodyComponent\n */\n updatePage(direction: string): void {\n let offset = this.indexes.first / this.pageSize;\n\n if(direction === 'up') {\n offset = Math.floor(offset);\n } else if(direction === 'down') {\n offset = Math.ceil(offset);\n }\n\n if(direction !== undefined && !isNaN(offset)) {\n this.page.emit({ offset });\n }\n }\n\n /**\n * Updates the rows in the view port\n * \n * @memberOf DataTableBodyComponent\n */\n updateRows(): void {\n const { first, last } = this.indexes;\n let rowIndex = first;\n let idx = 0;\n let temp: any[] = [];\n\n while (rowIndex < last && rowIndex < this.rowCount) {\n let row = this.rows[rowIndex];\n\n if(row) {\n row.$$index = rowIndex;\n temp[idx] = row;\n }\n\n idx++;\n rowIndex++;\n }\n\n this.temp = temp;\n }\n\n /**\n * Calculate row height based on the expanded state of the row.\n * \n * @param {*} row the row for which the height need to be calculated.\n * @returns {number} height of the row.\n * \n * @memberOf DataTableBodyComponent\n */\n getRowHeight(row: any): number {\n // Adding detail row height if its expanded.\n return this.rowHeight +\n (row.$$expanded === 1 ? this.detailRowHeight : 0);\n }\n\n /**\n * Calculates the styles for the row so that the rows can be moved in 2D space\n * during virtual scroll inside the DOM. In the below case the Y position is\n * manipulated. As an example, if the height of row 0 is 30 px and row 1 is\n * 100 px then following styles are generated:\n *\n * transform: translate3d(0px, 0px, 0px); -> row0\n * transform: translate3d(0px, 30px, 0px); -> row1\n * transform: translate3d(0px, 130px, 0px); -> row2\n *\n * Row heights have to be calculated based on the row heights cache as we wont\n * be able to determine which row is of what height before hand. In the above\n * case the positionY of the translate3d for row2 would be the sum of all the\n * heights of the rows before it (i.e. row0 and row1).\n * \n * @param {*} row The row that needs to be placed in the 2D space.\n * @returns {*} Returns the CSS3 style to be applied\n * \n * @memberOf DataTableBodyComponent\n */\n getRowsStyles(row: any): any {\n const rowHeight = this.getRowHeight(row);\n\n let styles = {\n height: rowHeight + 'px'\n };\n\n if(this.scrollbarV) {\n const idx = row ? row.$$index : 0;\n\n // const pos = idx * rowHeight;\n // The position of this row would be the sum of all row heights\n // until the previous row position.\n const pos = this.rowHeightsCache.query(idx - 1);\n\n translateXY(styles, 0, pos);\n }\n\n return styles;\n }\n\n /**\n * Hides the loading indicator\n * \n * \n * @memberOf DataTableBodyComponent\n */\n hideIndicator(): void {\n setTimeout(() => this.loadingIndicator = false, 500);\n }\n\n /**\n * Updates the index of the rows in the viewport\n * \n * @memberOf DataTableBodyComponent\n */\n updateIndexes(): void {\n let first = 0;\n let last = 0;\n\n if (this.scrollbarV) {\n // Calculation of the first and last indexes will be based on where the\n // scrollY position would be at. The last index would be the one\n // that shows up inside the view port the last.\n const height = parseInt(this.bodyHeight, 0);\n first = this.rowHeightsCache.getRowIndex(this.offsetY);\n last = this.rowHeightsCache.getRowIndex(height + this.offsetY) + 1;\n } else {\n first = Math.max(this.offset * this.pageSize, 0);\n last = Math.min((first + this.pageSize), this.rowCount);\n }\n\n this.indexes = { first, last };\n }\n\n /**\n * Refreshes the full Row Height cache. Should be used\n * when the entire row array state has changed.\n * \n * @returns {void}\n * \n * @memberOf DataTableBodyComponent\n */\n refreshRowHeightCache(): void {\n if(!this.scrollbarV) return;\n\n // clear the previous row height cache if already present.\n // this is useful during sorts, filters where the state of the\n // rows array is changed.\n this.rowHeightsCache.clearCache();\n\n // Initialize the tree only if there are rows inside the tree.\n if (this.rows && this.rows.length) {\n this.rowHeightsCache.initCache(\n this.rows, this.rowHeight, this.detailRowHeight);\n }\n }\n\n /**\n * Gets the index for the view port\n * \n * @returns {number}\n * \n * @memberOf DataTableBodyComponent\n */\n getAdjustedViewPortIndex(): number {\n // Capture the row index of the first row that is visible on the viewport.\n // If the scroll bar is just below the row which is highlighted then make that as the\n // first index.\n let viewPortFirstRowIndex = this.indexes.first;\n\n if (this.scrollbarV) {\n const offsetScroll = this.rowHeightsCache.query(viewPortFirstRowIndex - 1);\n return offsetScroll <= this.offsetY ? viewPortFirstRowIndex - 1 : viewPortFirstRowIndex;\n }\n\n return viewPortFirstRowIndex;\n }\n\n /**\n * Toggle the Expansion of the row i.e. if the row is expanded then it will\n * collapse and vice versa. Note that the expanded status is stored as\n * a part of the row object itself as we have to preserve the expanded row\n * status in case of sorting and filtering of the row set.\n * \n * @param {*} row The row for which the expansion needs to be toggled.\n * \n * @memberOf DataTableBodyComponent\n */\n toggleRowExpansion(row: any): void {\n // Capture the row index of the first row that is visible on the viewport.\n let viewPortFirstRowIndex = this.getAdjustedViewPortIndex();\n\n // If the detailRowHeight is auto --> only in case of non-virtualized scroll\n if(this.scrollbarV) {\n const detailRowHeight = this.detailRowHeight * (row.$$expanded ? -1 : 1);\n this.rowHeightsCache.update(row.$$index, detailRowHeight);\n }\n\n // Update the toggled row and update the heights in the cache.\n row.$$expanded ^= 1;\n\n this.detailToggle.emit({\n rows: [row],\n currentIndex: viewPortFirstRowIndex\n });\n }\n\n /**\n * Expand/Collapse all the rows no matter what their state is.\n * \n * @param {boolean} expanded When true, all rows are expanded and when false, all rows will be collapsed.\n * \n * @memberOf DataTableBodyComponent\n */\n toggleAllRows(expanded: boolean): void {\n let rowExpanded = expanded ? 1 : 0;\n\n // Capture the row index of the first row that is visible on the viewport.\n let viewPortFirstRowIndex = this.getAdjustedViewPortIndex();\n\n for(let row of this.rows) {\n row.$$expanded = rowExpanded;\n }\n\n if(this.scrollbarV) {\n // Refresh the full row heights cache since every row was affected.\n this.refreshRowHeightCache();\n }\n\n // Emit all rows that have been expanded.\n this.detailToggle.emit({\n rows: this.rows,\n currentIndex: viewPortFirstRowIndex\n });\n }\n\n /**\n * Recalculates the table\n * \n * @memberOf DataTableBodyComponent\n */\n recalcLayout(): void {\n this.refreshRowHeightCache();\n this.updateIndexes();\n this.updateRows();\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/body.component.ts","export * from './body.component';\nexport * from './body-cell.component';\nexport * from './body-row.component';\nexport * from './progress-bar.component';\nexport * from './scroller.component';\nexport * from './body-row-wrapper.component';\nexport * from './selection.component';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/index.ts","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'datatable-progress',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProgressBarComponent {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/progress-bar.component.ts","import {\n Component, Input, ElementRef, Output, EventEmitter, Renderer,\n OnInit, OnDestroy, HostBinding\n} from '@angular/core';\n\n@Component({\n selector: 'datatable-scroller',\n template: `\n \n `,\n host: {\n class: 'datatable-scroll'\n }\n})\nexport class ScrollerComponent implements OnInit, OnDestroy {\n\n @Input() scrollbarV: boolean = false;\n @Input() scrollbarH: boolean = false;\n\n @HostBinding('style.height.px')\n @Input() scrollHeight: number;\n\n @HostBinding('style.width.px')\n @Input() scrollWidth: number;\n\n @Output() scroll: EventEmitter = new EventEmitter();\n\n scrollYPos: number = 0;\n scrollXPos: number = 0;\n prevScrollYPos: number = 0;\n prevScrollXPos: number = 0;\n element: any;\n parentElement: any;\n onScrollListener: Function;\n\n constructor(element: ElementRef, private renderer: Renderer) {\n this.element = element.nativeElement;\n }\n\n ngOnInit(): void {\n // manual bind so we don't always listen\n if(this.scrollbarV || this.scrollbarH) {\n this.parentElement = this.element.parentElement.parentElement;\n this.onScrollListener = this.renderer.listen(\n this.parentElement, 'scroll', this.onScrolled.bind(this));\n }\n }\n\n ngOnDestroy(): void {\n if(this.scrollbarV || this.scrollbarH) {\n this.onScrollListener();\n }\n }\n\n setOffset(offsetY: number): void {\n if(this.parentElement) {\n this.parentElement.scrollTop = offsetY;\n }\n }\n\n onScrolled(event: MouseEvent): void {\n const dom: Element = event.currentTarget;\n this.scrollYPos = dom.scrollTop;\n this.scrollXPos = dom.scrollLeft;\n\n requestAnimationFrame(this.updateOffset.bind(this));\n }\n\n updateOffset(): void {\n let direction: string;\n if(this.scrollYPos < this.prevScrollYPos) {\n direction = 'down';\n } else if(this.scrollYPos > this.prevScrollYPos) {\n direction = 'up';\n }\n\n this.scroll.emit({\n direction,\n scrollYPos: this.scrollYPos,\n scrollXPos: this.scrollXPos\n });\n\n this.prevScrollYPos = this.scrollYPos;\n this.prevScrollXPos = this.scrollXPos;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/scroller.component.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { Keys, selectRows, selectRowsBetween } from '../../utils';\nimport { SelectionType } from '../../types';\n\nexport interface Model {\n type: string;\n event: MouseEvent | KeyboardEvent;\n row: any;\n rowElement: any;\n cellElement: any;\n cellIndex: number;\n}\n\n@Component({\n selector: 'datatable-selection',\n template: `\n \n `\n})\nexport class DataTableSelectionComponent {\n\n @Input() rows: any[];\n @Input() selected: any[];\n @Input() selectEnabled: boolean;\n @Input() selectionType: SelectionType;\n @Input() rowIdentity: any;\n @Input() selectCheck: any;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() select: EventEmitter = new EventEmitter();\n\n prevIndex: number;\n\n selectRow(event: KeyboardEvent | MouseEvent, index: number, row: any): void {\n if (!this.selectEnabled) return;\n\n const chkbox = this.selectionType === SelectionType.checkbox;\n const multi = this.selectionType === SelectionType.multi;\n let selected: any[] = [];\n\n if (multi || chkbox) {\n if (event.shiftKey) {\n const newSelected = [...this.selected];\n selected = selectRowsBetween(\n newSelected, \n this.rows, \n index, \n this.prevIndex, \n this.getRowSelectedIdx.bind(this));\n } else if (!event.shiftKey) {\n selected.push(row);\n } else {\n const newSelected = [...this.selected];\n selected = selectRows(newSelected, row, this.getRowSelectedIdx.bind(this));\n }\n } else {\n selected.push(row);\n }\n\n if(this.selectCheck) {\n selected = selected.filter(this.selectCheck.bind(this));\n }\n\n this.selected.splice(0, this.selected.length);\n this.selected.push(...selected);\n \n this.prevIndex = index;\n\n this.select.emit({\n selected\n });\n }\n\n onActivate(model: Model, index: number): void {\n const { type, event, row } = model;\n const chkbox = this.selectionType === SelectionType.checkbox;\n const select = (!chkbox && (type === 'click' || type === 'dblclick')) || \n (chkbox && type === 'checkbox');\n\n if(select) {\n this.selectRow(event, index, row);\n } else if(type === 'keydown') {\n if ((event).keyCode === Keys.return) {\n this.selectRow(event, index, row);\n } else {\n this.onKeyboardFocus(model);\n }\n }\n this.activate.emit(model);\n }\n\n onKeyboardFocus(model: Model): void {\n const { keyCode } = model.event;\n const shouldFocus =\n keyCode === Keys.up ||\n keyCode === Keys.down ||\n keyCode === Keys.right ||\n keyCode === Keys.left;\n\n if(shouldFocus) {\n const isCellSelection =\n this.selectionType === SelectionType.cell;\n\n if(!model.cellElement || !isCellSelection) {\n this.focusRow(model.rowElement, keyCode);\n } else if(isCellSelection) {\n this.focusCell(model.cellElement, model.rowElement, keyCode, model.cellIndex);\n }\n }\n }\n\n focusRow(rowElement: any, keyCode: number): void {\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\n if(nextRowElement) nextRowElement.focus();\n }\n\n getPrevNextRow(rowElement: any, keyCode: number): any {\n const parentElement = rowElement.parentElement;\n\n if(parentElement) {\n let focusElement: HTMLElement;\n if(keyCode === Keys.up) {\n focusElement = parentElement.previousElementSibling;\n } else if(keyCode === Keys.down) {\n focusElement = parentElement.nextElementSibling;\n }\n\n if(focusElement && focusElement.children.length) {\n return focusElement.children[0];\n }\n }\n }\n\n focusCell(cellElement: any, rowElement: any, keyCode: number, cellIndex: number): void {\n let nextCellElement: HTMLElement;\n\n if(keyCode === Keys.left) {\n nextCellElement = cellElement.previousElementSibling;\n } else if(keyCode === Keys.right) {\n nextCellElement = cellElement.nextElementSibling;\n } else if(keyCode === Keys.up || keyCode === Keys.down) {\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\n if(nextRowElement) {\n const children = nextRowElement.getElementsByClassName('datatable-body-cell');\n if(children.length) nextCellElement = children[cellIndex];\n }\n }\n\n if(nextCellElement) nextCellElement.focus();\n }\n\n getRowSelected(row: any): boolean {\n return this.getRowSelectedIdx(row, this.selected) > -1;\n }\n\n getRowSelectedIdx(row: any, selected: any[]): number {\n if(!selected || !selected.length) return -1;\n\n const rowId = this.rowIdentity(row);\n return selected.findIndex((r) => {\n const id = this.rowIdentity(r);\n return id === rowId;\n });\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/body/selection.component.ts","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ngx-datatable-cell-template]' })\nexport class DataTableColumnCellDirective {\n constructor(public template: TemplateRef) { };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column-cell.directive.ts","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ngx-datatable-header-template]' })\nexport class DataTableColumnHeaderDirective {\n constructor(public template: TemplateRef) { };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column-header.directive.ts","import { Directive, TemplateRef, ContentChild, Input } from '@angular/core';\nimport { DataTableColumnHeaderDirective } from './column-header.directive';\nimport { DataTableColumnCellDirective } from './column-cell.directive';\n\n@Directive({ selector: 'ngx-datatable-column' })\nexport class DataTableColumnDirective {\n\n @Input() name: string;\n @Input() prop: string;\n @Input() frozenLeft: any;\n @Input() frozenRight: any;\n @Input() flexGrow: number;\n @Input() resizeable: boolean;\n @Input() comparator: Function;\n @Input() pipe: any;\n @Input() sortable: boolean;\n @Input() draggable: boolean;\n @Input() canAutoResize: boolean;\n @Input() minWidth: number;\n @Input() width: number;\n @Input() maxWidth: number;\n @Input() checkboxable: boolean;\n @Input() headerCheckboxable: boolean;\n\n @Input()\n @ContentChild(DataTableColumnCellDirective, { read: TemplateRef }) \n cellTemplate: TemplateRef;\n\n @Input()\n @ContentChild(DataTableColumnHeaderDirective, { read: TemplateRef }) \n headerTemplate: TemplateRef;\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/columns/column.directive.ts","export * from './column.directive';\nexport * from './column-header.directive';\nexport * from './column-cell.directive';\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: 'ngx-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 * - `chkbox`. \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 }\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 bodyComponent: DataTableBodyComponent;\n\n /**\n * Returns if all rows are selected.\n * \n * @readonly\n * @private\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n get allRowsSelected(): boolean {\n return this.selected &&\n this.rows &&\n this.selected.length === this.rows.length;\n }\n\n element: HTMLElement;\n innerWidth: number;\n pageSize: number;\n bodyHeight: number;\n rowCount: number;\n offsetX: number = 0;\n rowDiffer: IterableDiffer;\n _count: number = 0;\n\n _rows: any[];\n _columns: any[];\n _columnTemplates: QueryList;\n _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 // before we splice, chk if we currently have all selected\n const allSelected = this.selected.length === this.rows.length;\n\n // remove all existing either way\n this.selected.splice(0, this.selected.length);\n\n // do the opposite here\n if(!allSelected) {\n this.selected.push(...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 {\n Component, Output, EventEmitter, ChangeDetectionStrategy, Input\n} from '@angular/core';\n\n@Component({\n selector: 'datatable-footer',\n template: `\n \n
{{rowCount.toLocaleString()}} {{totalMessage}}
\n
\n \n
\n `,\n host: {\n class: 'datatable-footer'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTableFooterComponent {\n\n @Input() footerHeight: number;\n @Input() rowCount: number;\n @Input() pageSize: number;\n @Input() offset: number;\n @Input() pagerLeftArrowIcon: string;\n @Input() pagerRightArrowIcon: string;\n @Input() pagerPreviousIcon: string;\n @Input() pagerNextIcon: string;\n @Input() totalMessage: string;\n\n @Output() page: EventEmitter = new EventEmitter();\n\n get isVisible(): boolean {\n return (this.rowCount / this.pageSize) > 1;\n }\n\n get curPage(): number {\n return this.offset + 1;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/footer.component.ts","export * from './footer.component';\nexport * from './pager.component';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/index.ts","import {\n Component, Input, Output, EventEmitter, ChangeDetectionStrategy\n} from '@angular/core';\n\n@Component({\n selector: 'datatable-pager',\n template: `\n \n `,\n host: {\n class: 'datatable-pager'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTablePagerComponent {\n\n @Input() pagerLeftArrowIcon: string;\n @Input() pagerRightArrowIcon: string;\n @Input() pagerPreviousIcon: string;\n @Input() pagerNextIcon: string;\n\n @Input()\n set size(val: number) {\n this._size = val;\n this.pages = this.calcPages();\n }\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set count(val: number) {\n this._count = val;\n this.pages = this.calcPages();\n }\n\n get count(): number {\n return this._count;\n }\n\n @Input()\n set page(val: number) {\n this._page = val;\n this.pages = this.calcPages();\n }\n\n get page(): number {\n return this._page;\n }\n\n get totalPages(): number {\n const count = this.size < 1 ? 1 : Math.ceil(this.count / this.size);\n return Math.max(count || 0, 1);\n }\n\n @Output() change: EventEmitter = new EventEmitter();\n\n _count: number = 0;\n _page: number = 1;\n _size: number = 0;\n pages: any;\n\n canPrevious(): boolean {\n return this.page > 1;\n }\n\n canNext(): boolean {\n return this.page < this.totalPages;\n }\n\n prevPage(): void {\n this.selectPage(this.page - 1);\n }\n\n nextPage(): void {\n this.selectPage(this.page + 1);\n }\n\n selectPage(page: number): void {\n if (page > 0 && page <= this.totalPages && page !== this.page) {\n this.page = page;\n\n this.change.emit({\n page\n });\n }\n }\n\n calcPages(page?: number): any[] {\n let pages = [];\n let startPage = 1;\n let endPage = this.totalPages;\n let maxSize = 5;\n const isMaxSized = maxSize < this.totalPages;\n\n page = page || this.page;\n\n if (isMaxSized) {\n startPage = ((Math.ceil(page / maxSize) - 1) * maxSize) + 1;\n endPage = Math.min(startPage + maxSize - 1, this.totalPages);\n }\n\n for (let num = startPage; num <= endPage; num++) {\n pages.push({\n number: num,\n text: num\n });\n }\n\n return pages;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/footer/pager.component.ts","import {\n Component, Input, EventEmitter, Output, HostBinding\n} from '@angular/core';\n\nimport { SortDirection, SortType, SelectionType } from '../../types';\nimport { nextSortDir } from '../../utils';\n\n@Component({\n selector: 'datatable-header-cell',\n template: `\n \n \n \n \n \n \n \n \n \n
\n `\n})\nexport class DataTableHeaderCellComponent {\n\n @Input() sortType: SortType;\n @Input() column: any;\n @Input() sortAscendingIcon: string;\n @Input() sortDescendingIcon: string;\n @Input() allRowsSelected: boolean;\n @Input() selectionType: SelectionType;\n\n @HostBinding('style.height.px')\n @Input() headerHeight: number;\n\n @Input() set sorts(val: any[]) {\n this._sorts = val;\n this.sortDir = this.calcSortDir(val);\n this.sortClass = this.calcSortClass(this.sortDir);\n }\n\n get sorts(): any[] {\n return this._sorts;\n }\n\n @Output() sort: EventEmitter = new EventEmitter();\n @Output() select: EventEmitter = new EventEmitter();\n\n @HostBinding('class')\n get columnCssClasses(): any {\n let cls = 'datatable-header-cell';\n\n if(this.column.sortable) cls += ' sortable';\n if(this.column.resizeable) cls += ' resizeable';\n\n const sortDir = this.sortDir;\n if(sortDir) {\n cls += ` sort-active sort-${sortDir}`;\n }\n\n return cls;\n }\n\n @HostBinding('attr.title')\n get name(): string {\n return this.column.name || this.column.prop;\n }\n\n @HostBinding('style.minWidth.px')\n get minWidth(): number {\n return this.column.minWidth;\n }\n\n @HostBinding('style.maxWidth.px')\n get maxWidth(): number {\n return this.column.maxWidth;\n }\n\n @HostBinding('style.width.px')\n get width(): number {\n return this.column.width;\n }\n\n sortClass: string;\n sortDir: SortDirection;\n _sorts: any[];\n\n calcSortDir(sorts: any[]): any {\n if(sorts && this.column) {\n const sort = sorts.find((s: any) => {\n return s.prop === this.column.prop;\n });\n\n if(sort) return sort.dir;\n }\n }\n\n onSort(): void {\n if(!this.column.sortable) return;\n\n const newValue = nextSortDir(this.sortType, this.sortDir);\n this.sort.emit({\n column: this.column,\n prevValue: this.sortDir,\n newValue\n });\n }\n\n calcSortClass(sortDir): string {\n if(sortDir === SortDirection.asc) {\n return `sort-asc ${this.sortAscendingIcon}`;\n } else if(sortDir === SortDirection.desc) {\n return `sort-desc ${this.sortDescendingIcon}`;\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/header-cell.component.ts","import {\n Component, Output, EventEmitter, Input, HostBinding\n} from '@angular/core';\nimport { SortType, SelectionType } from '../../types';\nimport { columnsByPin, columnGroupWidths, columnsByPinArr, translateXY } from '../../utils';\nimport { DataTableColumnDirective } from '../columns';\n\n@Component({\n selector: 'datatable-header',\n template: `\n \n `,\n host: {\n class: 'datatable-header'\n }\n})\nexport class DataTableHeaderComponent {\n\n @Input() sortAscendingIcon: any;\n @Input() sortDescendingIcon: any;\n @Input() scrollbarH: boolean;\n @Input() innerWidth: number;\n @Input() offsetX: number;\n @Input() sorts: any[];\n @Input() sortType: SortType;\n @Input() allRowsSelected: boolean;\n @Input() selectionType: SelectionType;\n\n @HostBinding('style.height')\n @Input() set headerHeight(val: any) {\n if(val !== 'auto') { \n this._headerHeight = `${val}px`;\n } else {\n this._headerHeight = val;\n }\n }\n\n get headerHeight() {\n return this._headerHeight;\n }\n\n @Input() set columns(val: any[]) {\n this._columns = val;\n\n const colsByPin = columnsByPin(val);\n this.columnsByPin = columnsByPinArr(val);\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\n }\n\n get columns(): any[] { \n return this._columns; \n }\n\n @Output() sort: EventEmitter = new EventEmitter();\n @Output() reorder: EventEmitter = new EventEmitter();\n @Output() resize: EventEmitter = new EventEmitter();\n @Output() select: EventEmitter = new EventEmitter();\n\n columnsByPin: any;\n columnGroupWidths: any;\n _columns: any[];\n _headerHeight: string;\n\n @HostBinding('style.width')\n get headerWidth(): string {\n if(this.scrollbarH) {\n return this.innerWidth + 'px';\n }\n\n return '100%';\n }\n\n trackByGroups(index: number, colGroup: any): any {\n return colGroup.type;\n }\n\n onColumnResized(width: number, column: DataTableColumnDirective): void {\n if (width <= column.minWidth) {\n width = column.minWidth;\n } else if(width >= column.maxWidth) {\n width = column.maxWidth;\n }\n\n this.resize.emit({\n column,\n prevValue: column.width,\n newValue: width\n });\n }\n\n onColumnReordered({ prevIndex, newIndex, model }: any): void {\n this.reorder.emit({\n column: model,\n prevValue: prevIndex,\n newValue: newIndex\n });\n }\n\n onSort({ column, prevValue, newValue }: any): void {\n const sorts = this.calcNewSorts(column, prevValue, newValue);\n this.sort.emit({\n sorts,\n column,\n prevValue,\n newValue\n });\n }\n\n calcNewSorts(column: any, prevValue: number, newValue: number): any[] {\n let idx = 0;\n\n let sorts = this.sorts.map((s, i) => {\n s = Object.assign({}, s);\n if(s.prop === column.prop) idx = i;\n return s;\n });\n\n if (newValue === undefined) {\n sorts.splice(idx, 1);\n } else if (prevValue) {\n sorts[idx].dir = newValue;\n } else {\n if (this.sortType === SortType.single) {\n sorts.splice(0, this.sorts.length);\n }\n\n sorts.push({ dir: newValue, prop: column.prop });\n }\n\n return sorts;\n }\n\n stylesByGroup(group: string): any {\n const widths = this.columnGroupWidths;\n const offsetX = this.offsetX;\n\n let styles = {\n width: `${widths[group]}px`\n };\n\n if(group === 'center') {\n translateXY(styles, offsetX * -1, 0);\n } else if(group === 'right') {\n const totalDiff = widths.total - this.innerWidth;\n const offset = totalDiff * -1;\n translateXY(styles, offset, 0);\n }\n\n return styles;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/header.component.ts","export * from './header.component';\nexport * from './header-cell.component';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/index.ts","export * from './datatable.component';\n\nexport * from './header';\nexport * from './body';\nexport * from './footer';\n\nexport * from './columns';\nexport * from './row-detail';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/index.ts","export * from './row-detail.directive';\nexport * from './row-detail-template.directive';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/index.ts","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngx-datatable-row-detail-template]'\n})\nexport class DatatableRowDetailTemplateDirective {\n constructor(public template: TemplateRef) { };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/row-detail-template.directive.ts","import { Directive, TemplateRef, ContentChild } from '@angular/core';\nimport { DatatableRowDetailTemplateDirective } from './row-detail-template.directive';\n\n@Directive({ selector: 'ngx-datatable-row-detail' })\nexport class DatatableRowDetailDirective {\n\n @ContentChild(DatatableRowDetailTemplateDirective, { read: TemplateRef }) \n template: TemplateRef;\n\n get rowDetailTemplate(): TemplateRef {\n return this.template;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/row-detail/row-detail.directive.ts","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n DatatableComponent,\n DataTableColumnDirective,\n DataTableHeaderComponent,\n DataTableBodyComponent,\n DataTableFooterComponent,\n DataTableHeaderCellComponent,\n DataTablePagerComponent,\n DataTableBodyRowComponent,\n DataTableRowWrapperComponent,\n ProgressBarComponent,\n DataTableBodyCellComponent,\n DatatableRowDetailDirective,\n ScrollerComponent,\n DataTableSelectionComponent,\n DataTableColumnHeaderDirective,\n DataTableColumnCellDirective,\n DatatableRowDetailTemplateDirective\n} from './components';\n\nimport {\n VisibilityDirective,\n LongPressDirective,\n ResizeableDirective,\n OrderableDirective,\n DraggableDirective\n} from './directives';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n VisibilityDirective,\n DraggableDirective,\n ResizeableDirective,\n OrderableDirective,\n LongPressDirective,\n ScrollerComponent,\n DatatableComponent,\n DataTableColumnDirective,\n DataTableHeaderComponent,\n DataTableHeaderCellComponent,\n DataTableBodyComponent,\n DataTableFooterComponent,\n DataTablePagerComponent,\n ProgressBarComponent,\n DataTableBodyRowComponent,\n DataTableRowWrapperComponent,\n DatatableRowDetailDirective,\n DatatableRowDetailTemplateDirective,\n DataTableBodyCellComponent,\n DataTableSelectionComponent,\n DataTableColumnHeaderDirective,\n DataTableColumnCellDirective\n ],\n exports: [\n DatatableComponent,\n DatatableRowDetailDirective,\n DatatableRowDetailTemplateDirective,\n DataTableColumnDirective,\n DataTableColumnHeaderDirective,\n DataTableColumnCellDirective\n ]\n})\nexport class NgxDatatableModule { }\n\n\n\n// WEBPACK FOOTER //\n// ./src/datatable.module.ts","import { \n Directive, ElementRef, HostListener, Input, Output, EventEmitter, OnDestroy\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs/Rx';\n\n/**\n * Draggable Directive for Angular2\n *\n * Inspiration:\n * https://github.com/AngularClass/angular2-examples/blob/master/rx-draggable/directives/draggable.ts\n * http://stackoverflow.com/questions/35662530/how-to-implement-drag-and-drop-in-angular2\n *\n */\n@Directive({ selector: '[draggable]' })\nexport class DraggableDirective implements OnDestroy {\n\n @Input() dragModel: any;\n @Input() dragX: boolean = true;\n @Input() dragY: boolean = true;\n\n @Output() dragStart: EventEmitter = new EventEmitter();\n @Output() dragging: EventEmitter = new EventEmitter();\n @Output() dragEnd: EventEmitter = new EventEmitter();\n\n element: HTMLElement;\n isDragging: boolean = false;\n subscription: Subscription;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n onMouseup(event: MouseEvent): void {\n this.isDragging = false;\n this.element.classList.remove('dragging');\n\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.dragEnd.emit({\n event,\n element: this.element,\n model: this.dragModel\n });\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onMousedown(event: MouseEvent): void {\n if ( (event.target).classList.contains('draggable')) {\n event.preventDefault();\n this.isDragging = true;\n\n const mouseDownPos = { x: event.clientX, y: event.clientY };\n this.subscription = Observable.fromEvent(document, 'mousemove')\n .subscribe((ev: MouseEvent) => this.move(ev, mouseDownPos));\n\n this.dragStart.emit({\n event,\n element: this.element,\n model: this.dragModel\n });\n }\n }\n\n move(event: MouseEvent, mouseDownPos: {x: number, y: number }): void {\n if (!this.dragging) return;\n\n const x = event.clientX - mouseDownPos.x;\n const y = event.clientY - mouseDownPos.y;\n\n if (this.dragX) this.element.style.left = `${x}px`;\n if (this.dragY) this.element.style.top = `${y}px`;\n\n if (this.dragX || this.dragY) {\n this.element.classList.add('dragging');\n\n this.dragging.emit({\n event,\n element: this.element,\n model: this.dragModel\n });\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/draggable.directive.ts","export * from './draggable.directive';\nexport * from './long-press.directive';\nexport * from './orderable.directive';\nexport * from './resizeable.directive';\nexport * from './visibility.directive';\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/index.ts","import {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostBinding,\n HostListener\n} from '@angular/core';\n\n@Directive({ selector: '[long-press]' })\nexport class LongPressDirective {\n\n @Input() duration: number = 500;\n\n @Output() longPress: EventEmitter = new EventEmitter();\n @Output() longPressing: EventEmitter = new EventEmitter();\n @Output() longPressEnd: EventEmitter = new EventEmitter();\n\n pressing: boolean;\n isLongPressing: boolean;\n timeout: any;\n mouseX: number = 0;\n mouseY: number = 0;\n\n @HostBinding('class.press')\n get press(): boolean { return this.pressing; }\n\n @HostBinding('class.longpress')\n get isLongPress(): boolean { return this.longPressing !== undefined; }\n\n @HostListener('mousedown', ['$event'])\n onMouseDown(event: MouseEvent): void {\n // don't do right/middle clicks\n if(event.which !== 1) return;\n\n this.mouseX = event.clientX;\n this.mouseY = event.clientY;\n\n this.pressing = true;\n this.isLongPressing = false;\n\n this.timeout = setTimeout(() => {\n this.isLongPressing = true;\n this.longPress.emit(event);\n this.loop(event);\n }, this.duration);\n\n this.loop(event);\n }\n\n @HostListener('mousemove', ['$event'])\n onMouseMove(event: MouseEvent): void {\n if(this.pressing && !this.longPressing) {\n const xThres = (event.clientX - this.mouseX) > 10;\n const yThres = (event.clientY - this.mouseY) > 10;\n\n if(xThres || yThres) {\n this.endPress();\n }\n }\n }\n\n loop(event: Event): void {\n if(this.longPressing) {\n this.timeout = setTimeout(() => {\n this.longPressing.emit(event);\n this.loop(event);\n }, 50);\n }\n }\n\n endPress(): void {\n clearTimeout(this.timeout);\n this.isLongPressing = false;\n this.pressing = false;\n this.longPressEnd.emit(true);\n }\n\n @HostListener('mouseup')\n onMouseUp(): void { this.endPress(); }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/long-press.directive.ts","import {\n Directive, Output, EventEmitter, ContentChildren,\n QueryList, KeyValueDiffers, AfterContentInit, OnDestroy\n} from '@angular/core';\n\nimport { DraggableDirective } from './draggable.directive';\n\n@Directive({ selector: '[orderable]' })\nexport class OrderableDirective implements AfterContentInit, OnDestroy {\n\n @Output() reorder: EventEmitter = new EventEmitter();\n\n @ContentChildren(DraggableDirective, { descendants: true })\n draggables: QueryList;\n\n positions: any;\n differ: any;\n\n constructor(differs: KeyValueDiffers) {\n this.differ = differs.find({}).create(null);\n }\n\n ngAfterContentInit(): void {\n // HACK: Investigate Better Way\n this.updateSubscriptions();\n this.draggables.changes.subscribe(\n this.updateSubscriptions.bind(this));\n }\n\n ngOnDestroy(): void {\n this.draggables.forEach(d => {\n d.dragStart.unsubscribe();\n d.dragEnd.unsubscribe();\n });\n }\n\n updateSubscriptions(): void {\n const diffs = this.differ.diff(this.draggables.toArray());\n\n if(diffs) {\n const subscribe = ({ currentValue, previousValue }: any) => {\n unsubscribe({ previousValue });\n\n if(currentValue) {\n currentValue.dragStart.subscribe(this.onDragStart.bind(this));\n currentValue.dragEnd.subscribe(this.onDragEnd.bind(this));\n }\n };\n\n const unsubscribe = ({ previousValue }: any) => {\n if(previousValue) {\n previousValue.dragStart.unsubscribe();\n previousValue.dragEnd.unsubscribe();\n }\n };\n\n diffs.forEachAddedItem(subscribe.bind(this));\n diffs.forEachChangedItem(subscribe.bind(this));\n diffs.forEachRemovedItem(unsubscribe.bind(this));\n }\n }\n\n onDragStart(): void {\n this.positions = {};\n\n let i = 0;\n for(let dragger of this.draggables.toArray()) {\n let elm = dragger.element;\n this.positions[dragger.dragModel.prop] = {\n left: parseInt(elm.offsetLeft.toString(), 0),\n index: i++\n };\n }\n }\n\n onDragEnd({ element, model }: any) {\n const newPos = parseInt(element.offsetLeft.toString(), 0);\n const prevPos = this.positions[model.prop];\n\n let i = 0;\n for(let prop in this.positions) {\n let pos = this.positions[prop];\n\n let movedLeft = newPos < pos.left && prevPos.left > pos.left;\n let movedRight = newPos > pos.left && prevPos.left < pos.left;\n\n if(movedLeft || movedRight) {\n this.reorder.emit({\n prevIndex: prevPos.index,\n newIndex: i,\n model\n });\n }\n\n i++;\n }\n\n element.style.left = 'auto';\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/orderable.directive.ts","import { \n Directive, ElementRef, HostListener, Input, Output, EventEmitter, OnDestroy\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs/Rx';\n\n@Directive({\n selector: '[resizeable]',\n host: {\n '[class.resizeable]': 'resizeEnabled'\n }\n})\nexport class ResizeableDirective implements OnDestroy {\n\n @Input() resizeEnabled: boolean = true;\n @Input() minWidth: number;\n @Input() maxWidth: number;\n\n @Output() resize: EventEmitter = new EventEmitter();\n\n element: HTMLElement;\n subscription: Subscription;\n resizing: boolean = false;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n\n if (this.resizeEnabled) {\n const node = document.createElement('span');\n node.classList.add('resize-handle');\n this.element.appendChild(node);\n }\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n @HostListener('document:mouseup')\n onMouseup(): void {\n this.resizing = false;\n\n if (this.subscription && !this.subscription.closed) {\n this.subscription.unsubscribe();\n this.resize.emit(this.element.clientWidth);\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onMousedown(event: MouseEvent): void {\n const isHandle = ((event.target)).classList.contains('resize-handle');\n const initialWidth = this.element.clientWidth;\n const mouseDownScreenX = event.screenX;\n\n if (isHandle) {\n event.stopPropagation();\n this.resizing = true;\n\n this.subscription = Observable.fromEvent(document, 'mousemove')\n .subscribe((e: MouseEvent) => this.move(e, initialWidth, mouseDownScreenX));\n }\n }\n\n move(event: MouseEvent, initialWidth: number, mouseDownScreenX: number): void {\n const movementX = event.screenX - mouseDownScreenX;\n const newWidth = initialWidth + movementX;\n\n const overMinWidth = !this.minWidth || newWidth >= this.minWidth;\n const underMaxWidth = !this.maxWidth || newWidth <= this.maxWidth;\n\n if (overMinWidth && underMaxWidth) {\n this.element.style.width = `${newWidth}px`;\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/resizeable.directive.ts","import {\n Directive, Output, EventEmitter, ElementRef, HostBinding, NgZone, OnInit, OnDestroy\n} from '@angular/core';\n\n/**\n * Visibility Observer Directive\n *\n * Usage:\n *\n * \t\t\n * \t\t
\n *\n */\n@Directive({ selector: '[visibility-observer]' })\nexport class VisibilityDirective implements OnInit, OnDestroy {\n\n @HostBinding('class.visible') \n isVisible: boolean = false;\n\n @Output() visible: EventEmitter = new EventEmitter();\n\n timeout: any;\n\n constructor(private element: ElementRef, private zone: NgZone) { }\n\n ngOnInit(): void {\n this.runCheck();\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.timeout);\n }\n\n onVisibilityChange(): void {\n // trigger zone recalc for columns\n this.zone.run(() => {\n this.isVisible = true;\n this.visible.emit(true);\n });\n }\n\n runCheck(): void {\n const check = () => {\n // https://davidwalsh.name/offsetheight-visibility\n const { offsetHeight, offsetWidth } = this.element.nativeElement;\n\n if (offsetHeight && offsetWidth) {\n clearTimeout(this.timeout);\n this.onVisibilityChange();\n } else {\n clearTimeout(this.timeout);\n this.zone.runOutsideAngular(() => {\n this.timeout = setTimeout(() => check(), 50);\n });\n }\n };\n\n setTimeout(() => check());\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/directives/visibility.directive.ts","export * from './datatable.module'\nexport * from './types';\nexport * from './components';\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.ts","export enum ClickType {\n single = 'single' as any,\n double = 'double' as any \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/click.type.ts","export enum ColumnMode {\n standard = 'standard' as any,\n flex = 'flex' as any,\n force = 'force' as any\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/column-mode.type.ts","export * from './column-mode.type';\nexport * from './sort.type';\nexport * from './sort-direction.type';\nexport * from './selection.type';\nexport * from './click.type';\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/index.ts","export enum SelectionType {\n single = 'single' as any,\n multi = 'multi' as any,\n cell = 'cell' as any,\n checkbox = 'checkbox' as any\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/selection.type.ts","export enum SortDirection {\n asc = 'asc' as any,\n desc = 'desc' as any\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/sort-direction.type.ts","export enum SortType {\n single = 'single' as any,\n multi = 'multi' as any\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/types/sort.type.ts","/**\n * Converts strings from something to camel case\n * http://stackoverflow.com/questions/10425287/convert-dash-separated-string-to-camelcase\n * @param {string} str\n * @return {string} camel case string\n */\nexport function camelCase(str: string): string {\n // Replace special characters with a space\n str = str.replace(/[^a-zA-Z0-9 ]/g, ' ');\n // put a space before an uppercase letter\n str = str.replace(/([a-z](?=[A-Z]))/g, '$1 ');\n\n // Lower case first character and some other stuff\n str = str.replace(/([^a-zA-Z0-9 ])|^[0-9]+/g, '').trim().toLowerCase();\n\n // uppercase characters preceded by a space or number\n str = str.replace(/([ 0-9]+)([a-zA-Z])/g, function(a, b, c) {\n return b.trim() + c.toUpperCase();\n });\n\n return str;\n}\n\n/**\n * Converts strings from camel case to words\n * http://stackoverflow.com/questions/7225407/convert-camelcasetext-to-camel-case-text\n *\n * @export\n * @param {any} str\n * @returns string\n */\nexport function deCamelCase(str: string): string {\n return str\n .replace(/([A-Z])/g, (match) => ` ${match}`)\n .replace(/^./, (match) => match.toUpperCase());\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/camel-case.ts","import { DataTableColumnDirective } from '../components/columns';\nimport { camelCase, deCamelCase, id } from '../utils';\n\n/**\n * Sets the column defaults\n * \n * @export\n * @param {any[]} columns\n * @returns\n */\nexport function setColumnDefaults(columns: any[]) {\n if(!columns) return;\n\n for(let column of columns) {\n if(!column.$$id) {\n column.$$id = id();\n }\n\n // translate name => prop\n if(!column.prop && column.name) {\n column.prop = camelCase(column.name);\n }\n\n // format props if no name passed\n if(column.prop && !column.name) {\n column.name = deCamelCase(column.prop);\n }\n\n if(!column.hasOwnProperty('resizeable')) {\n column.resizeable = true;\n }\n\n if(!column.hasOwnProperty('sortable')) {\n column.sortable = true;\n }\n\n if(!column.hasOwnProperty('draggable')) {\n column.draggable = true;\n }\n\n if(!column.hasOwnProperty('canAutoResize')) {\n column.canAutoResize = true;\n }\n\n if(!column.hasOwnProperty('width')) {\n column.width = 150;\n }\n }\n}\n\n/**\n * Translates templates definitions to objects\n * \n * @export\n * @param {DataTableColumnDirective[]} templates\n * @returns {any[]}\n */\nexport function translateTemplates(templates: DataTableColumnDirective[]): any[] {\n let result: any[] = [];\n\n for(const temp of templates) {\n let col: any = {};\n\n const props = Object.getOwnPropertyNames(temp);\n for(const prop of props) {\n col[prop] = temp[prop];\n }\n\n if(temp.headerTemplate) {\n col.headerTemplate = temp.headerTemplate;\n }\n\n if(temp.cellTemplate) {\n col.cellTemplate = temp.cellTemplate;\n }\n\n result.push(col);\n }\n\n return result;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/column-helper.ts","/**\n * Returns the columns by pin.\n * @param {array} cols\n */\nexport function columnsByPin(cols: any[]) {\n let ret: {left: any, center: any, right: any} = {\n left: [],\n center: [],\n right: []\n };\n\n if(cols) {\n for(let col of cols) {\n if(col.frozenLeft) {\n ret.left.push(col);\n } else if(col.frozenRight) {\n ret.right.push(col);\n } else {\n ret.center.push(col);\n }\n }\n }\n\n return ret;\n}\n\n/**\n * Returns the widths of all group sets of a column\n * @param {object} groups\n * @param {array} all\n */\nexport function columnGroupWidths(groups: any, all: any) {\n return {\n left: columnTotalWidth(groups.left),\n center: columnTotalWidth(groups.center),\n right: columnTotalWidth(groups.right),\n total: columnTotalWidth(all)\n };\n}\n\n/**\n * Calculates the total width of all columns and their groups\n * @param {array} columns\n * @param {string} prop width to get\n */\nexport function columnTotalWidth(columns: any[], prop?: string) {\n let totalWidth = 0;\n\n if(columns) {\n for(let c of columns) {\n const has = prop && c[prop];\n const width = has ? c[prop] : c.width;\n totalWidth = totalWidth + parseFloat(width);\n }\n }\n\n return totalWidth;\n}\n\n/**\n * Calculates the total width of all columns and their groups\n * @param {array} columns\n * @param {string} property width to get\n */\nexport function columnsTotalWidth(columns: any, prop?: any) {\n let totalWidth = 0;\n\n for(let column of columns) {\n const has = prop && column[prop];\n totalWidth = totalWidth + (has ? column[prop] : column.width);\n }\n\n return totalWidth;\n}\n\nexport function columnsByPinArr(val: any) {\n let colsByPinArr = [];\n const colsByPin = columnsByPin(val);\n\n colsByPinArr.push({ type: 'left', columns: colsByPin['left'] });\n colsByPinArr.push({ type: 'center', columns: colsByPin['center'] });\n colsByPinArr.push({ type: 'right', columns: colsByPin['right'] });\n\n return colsByPinArr;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/column.ts","/**\n * Returns a deep object given a string. zoo['animal.type']\n * @param {object} obj\n * @param {string} path\n */\nexport function deepValueGetter(obj: Object, path: string) {\n if(!obj || !path) return obj;\n\n let current = obj;\n let split = path.split('.');\n\n if(split.length) {\n for(let i = 0, len = split.length; i < len; i++) {\n current = current[split[i]];\n\n // if found undefined, return empty string\n if(current === undefined || current === null) return '';\n }\n }\n\n return current;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/deep-getter.ts","/**\n * Creates a unique object id.\n * http://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js\n */\nexport function id() {\n return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/id.ts","export * from './id';\nexport * from './column';\nexport * from './deep-getter';\nexport * from './camel-case';\nexport * from './keys';\nexport * from './math';\nexport * from './prefixes';\nexport * from './scrollbar-width';\nexport * from './selection';\nexport * from './translate';\nexport * from './throttle';\nexport * from './sort';\nexport * from './row-height-cache';\nexport * from './column-helper';\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.ts","export enum Keys {\n up = 38,\n down = 40,\n return = 13,\n escape = 27,\n left = 37,\n right = 39\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/keys.ts","import { columnsByPin, columnsTotalWidth } from './column';\n\n/**\n * Calculates the Total Flex Grow\n * @param {array}\n */\nexport function getTotalFlexGrow(columns: any[]) {\n let totalFlexGrow = 0;\n\n for (let c of columns) {\n totalFlexGrow += c.flexGrow || 0;\n }\n\n return totalFlexGrow;\n}\n\n/**\n * Adjusts the column widths.\n * Inspired by: https://github.com/facebook/fixed-data-table/blob/master/src/FixedDataTableWidthHelper.js\n * @param {array} all columns\n * @param {int} width\n */\nexport function adjustColumnWidths(allColumns: any, expectedWidth: any) {\n let columnsWidth = columnsTotalWidth(allColumns);\n let totalFlexGrow = getTotalFlexGrow(allColumns);\n let colsByGroup = columnsByPin(allColumns);\n\n if (columnsWidth !== expectedWidth) {\n scaleColumns(colsByGroup, expectedWidth, totalFlexGrow);\n }\n}\n\n/**\n * Resizes columns based on the flexGrow property, while respecting manually set widths\n * @param {array} colsByGroup\n * @param {int} maxWidth\n * @param {int} totalFlexGrow\n */\nfunction scaleColumns(colsByGroup: any, maxWidth: any, totalFlexGrow: any) {\n // calculate total width and flexgrow points for coulumns that can be resized\n for(let attr in colsByGroup) {\n for(let column of colsByGroup[attr]) {\n if (!column.canAutoResize) {\n maxWidth -= column.width;\n totalFlexGrow -= column.flexGrow;\n } else {\n column.width = 0;\n }\n }\n }\n\n let hasMinWidth = {};\n let remainingWidth = maxWidth;\n\n // resize columns until no width is left to be distributed\n do {\n let widthPerFlexPoint = remainingWidth / totalFlexGrow;\n remainingWidth = 0;\n\n for(let attr in colsByGroup) {\n for(let column of colsByGroup[attr]) {\n // if the column can be resize and it hasn't reached its minimum width yet\n if (column.canAutoResize && !hasMinWidth[column.prop]) {\n let newWidth = column.width + column.flexGrow * widthPerFlexPoint;\n if (column.minWidth !== undefined && newWidth < column.minWidth) {\n remainingWidth += newWidth - column.minWidth;\n column.width = column.minWidth;\n hasMinWidth[column.prop] = true;\n } else {\n column.width = newWidth;\n }\n }\n }\n }\n } while (remainingWidth !== 0);\n}\n\n/**\n * Forces the width of the columns to\n * distribute equally but overflowing when nesc.\n *\n * Rules:\n *\n * - If combined withs are less than the total width of the grid,\n * proporation the widths given the min / max / noraml widths to fill the width.\n *\n * - If the combined widths, exceed the total width of the grid,\n * use the standard widths.\n *\n * - If a column is resized, it should always use that width\n *\n * - The proporational widths should never fall below min size if specified.\n *\n * - If the grid starts off small but then becomes greater than the size ( + / - )\n * the width should use the orginial width; not the newly proporatied widths.\n *\n * @param {array} allColumns\n * @param {int} expectedWidth\n */\nexport function forceFillColumnWidths(\n allColumns: any[],\n expectedWidth: number,\n startIdx: number,\n allowBleed: boolean,\n defaultColWidth: number = 300) {\n \n let columnsToResize = allColumns\n .slice(startIdx + 1, allColumns.length)\n .filter((c) => { \n return c.canAutoResize !== false; \n });\n\n for (let column of columnsToResize) {\n if(!column.$$oldWidth) {\n column.$$oldWidth = column.width;\n }\n }\n\n let additionWidthPerColumn = 0;\n let exceedsWindow = false;\n let contentWidth = getContentWidth(allColumns, defaultColWidth);\n let remainingWidth = expectedWidth - contentWidth;\n let columnsProcessed: any[] = [];\n\n // This loop takes care of the\n do {\n additionWidthPerColumn = remainingWidth / columnsToResize.length;\n exceedsWindow = contentWidth >= expectedWidth;\n\n for (let column of columnsToResize) {\n if (exceedsWindow && allowBleed) {\n column.width = column.$$oldWidth || column.width || defaultColWidth;\n } else {\n const newSize = (column.width || defaultColWidth) + additionWidthPerColumn;\n\n if (column.minWidth && newSize < column.minWidth) {\n column.width = column.minWidth;\n columnsProcessed.push(column);\n } else if (column.maxWidth && newSize > column.maxWidth) {\n column.width = column.maxWidth;\n columnsProcessed.push(column);\n } else {\n column.width = newSize;\n }\n }\n\n column.width = Math.max(0, column.width);\n }\n\n contentWidth = getContentWidth(allColumns);\n remainingWidth = expectedWidth - contentWidth;\n removeProcessedColumns(columnsToResize, columnsProcessed);\n } while (remainingWidth > 0 && columnsToResize.length !== 0);\n}\n\n/**\n * Remove the processed columns from the current active columns.\n *\n * @param columnsToResize Array containing the columns that need to be resized.\n * @param columnsProcessed Array containing the columns that have already been processed.\n */\nfunction removeProcessedColumns ( columnsToResize: any[], columnsProcessed: any[]) {\n for(let column of columnsProcessed) {\n const index = columnsToResize.indexOf(column);\n columnsToResize.splice(index, 1);\n }\n}\n\n/**\n * Gets the width of the columns\n *\n * @param {array} allColumns\n * @param {number} [defaultColWidth=300]\n * @returns {number}\n */\nfunction getContentWidth(allColumns: any, defaultColWidth: number = 300): number {\n let contentWidth = 0;\n\n for(let column of allColumns) {\n contentWidth += (column.width || defaultColWidth);\n }\n\n return contentWidth;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/math.ts","import { camelCase } from './camel-case';\n\nlet cache = {};\nlet testStyle = document.createElement('div').style;\n\n// Get Prefix\n// http://davidwalsh.name/vendor-prefix\nconst prefix = (function () {\n const styles = window.getComputedStyle(document.documentElement, '');\n const pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/))[1];\n const dom = ('WebKit|Moz|MS|O').match(new RegExp('(' + pre + ')', 'i'))[1];\n\n return {\n dom,\n lowercase: pre,\n css: `-${pre}-`,\n js: pre[0].toUpperCase() + pre.substr(1)\n };\n})();\n\nexport function getVendorPrefixedName(property: string) {\n const name = camelCase(property);\n\n if(!cache[name]) {\n if(testStyle[prefix.css + property] !== undefined) {\n cache[name] = prefix.css + property;\n } else if(testStyle[property] !== undefined) {\n cache[name] = property;\n }\n }\n\n return cache[name];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/prefixes.ts","/**\n * This object contains the cache of the various row heights that are present inside\n * the data table. Its based on Fenwick tree data structure that helps with\n * querying sums that have time complexity of log n.\n *\n * Fenwick Tree Credits: http://petr-mitrichev.blogspot.com/2013/05/fenwick-tree-range-updates.html\n * https://github.com/mikolalysenko/fenwick-tree\n *\n */\nexport class RowHeightCache {\n\n /**\n * Tree Array stores the cumulative information of the row heights to perform efficient\n * range queries and updates. Currently the tree is initialized to the base row\n * height instead of the detail row height.\n */\n private treeArray: number[] = [];\n\n /**\n * Clear the Tree array.\n */\n clearCache(): void {\n this.treeArray = [];\n }\n\n /**\n * Initialize the Fenwick tree with row Heights.\n *\n * @param rows The array of rows which contain the expanded status.\n * @param rowHeight The row height.\n * @param detailRowHeight The detail row height.\n */\n initCache(rows: any[], rowHeight: number, detailRowHeight: number): void {\n if (isNaN(rowHeight)) {\n throw new Error(`Row Height cache initialization failed. Please ensure that 'rowHeight' is a\n valid number value: (${rowHeight}) when 'scrollbarV' is enabled.`);\n }\n\n // Add this additional guard in case detailRowHeight is set to 'auto' as it wont work.\n if (isNaN(detailRowHeight)) {\n throw new Error(`Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\n valid number value: (${detailRowHeight}) when 'scrollbarV' is enabled.`);\n }\n\n const n = rows.length;\n this.treeArray = new Array(n);\n\n for(let i = 0; i < n; ++i) {\n this.treeArray[i] = 0;\n }\n\n for(let i = 0; i < n; ++i) {\n let currentRowHeight = rowHeight;\n\n // Add the detail row height to the already expanded rows.\n // This is useful for the table that goes through a filter or sort.\n if (rows[i] && rows[i].$$expanded === 1) {\n currentRowHeight += detailRowHeight;\n }\n\n this.update(i, currentRowHeight);\n }\n }\n\n /**\n * Given the ScrollY position i.e. sum, provide the rowIndex\n * that is present in the current view port. Below handles edge cases.\n *\n * @param scrollY - The scrollY position.\n * @returns {number} - Index representing the first row visible in the viewport\n */\n getRowIndex(scrollY: number): number {\n if(scrollY === 0) return 0;\n return this.calcRowIndex(scrollY);\n }\n\n /**\n * When a row is expanded or rowHeight is changed, update the height. This can\n * be utilized in future when Angular Data table supports dynamic row heights.\n *\n *\n * @param atRowIndex Update the data at this index row in the grid.\n * @param byRowHeight Update by the rowHeight provided.\n */\n update (atRowIndex: number, byRowHeight: number): void {\n if (!this.treeArray.length) {\n throw new Error(`Update at index ${atRowIndex} with value ${byRowHeight} failed:\n Row Height cache not initialized.`);\n }\n\n const n = this.treeArray.length;\n atRowIndex |= 0;\n\n while(atRowIndex < n) {\n this.treeArray[atRowIndex] += byRowHeight;\n atRowIndex |= (atRowIndex + 1);\n }\n }\n\n /**\n * Range Sum query from 1 to the rowIndex\n *\n * @param atIndex The row index until which the total height needs to be obtained.\n * @returns {number} The total height from row 1 to the rowIndex.\n */\n query(atIndex: number): number {\n if (!this.treeArray.length) {\n throw new Error(`query at index ${atIndex} failed: Fenwick tree array not initialized.`);\n }\n\n let sum = 0;\n atIndex |= 0;\n\n while(atIndex >= 0) {\n sum += this.treeArray[atIndex];\n atIndex = (atIndex & (atIndex + 1)) - 1;\n }\n\n return sum;\n }\n\n /**\n * Find the total height between 2 row indexes\n * @param atIndexA The row index from\n * @param atIndexB The row index to\n * @returns {number} total pixel height between 2 row indexes.\n */\n queryBetween(atIndexA: number, atIndexB: number): number {\n return this.query(atIndexB) - this.query(atIndexA - 1);\n }\n\n /**\n * Given the ScrollY position i.e. sum, provide the rowIndex\n * that is present in the current view port.\n *\n * @param sum - The scrollY position.\n * @returns {number} - Index representing the first row visible in the viewport\n */\n private calcRowIndex(sum: number): number {\n if(!this.treeArray.length) return 0;\n\n let pos = -1;\n const dataLength = this.treeArray.length;\n\n // Get the highest bit for the block size.\n const highestBit = Math.pow(2, dataLength.toString(2).length - 1);\n\n for (let blockSize = highestBit; blockSize !== 0; blockSize >>= 1) {\n let nextPos = pos + blockSize;\n if (nextPos < dataLength && sum >= this.treeArray[nextPos]) {\n sum -= this.treeArray[nextPos];\n pos = nextPos;\n }\n }\n\n return pos + 1;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/row-height-cache.ts","/**\n * Gets the width of the scrollbar. Nesc for windows\n * http://stackoverflow.com/a/13382873/888165\n * @return {int} width\n */\nexport function getScrollBarWidth() {\n let outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n outer.style.msOverflowStyle = 'scrollbar';\n document.body.appendChild(outer);\n\n let widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n\n let inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n\n let widthWithScroll = inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n\n return widthNoScroll - widthWithScroll;\n};\n\nexport const scrollbarWidth = getScrollBarWidth();\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/scrollbar-width.ts","export function selectRows(selected: any[], row: any, comparefn: Function) {\n const selectedIndex = comparefn(row, selected);\n\n if(selectedIndex > -1) {\n selected.splice(selectedIndex, 1);\n } else {\n selected.push(row);\n }\n\n return selected;\n}\n\nexport function selectRowsBetween(selected: any[], rows: any[], index: number, prevIndex: number, comparefn: Function) {\n const reverse = index < prevIndex;\n\n for(let i = 0, len = rows.length; i < len; i++) {\n const row = rows[i];\n const greater = i >= prevIndex && i <= index;\n const lesser = i <= prevIndex && i >= index;\n\n let range = { start: 0, end: 0 };\n if (reverse) {\n range = {\n start: index,\n end: (prevIndex - index)\n };\n } else {\n range = {\n start: prevIndex,\n end: index + 1\n };\n }\n\n if((reverse && lesser) || (!reverse && greater)) {\n const idx = comparefn(row, selected);\n\n // if reverse shift selection (unselect) and the\n // row is already selected, remove it from selected\n if (reverse && idx > -1) {\n selected.splice(idx, 1);\n continue;\n }\n\n // if in the positive range to be added to `selected`, and\n // not already in the selected array, add it\n if( i >= range.start && i < range.end) {\n if (idx === -1) {\n selected.push(row);\n }\n }\n }\n }\n\n return selected;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/selection.ts","import { SortType, SortDirection } from '../types';\nimport { deepValueGetter } from './deep-getter';\n/**\n * Gets the next sort direction\n * @param {SortType} sortType\n * @param {SortDirection} currentSort\n * @return {SortDirection}\n */\nexport function nextSortDir(sortType: SortType, current: SortDirection): SortDirection {\n if (sortType === SortType.single) {\n if(current === SortDirection.asc) {\n return SortDirection.desc;\n } else {\n return SortDirection.asc;\n }\n } else {\n if(!current) {\n return SortDirection.asc;\n } else if(current === SortDirection.asc) {\n return SortDirection.desc;\n } else if(current === SortDirection.desc) {\n return undefined;\n }\n }\n};\n\n/**\n * Adapted from fueld-ui on 6/216\n * https://github.com/FuelInteractive/fuel-ui/tree/master/src/pipes/OrderBy\n * @param {any} a\n * @param {any} b\n * @return {number} position\n */\nexport function orderByComparator(a: any, b: any): number {\n if (a === null || typeof a === 'undefined') a = 0;\n if (b === null || typeof b === 'undefined') b = 0;\n\n if ((isNaN(parseFloat(a)) || !isFinite(a)) || (isNaN(parseFloat(b)) || !isFinite(b))) {\n // Convert to string in case of a=0 or b=0\n a = String(a);\n b = String(b);\n // Isn't a number so lowercase the string to properly compare\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n } else {\n // Parse strings as numbers to compare properly\n if (parseFloat(a) < parseFloat(b)) return -1;\n if (parseFloat(a) > parseFloat(b)) return 1;\n }\n\n // equal each other\n return 0;\n}\n\n/**\n * Sorts the rows\n * \n * @export\n * @param {any[]} rows\n * @param {any[]} columns\n * @param {any[]} dirs\n * @returns\n */\nexport function sortRows(rows: any[], columns: any[], dirs: any[]): any[] {\n if(!rows || !dirs || !dirs.length || !columns) return rows;\n\n let temp = [...rows];\n let cols = columns.reduce((obj, col) => {\n if(col.comparator && typeof col.comparator === 'function') {\n obj[col.prop] = col.comparator;\n }\n return obj;\n }, {});\n\n return temp.sort(function(a: any, b: any) {\n for(const { prop, dir } of dirs) {\n const propA = deepValueGetter(a, prop);\n const propB = deepValueGetter(b, prop);\n\n const compareFn = cols[prop] || orderByComparator;\n const comparison = dir !== SortDirection.desc ?\n compareFn(propA, propB) :\n -compareFn(propA, propB);\n\n // Don't return 0 yet in case of needing to sort by next property\n if (comparison !== 0) return comparison;\n }\n\n // equal each other\n return 0;\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/sort.ts","/**\n * Throttle a function\n * \n * @export\n * @param {*} func\n * @param {number} wait\n * @param {*} [options]\n * @returns\n */\nexport function throttle(func: any, wait: number, options?: any) {\n options = options || {};\n let context;\n let args;\n let result;\n let timeout = null;\n let previous = 0;\n\n function later() {\n previous = options.leading === false ? 0 : +new Date();\n timeout = null;\n result = func.apply(context, args);\n }\n\n return function() {\n let now = +new Date();\n\n if (!previous && options.leading === false) {\n previous = now;\n }\n\n let remaining = wait - (now - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n result = func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\n/**\n * Throttle decorator\n *\n * class MyClass {\n * throttleable(10)\n * myFn() { ... }\n * }\n * \n * @export\n * @param {number} duration\n * @param {*} [options]\n * @returns\n */\nexport function throttleable(duration: number, options?: any) {\n return function innerDecorator (target, key, descriptor) {\n return {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: function getter () {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: descriptor.enumerable,\n value: throttle(descriptor.value, duration, options)\n });\n\n return this[key];\n }\n };\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/throttle.ts","import { getVendorPrefixedName } from './prefixes';\nimport { camelCase } from './camel-case';\n\n// browser detection and prefixing tools\nconst transform = getVendorPrefixedName('transform');\nconst backfaceVisibility = getVendorPrefixedName('backfaceVisibility');\nconst hasCSSTransforms = !!getVendorPrefixedName('transform');\nconst hasCSS3DTransforms = !!getVendorPrefixedName('perspective');\nconst ua = window.navigator.userAgent;\nconst isSafari = (/Safari\\//).test(ua) && !(/Chrome\\//).test(ua);\n\nexport function translateXY(styles: any, x: number, y: number) {\n if (hasCSSTransforms) {\n if (!isSafari && hasCSS3DTransforms) {\n styles[transform] = `translate3d(${x}px, ${y}px, 0)`;\n styles[backfaceVisibility] = 'hidden';\n } else {\n styles[camelCase(transform)] = `translate(${x}px, ${y}px)`;\n }\n } else {\n styles.top = `${y}px`;\n styles.left = `${x}px`;\n }\n}\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 a571d98bb67bf28a03c0","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/core\"), require(\"rxjs/Rx\"), require(\"@angular/common\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"angular2-data-table\", [\"@angular/core\", \"rxjs/Rx\", \"@angular/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angular2-data-table\"] = factory(require(\"@angular/core\"), require(\"rxjs/Rx\"), require(\"@angular/common\"));\n\telse\n\t\troot[\"angular2-data-table\"] = factory(root[\"@angular/core\"], root[\"rxjs/Rx\"], root[\"@angular/common\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) {\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 harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\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 a571d98bb67bf28a03c0","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 sortDir: SortDirection;\r\n element: any;\r\n _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}\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 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 {\n Component, Input, HostBinding, ElementRef, Output, EventEmitter, HostListener\n} from '@angular/core';\n\nimport {\n columnsByPin, columnGroupWidths, columnsByPinArr,\n translateXY, Keys, scrollbarWidth\n} from '../../utils';\n\n@Component({\n selector: 'datatable-body-row',\n template: `\n \n \n \n
\n `,\n host: {\n class: 'datatable-body-row'\n }\n})\nexport class DataTableBodyRowComponent {\n\n @Input() set columns(val: any[]) {\n this._columns = val;\n this.recalculateColumns(val);\n }\n\n get columns(): any[] {\n return this._columns;\n }\n\n @Input() set innerWidth(val: number) {\n this._innerWidth = val;\n this.recalculateColumns();\n }\n\n get innerWidth(): number {\n return this._innerWidth;\n }\n\n @Input() row: any;\n @Input() offsetX: number;\n\n @HostBinding('style.height.px')\n @Input() rowHeight: number;\n\n @HostBinding('class.active')\n @Input() isSelected: boolean;\n\n @HostBinding('class.datatable-row-even')\n get isEvenRow(): boolean {\n return this.row.$$index % 2 === 0;\n }\n\n @HostBinding('class.datatable-row-odd')\n get isOddRow(): boolean {\n return this.row.$$index % 2 !== 0;\n }\n\n @Output() activate: EventEmitter = new EventEmitter();\n\n element: any;\n columnGroupWidths: any;\n columnsByPin: any;\n _columns: any[];\n _innerWidth: number;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n trackByGroups(index: number, colGroup: any): any {\n return colGroup.type;\n }\n\n columnTrackingFn(index: number, column: any): any {\n return column.$$id;\n }\n\n stylesByGroup(group: string) {\n const widths = this.columnGroupWidths;\n const offsetX = this.offsetX;\n\n let styles = {\n width: `${widths[group]}px`\n };\n\n if(group === 'left') {\n translateXY(styles, offsetX, 0);\n } else if(group === 'right') {\n const bodyWidth = parseInt(this.innerWidth + '', 0);\n const totalDiff = widths.total - bodyWidth;\n const offsetDiff = totalDiff - offsetX;\n const offset = (offsetDiff + scrollbarWidth) * -1;\n translateXY(styles, offset, 0);\n }\n\n return styles;\n }\n\n onActivate(event: any, index: number) {\n event.cellIndex = index;\n event.rowElement = this.element;\n this.activate.emit(event);\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n const isTargetRow = event.target === this.element;\n\n const isAction =\n keyCode === Keys.return ||\n keyCode === Keys.down ||\n keyCode === Keys.up ||\n keyCode === Keys.left ||\n keyCode === Keys.right;\n\n if(isAction && isTargetRow) {\n event.preventDefault();\n event.stopPropagation();\n\n this.activate.emit({\n type: 'keydown',\n event,\n row: this.row,\n rowElement: this.element\n });\n }\n }\n\n recalculateColumns(val: any[] = this.columns): void {\n const colsByPin = columnsByPin(val);\n this.columnsByPin = columnsByPinArr(val);\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\n }\n\n}\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 rowHeightsCache: RowHeightCache = new RowHeightCache();\r\n temp: any[] = [];\r\n offsetY: number = 0;\r\n indexes: any = {};\r\n columnGroupWidths: any;\r\n rowTrackingFn: any;\r\n\r\n _rows: any[];\r\n _bodyHeight: any;\r\n _columns: any[];\r\n _rowCount: number;\r\n _offset: number;\r\n _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 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 scrollYPos: number = 0;\r\n scrollXPos: number = 0;\r\n prevScrollYPos: number = 0;\r\n prevScrollXPos: number = 0;\r\n element: any;\r\n parentElement: any;\r\n 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(): void {\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(): void {\r\n if(this.scrollbarV || this.scrollbarH) {\r\n this.onScrollListener();\r\n }\r\n }\r\n\r\n setOffset(offsetY: number): void {\r\n if(this.parentElement) {\r\n this.parentElement.scrollTop = offsetY;\r\n }\r\n }\r\n\r\n onScrolled(event: MouseEvent): void {\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(): void {\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';\nimport { Keys, selectRows, selectRowsBetween } from '../../utils';\nimport { SelectionType } from '../../types';\n\nexport interface Model {\n type: string;\n event: MouseEvent | KeyboardEvent;\n row: any;\n rowElement: any;\n cellElement: any;\n cellIndex: number;\n}\n\n@Component({\n selector: 'datatable-selection',\n template: `\n \n `\n})\nexport class DataTableSelectionComponent {\n\n @Input() rows: any[];\n @Input() selected: any[];\n @Input() selectEnabled: boolean;\n @Input() selectionType: SelectionType;\n @Input() rowIdentity: any;\n @Input() selectCheck: any;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() select: EventEmitter = new EventEmitter();\n\n prevIndex: number;\n\n selectRow(event: KeyboardEvent | MouseEvent, index: number, row: any): void {\n if (!this.selectEnabled) return;\n\n const chkbox = this.selectionType === SelectionType.checkbox;\n const multi = this.selectionType === SelectionType.multi;\n const multiClick = this.selectionType == SelectionType.multiClick;\n let selected: any[] = [];\n\n if (multi || chkbox || multiClick) {\n if (event.shiftKey) {\n selected = selectRowsBetween(\n [...this.selected], \n this.rows, \n index, \n this.prevIndex, \n this.getRowSelectedIdx.bind(this));\n } else if (event.ctrlKey || multiClick || chkbox) {\n selected = selectRows([...this.selected], row, this.getRowSelectedIdx.bind(this));\n } else {\n selected = selectRows([], row, this.getRowSelectedIdx.bind(this));\n }\n } else {\n selected = selectRows([], row, this.getRowSelectedIdx.bind(this));\n }\n\n if(typeof this.selectCheck === 'function') {\n selected = selected.filter(this.selectCheck.bind(this));\n }\n\n this.selected.splice(0, this.selected.length);\n this.selected.push(...selected);\n \n this.prevIndex = index;\n\n this.select.emit({\n selected\n });\n }\n\n onActivate(model: Model, index: number): void {\n const { type, event, row } = model;\n const chkbox = this.selectionType === SelectionType.checkbox;\n const select = (!chkbox && (type === 'click' || type === 'dblclick')) || \n (chkbox && type === 'checkbox');\n\n if(select) {\n this.selectRow(event, index, row);\n } else if(type === 'keydown') {\n if ((event).keyCode === Keys.return) {\n this.selectRow(event, index, row);\n } else {\n this.onKeyboardFocus(model);\n }\n }\n this.activate.emit(model);\n }\n\n onKeyboardFocus(model: Model): void {\n const { keyCode } = model.event;\n const shouldFocus =\n keyCode === Keys.up ||\n keyCode === Keys.down ||\n keyCode === Keys.right ||\n keyCode === Keys.left;\n\n if(shouldFocus) {\n const isCellSelection =\n this.selectionType === SelectionType.cell;\n\n if(!model.cellElement || !isCellSelection) {\n this.focusRow(model.rowElement, keyCode);\n } else if(isCellSelection) {\n this.focusCell(model.cellElement, model.rowElement, keyCode, model.cellIndex);\n }\n }\n }\n\n focusRow(rowElement: any, keyCode: number): void {\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\n if(nextRowElement) nextRowElement.focus();\n }\n\n getPrevNextRow(rowElement: any, keyCode: number): any {\n const parentElement = rowElement.parentElement;\n\n if(parentElement) {\n let focusElement: HTMLElement;\n if(keyCode === Keys.up) {\n focusElement = parentElement.previousElementSibling;\n } else if(keyCode === Keys.down) {\n focusElement = parentElement.nextElementSibling;\n }\n\n if(focusElement && focusElement.children.length) {\n return focusElement.children[0];\n }\n }\n }\n\n focusCell(cellElement: any, rowElement: any, keyCode: number, cellIndex: number): void {\n let nextCellElement: HTMLElement;\n\n if(keyCode === Keys.left) {\n nextCellElement = cellElement.previousElementSibling;\n } else if(keyCode === Keys.right) {\n nextCellElement = cellElement.nextElementSibling;\n } else if(keyCode === Keys.up || keyCode === Keys.down) {\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\n if(nextRowElement) {\n const children = nextRowElement.getElementsByClassName('datatable-body-cell');\n if(children.length) nextCellElement = children[cellIndex];\n }\n }\n\n if(nextCellElement) nextCellElement.focus();\n }\n\n getRowSelected(row: any): boolean {\n return this.getRowSelectedIdx(row, this.selected) > -1;\n }\n\n getRowSelectedIdx(row: any, selected: any[]): number {\n if(!selected || !selected.length) return -1;\n\n const rowId = this.rowIdentity(row);\n return selected.findIndex((r) => {\n const id = this.rowIdentity(r);\n return id === rowId;\n });\n }\n\n}\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: '[ngx-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: '[ngx-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: 'ngx-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 @Input()\r\n @ContentChild(DataTableColumnCellDirective, { read: TemplateRef }) \r\n cellTemplate: TemplateRef;\r\n\r\n @Input()\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: 'ngx-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 * - `chkbox`\n * - `multiClick`\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 }\n\n /**\n * CSS class added to root element if mulit click select\n * \n * @readonly\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n @HostBinding('class.multi-click-selection')\n get isMultiClickSelection(): boolean {\n return this.selectionType === SelectionType.multiClick;\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 bodyComponent: DataTableBodyComponent;\n\n /**\n * Returns if all rows are selected.\n * \n * @readonly\n * @private\n * @type {boolean}\n * @memberOf DatatableComponent\n */\n get allRowsSelected(): boolean {\n return this.selected &&\n this.rows &&\n this.selected.length === this.rows.length;\n }\n\n element: HTMLElement;\n innerWidth: number;\n pageSize: number;\n bodyHeight: number;\n rowCount: number;\n offsetX: number = 0;\n rowDiffer: IterableDiffer;\n _count: number = 0;\n\n _rows: any[];\n _columns: any[];\n _columnTemplates: QueryList;\n _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 // before we splice, chk if we currently have all selected\n const allSelected = this.selected.length === this.rows.length;\n\n // remove all existing either way\n this.selected.splice(0, this.selected.length);\n\n // do the opposite here\n if(!allSelected) {\n this.selected.push(...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(): boolean {\r\n return (this.rowCount / this.pageSize) > 1;\r\n }\r\n\r\n get curPage(): number {\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 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 _count: number = 0;\r\n _page: number = 1;\r\n _size: number = 0;\r\n 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 = [];\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 {\n Component, Input, EventEmitter, Output, HostBinding\n} from '@angular/core';\n\nimport { SortDirection, SortType, SelectionType } from '../../types';\nimport { nextSortDir } from '../../utils';\n\n@Component({\n selector: 'datatable-header-cell',\n template: `\n \n \n \n \n \n \n \n \n \n
\n `\n})\nexport class DataTableHeaderCellComponent {\n\n @Input() sortType: SortType;\n @Input() column: any;\n @Input() sortAscendingIcon: string;\n @Input() sortDescendingIcon: string;\n @Input() allRowsSelected: boolean;\n @Input() selectionType: SelectionType;\n\n @HostBinding('style.height.px')\n @Input() headerHeight: number;\n\n @Input() set sorts(val: any[]) {\n this._sorts = val;\n this.sortDir = this.calcSortDir(val);\n this.sortClass = this.calcSortClass(this.sortDir);\n }\n\n get sorts(): any[] {\n return this._sorts;\n }\n\n @Output() sort: EventEmitter = new EventEmitter();\n @Output() select: EventEmitter = new EventEmitter();\n\n @HostBinding('class')\n get columnCssClasses(): any {\n let cls = 'datatable-header-cell';\n\n if(this.column.sortable) cls += ' sortable';\n if(this.column.resizeable) cls += ' resizeable';\n\n const sortDir = this.sortDir;\n if(sortDir) {\n cls += ` sort-active sort-${sortDir}`;\n }\n\n return cls;\n }\n\n @HostBinding('attr.title')\n get name(): string {\n return this.column.name || this.column.prop;\n }\n\n @HostBinding('style.minWidth.px')\n get minWidth(): number {\n return this.column.minWidth;\n }\n\n @HostBinding('style.maxWidth.px')\n get maxWidth(): number {\n return this.column.maxWidth;\n }\n\n @HostBinding('style.width.px')\n get width(): number {\n return this.column.width;\n }\n\n get isCheckboxable(): boolean {\n return \n this.column.checkboxable && \n this.column.headerCheckboxable && \n this.selectionType === SelectionType.checkbox;\n }\n\n sortClass: string;\n sortDir: SortDirection;\n _sorts: any[];\n\n calcSortDir(sorts: any[]): any {\n if(sorts && this.column) {\n const sort = sorts.find((s: any) => {\n return s.prop === this.column.prop;\n });\n\n if(sort) return sort.dir;\n }\n }\n\n onSort(): void {\n if(!this.column.sortable) return;\n\n const newValue = nextSortDir(this.sortType, this.sortDir);\n this.sort.emit({\n column: this.column,\n prevValue: this.sortDir,\n newValue\n });\n }\n\n calcSortClass(sortDir): string {\n if(sortDir === SortDirection.asc) {\n return `sort-asc ${this.sortAscendingIcon}`;\n } else if(sortDir === SortDirection.desc) {\n return `sort-desc ${this.sortDescendingIcon}`;\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/header/header-cell.component.ts","import {\n Component, Output, EventEmitter, Input, HostBinding\n} from '@angular/core';\nimport { SortType, SelectionType } from '../../types';\nimport { columnsByPin, columnGroupWidths, columnsByPinArr, translateXY } from '../../utils';\nimport { DataTableColumnDirective } from '../columns';\n\n@Component({\n selector: 'datatable-header',\n template: `\n \n `,\n host: {\n class: 'datatable-header'\n }\n})\nexport class DataTableHeaderComponent {\n\n @Input() sortAscendingIcon: any;\n @Input() sortDescendingIcon: any;\n @Input() scrollbarH: boolean;\n @Input() innerWidth: number;\n @Input() offsetX: number;\n @Input() sorts: any[];\n @Input() sortType: SortType;\n @Input() allRowsSelected: boolean;\n @Input() selectionType: SelectionType;\n @Input() reorderable: boolean;\n\n @HostBinding('style.height')\n @Input() set headerHeight(val: any) {\n if(val !== 'auto') { \n this._headerHeight = `${val}px`;\n } else {\n this._headerHeight = val;\n }\n }\n\n get headerHeight() {\n return this._headerHeight;\n }\n\n @Input() set columns(val: any[]) {\n this._columns = val;\n\n const colsByPin = columnsByPin(val);\n this.columnsByPin = columnsByPinArr(val);\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\n }\n\n get columns(): any[] { \n return this._columns; \n }\n\n @Output() sort: EventEmitter = new EventEmitter();\n @Output() reorder: EventEmitter = new EventEmitter();\n @Output() resize: EventEmitter = new EventEmitter();\n @Output() select: EventEmitter = new EventEmitter();\n\n columnsByPin: any;\n columnGroupWidths: any;\n _columns: any[];\n _headerHeight: string;\n\n @HostBinding('style.width')\n get headerWidth(): string {\n if(this.scrollbarH) {\n return this.innerWidth + 'px';\n }\n\n return '100%';\n }\n\n trackByGroups(index: number, colGroup: any): any {\n return colGroup.type;\n }\n\n columnTrackingFn(index: number, column: any): any {\n return column.$$id;\n }\n\n onColumnResized(width: number, column: DataTableColumnDirective): void {\n if (width <= column.minWidth) {\n width = column.minWidth;\n } else if(width >= column.maxWidth) {\n width = column.maxWidth;\n }\n\n this.resize.emit({\n column,\n prevValue: column.width,\n newValue: width\n });\n }\n\n onColumnReordered({ prevIndex, newIndex, model }: any): void {\n this.reorder.emit({\n column: model,\n prevValue: prevIndex,\n newValue: newIndex\n });\n }\n\n onSort({ column, prevValue, newValue }: any): void {\n const sorts = this.calcNewSorts(column, prevValue, newValue);\n this.sort.emit({\n sorts,\n column,\n prevValue,\n newValue\n });\n }\n\n calcNewSorts(column: any, prevValue: number, newValue: number): any[] {\n let idx = 0;\n\n let sorts = this.sorts.map((s, i) => {\n s = Object.assign({}, s);\n if(s.prop === column.prop) idx = i;\n return s;\n });\n\n if (newValue === undefined) {\n sorts.splice(idx, 1);\n } else if (prevValue) {\n sorts[idx].dir = newValue;\n } else {\n if (this.sortType === SortType.single) {\n sorts.splice(0, this.sorts.length);\n }\n\n sorts.push({ dir: newValue, prop: column.prop });\n }\n\n return sorts;\n }\n\n stylesByGroup(group: string): any {\n const widths = this.columnGroupWidths;\n const offsetX = this.offsetX;\n\n let styles = {\n width: `${widths[group]}px`\n };\n\n if(group === 'center') {\n translateXY(styles, offsetX * -1, 0);\n } else if(group === 'right') {\n const totalDiff = widths.total - this.innerWidth;\n const offset = totalDiff * -1;\n translateXY(styles, offset, 0);\n }\n\n return styles;\n }\n\n}\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: '[ngx-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: 'ngx-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 NgxDatatableModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/datatable.module.ts","import { \r\n Directive, ElementRef, HostListener, Input, Output, EventEmitter, OnDestroy\r\n} 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 implements OnDestroy {\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 isDragging: boolean = false;\r\n 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): void {\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): void {\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 pressing: boolean;\r\n isLongPressing: boolean;\r\n timeout: any;\r\n mouseX: number = 0;\r\n mouseY: number = 0;\r\n\r\n @HostBinding('class.press')\r\n get press(): boolean { return this.pressing; }\r\n\r\n @HostBinding('class.longpress')\r\n get isLongPress(): boolean { return this.longPressing !== undefined; }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event: MouseEvent): void {\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): void {\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\r\n if(xThres || yThres) {\r\n this.endPress();\r\n }\r\n }\r\n }\r\n\r\n loop(event: Event): void {\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(): void {\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(): void { 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, AfterContentInit, OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { DraggableDirective } from './draggable.directive';\r\n\r\n@Directive({ selector: '[orderable]' })\r\nexport class OrderableDirective implements AfterContentInit, OnDestroy {\r\n\r\n @Output() reorder: EventEmitter = new EventEmitter();\r\n\r\n @ContentChildren(DraggableDirective, { descendants: true })\r\n draggables: QueryList;\r\n\r\n positions: any;\r\n differ: any;\r\n\r\n constructor(differs: KeyValueDiffers) {\r\n this.differ = differs.find({}).create(null);\r\n }\r\n\r\n ngAfterContentInit(): void {\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(): void {\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(): void {\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(): void {\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 { \r\n Directive, ElementRef, HostListener, Input, Output, EventEmitter, OnDestroy\r\n} 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 implements OnDestroy {\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 element: HTMLElement;\r\n subscription: Subscription;\r\n 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')\r\n onMouseup(): void {\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): void {\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 timeout: any;\r\n\r\n constructor(private element: ElementRef, private zone: NgZone) { }\r\n\r\n ngOnInit(): void {\r\n this.runCheck();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n clearTimeout(this.timeout);\r\n }\r\n\r\n onVisibilityChange(): void {\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(): void {\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 {\n single = 'single' as any,\n multi = 'multi' as any,\n multiClick = 'multiClick' as any,\n cell = 'cell' as any,\n checkbox = 'checkbox' as any\n}\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 = [];\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) {\n const selectedIndex = comparefn(row, selected);\n\n if(selectedIndex > -1) {\n selected.splice(selectedIndex, 1);\n } else {\n selected.push(row);\n }\n\n return selected;\n}\n\nexport function selectRowsBetween(\n selected: any[], \n rows: any[], \n index: number, \n prevIndex: number, \n comparefn: Function): any[] {\n\n const reverse = index < prevIndex;\n\n for(let i = 0, len = rows.length; i < len; i++) {\n const row = rows[i];\n const greater = i >= prevIndex && i <= index;\n const lesser = i <= prevIndex && i >= index;\n\n let range = { start: 0, end: 0 };\n if (reverse) {\n range = {\n start: index,\n end: (prevIndex - index)\n };\n } else {\n range = {\n start: prevIndex,\n end: index + 1\n };\n }\n\n if((reverse && lesser) || (!reverse && greater)) {\n const idx = comparefn(row, selected);\n\n // if reverse shift selection (unselect) and the\n // row is already selected, remove it from selected\n if (reverse && idx > -1) {\n selected.splice(idx, 1);\n continue;\n }\n\n // if in the positive range to be added to `selected`, and\n // not already in the selected array, add it\n if(i >= range.start && i < range.end) {\n if (idx === -1) {\n selected.push(row);\n }\n }\n }\n }\n\n return selected;\n}\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 d66ede5fd..16b1f7825 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/core"),require("rxjs/Rx"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular2-data-table",["@angular/core","rxjs/Rx","@angular/common"],t):"object"==typeof exports?exports["angular2-data-table"]=t(require("@angular/core"),require("rxjs/Rx"),require("@angular/common")):e["angular2-data-table"]=t(e["@angular/core"],e["rxjs/Rx"],e["@angular/common"])}(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,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},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.trackByGroups=function(e,t){return t.type},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 ',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.multi,r=[];if(i||o)if(e.shiftKey){var c=this.selected.slice();r=s.selectRowsBetween(c,this.rows,t,this.prevIndex,this.getRowSelectedIdx.bind(this))}else if(e.shiftKey){var c=this.selected.slice();r=s.selectRows(c,n,this.getRowSelectedIdx.bind(this))}else r.push(n);else r.push(n);this.selectCheck&&(r=r.filter(this.selectCheck.bind(this))),this.selected.splice(0,this.selected.length),(l=this.selected).push.apply(l,r),this.prevIndex=t,this.select.emit({selected:r});var l}},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:"[ngx-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:"[ngx-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.Input(),r.ContentChild(a.DataTableColumnCellDirective,{
-read:r.TemplateRef}),i("design:type",r.TemplateRef)],e.prototype,"cellTemplate",void 0),o([r.Input(),r.ContentChild(s.DataTableColumnHeaderDirective,{read:r.TemplateRef}),i("design:type",r.TemplateRef)],e.prototype,"headerTemplate",void 0),e=o([r.Directive({selector:"ngx-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,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},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&&this.rows&&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){var t=this.selected.length===this.rows.length;this.selected.splice(0,this.selected.length),t||(n=this.selected).push.apply(n,this.rows),this.select.emit({selected:this.selected});var n},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:"ngx-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